17,133 Commits over 1,308 Days - 0.55cph!
[ Pick ] let reflections api be more generic to use
Load local menu when clicking menu toolbar button
Bring back launch configs with some changes:
In content mode:
- Load global configs from `launcher.launchconfigs`
- Display "Edit Launch Configurations" option
With game loaded:
- Load project-specific configs from .addon (edit these in project settings)
Remove primary styling from SidebarLink, makes the content button gray
Single Game Project (#1129)
[ pick ] Pick reprojection transform constants from SSR branch
Racer Helmet
https://files.facepunch.com/daniel/1b1311b1/HELMET3.png
LODs coming asap
Hook up video_bitrate and video_framerate to recorder
Allow drag and drop for skybox materials.
Creates a env_sky, Materials must be tagged with "sky" or "skybox"
Try to preserve child local scale when bone merged https://files.facepunch.com/layla/1b1311b1/sbox-dev_H6RHi9sauH.png
Better control over currently mounted project in Explorer dock
Backport simple water from SSR branch
Water fog and refraction
Iterate, make WaterRipple a custom sceneobject so we can fetch depth from it and only render when visible
Add ffx_sssr shader headers from SSR branch
Make Voice.Decode internal
Add DisplayName and Description to leaderboard response
Fix AddBlitTextureToTargetLayer not blitting correctly if dimensions are different
Backport Hierarchical Z Downsample and FindOrCreateFrameBufferTexture from SSR branch, clean it up
FPArms: move_groundspeed min/max to -1000,1000
FPArms: hack workaround to share all parameters through the adjustments subgraph. Unfortunately this does not work with bools or enums :(
Add Sandbox.Services.Leaderboards initial offering
Request seek but do the actual seeking in the decode thread so we don't block
Fix GetMetadata not using key
Fix text sometimes being truncated when it shouldn't
Often occurred in the main menu when a Text was updated from a razor state change
Improve consistency when deciding if to relayout truncated text
"Open game menu" on launch bar
Run localaddons.changed when project is activated
Show active game in projects list
Remove random using, how did this get here
Get title from title metadata or try StreamTitle if it doesn't exist
Helps if I initialize the volume to 1
return zero duration for nopts
AudioPlayer -> MusicPlayer in binds
internal constructor, static Play and PlayUrl
Make GetMeta internal, add Title instead
AudioPlayer -> MusicPlayer
Add PlaybackTime and Duration
Small UI tweaks
File -> New Project (for non-game projects)
Try to fix DPI scaling by manually adjusting window size
Don't wait for cloud project fetch when displaying start screen, run inside task
Throw exception if git returns non-zero exit code
Handle exception thrown when git isn't installed differently
Logging channel for audio player
Scrape Effects (#1139)
* Add props to Surface for impact decal and scrape effects / decals
* Use ContactPoint + SurfaceNormal to pass into AddImpactSound
* Let's add decals and particle effects for impacts but try only doing it if speed > 30 - maybe we configure this per surface?
* Add PhysicsImpact struct and use that to seperate effects for Hard and Soft impacts in Surface description (decals + fx)
* Correctly spawn soft or hard physics impact particles + decals based on squared speed
* Add normal from first valid manifold on contact to friction events to pass to C#
* Enable/Disable physics impacts and scrape events as props for now, pass normal from fiction event to AddFrictionSound and create effects where necessary
* Also grab contact center from first manifold and pass to C#
* Use contact pos for decals + effects, try to base effect frequency on energy volume scale, fix decal placement remove particles on friction effect stop
* Set destroy time to 0.5 (this is a failsafe anyway)
* Don't have particles follow entity, do it ourselves so we can set to actual contact pos
* Set forward for scrape particles to contact normal
* Use method for getting inherited surface values if necessary to avoid repeating same code
* Add Mass and Direction named control points for friction particles. Mass is body mass, direction is body velocity normal. CP0 is already setting position and contact normal
* Lower destroy time for effects
* Reorganize scrape data in surface def, lower default values. Don't fallback to rough by default. If it's a smooth scrape and there's no effects for that - do nothing by default
* Surface is considered smooth by default, can set roughness factor higher for rough surfaces...
* Get material for triangle by index for shape 2 on friction events should fix all friction events against world surfaces having hit surface be "default"
* Store friction hit surface (last) and if we've changed hit surface stop any previous effects and sounds
* Remove unused prop
* Remove unused var
* Make EnableScrapeEffects and EnableImpactEffects internal for now
* Make FrictionEffects a dictionary
* Call PhysicsGameSystem.Shutdown on GameLoop shutdown to ensure vars cleared
* Add an Intensity named control point value (0-1) for scrape particle effects to use
Don't lock mutex before checking play job has finished
Whitelist a bunch of common codecs
Don't block waiting for play job to finish
Add TryGetMeta and GetMetaOrDefault
Add events for finished and repeat
Handle thumbnail video hover slightly better
Don't show irrelevant options in welcome screen context menus
Set modal properly on ProjectDownload 🤦
"Open Game Project..." -> "Close Game Project"
"Open Menu Screen" option in Game menu
Filter by open-source projects in welcome screen
Project name first in editor window title
Fix black screen when loading into non-existent game projects
Globe/folder button functionality, indicate disabled projects, single-click for project loading, finger cursor
Context menu for cloud packages
Move content mode button to sidebar
Default launcher to sandbox gamemode (if in content mode)
Show "select folder" dialog when cloning cloud project from welcome screen
Add AudioPlayer.GetMetadata
Codec whitelist
Fix sound streams (and probably other sounds) getting stomped when calling StopSoundEvent with invalid guid, never do this
AssertDbg instead of Assert in MAT_OP_BIND paths, these are meant to be fast paths
Lazy init SceneObject.Attributes since this was allocating CSceneObject::m_pExtraData for all sceneobjects, observable ~0.3ms improvement in generating draw lists
LocalProject.CurrentGame is manually set, change ProjectTemplate default description
Make LaunchToolbar play button work again
Spaceship test addon is type "addon"
Rather than disabling new game projects by default, disable existing game projects instead
cl_list_project is ordered, shows active & type
Add test for desired single project behaviour