ColorfulPieces
Color any building piece made with the hammer using RGB/HTML colors!
CHANGELOG
Changelog
1.17.0
- Updated for the
v0.218.21
patch. - Coloring pieces now uses vanilla
MaterialMan
game code logic instead of its own. - Known issue: wards/guard_stone will be completed colored instead of partially (to be fixed in a later update).
1.16.0
- Updated for the
v0.218.19
patch. - Bumped up
<LangVersion>
to C# 12. - Code clean-up and refactoring.
- Added new logic to prevent coloring chests/ships/wagons if they are currently in-use.
- Simplified the change/remove-color prompt to not include
copyPieceColorShortcut
text. - Added a new
--position=<x,y,z>
arg to thechange-color
andclear-color
commands.
1.15.1
- Fixed a bug with
ClearPieceColorShortcut
not working.
1.15.0
- Updated for the
v0.217.38
patch. - Moved changelog into
CHANGELOG.md
. - Bumped up
<LangVersion>
to C# 10. - Minor performance improvement by switching to singleton
PieceColorRenderer
.
1.14.0
- Updated for
v0.217.31
patch. - Major code clean-up and restructuring.
- Converted all commands to ComfyCommand format.
- Added new commands
clear-color
andchange-color
. - Color palettes now wrap at 8 colors per row.
1.13.0
- Fixed for the
v0.217.24
patch.
1.12.0
- Fixed for
v0.217.14
patch.
1.11.1
- Work-around for bug introduced in
v0.216.9
where Color.black (Vector3.zero) was stripped out during world load.
1.11.0
- Updated for
v0.216.8
PTB patch. - Modified
Player.TakeInput()
transpiler to happen afterPlayer.UpdateHover()
and no longer block other inputs. - Modified all single-Piece color actions to no longer be coroutines.
- Added work-around for new ZDO behaviour that does not support removal of existing ZDO key-value pairs.
1.10.0
- Updated for the
v0.214.2
patch.
1.9.2
- Reverted the 'Copied piece color' message back to an upper-left MessageHud notification.
1.9.1
- Fixed a bug with the CopyPieceColorAction not working correctly and converted it to a regular method.
- Organized some of the config files and other small clean-up.
- Modified the
Player.TakeInput()
patch to also check that taking input is allowed.
1.9.0
- Overhauled config options to use
ExtendedColorConfigEntry
for any color options. - Add ColorPalette feature for ExtendedColorConfigEntry.
- Added
PieceLastColoredByHost
ZDO string field filled by player'sNetworkuserId
when modifying piece color.
1.8.0
- Reduced overall memory and cpu usage!
- Refactored entire colorization mechanism to use a new
PieceColor
component andPieceColorUpdater
loop. - Removed prefab Material caching (which created instances) and instead make use of MaterialPropertyBlocks.
- Added configuration options to override the Piece stability highlight gradient colors.
- Cleaned-up this README and added more instructions.
1.7.1
- Fixed a bug with the
Player.TakeInput()
transpiler code blocking other inputs.
1.7.0
- Standardized
PluginConfig
to match more recent mods. - Moved Harmony patching code into new
PlayerPatch
,TerminalPatch
andHudPatch
classes. - Terminal commands now check for
IsModEnabled
for initial add and in the commands themselves. - Added
manifest.json
and changedicon.png
. - Modified the project file to automatically create a versioned Thunderstore package.
1.6.0
- Fixed crashes related to the VPO-compatibiity introduced in v1.4.0.
- Reverted to original-caching behaviour that uses
WearNTear
instance itself as the key tied to Awake/Destroy. - Moved the SaveMaterialColor/ClearMaterialColor logic to WearNTearData.
- Added a cache for Vector3ToColor() method calls.
- Added a cache variable for Utils.ColorToVector3() method calls.
- Reverted to original-caching behaviour that uses
1.5.2
- Changed how hotkeys are detected from Player.TakeInput() prefix to better Player.Update() transpiler.
- This eliminates the double hot-key firing when in debugfly mode.
- Moved more config-related logic into PluginConfig class.
- Moved ZDO extensions to a new ZdoExtensions class.
- Added two new Terminal.ConsoleCommands: /clearcolor and /changecolor
- Fixed a missing check for isModEnabled and showChangeRemoveColorPrompt flags in Hud.UpdateCrosshair() postfix.
- Fixed a missing yield return null condition in ChangeColorsInRadiusCoroutine().
1.4.0
- Use
WearNTear.m_nview.m_zdo.m_uid
as the cache key for compatibility with ValheimPerformanceOptimizations. - Also call
ClearWearNTearColors()
inWearNTear.Awake()
andWearNTear.OnDestroy()
to assist with the above.
1.3.0
- Fixed
PieceEmissionColorFactor
not being copied during copy color action. - Renamed
LastColoredBy
toPieceLastColoredBy
to be more consistent with other colorful mods. - Added an option to change the font-size for the text prompt on hover.
1.2.1
- Recompiled against H&H patch.
1.2.0
- Fixed for Hearth & Home update.
- Added new action to copy the (existing) color of the hovered piece.
- Defaults to
LeftCtrl + R
.
- Defaults to
- All keyboard shortcuts for actions (including set color and clear color) are now configurable.
- Increased maximum emission factor from
0.6
to0.8
to allow for brighter colors. - Added a new
LastColoredBy
long ZDO property set to the PlayerId on set or clear.
1.1.0
- Fixed a memory leak causing the game to crash/freeze during a player profile save.
- This is because we used ConditionalWeakTable to cache piece materials but the Unity docs state that UnityEngine.Object does not support WeakReferences.
- Changed to a Dictionary instead and patch
WearNTear.OnDestroy()
to remove the reference.
- Added configuration setting to hide the 'change color' and 'remove color' prompt over a ward.
1.0.0
- Initial release.