mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2026-10-02 02:43:44 +00:00
feat(ugc): brushed_colors, LEGO color ids drawn as brushed steel
The client's Materials.xml has no brushedSteel or matteSteel colors, so the Brushed Steel shader (mapShaders 89) was never used. brushed_colors names color ids to draw with it whatever their type (e.g. the drum lacquered 298, 300, 1002, 1004); a named color wins over the metal and glow colors. Empty by default. The docs note that the client registers the brushed reflection and noise textures itself (0x00453730), so the .nif needs none. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -106,6 +106,15 @@ namespace {
|
||||
if (!type.empty() && type != "none") settings.build.looks.materialTypes[type] = look;
|
||||
}
|
||||
}
|
||||
// LEGO color ids drawn as brushed steel whatever their Materials.xml type
|
||||
{
|
||||
std::stringstream stream(Game::config->GetValue("brushed_colors"));
|
||||
std::string id;
|
||||
while (std::getline(stream, id, ',')) {
|
||||
std::erase_if(id, [](unsigned char c) { return std::isspace(c); });
|
||||
if (const auto color = GeneralUtils::TryParse<uint32_t>(id)) settings.build.looks.colors[*color] = UgcModel::eLook::BRUSHED;
|
||||
}
|
||||
}
|
||||
settings.optimize.removeHidden = Setting<int32_t>("remove_hidden_faces", 1) != 0;
|
||||
settings.optimize.groundPlane = Setting<int32_t>("hsr_ground_plane", 0) != 0;
|
||||
settings.optimize.resolution = Setting<int32_t>("optimize_resolution", 1024);
|
||||
|
||||
Reference in New Issue
Block a user