1,056 Commits over 183 Days - 0.24cph!
Undo some of this json stuff for now. Has a lot more edge cases than I thought....
Display default name in TilesetTileControl when tiles are unnamed
AutotileBrushListControl no longer shows add button when inspecting the asset, only in the Tileset Editor
Implemented "Inherit Autotile From" setting, display inherited autotiles in the brush list
https://files.facepunch.com/CarsonKompon/2024/December/20_10-14-LoathsomeWhale.mp4
Remove "NOT IMPLEMENTED" text from 15 tiles since it is implemented
Add a few NRE checks for niche edge cases
AutotileBrush.Tileset reference to associated Tileset. Fixed a few more edge cases
TilesetResource.GetAllAutotileBrushes() now returns new copies of the inherited brushes instead of the original brushes themselves, referencing tiles from this tileset in the same positions.
Fix TilesetResource.Tile deserialization error
More Documentation, removed unused code, fixed Tile.Copy(), and added internal setter to Tile.Tileset
Added JsonConverters for AutotileBrush so it serializes as refereces by default but serializes the entire brush within the associated resource.
Added documentation to properties/functions that were missing them
Make TilesetResource.InternalUpdateTiles() internal
Clearing the Tileset in a ResourceTileControlWidget/AutotileBrushControlWidget sets the value to null
Created ReferencedResourceWidget which the two controls now derive from
TileResource.Tile now implements IJsonConvert, only serializing info necessary to complete the reference.
Fix TileAtlas error
Fix NREs in AutotileTileControl
Fix another TileAtlas oversight
Refactored TilesetResource.Tile. TilesetResource has it's own JsonConverter to ensure data is serialized in it's entirety in the resource but not elsewhere (references)
Fix TilesetResource.AddTile and TilesetResource.RemoveTile
Make TilesetResource.TileMap internal and add TilesetResource.GetTileFromId
Created AutotileBrushControlWidget so you can have a reference to an Autotile Brush via a Property (and edit inline)
[Hide] a few variables that shouldn't be editable
Created ResourceTileControlWidget which allows you to have a reference to a specific tile in a TilesetResource (and edit the tile right from the reference)
https://files.facepunch.com/CarsonKompon/2024/December/18_15-05-SubstantialRaccoon.mp4
Added TilesetResource.GetName() and make Tile.Tileset [ReadOnly]
ListControlWidget now supports multiedit, only showing matching indexes
Add and Remove buttons now work when MultiEditing a List
Added support for re-ordering lists during a Multiselect
https://files.facepunch.com/CarsonKompon/2024/December/18_11-03-AjarBaiji.mp4
Right Click -> Duplicate now works on Multiselect Lists
Support non-array drags on ListControlWidget since not all widgets use arrays for single asset drags
Can now drag one or multiple entries directly onto the "+" button in a List instead of having to create the entries and drag individually. Resolves Facepunch/sbox-issues#7197
https://files.facepunch.com/CarsonKompon/2024/December/18_08-58-FocusedMassasauga.mp4
Update SpriteTools
Tiles now properly serialize all data to the save file. Fix edge case where Tiles wouldn't be saved at all.
Update `[HostSync]` -> `SyncFlags.FromHost`
Don't create an invalid Tileset state when no autotiles are present
Clean out all the old unused files
Don't show "Include Source Files" checkbox when publishing type that always includes their source files (libraries)
Added GetTextureFromFrame docs
Support 3x3m and 3x3c guides with new TextureAtlas approach
TextureAtlas.GetTextureFromFrame now grabs proper coordinates for all ratios
Fix NRE in TextureAtlas.FromSpritesheet
Optimize TextureAtlas class and fix random green pixels in TextureAtlas.GetTextureFromFrame
Use TextureAtlas for Autotile Guides
TextureAtlas.GetPreviewTexture no longer has 1px padding or texture bleed
Refactor over-complicated tile caching process and do everything from TileAtlas
Condense individual guide images into single images. Saves on a ton of space.
Autotile Example/Test Assets. Published Autotiling to sbox.game
Added Block of Ice item (orbital that blocks bullets and deals contact damage)
Inventory/Chest fixes
Quest Notifications show for a prolonged amount of time
Pinned Recipes are now saved per-character instead of using a static variable
Can click on a QuestPanel to pin it to the top of the list
Show Pinned Quests on the game HUD
Updated Game and Menu scenes
New HD logo that fits the rest of the UI
Chatbox + OnOffSwitch tweaks
New high-res cursors that fit the UI
Remove old DecibelsSlider and fix typo in the new one
Only reset Batch Publish Org if currently set to local
Check asset directly along with references assets when checking differences in Batch Publish. Resolves Facepunch/sbox-issues#7151
Renamed Inputs appropriately
Creative Tab now selectable when given Creative Permissions
Finished the CreativePanel, can now give yourself items if you have the proper permission
CreativePanel BuildHash
Use high-res font instead of pixel font, much more legible
Use high-res font for text particles
Update Inventory/ItemSlot styling
Update GameMenuHeader styling
Updated Permissions styling + OnOffSwitch styling
Update Crafting Tab styling
Update Purchase Land UI styling
Update CustomTooltip styling
Update VoicePanel styling
Update SkillsPanel styling + more header tweaks
QuestPanel styling and more Inventory+Permission styling
Creative + Journal styling
More HUD/GameMenu styling
Main Menu + Popup + Fishing styling
Updated ExperienceBar styling, VitalsPanel follows experience bar
Updated PinnedRecipePanel position/styling
Display crafting station in Pinned Recipe
Unify all crafting UI panels
Pinned Recipes now show recipes from all stations, telling you which station it needs to be crafted at
Fix all Broadcast/Authority warnings by using new Rpc.* attributes
Updated SpriteTools
Update Skills UI to be more inline with other UI elements
Updated Crafting UI
Clamp QuestPanel
Added Player.IsCreative and "Creative Mode" permission
Fix issues with CraftingPanel and CraftingEntry
Fix NRE when removing multiple components in context menu
Forgot to save this file in VS 😳
Fix scss `@import`s not including files with relative `../` paths in the file watcher
Write some SCSS import Unit Tests and update existing ones to test more than just variables
Fix [ReadOnly] attribute not being applied to all property types
ResourceControlWidget now looks like it's greyed out when disabled
Same thing with Nullable Button
Prefab Variable button now shows when there's differences in a Multiedit
https://files.facepunch.com/CarsonKompon/2024/December/09_09-33-ScratchyGemsbok.mp4
Added Multiedit support to Component Context Menu
AbsolutePath is required only for registering the asset
Added Multiedit to RangedFloat (so you can edit all your sounds at once)
AudioDistanceFloatProperties now support Multiedit
ButtonControlWidget now supports Multiedit, will invoke the function on all selected Components
GradientEditorWidget now supports Multiedit
CurveControlWidget now supports Multiedit
Don't use absolute path when creating sounds from mp3s
Make sure SoundEvent is compiled before we try to add sounds to it. Fixes Right Click MP3 -> Create Sound Event(s)
Update SpriteTools
Started Creative Tab
Fix Pickaxe targeting
Change networking config
Fixed cursors
Fix cursor resetting in certain states
Show pointer cursor in gameplay when held item is usable at mouse position
Disable Day/Night Cycle for now
Redid XP bar styling
Updated Vitals styling
Update CoinsPanel styling
CraftinPanel restyle
Fix minor typo
Added Multiedit support to TagSets. Resolves Facepunch/sbox-issues#6882
https://files.facepunch.com/CarsonKompon/2024/December/05_10-10-LividGallowaycow.mp4
Rename TagSetControlWidget file name to match class name
Refactor Autotile serialization so we can support stuff like merging
Fix erasing Autotile updates
Save merge state to Autotiles, and fix SetAutotile override not working as intended
Finally got merged autotile working, visual still displays incorrectly at times however
https://files.facepunch.com/CarsonKompon/2024/December/04_12-02-FearlessAruanas.mp4
Fixed merged autotiles not patching themselves when erasing nearby autotiles
Do tile validation before updating bitmask instead of during so tiles destroyed after those that already updated their bitmask don't leave behind invalid tiles
Fix Autotile Rectangle Tool
Fix all the issues that the last 2 fixes caused
2x2 Edge now has proper tile count
Added bitmask mappings for each valid autotile position of 2x2 autotiles. Now all brush types are officially supported
https://files.facepunch.com/CarsonKompon/2024/December/03_15-57-FlakyPlanthopper.mp4
Fix rectangle delete not deleting non-autotile tiles when in autotile mode
Placing Autotiles near Autotiles of another type while merging is enabled will no longer override the old tile type
Autotile Merge setting now visually shows how the merge will end up looking (although not yet functional when painted. will need to refactor how autotiles are saved)
https://files.facepunch.com/CarsonKompon/2024/December/03_16-32-RegularAfricanbushviper.mp4
Change tile guide asset names
Added 256 tile guides
Can now create Autotile Brushes of each type. Remove Corner Type
Implemented 3x3 Complete (255) Autotiling
Fix Rectangle Tool preview
Brush Rotation no longer incorrectly displays Autotile preview
Paint Tool now supports 2x2 Autotile Brushes
Fix issues when using Round brush with 2x2 Autotile
Added descriptions to each tool Property
Added "Merge Different Autotiles" Brush setting.
Fix eraser not drawing above other tiles
Check for the validity of a 2x2 Autotile existing when painting/erasing
Maintain 2x2 validity check while using 255 size bitmask
Prevent Scene Editor from attempting to do FPS cam when holding right click in a 2D view
Is47Tiles -> AutotileType enum with 4 bitmask types.
GetAutotileBitmask now returns proper values for each type
Basic 2x2 Edge and Corner bitmask implementations
Fix PaintTileTool warning and NREs
Can now change Autotile type after initially creating it, fixed all NREs that come with that change
Changing Autotile Brush type now gives popup warning telling you its a potentially destructive change. Cleaned up a bunch of unused code
Fix AutotileWidget not being created with unnamed autotile brush
Fix brush type not serializing
Fixed not being able to select brush while tile was selected in Tileset Editor
Replaced separate create buttons with a single button that has a dropdown for brush type
https://files.facepunch.com/CarsonKompon/2024/December/02_13-37-FrigidUintagroundsquirrel.mp4
Main Menu Save Slots now have play/delete buttons instead of the whole thing being a button
Intro Cutscene now has save file state, updated all map thumbnails and made them jpgs
Map Resources can now set an associated Hub World with each stage. Save Data now keeps track of level completion
Quest Resources now have an associated map to track hub progress
Fixed CameraIntro.OnIntroEnd and made it so you can hold E to skip the intro cutscene
Coin count is now serialized with Scene Metadata so we can retrieve from menus.
Pause Menu now shows you quest completion percent for the current area
Fix End Item Screen
Save Slot now shows progress throughout the game, and levels completed
https://files.facepunch.com/CarsonKompon/2024/November/29_10-20-HandySkylark.png
Diving into a Balloon gives you your jump back instead of continuing to send you forward
Made Balloon collisions a bit more fair
Balloons and Crumble Platforms respawn quicker
Checkpoints cannot be re-activated. Meaning you can't accidentally fall back to a previous one and lose progress
Can't use scene triggers if entered a level from the menu
You now only continue to slide from a dive if holding a movement key. Otherwise you come to a stop much quicker
Can now steer the dive (both in-air and on the ground)
Can press the ground pound button while sliding on the ground to instantly cancel the slide
Added train ambience to main menu, camera slightly bumps every once in a while
Remove unneeded GameObjects from Main Menu, clean up Hierarchy
Removed existing Ui folder
Added new UI folder with updated folder structure, fixed a bunch of UI issues and did various optimizations
Don't save over save file when loading into a level from the main menu instead of from save file
Fix pause menu black square in levels
Added Button Icons
Made Save Slots larger in Main Menu and give more info about the player's save