828 Commits over 153 Days - 0.23cph!
Combined the best of the two cameras.
Camera follows the forward vector when not moving the mouse
Created player_gizmo vmdl
DeathUI is now FadeUI and can be called externally
Created SceneEntrance and SceneTrigger Components.
Added scene triggers to intro area / platforming stages
Fix CoinUI NRE
Remove TimeOfDay from Scene serialization
TimeOfDay now implements ISaveData and saves to World
Added more Tree Types, spawning in their respective biomes
Added distinction between grass/forest trees
Update SpriteTools
Update item name
Updated Ambush Description & Plunder's Icon
Implement Day/Night Cycle
Adjusted Day/Night Cycle Length
Fix `set_time` command
Fix particle lighting
Added PreviewEntity
Created Enemy class and added 1 Zombie and 2 Skeletons
Fixed enemies hands flipping incorrectly. Fixed Enemies not being serialized as Mobs. Added Enemy.KnockbackTime
Added SpawnsAtDay and SpawnsAtNight support
Enemies have a separate spawn limit from non-enemies
Add .sbox folder to gitignore
Don't attempt animation playback on sprites that only have one frame. Fix DrawGizmos NRE when SpriteComponent doesn't have a Sprite
Improved climbing collisions immensely, works properly on rotating blocks
Move collision improvements for climbing. Can climb between different objects now.
Slight adjustment to climb up
Added proper friction to climbing
Independent X/Y checking on grate movement
Improved climbing up a fence
Added HasParentControl to Ability
Started on climbing on rotating/moving platforms. Still needs more work.
Added/Updated Ground Slam Particles, reduced hangtime from standstill
Reduced Dive cooldown
Pressing SPACE while dialogue is typing will instantly finish typing instead of skipping it. Then next SPACE press will skip it.
Fixed animations not looping and instead just playing the first frame
Added <bold> <shake> and <wiggle> tags
Animations is now a list that can apply to multiple targets. DefaultAnimation still targets SpeakingObject for convenience
Pre-calculate parsed dialogue at the start of each entry, so box doesn't resize with the dialogue
Added support for <anim:x> tags in dialogue
Updated Journal styling again. Resources -> Tiles
Updated a few Tiles, added Bricks
Added Stonecutter
Added Stonecutting Skill
Added Brick Wall, created Default Tile Item
Removed all Tile Item prefabs and created generic Tile Placer prefabs which tile placing items use
Added Free Shipping Skill
Created PreviewTile and created Icons for Tile Resources
Added Industrial Table and Industrial Skill
Fix Required Skills on all Skills and on SkillsPanel
Moved PlaceSound to TileResource
Added .sbox to gitignore
Give CraftingRequirements [InlineEditor]
Added Journalist Quests, implemented journal progress
Unlocked skills now animate in
Added `give_levels` command
Update Journal Ordering
Swap around a few item ids
Fix ruby chunks
Fixed TooltipPanel not resetting classes between tooltips.
Show notification on Journal Page when you get a new entry
Don't show quests as hidden when completed
TilePlacer can no longer place on dig tiles
Added Resources to Journal
Added Mobs to Journal
Can register Tile and Mob entries in the Journal
Added Names and Categories to every single Item/Tile/Mob
Added Journal Tab to GameMenu. Optimized GameMenu's Tabs and Pages further
Created JournalPanel and JournalEntry
Added Seen/HasSeen to CharacterSave
Proper Journal Styling and Item implementation for JournalEntry
Journal Tooltips
Seen/HasSeen now uses a state instead of a bool
Fix skill panels still displaying when not unlocked
Fix OrganizationModal NRE
Fixed Friends List Modal CSS. Resolves Facepunch/sbox-issues#6525
Digging SFX
Added Dig Particles
Added BiomeResource to store additional biome information
Added a bunch more items. Can now get items from digging (dictated by the Biome)
Improve digging and make it give experience
Fix entity shadows
Added Water Footsteps/Particles
Fix player not always jumping out of a dive when pressing space
Added Dive/Slide particles
Made it so you can't cancel a Dive mid-air
Added short Hop when left clicking while sliding from a dive
Diving into a jump pad will cancel the dive. Sliding to a halt will cause you to exit the sliding state
Fix Pause Menu not being able to unpause properly
Fix WallJump making you jump a nearby wall when grounded
Improved the wall slide and fixed Ability.HasGravity
Added wall slide particles (will look a lot better once there's an anim)
Remove some logs
Exit running state when running into a wall
Added 2 new biomes to Tileset
Rewrote WorldManager to use bools for tiles and strings for chunks instead of having a biome string per tile. Required a lot of refactoring.
Remade the island layout using the new format
Update WorldUnlocker and WorldSave to properly set the starting biomes from island layout
Reworked Tile/Entity spawn chances to be more robust, updated all existing tiles/entities.
Don't let the player place earth on existing earth
Update SpriteTools
Rename all grass tiles for uniformity. Give each their own unique item instead of a single green grass
Update SpawnChances for existing mobs
Fix NREs when opening a Sprite that references images that no longer exist (or have moved)
Fix issues with Character Select Buttons
Update SpriteTools
Update all Tile Dictionaries to use Vectors as the key instead of parsing to/from strings now that we actually can.
Updated SpriteTools
Add Dig Tiles to Tileset, add Digging functionality to WorldManager.
Created PreviewItem so items have Generated Thumbnails
Created Shovel Holdable which digs up earth, regenerating after a random time.
Dig Tiles now properly save to the world. Optimized world saves in the process
Added TilesetComponent.GetLayerFromName and TilesetComponent.GetLayerFromIndex
Added proper documentation to TilesetComponent, made a few things internal and changed some terminology. JsonUpgraders to ensure everyones stuff still works
Updated example files
Add ReadAsPropertyName/WriteAsPropertyName to all Vector2/3/4/Int JsonConverters. This means Vectors will be serialized properly when used as Keys in a Dictionary.
Added Plunder and Ambush skills. Renamed and adjusted existing skills.
Fix ParsedLabel spacing issues and made it more uniform
SkillPanels are now coloured categorically. Updated their look a tad.
Fix Land Purchase Networking
Player Inventory is now 2 slots larger by default. Updated styling to account for it
Fix Diamond Pickaxe Item
Added Leather, cows have a chance to drop.
Created Backpack Upgrades, starting with Small Backpack. Picking up will permanently increase storage space
Fix the Leave Server button when not the host
Added Player List to Pause Menu
Fix entities casting light shadows
Quests are now claimed manually via the quests tab to get your rewards
Added Notification Icons to GameMenuTabs if there's something to do in that tab
GameNetworkSystem -> Networking
Fix ESC not closing popups in Main/Pause Menu
Added SFX/Notification for unlocking Skills
Fix disconnecting on server end, ensuring that if anyone stays behind for whatever reason it doesn't override their world with yours.
Added Permissions Tab to GameMenu if host. Created OnOffSwitch Panel
Fix WorldManager rebuilding the World every frame instead of when when dirty
Created PermissionData class, added to WorldData as GlobalPermissions and UserPermissions. Hooked up to PermissionsPanel
Implemented all the different permissions, falling back on global permissions when null.
Change entity item drops
Added more Food Items and Food Crafting Category
Added Item Upgrade System, along with different new tiers of Pickaxes
Added NPC template and Dialogue Bubble fixes
Basic Rubert NPC + Dialogue
Added Prefabs/Templates for a bunch of useful stuff
Fix player sliding around sometimes. Abilities now have more control over the player.
Added LaunchAbility and updated Jump Pad to use it to launch you along a perfect trajectory.
Fix holding ALT not providing gizmo inputs. Resolves Facepunch/sbox-issues#6495
Added ParsedDialogue class and DialogueEntry.GetParsedDialogue(). Includes support for <pause:time> tags
First Pass on DialogueBubbleUI, Cutscene Manager now displays dialogue via this Panel.
CameraTargets now have EditorHandles and Gizmos, rework their functionality too.
Created basic Dialogue Component
Rewrote CutsceneManager to take in Dialogue instead of MovieClips. Remade the test cutscene to work with the rewrite.
NetworkSpawn() with no arguments will use Connection.Local as the owner (like it used to)
Fix GameObject.NetworkSpawn(null) spawning as host instead of spawning with no owner. Fixes a few games.
Fix "path cannot be empty" when opening object menu
Fix Custom Cursors not being cleared when returning to S&box Main Menu.
Fix Duplicated Entries in Create GameObject Menu
Added Filter Settings to Add Component Popup. Can hide base components. Resolves Facepunch/sbox-issues#6428
https://files.facepunch.com/CarsonKompon/2024/September/19_11-10-TransparentAmethystinepython.mp4
Prefabs marked as `ShowInMenu` will actually show in menu without having to be in `templates/gameobject/` subfolder.
If a Prefab is marked `ShowInMenu` then you can give it `DontBreakAsTemplate` so it maintains the prefab reference when created via the GameObject Menu. Resolves Facepunch/sbox-issues#6035
Added Dynamic FOV to the Camera, changing when player is running
Center on character when fully zoomed