using UnityEngine.Scripting; [Preserve] public class NetPackageCheckPurgeProgress : NetPackage { public NetPackageCheckPurgeProgress Setup(int _entityPlayerID) { this.entityPlayerID = _entityPlayerID; return this; } public override void read(PooledBinaryReader _reader) { this.entityPlayerID = _reader.ReadInt32(); } public override void write(PooledBinaryWriter _writer) { base.write(_writer); _writer.Write(this.entityPlayerID); } public override void ProcessPackage(World _world, GameManager _callbacks) { //Log.Out("NetPackageCheckPurgeProgress-ProcessPackage START"); EntityPlayer player = _world.GetEntity(this.entityPlayerID) as EntityPlayer; if (player != null) { //Log.Out("NetPackageCheckPurgeProgress-ProcessPackage PLAYER EXISTS"); //Log.Out("NetPackageCheckPurgeProgress-ProcessPackage BIOME EXISTS"); string biomeName = RebirthUtilities.GetBiomeName(player); int clearedPrefabs = RebirthManager.GetTotalClearedPrefabCount(biomeName); int totalPrefabs = RebirthUtilities.GetTotalSpawnedPrefab(biomeName); float purgeDisplayPercentage = ((float)clearedPrefabs / totalPrefabs) * 100; int numPrefabs = clearedPrefabs; if (clearedPrefabs > totalPrefabs) { numPrefabs = totalPrefabs; } string purgeLabel = numPrefabs + "/" + totalPrefabs; RebirthUtilities.ChangePurgeBiome(biomeName, clearedPrefabs); int currentClearedPrefabs = RebirthUtilities.GetPurgeBiome(biomeName); float percentage = ((float)currentClearedPrefabs / totalPrefabs) * 100; GameManager.Instance.StartCoroutine(RebirthUtilities.CheckPurgeProgress(player, false)); if (RebirthVariables.testPurge) { Log.Out("NetPackageCheckPurgeProgress-ProcessPackage clearedPrefabs: " + clearedPrefabs); Log.Out("NetPackageCheckPurgeProgress-ProcessPackage totalPrefabs: " + totalPrefabs); Log.Out("NetPackageCheckPurgeProgress-ProcessPackage currentClearedPrefabs: " + currentClearedPrefabs); Log.Out("NetPackageCheckPurgeProgress-ProcessPackage percentage: " + percentage); Log.Out("NetPackageCheckPurgeProgress-ProcessPackage purgeDisplayPercentage: " + purgeDisplayPercentage); } SingletonMonoBehaviour.Instance.SendPackage(NetPackageManager.GetPackage().Setup(purgeDisplayPercentage, purgeLabel), false, this.entityPlayerID); } } public override int GetLength() { return 2; } private int entityPlayerID; }