17,530 Commits over 1,614 Days - 0.45cph!
Fixed so that decisions that score 0 or less will always be rejected by DM.
Removed old UnitManager_OnMinute method
Spawn handlers created in Zone+Ecology no longer tick/respawn
Split BeforeEditorTab into a partial for easier working with ViewManagement code
Fixed bug with ViewMangement for Species/Entities with preset views
Moved Creation of SpawnPopulations out of Zone+Ecology and into BiomeSettings
Refactoring EntityComponentSettings storage in EntitySettings
Added new UI for EntityComponent management in BeforeEditor
Removed BiomeMaterialObject components from tree prefabs
Misc editor cleanup
Misc DM related stuff. Nothing actually working just yet.
Removed UnityEditor directive in EntityComponent
Started on a Value of Harvest consideration, and created a new DSE "Harvest Score".
Moved ConsumableEffect class out of ConsumableSettings and ported handling of them to Agent
Only SmartObjects with one or more free subscribtions are processed by DecisionMaker
Some minor performance optimisation in Building requirement related methods
More performance tweaks in DM, specifically ValueOfHarvestConsideration caching of smartobjects that have a Building component
Tribe/TribeHub refactoring. TribeHub (what shitty name) gets created during Tribe.Initialize(), remains inactive until it is assosciated with a Building. This is done through PlayerController's building placement code at the moment. Buildings can be flagged as "CanAccessTribeHub" in their settings.
Maybe forgot to save a thing
Fixed issues with SpeciesSettings.GetViewPrefab
Started work on Group+Knowledge and Tribe+Knowledge.
Cached a lot of the common Consideration lookups at the Group level.
Optimized Value of Harvest Consideration.
More work on Machines. Added MachineProcessSettings, IMachineProcess and FuelToEffect process type. FuelToEffect takes and produces new VicinityEffect entities.
Added IEntityContainer interface to simplify dealing with Entities that can have other Entities deposited or otherwise contained in them
Fixed issue with entities not being destroyed when they dont have a smartobject component
Moved BuildingSkin out to it's own file, added skeleton for BuildingState
Added MachineProcessEffect monobehaviour to track and manage effects created by Machines
MachineProcess can now take additional input entities whilst running (to be made optional, but it works for fuel processing)
FuelToEffect MachineProcess increases the duration of the process as more input is added (should also scale the size of its VicinityEffect)
Cleaned up FX_Fire prefab a bit
Basic effects stuff in MachineProcess
Some Consideration cleanup.
Numerous editor tweaks and cleanup mostly around Consumables and Considerations
Removed several partials from PlayerController, replaced with new generic handling of Entity interactions
Some fixes to DSE + Considerations.
Resource is now an Entity rather that EntityComponent
Fixed some bugs with view handling in BeforeEditor
Fixed reorderable lists removing the wrong item in some cases
Minor cleanup of SmartObjectSettings (made fields public)
Cleaned up EntitySettings Create methods and overrides in species/item/building and resource
Fixed Resource not creating harvest interactions properly
SmartObjec initalization happens earlier in Entity creation now, may or may not cause issues (can't remember why it was done at the end)
Clearing up some RadialMenu whackness
Reverted terrain shader stuff for now to digest which version is superior
Added LODGroup to some item views and tweaked foliage LODS... to basically no effect!
Imported some LUTs
Fixed bug where placed buildings wouldn't be perceived as Smart Objects by Unit+Senses.
Cleaned up some more Considerations.
Added a IsInLayerMask extension to the TransformUtil.
Modified the SetLayer in TransformUtil to take a bool on whether to propagate mask to children.
Cleaned up some inconsistencies between using SetLayer and gameObject.layer.
Cleaned up project to use IsInLayerMask over gameObject.layer ==.
Before Debug will now only show decisions that score higher than 0.
Item no longer override the SO Trigger layer.
Work in progress on getting units to consider picking up items (sticks in particular) when campfire is placed.
Disabled Harvest DSE for DM while working on item pickup.
Currently all interactions of a Smart Object must be enabled for an SO to pass as Subscribable... picking up sticks now works.
SmartObject Subscribable fix (return true if any interactions enabled and subscription count < max sub count)
Cavemen now gather sticks and deposit them to an unfinished campfire autonomously.
Removed missing component from Player prefab
Transform layers set in BuildingView and ItemView and ResourceView
Moved Resource scripts out of /Entity
Removed unused ownerGroup and ownerController from Building
BiomeMaterialObject now added to EntityView instead of Entity
Store layer name in EntiySettings derived assets and set in EntityView.Setup base method
Set EntityComponent IsActive on init
Wrap de/activation of ECs in conveniece methods for readability
Consistency checks across all Entity derived types and their init routines (Unit remains an exception due to some older view creation code)
EntiyView and derived classes cleanup
Fixed some issues with ResourceView not updating skin visibility properly
Remade pine view prefabs
Added ferns decor asset
Moved Scripts/Graphics/Terrain to Scripts/World
Renamed SpawnPopulation -> SpawnPopulationSettings
More data type name consistency changes (GrassPopulation/DecorPopulation)
Added Grass and Decor tabs to BeforeEditor
Cleaned up SpeciesSettings.Create method
Biome tweaks, moved some material library methods out into BeforeEditor
Foliage tools scripts manual merge
Moving all foliage assets around a bit, and renaming to match new conventions (type_family_variant_state_N)
FoliageTools updates, now resides under Tools menu > Process SPM Assets. Takes all SPM assets, consolidates materials, creates prefabs with NavMeshObstacle components using ST exported CollisionObject0 collider size, copies materials (with sensible names, using the Before/SpeedTree shaders, assinging TintMask textures if they exist) to Resources/Materials/Foliage for runtime tinting.