Commit graph

9 commits

Author SHA1 Message Date
Mag-nus
1144e51102
BiotaUpdator Position NaN check (#3946)
In the prior checkin, we took care of it in BiotaConverter
2023-01-03 23:54:34 -05:00
Ty Conner
3da2c92f00
Catch and Fix NaN floats in Positions (#3945)
* Catch and Fix NaN floats in Positions

Co-Authored-By: Mag-nus <Mag-nus@users.noreply.github.com>

* Update BiotaConverter.cs

Co-Authored-By: gmriggs <8909245+gmriggs@users.noreply.github.com>

Co-authored-by: Mag-nus <Mag-nus@users.noreply.github.com>
Co-authored-by: gmriggs <8909245+gmriggs@users.noreply.github.com>
2022-12-29 09:51:04 -05:00
Ty Conner
880c031102
Update SQL Writer output (#3694)
* Update SQL Writer output

* Update SQLWriter.cs

* Add PacketOpCodeNames

* Update PropertyInt.cs

* Update PropertyInt.cs
2021-10-18 21:33:27 -04:00
Mag-nus
18da53977e
Improve UpdateDatabaseBiota() (#3501)
In previous master, the full targetBiota spellbook was being iterated for each sourceBiota spell.

This was very time consuming with players with large spell books (100+ ms)

Now, a dictionary is made and that is used to perform the nested lookup.

New result is 0 ms.
2021-03-16 06:39:34 -05:00
Mag-nus
885ff2964d
Add order to BiotaPropertiesPalette (#2892)
This fixes corpse palette ordering after a server restart
2020-04-11 16:19:48 -05:00
Mag-nus
50d070ef5d
Step 4 hybrid weenie biota (#2864)
* 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
2020-04-05 15:38:56 -05:00
Mag-nus
75fc1ce23c
Step 3. Convert ShardDatabase/WorldObjects biota from the ACE.Database model to the new ACE.Entity model (#2731)
* 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.
2020-04-02 22:40:27 -05:00
Mag-nus
c1d480a01a
Step 2. Convert WorldDatabase Weenie Cache from the ACE.Database model to the new ACE.Entity model (#2702)
* 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
2020-03-02 08:03:50 -06:00
Mag-nus
f8ceb00f5b
Step 1. Add new adapter classes and models (#2691)
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
2020-02-14 08:10:33 -06:00