17,151 Commits over 1,308 Days - 0.55cph!
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
Revert zipball change, doesn't work with LFS / submodules :pensive:
Editor: Use zipball to get rid of git dependency when cloning a project that has a source directory
Use multiview variant for calculating camera direction
Shader objects for VR and high precision lighting fixes
Only play video when hovering package
Iterate, make WaterRipple a custom sceneobject so we can fetch depth from it and only render when visible
Fix glass behaviour being transparent when writing screenshots, flags to shadingmodel to fill alpha
Reenable multiview instancing on PS code for now, fixes reflections and lights projecting incorrectly in VR
Set default value if property does not exist in AddDictionaryPropertyInt as we do in AddDictionaryProperty<T>
Add an Intensity named control point value (0-1) for scrape particle effects to use
Make EnableScrapeEffects and EnableImpactEffects internal for now
Make FrictionEffects a dictionary
Call PhysicsGameSystem.Shutdown on GameLoop shutdown to ensure vars cleared
TickRate Project Settings (#1134)
* TickRate project settings
* Def tick rate 50 as it was
* Obsolete Game.TickRate.set
* take tickrate stuff out of serverconfig
Tests use AddFromFileBuiltIn when adding base addon
[Squash] StartScreen has "Home" and "Create new game" sections
Simplify launcher
Show "Last Opened" on last opened game row
Give StartScreen obvious sections
[Squash] General editor tweaks and improvements
Only read/write addons.json in tools mode, cl_list_projects debug command
[Squash] Editor startup flow
[Squash] Show progress when loading projects, wait until complete before showing editor
New project sets newly created project as active
[Squash] StartScreen sorting and filtering
Minor fixes
[Squash] Native editor JumpList support, JumpList content, minor editor tweaks
StartScreen home sections are ExpandGroups
[Squash] SegmentedControl and ItemRow cleanup
Rename "empty" to "content mode", add "-skip_start_screen" command line switch, works with jump list
Shut down engine properly when start screen is closed 🤦
Fix cloud project cloning, move into Utility
Command line project loading
Use SegmentedControl in TabWidget rather than doing the same thing twice
Game editor menu, contains options for uploading, opening explorer, etc.
Implement remaining missing functionality (file menu, templates)
Tools cleanup
Implement EditorPreferences.ShowStartScreen
Tools cleanup
Simplify handling expired tasks (#1157)
* Simplify checking expired tasks (#1143)
Allow any tasks defined in our DLLs to continue, but user code can't continue if it was from an expired context
* Allow persistent tasks in current menu package assembly (#1143)
* Move task persistence allowing / forbidding to GameMenuInstance
vfxc: add Radeon GPU Analysis, can target many arch
Update fossilize
rendersystemvulkan: new pipeline manager w/ VK_EXT_graphics_pipeline_library
Implement remaining missing functionality (file menu, templates)
Remove old Utility.Projects.SetActive(), error if setting non-gamemode project
Fix NRE when launching projects through jump list
Use direct path to project through jump lists instead of addon ident
We can add the project manually if it exists but we don't know about
it (can happen if you pin something on the jump list, then remove it
from registered addons list, and then try to launch the pinned addon)
Move task persistence allowing / forbidding to GameMenuInstance
GameMenuInstance.PackageAssembly can be private
Add GameMenuInstance.PackageAssembly property
Allow persistent tasks in current menu package assembly (#1143)
Simplify checking expired tasks (#1143)
Allow any tasks defined in our DLLs to continue, but user code can't continue if it was from an expired context
Citizen/animgraph: further protect against movement hitches by blocking reset signals to the pelvis lean additive node + updated comments
Fix texture filtering feature on user shaders, recompile blendable and glass
▉▋▍'▆ ▍█▌▋ ▆▄▆▉▍▆▆ ▅▉█▅▍▅▆ ▉▉ ▇▄▉▆▉ ▌▋▆
▊▋▄▊▆▉▆▆▅▌ ▊▆▆▇ ▇▉▇▌ ▊▇▌▄▊▊▊ ▄▍▋ ▌▅█▋▊█ ▄▍ ▊▊▉▉, ▍▋▇ ▍▇▅▅ ▇▍▆▍▍▄▄ ▇▉▅█▍▅ ▊▉█ ▍▇ ▍▊▋▆ ▇▌▋
Fix some NRE's found in logs of people shutting down on game startup
Add audioplayer to play mp3 or whatever with control over playback (seek, pause, etc)
Fix mixed lights having incorrect behavior when disabing high precision lighting offset, same behavior as before with it enabled
Clear downloadTokenSource if it's this one
Remove a lot of the bullshit from the default menu, don't use a lobby to create a game.
Latest shaders with Vulkan RenderState fixes