19,298 Commits over 1,614 Days - 0.50cph!
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
Moving lots of foliage source files ;x
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.
Biome editor material library improvements.
Enabled TOD Scattering on player camera prefab again (whoops)
GrassSpawn/DecorSpawn Biome integration
Temperate biome tweaks and some manual (ew) foliage material fixes.
Basic prefab caching for DecorSpawn
FoliageTools cleanup and fixes for duplicat material creation
Views can be updated automagically from their source assets in BoforeEditor
Special handling for Unit and Building view updating in Before Editor
UpdateViewFromSourcePrefab fixes