* Handle empty landlocks when attempting to export-sql
* Adjusted all sqlFile output in a `using` loop to help prevent locked files on failure.
---------
Co-authored-by: OptimShi <26606778+OptimShi@users.noreply.github.com>
* Added import-sql-folders, to import weenie SQL including sub-folders within the content folder
* Changed hard-coded directory separator to system defined
* Step 1. Add new adapter classes and models
All classes and objects added are in new namespaces.
This add has 0 interraction on existing ACE code.
This sets the groundwork for Step 2. Moving World DB caching to the new models
* first part of the world entity usage
* almost there
* final part
* update WeenieExtensions
* fix
* merge fixes and improvements
* ACE.Database new code
* it compiles
* InitializePropertyDictionaries
* WOrldDatabaseWithEntityCache cleanup
* ShardDatabaseWithCaching
* ShardDatabase Cleanup
* todo
* cache counts reported in serverstatus
* House InitializePropertyDictionaries
* improve ServerStatus
* BiotaModel change HousePermissions to Dictionary<uint, bool>
* PropertiesAllegiance to dictionary
* BiotaUpdater improvements
* Shard Database Cache Reporting
* More code ported from Step 3
* Remove stub CharacterCache
* Update WorldDatabaseWithEntityCache.cs
* build fixes
* code audit
* Remove non-callback functions from SerializedShardDatabase
* BiotaUpdater progress.. only emote left
* Emotes done... now need to test
* fix
* Burden/Value fix for containers
* fat fingered EncumbranceVal
* add some safety
* Don't cache player biotas for initial PlayerManager load
* Step 4. Don't duplicate common properties when copying weenie to biota
This builds on Step 3.
This is a run time optimization. It reduces RAM allocation and in turn also makes less work for the garage collector.
When a biota is instantiated from a weenie (not from a database biota), the biota will point to the weenie for the following collections nstead of duplicating them:
PropertiesCreateList
PropertiesEmote
PropertiesEventFilter
PropertiesGenerator
* Collection capacitys added to ctors (reduce resizing)
* fix override_encounter_spawn_rates
* new Projectile() -> static ProjectileCollisionHelper methods
* disable by default, working out issues...
* Fix for referencing weenie collections directly
* Reduce EnchantmentManager ToList() and clone usage
* fix
* Set ChangesDetected only when a property actually changes
* fix build
* fix
* Fix nullable Order for AnimPart and TextureMap
* FixAnimPartAndTextureMapFromPR2731
* Step 1. Add new adapter classes and models
All classes and objects added are in new namespaces.
This add has 0 interraction on existing ACE code.
This sets the groundwork for Step 2. Moving World DB caching to the new models
* first part of the world entity usage
* almost there
* final part
* update WeenieExtensions
* fix
* merge fixes and improvements
* ACE.Database new code
* it compiles
* InitializePropertyDictionaries
* WOrldDatabaseWithEntityCache cleanup
* ShardDatabaseWithCaching
* ShardDatabase Cleanup
* todo
* cache counts reported in serverstatus
* House InitializePropertyDictionaries
* improve ServerStatus
* BiotaModel change HousePermissions to Dictionary<uint, bool>
* PropertiesAllegiance to dictionary
* BiotaUpdater improvements
* Shard Database Cache Reporting
* More code ported from Step 3
* Remove stub CharacterCache
* Update WorldDatabaseWithEntityCache.cs
* build fixes
* code audit
* Remove non-callback functions from SerializedShardDatabase
* BiotaUpdater progress.. only emote left
* Emotes done... now need to test
* fix
* Burden/Value fix for containers
* fat fingered EncumbranceVal
* add some safety
* Don't cache player biotas for initial PlayerManager load
* fix null spellbook
* Add another null check
This is redundant as the check is also upstream.
This is to prevent an exception in the future if this function is called from another source.
* add support for 'crafting chance of success dialog' player option to regular recipes
* adding logic for drid
* broadcasting icon underlay changes for all recipe mods
* update comment
* updates
* adding server option for 'craft_exact_msg'
* .
* retail server netsend all property updates in recipe mod, including internal
* adding /clearcache recipe
* .
* using pre-existing method
* updating AddSpell
* updating AddSpell imbues - already handled in recipe mods
* updating logic for sendMsg
* further updates
* exclude non-armature imbues on trinkets
* adding shard fix for existing trinkets with invalid imbues
* adding newline
* updating AuditItemSpells for new scenario
* fixing /ciloot tier
* update hotspot cycle variance to use standard formula
* Step 1. Add new adapter classes and models
All classes and objects added are in new namespaces.
This add has 0 interraction on existing ACE code.
This sets the groundwork for Step 2. Moving World DB caching to the new models
* first part of the world entity usage
* almost there
* final part
* update WeenieExtensions
* fix
* merge fixes and improvements
* More code ported from Step 3
* Update WorldDatabaseWithEntityCache.cs
* GetCachedCookbooks(recpieId) -> GetCookbooksByRecipeId(recpieId)
* build fix
* changelog
* add support for recipes to DeveloperContentCommands
* adding landblock instance support to import-sql and import-json
* fixing spelling
* updating json landblock key
* adding quest support to import-json and import-sql
* fixing bug in original GDLEConverter.TryConvert() for reading landblock json
* adding comment
* removing duplicate code from merge
* add support for recipes to DeveloperContentCommands
* adding landblock instance support to import-sql and import-json
* fixing spelling
* updating json landblock key
* fixing bug in original GDLEConverter.TryConvert() for reading landblock json
* adding preliminary support for dual-wielding monsters
* fixing monster special attack fx
* improved monster combat maneuvers table
* adding dual wield speed modifier for mobs
* fixing mobs casting flame wave
* adding support for EmoteManager.CastSpell untargeted spell projectiles
* fixing untargeted Blast spells
* fixing blast spells
* fixing spell z-angle
* re-add Emote.Move* physics position sync w/ valid rotation check
* wip
* latest wip
* cleanup
* small position adjustments
* matching create.Y formula up to retail pcaps
* refactoring spell projectiles
* startPos based on targetPos instead of casterPos for strike spells?
* improved strike spawn position
* add error logging
* add support for peturbation, improve ring positioning for even # of projectiles
* adding /clearcache for content developers
* fixing boost variance
* adding quadrant stuff
* splatter dir
* better usage of body part quadrants for physical attacks
* found CMTs with multiple entries per lookup key, cycle through anims
* fixing portal gems
* adding /createinst for content creators to spawn landblock_instances in-game
* preventing objects with PropertyBool.Stuck from being created as landblock instances
* !Stuck