7,538 Commits over 3,653 Days - 0.09cph!
█▉▊ ▊▆▊▊▋▄▋█▅▇▊▌▊▆▇▍▊▅▋▊▇
Add demo delete confirmation UI prefab
Add player lookat mode for debug camera
Add log for switching target bone for Paddy
Refactor demo file writing so that post record data can be saved in header
Up demo version to 2 to add length of demo to the end of file
Stop demo after reading it to list in browser to avoid file sharing violation
Update demo browser theme as requested
Simplify aspect ratio camera guide convar as requested
Add debug camera convar for following bone rotation (for shots where camera is mounted to a gun for example)
Fix debug camera bone cycling on player models
Allow debug camera to target self player model
Reset cam bone when switching target entity
Tab sets cam bone to first bone when there's no current cam bone
Split debug camera movement and input so movement still updates while menu is open
Check if demo button should be active on menu awake
Fix sorted demo list not updating when deleting demo
Only show demo browser button if user has demo files, as requested
Change camera parent key from LEFT MOUSE to F
WASD movement with debug camera while orbiting offsets camera
SHIFT + R key combination to reset orbit offset position
demo.browser convar (don't mess with main menu for a feature only a few people will use)
Functional sort buttons on demo browser (sort by name, date, length)
Open demo browser as popup on right hand side menu
Convar for custom ratio guide (eg. "2.35:1" or "4:3" etc)
▉▄▆█▍█▆▌ █▇ ▄█▍ ▍▍ ▊█ ▋▊█ ▊▋▄▅▆▌▋
TAB key to cycle between the different bones of the target entity
convar for camera guide color
Camera framing guide overlay and commands to toggle (rule of thirds, golden ratio, crosshair)
Orbit target entity mode for debug camera
Camera shake commands [amplitude, frequency, duration]
Set debug camera fov/zoom length to value (debugcamera_fov <value>)
Fix camera lerp bounce issue at lower values. Convar to enable/disable camera lerp 'locomotion'
Bundle up entity transforms into a single message every tick instead of a message per entity
Move entity movement replication to BaseWorldEntity, BaseEntity is non visual so shouldn't need this. Remove scale from movement replication as scale changes happen less frequently.
Add entity movement update rate, defaults to 60, included in movement packet for interp
Use bitflags to pack entity movement packet with components of transform that changed from previous packet
Replicate entity relative transform if it has a parent
Save entity relative transform as properties so they can be used when first replicating the entity to client
Save entity parent netid directly instead of using properties (this is because public attachment functions are authority only)
Add SourceExport addon. Get SourceImport addon working again.
Fix NRE in ModelJsonConverter when model path is null or empty
Fix up shadows on dynamic lights on source maps
Skip entity spawn and destroy messages if there's no other client connected except for the host, saves an unnecessary entity serialize
Add incorrect protocol disconnect reason code
Add auth fail discconnect reason code
Only send entity parent netid if it changes, use attach flag if it changes to non zero, use detach flag otherwise
Send entity position and rotation if parent changes, just to make sure everything is synced
Don't write any movement data to packet if entity has no movement flags for the movement tick
SourceImport fixes to allow bsp conversion to our own format
Reflection based lump reader for new map format
Write map data to lumps
Write lumps to map file
Some Arcade gamemode fixups
Basic loader for new map format
Add lightmaps to map format
Save displacements as mesh in new map format
Add uint color to map vertex structure (displacement needs alpha to blend)
Save lightmap data and try loading it from new format
Create shadowmap from lightmap
Save the unencoded lightmap data, slightly longer to load but less data to save and keeps the format unrelated to unreal
Save ambient light samples to map format
Save bounds in map model structure. Load light volume from ambient light samples.
Gather vertices for convex collisions
Allow wheels to be removed by removing their prop, handles destroying of constraint
Try broadcasting entity transform each tick if ReplicateMovement is enabled
Broadcast entity attachment if it has a parent
Add entity relative scale
Get sandbox gamemode compiling again, remove NetTest gamemode
Fix toolgun click effect on listen server
Add OnChange callback back to replicated vars (only when a var is recvd)
Fix sandbox particle emitters not activating on spawn
Replicate movement for all sandbox entities
Remove attachment replication for now, needs to be designed better
Add material list property for static model entity so that spawned models replicate initial material overrides
Fix hitscan tool secondary fire not working when firing on client
Remove base entity parent property for now, stalls client networking for some reason
Only add model material path if it's valid
Fix balloon pop effect not playing on listen server
Call multicast rpc directly if we have authority
Don't send multicast net message or netvar message to host
Never send message to host when sending messages to all clients, should never need to do this
Close all connections when shutting down server so client doesn't have to wait until a timeout
Add disconnect reason 1004 for server shutdown
Disconnect from current server before joining a new one with connect command
Running connect command while connected just disconnects from current server for now to save some headache
Use Trace instead of Info to clean up some spam logging from networking
Add ViewAngles to IHasTools so physgun can use it for rotation
Fix particle emitter name not being replicated and activated
Fix model entity materials property not being generated when addons have their own properties
Damage entities with hitscan right click explosion
Custom collision responses for camera entity (ignore player)
Right click for tracking camera. Only allow one camera spawn per player.
Interp entity movement on remote entities
Enable movement replication for sandbox entities
Add optional collision bounds checking to human player
Fix human spawn offset and eye offset. Fix uncrouch detection.
Lerp view offset when crouching/uncrouching
Fix read/write of blacklist and whitelist json user data
Drop client if they fail handshake or auth
Clamp penetration adjustment. Use box collider instead of capsule collider, capsules suck when resolving penetration for some reason.
Disconnect and return to menu when cancelling on connecting screen
Update Facepunch.Steamworks to get reason code and reason string OnDisconnected
Always pass 0 reason code when closing connections, allows us to use customized debug reasons
Use reason code 1001 for kicked from server messages
Use reason code 1002 for ban messages
Allow gamemodes to validate users before their connection is accepted. Can be dropped if blacklisted or not on a whitelist
Use reason code 1003 for not whitelisted
Add Global.EnableWhitelist, if it's disabled, use blacklist. Implement whitelisting and blacklisting from json saved in User Data. This is the default implementation for BaseGamemode, other gamemodes are free to override it
Add gamemode callback for adding user to blacklist
Save blacklist entry to json file when added
Remove ban length from console command, isn't used yet
Bail out of Steam_OnAuthChange if response is not OK
Add IGamemode.ValidateUsername to allow gamemodes to validate and change username before it's assigned
Send net protocol version in handshake packet so we can reject out of date clients
Rename C2S_SteamTicket to C2S_Handshake now that the message contains desired username as well as the ticket data
Remove UnrealUtil, no longer needed
Ensure every class under UnrealEngine namespace is internal