Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 0.10.2 #176

Merged
merged 90 commits into from
Oct 9, 2024
Merged

Release 0.10.2 #176

merged 90 commits into from
Oct 9, 2024

Conversation

ChrisAdderley
Copy link
Collaborator

No description provided.

JonnyOThan and others added 30 commits July 25, 2022 09:13
-all float modifiers inherit from EffectModifier_Float, color modifiers from EffectModifier_Color, etc
-all float integrators inherit from EffectIntegrator_Float, etc
-Refactored Integrator.Update into Update + Apply, where Update is the shared logic between all integrators and Apply is the logic for a specific integrator (taking the output values and applying it to the material, lights, transforms, etc).
-Added missing profile markup to the other integrator types
-all float modifiers inherit from EffectModifier_Float, color modifiers from EffectModifier_Color, etc
-all float integrators inherit from EffectIntegrator_Float, etc
-Refactored Integrator.Update into Update + Apply, where Update is the shared logic between all integrators and Apply is the logic for a specific integrator (taking the output values and applying it to the material, lights, transforms, etc).
-Added missing profile markup to the other integrator types
-all float modifiers inherit from EffectModifier_Float, color modifiers from EffectModifier_Color, etc
-all float integrators inherit from EffectIntegrator_Float, etc
-Refactored Integrator.Update into Update + Apply, where Update is the shared logic between all integrators and Apply is the logic for a specific integrator (taking the output values and applying it to the material, lights, transforms, etc).
-Added missing profile markup to the other integrator types
Refactor modifiers and integrators with common base classes to remove boilerplate code
* WIP: skip integrators for renderers that aren't enabled
-sort integrators by transform and whether or not they can control the renderer's visibility (testIntensity == true)
-for the integrators that control visbility, have them return a boolean from their update function to indicate whether any renderers were active
-when all of the renderers for a given transform name are disabled, we can skip the rest of the integrators for that transform

known issues:
-the transform name for position/rotation/scale integrators seems different from the one for float/color, so they don't get skipped properly
-this probably doesn't work in a situation where you are adding/removing/editing integrators (need to re-sort the lists)

* pull switch statements out of tight loops

* include gitignore in project

* apply integrator skipping to lights too

* Refactor modifiers and integrators using common base classes
-all float modifiers inherit from EffectModifier_Float, color modifiers from EffectModifier_Color, etc
-all float integrators inherit from EffectIntegrator_Float, etc
-Refactored Integrator.Update into Update + Apply, where Update is the shared logic between all integrators and Apply is the logic for a specific integrator (taking the output values and applying it to the material, lights, transforms, etc).
-Added missing profile markup to the other integrator types
* fix up project files to use reference path

* include gitignore in project

* WIP: modules can fully deactivate when not doing anything

* fix memory leak from ui toolbar
-wake up controllers each time initialize is called
Fix #136: fix b9ps switching in flight
* smoke work

* More smoky progress

* Refactor smoke prototype to work in new model

* First cut at particle editor

* Back to functional prototype status

* color modifiers.

* Clean up demo particle

* porticle

* refactor for multiple particle types

* Gamedata tweaks

* Fix point light layers

* Vast quantity of UI garbage

* Tentatively functional loading/saving for particle data

* Gradient editing utils

* UI refactor and cleanup

* Clean up old attempt at particle modfiers so we start again

* Serialization fixes and particle data cleanup
-not actually related to the crash, but this might be a small perf boost
-adds clarity too
-also should make the editor reliable again after all the sorting stuff
* change Integrate functions to protected static
-not actually related to the crash, but this might be a small perf boost
-adds clarity too

* Fix infinite loop when changing a modifier's parameter
-also should make the editor reliable again after all the sorting stuff
-massively improves performance for parts using ModulePartVariants
-should help with #144

Related Work Items: #1
Fix #145: don't initialize or update effects on inactive transforms
Fix #140: block scrollwheel over editor UI
ChrisAdderley and others added 29 commits September 30, 2024 09:45
Fix controller sleeping and a few other things
-this got dropped when DirectModifier was added.  We used to iterate over all modifiers and call Apply which would update the random value.  Now this is moved to the Get function so that it's updated whenever the modifier is used
Fix #138: Use gotmachine's FastFloatCurve
…rty if it didn't change (#162)

* cache materials in EffectFloatIntegrator

* fix formatting and naming

* move ApproximatelyEqual to Utils

* don't alter material float value if it didn't change

* use System.Math directly for cases where Unity is just adding overhead

* remove redundant nullcheck from RCS controller
* change internal controller storage to a list instead of dict

* add a setting to force all controllers awake for debugging

* add a setting to keep random controllers awake

* Record a mask of which controllers are awake, and only update integrators if they use an awake controller or use randomness

* add defaults to Settings.cfg

* let whole effects skip updating if all of their controllers are asleep

* make sure to still mark transfoms as disabled when the integrator didn't update

* Integrator.hasRandoms shouldn't consider Settings.RandomControllersAwake
-we still need to update integrators that use randomness; they just won't be updated if none of their controllers are awake

* slight refactoring for used controller masks

* use controller.mask
* refactor the testIntensity functions so we don't need a separate function call

* move testIntensity to the base integrator class

* change integrator storage into 3 categories
-testintensity, direct, others

This reduces some complexity in the integrator sorting and a lot of boilerplate

* re-add support for disabling lights

* switch to explicit for loops

* reverse integrator update order

* add generic typed EffectModifier

* fix formatting

* add some ToString overloads to help debugging
-fixes issues where configs that have missing controllers, material properties, etc would throw a NRE
-test case: thud engine with SWE
# Conflicts:
#	GameData/Waterfall/Versioning/Waterfall.version
#	GameData/Waterfall/WaterfallSettings.cfg
#	changelog.txt
#	readme.txt
make push controllers work with sleeping system
…t change

-this would then treat the transform as disabled so other integrators wouldn't run on it
fix #173: integrators could fail to report as active when inputs don't change
@ChrisAdderley ChrisAdderley merged commit cb1cfeb into master Oct 9, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants