From 31bb404279ea05c25c04cf4caefb2a57089d072e Mon Sep 17 00:00:00 2001 From: laurids Date: Sun, 28 Nov 2021 16:46:28 +0100 Subject: [PATCH] Performance: District loop, Fixes --- Assets/GWConquest/Scripts/District.cs | 30 +++- Assets/GWConquest/Scripts/Formation.cs | 143 +++++++++--------- Assets/GWConquest/Scripts/Planet.cs | 2 +- Assets/GWConquest/Scripts/PlanetPlacement.cs | 2 +- .../PhotonBolt/assemblies/bolt.user.dll | Bin 113152 -> 113152 bytes .../PhotonBolt/assemblies/bolt.user.dll.mdb | Bin 49874 -> 49863 bytes Assets/Photon/PhotonBolt/project.json | 2 +- .../resources/BoltRuntimeSettings.asset | 4 +- 8 files changed, 101 insertions(+), 82 deletions(-) diff --git a/Assets/GWConquest/Scripts/District.cs b/Assets/GWConquest/Scripts/District.cs index 95c46fa..5e8529d 100644 --- a/Assets/GWConquest/Scripts/District.cs +++ b/Assets/GWConquest/Scripts/District.cs @@ -37,10 +37,7 @@ namespace GWConquest return type == DistrictType.Civil || type == DistrictType.SpaceStation || type == DistrictType.FactoryArmor || type == DistrictType.FactoryInfantry || type == DistrictType.FactorySupplies || type == DistrictType.FactoryFuel; } - public Planet Planet { - get => State.Planet?.GetComponent(); - set => State.Planet = value.entity; - } + public Planet Planet; public Player ControllingPlayer { get { @@ -105,13 +102,17 @@ namespace GWConquest State.DistrictType = (int) DistrictType; State.DistrictName = DistrictName; State.Level = DistrictLevel; - State.Planet = GetComponentInParent().entity; + } + Planet = GetComponentInParent(); } } public void InitNonStatic() { + + Planet = BoltEntityCache.Get(State.Planet); + if(DistrictType == DistrictType.SpaceStation) { Zone.zoneType = ZoneType.Space; @@ -212,10 +213,23 @@ namespace GWConquest public override void SimulateOwner() { - var allPlayers = Zone.Formations.Select(f => f.Player).Distinct(); - if(allPlayers.Count() == 1) + Player player = null; + bool moreThanOnePlayer = false; + foreach(var f in Zone.Formations) + { + var formationPlayer = f.Player; + if(player == null) + { + player = formationPlayer; + } + else if(player != formationPlayer) + { + moreThanOnePlayer = true; + break; + } + } + if(player != null && !moreThanOnePlayer) { - var player = allPlayers.First(); if(player != ControllingPlayer) { BoltLog.Info("Player {0} is the only player in district {1}, changing allegiance", player, this); diff --git a/Assets/GWConquest/Scripts/Formation.cs b/Assets/GWConquest/Scripts/Formation.cs index 09abe38..4415ee8 100644 --- a/Assets/GWConquest/Scripts/Formation.cs +++ b/Assets/GWConquest/Scripts/Formation.cs @@ -514,37 +514,39 @@ namespace GWConquest private void Update() { - if(GameManager.EntitiesLoaded) + if (entity.IsAttached) { - if(currentZone != null && currentZone.zoneType == ZoneType.Space && movingArmyIcon == null) + if (GameManager.EntitiesLoaded) { - MakeMovingIcon(IngameUI.Instance.MovingFleetsTransform); + if (currentZone != null && currentZone.zoneType == ZoneType.Space && movingArmyIcon == null) + { + MakeMovingIcon(IngameUI.Instance.MovingFleetsTransform); + } } - } - //Debug.LogFormat("Current state: IsInTransit {0}; CurrentZone {1}; CoveredDistance {2}", State.IsInTransit, State.CurrentZone, CoveredDistance); + //Debug.LogFormat("Current state: IsInTransit {0}; CurrentZone {1}; CoveredDistance {2}", State.IsInTransit, State.CurrentZone, CoveredDistance); - if (MovementState == FormationMovementState.Moving) - { - animDistanceCovered += movementSpeed * Time.deltaTime; - Zone originZone = Zone.GetFromId(State.CurrentTransition.OriginZone); - Zone targetZone = Zone.GetFromId(State.CurrentTransition.TargetZone); + if (MovementState == FormationMovementState.Moving) + { + animDistanceCovered += movementSpeed * Time.deltaTime; + Zone originZone = Zone.GetFromId(State.CurrentTransition.OriginZone); + Zone targetZone = Zone.GetFromId(State.CurrentTransition.TargetZone); - Vector3 originPos = originZone.transform.position; - Vector3 targetPos = targetZone.transform.position; + Vector3 originPos = originZone.transform.position; + Vector3 targetPos = targetZone.transform.position; - if(!State.CurrentTransition.IsCurved) - { - originPos += originZone.planet.GetFleetArrivalPosition(targetZone) * originZone.planet.GetCurrentCircleRadius(); - targetPos += targetZone.planet.GetFleetArrivalPosition(originZone) * targetZone.planet.GetCurrentCircleRadius(); + if (!State.CurrentTransition.IsCurved) + { + originPos += originZone.planet.GetFleetArrivalPosition(targetZone) * originZone.planet.GetCurrentCircleRadius(); + targetPos += targetZone.planet.GetFleetArrivalPosition(originZone) * targetZone.planet.GetCurrentCircleRadius(); - } + } + + Vector3 oldPos = transform.position; + Vector3 newPos; + Quaternion newRot; + //if(State.CurrentTransition.IsCurved) + //{ - Vector3 oldPos = transform.position; - Vector3 newPos; - Quaternion newRot; - //if(State.CurrentTransition.IsCurved) - //{ - /*Vector3 planetPos = targetZone.planet.transform.position; Vector3 originPos = originZone.transform.position - planetPos; Vector3 targetPos = targetZone.transform.position - planetPos; @@ -553,67 +555,70 @@ namespace GWConquest newPos += planetPos; newRot = Quaternion.LookRotation(newPos - oldPos, newPos - planetPos); */ - //} - //else - //{ + //} + //else + //{ newPos = Vector3.Lerp(originPos, targetPos, animDistanceCovered / State.CurrentTransition.TransitionLength); newRot = Quaternion.LookRotation(newPos - oldPos, Vector3.up); - //} - - transform.position = newPos; - transform.rotation = newRot; - - } - else if(MovementState == FormationMovementState.PreparingMovement) - { - if(ZoneType == ZoneType.Space) - { - var planet = currentZone.planet; - Vector3 origin = GetRestingPosition(); - var targetZone = PathQueue.First(); - Vector3 target = planet.transform.position + planet.GetFleetArrivalPosition(targetZone) * planet.GetCurrentCircleRadius(); + //} - Vector3 newPos = Vector3.Lerp(origin, target, 1f - ActionCooldownPercent); transform.position = newPos; + transform.rotation = newRot; + } - - } - else if(MovementState == FormationMovementState.FinishingMovement) - { - if(ZoneType == ZoneType.Space) + else if (MovementState == FormationMovementState.PreparingMovement) { - var planet = currentZone.planet; - Vector3 target = GetRestingPosition(); - Vector3 origin = planet.transform.position + arrivalPosition * planet.GetCurrentCircleRadius(); + if (ZoneType == ZoneType.Space) + { + var planet = currentZone.planet; + Vector3 origin = GetRestingPosition(); + var targetZone = PathQueue.First(); + Vector3 target = planet.transform.position + planet.GetFleetArrivalPosition(targetZone) * planet.GetCurrentCircleRadius(); + + Vector3 newPos = Vector3.Lerp(origin, target, 1f - ActionCooldownPercent); + transform.position = newPos; + } - Vector3 newPos = Vector3.Lerp(origin, target, 1f - ActionCooldownPercent); - transform.position = newPos; } - - } - else if(MovementState == FormationMovementState.Idle) - { - //transform.position = currentZone.transform.position; - if(ZoneType == ZoneType.Space) + else if (MovementState == FormationMovementState.FinishingMovement) { - transform.position = GetRestingPosition(); + if (ZoneType == ZoneType.Space) + { + var planet = currentZone.planet; + Vector3 target = GetRestingPosition(); + Vector3 origin = planet.transform.position + arrivalPosition * planet.GetCurrentCircleRadius(); + + Vector3 newPos = Vector3.Lerp(origin, target, 1f - ActionCooldownPercent); + transform.position = newPos; + } + } - else { - transform.position = currentZone.transform.position; + else if (MovementState == FormationMovementState.Idle) + { + //transform.position = currentZone.transform.position; + if (ZoneType == ZoneType.Space) + { + transform.position = GetRestingPosition(); + } + else + { + transform.position = currentZone.transform.position; + } } - } - if(movingArmyIcon != null && ZoneType == ZoneType.Space) - { - if(!IngameUI.PlanetViewEnabled && (GWCamera.Instance.ShowCircles || MovementState == FormationMovementState.Moving)) + if (movingArmyIcon != null && ZoneType == ZoneType.Space) { - movingArmyIcon.SetActive(true); - movingArmyIcon.GetComponent().Update(); - } - else { - movingArmyIcon.SetActive(false); + if (!IngameUI.PlanetViewEnabled && (GWCamera.Instance.ShowCircles || MovementState == FormationMovementState.Moving)) + { + movingArmyIcon.SetActive(true); + movingArmyIcon.GetComponent().Update(); + } + else + { + movingArmyIcon.SetActive(false); + } } } } diff --git a/Assets/GWConquest/Scripts/Planet.cs b/Assets/GWConquest/Scripts/Planet.cs index b8b6d0d..fc6178a 100644 --- a/Assets/GWConquest/Scripts/Planet.cs +++ b/Assets/GWConquest/Scripts/Planet.cs @@ -496,7 +496,7 @@ namespace GWConquest CircleTransform.localScale = Vector3.one * CircleSize; - if(IngameUI.PlanetViewEnabled || (!DebugUI.ShowAllPlanets && VisibilityStatus == PlanetVisibilityStatus.Hidden) || CircleSize == CircleSizeMin) + if(IngameUI.PlanetViewEnabled || (!DebugUI.ShowAllPlanets && VisibilityStatus == PlanetVisibilityStatus.Hidden) || CircleSize == CircleSizeMin || !Util.IsPointOnScreen(transform.position)) { CircleTransform.gameObject.SetActive(false); } diff --git a/Assets/GWConquest/Scripts/PlanetPlacement.cs b/Assets/GWConquest/Scripts/PlanetPlacement.cs index 9f94545..69a6b3f 100644 --- a/Assets/GWConquest/Scripts/PlanetPlacement.cs +++ b/Assets/GWConquest/Scripts/PlanetPlacement.cs @@ -252,7 +252,7 @@ namespace GWConquest zone.zoneType = ZoneType.Ground; nextZoneId++; - district.Planet = planet; + district.State.Planet = BoltEntityCache.Set(planet); var otherDistricts = planet.GetComponentsInChildren().ToList(); diff --git a/Assets/Photon/PhotonBolt/assemblies/bolt.user.dll b/Assets/Photon/PhotonBolt/assemblies/bolt.user.dll index 7948d9312840de416c2ee7b3a2cccabeae152707..d7ba0d69f61b6be1dcb44bfb7eaa2768c2e90030 100644 GIT binary patch delta 7575 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 delta 7636 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 diff --git a/Assets/Photon/PhotonBolt/assemblies/bolt.user.dll.mdb b/Assets/Photon/PhotonBolt/assemblies/bolt.user.dll.mdb index 5b53ba48cd69d45746d423f74ee7f4adb126eeac..e0484f29b28409182721271552fc059349284f6d 100644 GIT binary patch literal 49863 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 literal 49874 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 diff --git a/Assets/Photon/PhotonBolt/project.json b/Assets/Photon/PhotonBolt/project.json index 8fd370b..373a7dd 100644 --- a/Assets/Photon/PhotonBolt/project.json +++ b/Assets/Photon/PhotonBolt/project.json @@ -2320,7 +2320,7 @@ "ReplicationMode": 1, "Priority": 1, "PropertyType": { - "$type": "Photon.Bolt.Compiler.PropertyTypeEntity, bolt.compiler" + "$type": "Photon.Bolt.Compiler.PropertyTypeNetworkId, bolt.compiler" }, "AssetSettings": { "$type": "Photon.Bolt.Compiler.PropertyStateSettings, bolt.compiler", diff --git a/Assets/Photon/PhotonBolt/resources/BoltRuntimeSettings.asset b/Assets/Photon/PhotonBolt/resources/BoltRuntimeSettings.asset index 1fbbca9..b08a1fa 100644 --- a/Assets/Photon/PhotonBolt/resources/BoltRuntimeSettings.asset +++ b/Assets/Photon/PhotonBolt/resources/BoltRuntimeSettings.asset @@ -50,10 +50,10 @@ MonoBehaviour: debugStartPort: 54321 debugBuildMode: 1 debugStartMapName: GalaxyMap - debugPlayAsServer: 1 + debugPlayAsServer: 0 showDebugInfo: 0 overrideTimeScale: 1 - debugEditorMode: 1 + debugEditorMode: 2 consoleToggleKey: 9 consoleVisibleByDefault: 0 compilationWarnLevel: 4