364 Commits over 304 Days - 0.05cph!
Test NPC stuff / wandering using Nav Mesh
RecipeCategory is Flags now
Added some basic craftable clothing and removed unused vars
Updated UVs properly for structure pieces + when placing foundation remove any pickups on the ground
Fix messages
Improved placeholder models for Wall, Doorway, Foundation and added material groups
IDamageable. Consolidating deployable persistence. Hammer item. Don't hover over entities with hammer tag unless hammer is equipped
Have unavailable context actions be red
All traces ignore triggers. Added Build Exclusion Zone trigger for Hammer.
Added SecondaryUseText and have ToolboxItem use it. Removed Stone cost for all basic structures. Replaced dev material with a placeholder wood material for structure pieces.
Fixed picking up a furnace gives you a campfire...
Added context driven Input Hints. Added InventoryItem.UseText. Can use consumables with Primary Attack. Increase FOV. Change interact key to Use instead of Primary Attack.
Added IContextActionProvider.AlwaysGlow and low glow entities in interaction range. Loot entities always glow through walls
Added additional loot entities for low and medium tier and if a resource pickup model has no physics, give it a spherical physics body
Clear deployable ghost if trace doesn't hit
Persistence++
Greatly increase the number of resource pickups that will be spawned
Change plant fibre pickup model
Loot spawner will class an area as clear if the entity that is blocking it is from the map
Increase crate respawn time to 180
Fixed pumpy and fixed attachments not initializing on weapon select
Fixed all item definitions
Separate loot chance and stock chance
Enable fog support but start disabled for now - more options to follow
Add INametagProvider and update nametag system to use that - let NPCs and Players share nametag
Started implementing Trader, base NPC and salvage system
Add stubs for base NPC + Trader
Added persistence support for map entities by saving HammerID. Added persistence support to loot spawners
Fixed respawn time + apply force to player's corpse on death
Do the same for client ragdolls
An attempt was made to... implement headshots in a game like this. Let's try a potentially goofy mechanic where if your cursor is over a player's head when one of your projectiles hits them - it's a headshot
Persistence++
Serialize DisplayName and if when deserialize the player is dead, respawn them, otherwise create hull
Simulate sleeping behavior
Add passplayers collision rule (ignore player)
Fix bugs with projectile weapon (don't add Z spread, fix random direction)
Nametag tweaks / optimization
Adjusted projectile force
Sounds for campfire and furnaces
Prevent players shooting through walls by poking their weapon's world model through it
Finally tracked down a bug that has plagued me. InventorySlot will now be updated when it should be - I didn't include the inventory id in the hash code for InvContainer
Give armor entities the same obscured glow effect as players
Added Saved Games support (PersistenceSystem compatibility)
Nametags will fade out over distance and eventually hide themselves
Support for Timed Actions to have sounds that play while the timed action is in progress
Start and stop timed actions sounds appropriately
Added a bunch of placeholder rummaging sounds for harvesting pickups
Add a glow component (client-side) for the local pawn for obscured player only
Fixed data not saving
Chat styling - name will now not wrap, and text entry will grow accordingly
Reduced campfire size
Fixed item hash code not including item id
Fixed structure place sound not playing for the first structure piece
Re-adjusted all sound distances and don't send pickup sounds to everyone
Change fireplace and furnace dynamic lights and reduce glow widths
Only block input when have a hovered entity if an action was done or if primary attack is down
Added BeforeStateLoaded and AfterStateLoaded and change some method names
RestoreConnection
Don't do some goofy on-demand way to work out the connected stockpile entity. Propagate and cache stockpile connections when a foundation is added, restore them after load
Persistance++ and refactors around persistence
Re-add IsValidPlacement for Foundation and add Structure.AuthorizationRange (fsk.structure.range)
Move Stockpile find stuff to Foundation instead of Structure
Added Stockpile entity and implemented ICodeLockable and IPersistence
Added StockpileItem definition
Add "material" tags to all material items
Added placeholder Stockpile model
Stockpile icon and recipe
Added Unauthorized thought strings
Added Structure.AddFoundationsToSet and Structure.FindStockpile (cached, but still shitty)
Remove Foundation IsValidPlacement logic
Automatically authorize the player who placed the Stockpile
Added Player.IsAuthorizedToPlaceAt and add checks for both deployables and structures
Allow rotation of deployables (this currently breaks the Bedroll because it's using a silly model)
Allow players to deselect their currently selected hotbar item
Never transmit deployable ghost entities
Set physics body transform immediately for temp ghosts (server-side) before using Trace.Body
Potential fix for nametags
Try setting sound listener rotation to camera rotation(?)
Persistence++
Fix autosaving + have weapon items store their ammo item type (thanks for spotting @Fortune#7015)
Stack loot spawner stuff instead of give
Fixed NRE, add Brightness + SkyIntensity to TimeController, add auto-save and save on disconnect
Allow multiple ItemCost attributes. Added stone costs to all structure pieces. Adjusted all pickup amounts, stack sizes. Adjusted all recipe costs.
Added preferBackpackOverHotbar to TryGiveItem. Fade out unaffordable crafting recipes a little
Tweaked ReloadMenu open delay + improved radial menu style
Remove time test map, add maps with support