4,160 Commits over 884 Days - 0.20cph!
Removed some code that was shit, when attaching something, raise attach dot threshold
Cleanup, documented all classes and properties
Can dry fire a weapon, detach mag with B button of held hand
Weapons are a bit more weighty
Can detach attachables from attachment point
Add detach sounds
More work on attachbles feel
Add events for when stuff gets attached to interactables, weapon is an interactable - can only fire when magazine is attached and has ammo
Improve accuracy of placing interactables in your hands
Fixed error when not running in VR mode
Few tweaks, another m4 loadout and non-operable spaghelli
Hardcoded hand poses, can be driven from grab points
Refactor, can shoot gun, don't use findinphysics, rely on collisions/trigger events only
Bunch of boilerplate code for weapons/attachment points
Add standalone M4 magazine vmdl
Code dump for interactables, secondary grab points, smooth damp
Don't bother doing grabby input stuff if proxy
Remove unused component, cleanup
Add some gizmo handles for VR components
Make Component.Reset() reset its PropertyAttribute marked properties
Add helpers for inventory clearing/setup - reset player inventory and move to spawnpoint on Respawn
Slide mechanic takes into account ground normal, can't slide up slopes
Don't play footsteps if we're sliding
Disable player body on death, enable it on respawn
Fall back to no hold type if we don't have a weapon out
Add footstep component
Add developer menu (https://files.facepunch.com/tony/1b2711b1/sbox-dev_RNMgcIDcBP.mp4)
Expose aim offset per aim function
Work on life states, depossess player on death, add pawn possession test
https://files.facepunch.com/tony/1b2711b1/sbox-dev_9RDuMDYpfP.mp4
Made aiming a weapon function instead of being a bool on the player
Removed WeaponStatsResource, WeaponStats, useless complexity
Can't shoot gun if we have some tags
Added TagBinder for being able to bind tags nice easily, get rid of extra tag container on weapon
Field of view programmatic adjustments, force two-handedness for viewmodels, weapon function tags
Fixed a few asset references
Much faster FX decay time
UI reflects entire inventory now. Add USP, fixed bug where all weapons would be active on startup
Temporarily use batch publisher for "Upload" button in AssetPublishWidget, since it's doing nothing currently
Don't make asset metadata for cloud assets, since we're mounting downloaded cloud stuff first, asset browser tag code is generating fake metadata for all this cloud stuff and causing problems when we're wanting the real metadata
Fixed other player's HUD rendering always
More robust method of weapon equip events
Add PlayerInventory, can hold multiple weapons, and can holster current
Go from target GameObject's root downward for detecting IDamageables
Add Weapon.UpdateRenderMode, to hide the world model when locally controlling a player
Simplify damage, make it less shit
Upon changing a component type to abstract and you have component references, add it as a missing component
Use Json.Serialize/Deserialize for BaseFileSystem.WriteJson/ReadJson, instead of different serializer options which didn't support our custom converters
Fixed case where the player might not have a weapon
Create PlayerBody component, move weapon to hold bone when it's set to current
Organized some prefabs/resources
Re-implement Input.GetAnalog, respective glyph icons, moved some files into dedicated Controller directory
Localization now lives in its own folder at the root of a project, instead of "Assets\.localization"
- Publishing a project will pick up this folder automatically
- All you should need to do is move your .localization folder to the root of your project, and rename it to "Localization"
Move menu localization files
Adjustments to boost mechanic
Can't aim while sprint/sliding ("no_aiming" mechanic tag)
Add proxy update for mechanics, so we can grab tags for networked players, crouch/slide/etc sync'd this way
More work on networked players
Wrap player input around IsLocallyControlled
Code refactor, start working on pawn possession (so we can do networked spectators later)