Added a PowerLost BoolReference to prevent looping over _activePowerStructures twice in PowerHandler
This commit is contained in:
parent
27a10a152a
commit
328dea759f
|
@ -1 +1 @@
|
|||
Subproject commit 510aaf1b6755c4fe76ecac137cdefc1564c8a086
|
||||
Subproject commit cf3cf65b068d861d5bd65db2fbbb53a55f5bbf4d
|
|
@ -1,4 +1,5 @@
|
|||
using GameDev.CoreSystems;
|
||||
using ScriptableObjectArchitecture;
|
||||
using UnityEngine;
|
||||
|
||||
namespace AsteroidGame.Entities
|
||||
|
@ -10,7 +11,7 @@ namespace AsteroidGame.Entities
|
|||
[SerializeField] protected bool _isConsumer = true;
|
||||
[SerializeField] protected int _maxPower;
|
||||
[SerializeField] protected int _currentPower;
|
||||
[field: SerializeField] public bool PowerLost { get; set; }
|
||||
[field: SerializeField] public BoolReference PowerLost { get; set; }
|
||||
|
||||
[SerializeField] private SoPowerSystemRuntimeSet _powerBaseSet;
|
||||
|
||||
|
|
|
@ -239,6 +239,7 @@ Transform:
|
|||
m_Children:
|
||||
- {fileID: 5508661882298666976}
|
||||
- {fileID: 705421445933726062}
|
||||
- {fileID: 4118684648214416899}
|
||||
m_Father: {fileID: 493861824998956378}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &4141114696578461492
|
||||
|
@ -830,3 +831,56 @@ Transform:
|
|||
m_Children: []
|
||||
m_Father: {fileID: 7701460482385480461}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &8688796530504241915
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4118684648214416899}
|
||||
- component: {fileID: 6322483218802957310}
|
||||
m_Layer: 0
|
||||
m_Name: Power
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &4118684648214416899
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8688796530504241915}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 5262269693041317168}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &6322483218802957310
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8688796530504241915}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 5aca1826fdd547e1afd4a67d55a0f25c, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
_isGenerator: 1
|
||||
_isConsumer: 1
|
||||
_maxPower: 0
|
||||
_currentPower: 0
|
||||
<PowerLost>k__BackingField:
|
||||
_useConstant: 0
|
||||
_constantValue: 0
|
||||
_variable: {fileID: 11400000, guid: 6c917fb47e31d328fb812b6305fe834a, type: 2}
|
||||
_powerBaseSet: {fileID: 0}
|
||||
|
|
|
@ -32,7 +32,7 @@ namespace AsteroidGame.Entities
|
|||
|
||||
private void InitializePower()
|
||||
{
|
||||
powerSystem ??= gameObject.AddComponent<PowerBase>();
|
||||
powerSystem ??= gameObject.GetComponentInChildren<PowerBase>();
|
||||
powerSystem.Initialize(_powerConfig);
|
||||
}
|
||||
|
||||
|
|
|
@ -44,7 +44,7 @@ namespace AsteroidGame.Entities
|
|||
|
||||
private void HandleWeapon()
|
||||
{
|
||||
if (!powerSystem.PowerLost)
|
||||
if (!powerSystem.PowerLost.Value)
|
||||
{
|
||||
if (Targeter.FoundTarget())
|
||||
{
|
||||
|
|
|
@ -29,6 +29,7 @@ Transform:
|
|||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 205462139360537208}
|
||||
- {fileID: 6280290603549554065}
|
||||
- {fileID: 1742443095838507103}
|
||||
- {fileID: 989884077484375908}
|
||||
|
@ -220,6 +221,59 @@ MeshRenderer:
|
|||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!1 &4090424431812845262
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 205462139360537208}
|
||||
- component: {fileID: 7983208663300763676}
|
||||
m_Layer: 0
|
||||
m_Name: Power
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &205462139360537208
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4090424431812845262}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 5898541643653152293}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &7983208663300763676
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4090424431812845262}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 5aca1826fdd547e1afd4a67d55a0f25c, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
_isGenerator: 1
|
||||
_isConsumer: 1
|
||||
_maxPower: 0
|
||||
_currentPower: 0
|
||||
<PowerLost>k__BackingField:
|
||||
_useConstant: 0
|
||||
_constantValue: 0
|
||||
_variable: {fileID: 11400000, guid: 6c917fb47e31d328fb812b6305fe834a, type: 2}
|
||||
_powerBaseSet: {fileID: 0}
|
||||
--- !u!1 &4124039516271301344
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
|
@ -11,7 +11,7 @@ namespace AsteroidGame.Handlers
|
|||
[SerializeField] private int _powerConsumptionPeak;
|
||||
[SerializeField] private IntReference _powerCapacity;
|
||||
[SerializeField] private float _powerFactor;
|
||||
[SerializeField] private bool _powerLost;
|
||||
[SerializeField] private BoolReference _powerLost;
|
||||
|
||||
[Header("Connections")]
|
||||
[SerializeField] private SoPowerSystemRuntimeSet _activePowerStructures;
|
||||
|
@ -21,6 +21,7 @@ namespace AsteroidGame.Handlers
|
|||
_powerConsumption.Value = 0;
|
||||
_powerConsumptionPeak = 0;
|
||||
_powerCapacity.Value = 0;
|
||||
|
||||
foreach (var structure in _activePowerStructures)
|
||||
{
|
||||
if (structure.IsConsumer)
|
||||
|
@ -35,15 +36,7 @@ namespace AsteroidGame.Handlers
|
|||
}
|
||||
}
|
||||
|
||||
_powerLost = _powerConsumption.Value > _powerCapacity.Value;
|
||||
|
||||
foreach (IPowerSystem structure in _activePowerStructures)
|
||||
{
|
||||
if (structure.IsConsumer)
|
||||
{
|
||||
structure.PowerLost = _powerLost;
|
||||
}
|
||||
}
|
||||
_powerLost.Value = _powerConsumption.Value > _powerCapacity.Value;
|
||||
|
||||
_powerFactor = _powerCapacity.Value > 0 ? (float)_powerConsumption.Value / _powerCapacity.Value : 0;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 168ff32065cd13747a95ae8c9d2a0232, type: 3}
|
||||
m_Name: PowerHandler.PowerLost
|
||||
m_EditorClassIdentifier:
|
||||
_value: 0
|
||||
_readOnly: 0
|
||||
_raiseWarning: 1
|
||||
_isClamped: 0
|
||||
_minClampedValue: 0
|
||||
_maxClampedValue: 0
|
||||
_event:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 6c917fb47e31d328fb812b6305fe834a
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Loading…
Reference in New Issue