4,648 Commits over 976 Days - 0.20cph!
Didn't mean to push this launch setting
Rip out SteamInput and our Controller API
Init SDL_GAMECONTROLLER, add standard mappings file (will move this later), find all of our game controllers on startup, hook up events for handling controller lifetime, button events and analog inputs
Turn off steam overlay in the editor again
Forward controller button events to managed
Forward controller axis events to managed
Simple device instance memory (disconnect and reconnecting the same controller should point to the same device), all events pass controller ID
Delete Input.AnalogInputs/GetAnalog (might re-add later)
GameController -> CGameController, some code refactor, Controller is a handle
Resolve sbox-issues/issues/5171 by making dragValue match
Consumables inventory moved away from objectives UI
Fixed weapon sounds being unlinked
Fixed stamina infinitely draining
Moved stamina drain/regen to mechanic instead of playercontroller
Posture regenerates over time
Fixed assuming max posture is 100
Update posture UI color
Add PostureMechanic.Default
Calculate posture damage separate from damage inflicted, so weapons can be better at breaking posture
ModelPanelnspector: smooth out rotation when mouse is released instead of freezing the model
Move NotesUI in front of everything that isn't the pause menu
GameManager -> Game, add our own GameManager, add GameManager.IsPaused
Refactor NotesUI interaction, closing state is handled on the UI itself, instead of relying on interaction system (since the object might've moved, or you might've moved, which would hard lock you in the UI)
Enable/disable model renderer when using model panel inspector
Use InputHint for NotesUI
Not sure why I pass victim in our damageinfo at all, doesn't make sense and it's not used
Posture mechanic compensates for any damage taken, and controls breaking posture - don't block attacks if we broke posture in the same attack
Start designing posture mechanic
Fixed being able to block while in the notes UI
Add SwingingHeavyAttack, only gets set when you're winding up your attacks
Added jason spawner, hooked up state enter voices for AI so they'll play their respective voices
Port weapon code to use voice list
Start work on weapon refactor - hold state info in a resource, pass resource into attack components
Add VoiceListResource
Add VoiceListResource.Find( key, fallback )
Add voice lists for other crackhead variants
Add Actor.PlayVoice, Actor.VoiceList, create player's voice list
Add named camera effects for weapon attacks
Fixed up all the other melee weapons, and added alt swings to all weapons
Merge "weapon_refactor" into "main"
Fixed up all the other melee weapons, and added alt swings to all weapons
Add named camera effects for weapon attacks
Start work on weapon refactor - hold state info in a resource, pass resource into attack components
Add VoiceListResource
Add VoiceListResource.Find( key, fallback )
Add voice lists for other crackhead variants
Add Actor.PlayVoice, Actor.VoiceList, create player's voice list
GameController -> CGameController, some code refactor, Controller is a handle
Add Actor.PlayVoice, Actor.VoiceList, create player's voice list
Add voice lists for other crackhead variants
Add VoiceListResource.Find( key, fallback )
Start work on weapon refactor - hold state info in a resource, pass resource into attack components
Interaction: grab bounds center for screen position, not just the GameObject's position
Inventory items have stack sizes, when adding items, recognize existing item instances and top up stacks before adding new slots
Rip out SteamInput and our Controller API
Init SDL_GAMECONTROLLER, add standard mappings file (will move this later), find all of our game controllers on startup, hook up events for handling controller lifetime, button events and analog inputs
Turn off steam overlay in the editor again
Forward controller button events to managed
Forward controller axis events to managed
Simple device instance memory (disconnect and reconnecting the same controller should point to the same device), all events pass controller ID
Delete Input.AnalogInputs/GetAnalog (might re-add later)
Delete Input.AnalogInputs/GetAnalog (might re-add later)
Simple device instance memory (disconnect and reconnecting the same controller should point to the same device), all events pass controller ID
Forward controller axis events to managed
Forward controller button events to managed
Rip out SteamInput and our Controller API
Init SDL_GAMECONTROLLER, add standard mappings file (will move this later), find all of our game controllers on startup, hook up events for handling controller lifetime, button events and analog inputs
Turn off steam overlay in the editor again
Initial proof of concept for scoping gamepad inputs
- Push input scope if a GameObject has an InputScope component, which pushes the active input context
- Don't use Controller.First anywhere other than UI
- Poll every gamepad input and store an InputContext per controller, instead of just the first one
Todo:
- Fallback to first controller if we don't define any input scopes at all
- Let the keyboard and mouse easily be the "non-scoped" input, so we can have two player games with just one gamepad
Can drop into hierarchy (resolves Facepunch/sbox-issues#4453)
F1 console: copy exception stack to clipboard when clicking entry (resolves Facepunch/sbox-issues#5038)
Add scroll area to EnumControlWidget
Update IntegerControlWidget label color
GameManager -> Game
Populate some missing TypeSerializedField virtuals (fixes Facepunch/sbox-issues#5042)