Changed to using Runtime sets
Handlers are now using runtime sets instead of owning lists. Entities that are instantiated assign themselves to their respective Runtime sets. Heavily inspired by: https://www.youtube.com/watch?v=raQ3iHhE_Kk https://github.com/roboryantron/Unite2017
This commit is contained in:
parent
4151ba0050
commit
f89ab59fdf
|
@ -2,13 +2,12 @@
|
||||||
"name": "AsteroidGame",
|
"name": "AsteroidGame",
|
||||||
"rootNamespace": "AsteroidGame",
|
"rootNamespace": "AsteroidGame",
|
||||||
"references": [
|
"references": [
|
||||||
"GUID:bc7863ca0989b494d84426bfd28432fa",
|
|
||||||
"GUID:6055be8ebefd69e48b49212b09b47b2f",
|
"GUID:6055be8ebefd69e48b49212b09b47b2f",
|
||||||
"GUID:5041af1ee0cf75e4a9a52f5f23a0bfae",
|
"GUID:75469ad4d38634e559750d17036d5f7c",
|
||||||
"GUID:857695c8a9ee988459c9b50e4e75e660",
|
"GUID:f008ecc6829887e478aeb5eb004eb01b",
|
||||||
"GUID:17a5862fcd6383b4b97bad4dcb1e2e5d",
|
"GUID:17a5862fcd6383b4b97bad4dcb1e2e5d",
|
||||||
"GUID:f26d68a0bdefa1043b120b820f55e190",
|
"GUID:f26d68a0bdefa1043b120b820f55e190",
|
||||||
"GUID:75469ad4d38634e559750d17036d5f7c"
|
"GUID:eb3099ff524d60545a136315a154d67b"
|
||||||
],
|
],
|
||||||
"includePlatforms": [],
|
"includePlatforms": [],
|
||||||
"excludePlatforms": [],
|
"excludePlatforms": [],
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
%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: 1260fd8b7346bdf41a685d24b968a231, type: 3}
|
||||||
|
m_Name: AvailableEnemies
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
_list: []
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 00c435d92e1df55499826c91b4f1e62f
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -412,6 +412,8 @@ MonoBehaviour:
|
||||||
_centerPosition: {fileID: 3291032053430181389}
|
_centerPosition: {fileID: 3291032053430181389}
|
||||||
_basePosition: {fileID: 2692714622321691895}
|
_basePosition: {fileID: 2692714622321691895}
|
||||||
_uiFriendlyName: Enemy
|
_uiFriendlyName: Enemy
|
||||||
|
_entityBaseSet: {fileID: 11400000, guid: c5542e77624472441a67b1f34e19a116, type: 2}
|
||||||
|
_enemyBaseSet: {fileID: 11400000, guid: 5f6dc84d75dbd9a459e519de42279066, type: 2}
|
||||||
--- !u!1 &6940800288144322101
|
--- !u!1 &6940800288144322101
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|
|
@ -1,10 +1,21 @@
|
||||||
using System;
|
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace AsteroidGame.Entities.Enemies.Scripts
|
namespace AsteroidGame.Entities
|
||||||
{
|
{
|
||||||
public class EnemyBase : EntityBase
|
public class EnemyBase : EntityBase
|
||||||
{
|
{
|
||||||
|
[SerializeField] private SEnemyBaseRuntimeSet _enemyBaseSet;
|
||||||
|
|
||||||
|
protected override void OnEnable()
|
||||||
|
{
|
||||||
|
base.OnEnable();
|
||||||
|
_enemyBaseSet.Add(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnDisable()
|
||||||
|
{
|
||||||
|
base.OnDisable();
|
||||||
|
_enemyBaseSet.Remove(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -2,7 +2,8 @@
|
||||||
"name": "Entities",
|
"name": "Entities",
|
||||||
"rootNamespace": "AsteroidGame",
|
"rootNamespace": "AsteroidGame",
|
||||||
"references": [
|
"references": [
|
||||||
"GUID:17a5862fcd6383b4b97bad4dcb1e2e5d"
|
"GUID:17a5862fcd6383b4b97bad4dcb1e2e5d",
|
||||||
|
"GUID:eb3099ff524d60545a136315a154d67b"
|
||||||
],
|
],
|
||||||
"includePlatforms": [],
|
"includePlatforms": [],
|
||||||
"excludePlatforms": [],
|
"excludePlatforms": [],
|
||||||
|
|
|
@ -17,6 +17,9 @@ namespace AsteroidGame.Entities
|
||||||
[Header("UI")]
|
[Header("UI")]
|
||||||
[SerializeField] protected string _uiFriendlyName;
|
[SerializeField] protected string _uiFriendlyName;
|
||||||
|
|
||||||
|
[Space]
|
||||||
|
[SerializeField] private SEntityBaseRuntimeSet _entityBaseSet;
|
||||||
|
|
||||||
#region Props
|
#region Props
|
||||||
|
|
||||||
public bool IsInvulnerable => _isInvulnerable;
|
public bool IsInvulnerable => _isInvulnerable;
|
||||||
|
@ -24,6 +27,16 @@ namespace AsteroidGame.Entities
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
protected virtual void OnEnable()
|
||||||
|
{
|
||||||
|
_entityBaseSet.Add(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual void OnDisable()
|
||||||
|
{
|
||||||
|
_entityBaseSet.Remove(this);
|
||||||
|
}
|
||||||
|
|
||||||
#region Methods
|
#region Methods
|
||||||
|
|
||||||
public void ModifyHealth(int healthChange)
|
public void ModifyHealth(int healthChange)
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 857695c8a9ee988459c9b50e4e75e660
|
guid: 3b846d413af4ba14ab89d5f44be1a3b7
|
||||||
AssemblyDefinitionImporter:
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
assetBundleName:
|
assetBundleName:
|
|
@ -0,0 +1,15 @@
|
||||||
|
%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: 33f48df2d03212c4986fe2c47c5de796, type: 3}
|
||||||
|
m_Name: ActiveEnemies
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
_list: []
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 5f6dc84d75dbd9a459e519de42279066
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,15 @@
|
||||||
|
%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: 9da2d6a0206101c47a22881a0ba2ece2, type: 3}
|
||||||
|
m_Name: ActiveEntities
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
_list: []
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c5542e77624472441a67b1f34e19a116
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,15 @@
|
||||||
|
%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: fbc6f67c9903cc8448f793da64d840cf, type: 3}
|
||||||
|
m_Name: ActiveStructures
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
_list: []
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: bccdf438a1004a444bc24492728d6fbd
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -1,5 +1,5 @@
|
||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 91195dc9638557a4aa7380bb7bb3c5cc
|
guid: f690b649bafc7be4595cacba515c2c11
|
||||||
folderAsset: yes
|
folderAsset: yes
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
|
@ -0,0 +1,12 @@
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using AsteroidGame.Entities.Enemies.Scripts;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace AsteroidGame.Entities
|
||||||
|
{
|
||||||
|
[CreateAssetMenu(fileName = "newEnemyList", menuName = "Enemies/EnemyList")]
|
||||||
|
public class SEnemyBaseList : ScriptableObject
|
||||||
|
{
|
||||||
|
public List<EnemyBase> _list;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1260fd8b7346bdf41a685d24b968a231
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,11 @@
|
||||||
|
using AsteroidGame.Entities.Enemies.Scripts;
|
||||||
|
using AsteroidGame.ScriptableObjects;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace AsteroidGame.Entities
|
||||||
|
{
|
||||||
|
[CreateAssetMenu(fileName = "newEnemyBaseRuntimeSet", menuName = "RuntimeSet/EnemyBase")]
|
||||||
|
public class SEnemyBaseRuntimeSet : SRuntimeSet<EnemyBase>
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 33f48df2d03212c4986fe2c47c5de796
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,10 @@
|
||||||
|
using AsteroidGame.ScriptableObjects;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace AsteroidGame.Entities
|
||||||
|
{
|
||||||
|
[CreateAssetMenu(fileName = "newEntityBaseRuntimeSet", menuName = "RuntimeSet/EntityBase")]
|
||||||
|
public class SEntityBaseRuntimeSet : SRuntimeSet<EntityBase>
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 9da2d6a0206101c47a22881a0ba2ece2
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,11 @@
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace AsteroidGame.Entities
|
||||||
|
{
|
||||||
|
[CreateAssetMenu(fileName = "newStructureList", menuName = "Structures/StructureList")]
|
||||||
|
public class SStructureBaseList : ScriptableObject
|
||||||
|
{
|
||||||
|
public List<StructureBase> _structureList;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
using AsteroidGame.ScriptableObjects;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace AsteroidGame.Entities
|
||||||
|
{
|
||||||
|
[CreateAssetMenu(fileName = "newStructureBaseRuntimeSet", menuName = "RuntimeSet/StructureBase")]
|
||||||
|
public class SStructureBaseRuntimeSet : SRuntimeSet<StructureBase>
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: fbc6f67c9903cc8448f793da64d840cf
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -52,6 +52,7 @@ MonoBehaviour:
|
||||||
_centerPosition: {fileID: 1841478903898566568}
|
_centerPosition: {fileID: 1841478903898566568}
|
||||||
_basePosition: {fileID: 493861824998956378}
|
_basePosition: {fileID: 493861824998956378}
|
||||||
_uiFriendlyName: Power\nPlant
|
_uiFriendlyName: Power\nPlant
|
||||||
|
_entityBaseSet: {fileID: 11400000, guid: c5542e77624472441a67b1f34e19a116, type: 2}
|
||||||
_cost: 100
|
_cost: 100
|
||||||
_buildPlacementBlocked: 0
|
_buildPlacementBlocked: 0
|
||||||
_buildTimer: 0
|
_buildTimer: 0
|
||||||
|
@ -59,6 +60,7 @@ MonoBehaviour:
|
||||||
_isConsumer: 0
|
_isConsumer: 0
|
||||||
_maxPower: 100
|
_maxPower: 100
|
||||||
_currentPower: 0
|
_currentPower: 0
|
||||||
|
_structureBaseSet: {fileID: 11400000, guid: bccdf438a1004a444bc24492728d6fbd, type: 2}
|
||||||
--- !u!1 &1863277996181035512
|
--- !u!1 &1863277996181035512
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.Serialization;
|
||||||
|
|
||||||
|
namespace AsteroidGame.Entities
|
||||||
|
{
|
||||||
|
public class Disabler : MonoBehaviour
|
||||||
|
{
|
||||||
|
[FormerlySerializedAs("Set")]
|
||||||
|
[SerializeField] private SStructureBaseRuntimeSet _set;
|
||||||
|
|
||||||
|
[ContextMenu("Disable All")]
|
||||||
|
public void DisableAll()
|
||||||
|
{
|
||||||
|
// Loop backwards since the list may change when disabling
|
||||||
|
for (int i = _set._list.Count - 1; i >= 0; i--)
|
||||||
|
{
|
||||||
|
_set._list[i].gameObject.SetActive(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[ContextMenu("Disable Random")]
|
||||||
|
public void DisableRandom()
|
||||||
|
{
|
||||||
|
int index = Random.Range(0, _set._list.Count);
|
||||||
|
_set._list[index].gameObject.SetActive(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f60f8a4b6b214b04083229f46bf1170b
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -1,3 +1,4 @@
|
||||||
|
|
||||||
using AsteroidGame.Interfaces;
|
using AsteroidGame.Interfaces;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
|
@ -16,6 +17,9 @@ namespace AsteroidGame.Entities
|
||||||
[SerializeField] protected int _maxPower;
|
[SerializeField] protected int _maxPower;
|
||||||
[SerializeField] protected int _currentPower;
|
[SerializeField] protected int _currentPower;
|
||||||
|
|
||||||
|
[Header("Configuration")]
|
||||||
|
[SerializeField] private SStructureBaseRuntimeSet _structureBaseSet;
|
||||||
|
|
||||||
#region Private
|
#region Private
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
@ -28,12 +32,20 @@ namespace AsteroidGame.Entities
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
private void OnEnable()
|
protected override void OnEnable()
|
||||||
{
|
{
|
||||||
|
base.OnEnable();
|
||||||
if (!_isConsumer && !_isGenerator)
|
if (!_isConsumer && !_isGenerator)
|
||||||
{
|
{
|
||||||
Debug.LogWarning("Power consumer/generator not set!");
|
Debug.LogWarning("Power consumer/generator not set!");
|
||||||
}
|
}
|
||||||
|
_structureBaseSet.Add(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnDisable()
|
||||||
|
{
|
||||||
|
base.OnDisable();
|
||||||
|
_structureBaseSet.Remove(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnTriggerStay(Collider other)
|
private void OnTriggerStay(Collider other)
|
||||||
|
|
|
@ -1,27 +0,0 @@
|
||||||
using System.Collections.Generic;
|
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
namespace AsteroidGame.Entities
|
|
||||||
{
|
|
||||||
[CreateAssetMenu(fileName = "newStructureList", menuName = "Structures/StructureList")]
|
|
||||||
public class StructureBaseScriptableObject : ScriptableObject
|
|
||||||
{
|
|
||||||
public List<StructureBase> _structureList;
|
|
||||||
}
|
|
||||||
|
|
||||||
// public static class MakeScriptableObject
|
|
||||||
// {
|
|
||||||
// [MenuItem("Assets/Create/ScriptableObject:AvailableStructures")]
|
|
||||||
// public static void CreateMyAsset()
|
|
||||||
// {
|
|
||||||
// StructureBaseScriptableObject asset = ScriptableObject.CreateInstance<StructureBaseScriptableObject>();
|
|
||||||
//
|
|
||||||
// AssetDatabase.CreateAsset(asset, "Assets/Entities/Structures/AvailableStructures.asset");
|
|
||||||
// AssetDatabase.SaveAssets();
|
|
||||||
//
|
|
||||||
// EditorUtility.FocusProjectWindow();
|
|
||||||
//
|
|
||||||
// Selection.activeObject = asset;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
}
|
|
|
@ -22,6 +22,9 @@ namespace AsteroidGame.Entities
|
||||||
[SerializeField] private Transform _barrel;
|
[SerializeField] private Transform _barrel;
|
||||||
|
|
||||||
#region Privates
|
#region Privates
|
||||||
|
[Header("Target")]
|
||||||
|
[SerializeField] private SEnemyBaseRuntimeSet _activeEnemies;
|
||||||
|
[SerializeField] private EnemyBase _targetEnemy;
|
||||||
|
|
||||||
[SerializeField] private enum TargetStrategy
|
[SerializeField] private enum TargetStrategy
|
||||||
{
|
{
|
||||||
|
@ -29,7 +32,6 @@ namespace AsteroidGame.Entities
|
||||||
LowestHealth
|
LowestHealth
|
||||||
};
|
};
|
||||||
|
|
||||||
[SerializeField] private EnemyBase _targetEnemy;
|
|
||||||
[SerializeField] private Transform[] _buildingParts;
|
[SerializeField] private Transform[] _buildingParts;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
|
@ -748,6 +748,7 @@ MonoBehaviour:
|
||||||
_centerPosition: {fileID: 5103935544759496321}
|
_centerPosition: {fileID: 5103935544759496321}
|
||||||
_basePosition: {fileID: 8324879816836607384}
|
_basePosition: {fileID: 8324879816836607384}
|
||||||
_uiFriendlyName: Turret
|
_uiFriendlyName: Turret
|
||||||
|
_entityBaseSet: {fileID: 11400000, guid: c5542e77624472441a67b1f34e19a116, type: 2}
|
||||||
_cost: 10
|
_cost: 10
|
||||||
_buildPlacementBlocked: 0
|
_buildPlacementBlocked: 0
|
||||||
_buildTimer: 0
|
_buildTimer: 0
|
||||||
|
@ -755,6 +756,7 @@ MonoBehaviour:
|
||||||
_isConsumer: 1
|
_isConsumer: 1
|
||||||
_maxPower: 10
|
_maxPower: 10
|
||||||
_currentPower: 0
|
_currentPower: 0
|
||||||
|
_structureBaseSet: {fileID: 11400000, guid: bccdf438a1004a444bc24492728d6fbd, type: 2}
|
||||||
_weaponRange: 40
|
_weaponRange: 40
|
||||||
_damage: 1
|
_damage: 1
|
||||||
_fireRate: 1
|
_fireRate: 1
|
||||||
|
@ -763,5 +765,6 @@ MonoBehaviour:
|
||||||
_score: 0
|
_score: 0
|
||||||
_turretHead: {fileID: 5103935544653627402}
|
_turretHead: {fileID: 5103935544653627402}
|
||||||
_barrel: {fileID: 5103935545559248087}
|
_barrel: {fileID: 5103935545559248087}
|
||||||
|
_activeEnemies: {fileID: 11400000, guid: 5f6dc84d75dbd9a459e519de42279066, type: 2}
|
||||||
_targetEnemy: {fileID: 0}
|
_targetEnemy: {fileID: 0}
|
||||||
_buildingParts: []
|
_buildingParts: []
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
using System.Collections.Generic;
|
|
||||||
using AsteroidGame.Entities;
|
using AsteroidGame.Entities;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.InputSystem;
|
using UnityEngine.InputSystem;
|
||||||
|
using UnityEngine.Serialization;
|
||||||
|
|
||||||
namespace AsteroidGame.Handlers
|
namespace AsteroidGame.Handlers
|
||||||
{
|
{
|
||||||
|
@ -16,15 +16,13 @@ namespace AsteroidGame.Handlers
|
||||||
[SerializeField] private bool _isBuilding;
|
[SerializeField] private bool _isBuilding;
|
||||||
[SerializeField] private int _buildingSelector;
|
[SerializeField] private int _buildingSelector;
|
||||||
|
|
||||||
|
[FormerlySerializedAs("_availableStructures")]
|
||||||
[Header("Structures")]
|
[Header("Structures")]
|
||||||
[SerializeField] private StructureBaseScriptableObject _availableStructuresObject;
|
[SerializeField] private SStructureBaseList _availableSStructures;
|
||||||
|
|
||||||
#region Private
|
#region Private
|
||||||
|
|
||||||
private readonly Dictionary<int, StructureBase> _availableStructures = new();
|
|
||||||
private Color _colorCurrent;
|
private Color _colorCurrent;
|
||||||
private Camera _camera;
|
private Camera _camera;
|
||||||
[SerializeField] private List<StructureBase> _activeStructures;
|
|
||||||
private Vector3 _tempVec;
|
private Vector3 _tempVec;
|
||||||
private Plane _buildPlane;
|
private Plane _buildPlane;
|
||||||
private StructureBase _tempStructure;
|
private StructureBase _tempStructure;
|
||||||
|
@ -36,13 +34,14 @@ namespace AsteroidGame.Handlers
|
||||||
protected override void OnEnable()
|
protected override void OnEnable()
|
||||||
{
|
{
|
||||||
base.OnEnable();
|
base.OnEnable();
|
||||||
for (int i = 0; i < _availableStructuresObject._structureList.Count; i++)
|
// for (int i = 0; i < _availableStructuresObject._structureList.Count; i++)
|
||||||
{
|
// {
|
||||||
_availableStructures.Add(i, _availableStructuresObject._structureList[i]);
|
// _availableStructures.Add(i, _availableStructuresObject._structureList[i]);
|
||||||
}
|
// }
|
||||||
|
|
||||||
_camera = Camera.main;
|
_camera = Camera.main;
|
||||||
_buildPlane = new Plane(Vector3.up, Vector3.zero);
|
_buildPlane = new Plane(Vector3.up, Vector3.zero);
|
||||||
_activeStructures.Clear();
|
//_activeStructures.Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Update()
|
private void Update()
|
||||||
|
@ -89,7 +88,6 @@ namespace AsteroidGame.Handlers
|
||||||
}
|
}
|
||||||
|
|
||||||
SpawnStructure();
|
SpawnStructure();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void AbortPlaceStructure()
|
private void AbortPlaceStructure()
|
||||||
|
@ -109,7 +107,8 @@ namespace AsteroidGame.Handlers
|
||||||
|
|
||||||
private void SpawnGhostStructure()
|
private void SpawnGhostStructure()
|
||||||
{
|
{
|
||||||
_ghostStructure = Instantiate(_availableStructures[_buildingSelector], GetPlanePoint(), Quaternion.identity, transform);
|
_ghostStructure = Instantiate(_availableSStructures._structureList[_buildingSelector], GetPlanePoint(), Quaternion.identity,
|
||||||
|
transform);
|
||||||
_ghostStructure.name = "GhostStructure";
|
_ghostStructure.name = "GhostStructure";
|
||||||
|
|
||||||
var rb = _ghostStructure.gameObject.AddComponent<Rigidbody>();
|
var rb = _ghostStructure.gameObject.AddComponent<Rigidbody>();
|
||||||
|
@ -132,8 +131,10 @@ namespace AsteroidGame.Handlers
|
||||||
|
|
||||||
private void SpawnStructure()
|
private void SpawnStructure()
|
||||||
{
|
{
|
||||||
_tempStructure = Instantiate(_availableStructures[_buildingSelector], GetPlanePoint(), Quaternion.identity, transform);
|
_tempStructure = Instantiate(_availableSStructures._structureList[_buildingSelector], GetPlanePoint(), Quaternion.identity,
|
||||||
_activeStructures.Add(_tempStructure);
|
transform);
|
||||||
|
// _activeStructures.Add(_tempStructure);
|
||||||
|
// _buildingLists[0].Add(_tempStructure);
|
||||||
}
|
}
|
||||||
|
|
||||||
#region Getters
|
#region Getters
|
||||||
|
@ -150,15 +151,15 @@ namespace AsteroidGame.Handlers
|
||||||
return Vector3.zero;
|
return Vector3.zero;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Dictionary<int, StructureBase> GetAvailableStructures()
|
// public List<StructureBase> GetAvailableStructures()
|
||||||
{
|
// {
|
||||||
return _availableStructures;
|
// return _availableStructures._structureList;
|
||||||
}
|
// }
|
||||||
|
|
||||||
public List<StructureBase> GetActiveStructures()
|
// public List<StructureBase> GetActiveStructures()
|
||||||
{
|
// {
|
||||||
return _activeStructures;
|
// return _activeStructures;
|
||||||
}
|
// }
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
@ -170,6 +171,5 @@ namespace AsteroidGame.Handlers
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -49,5 +49,4 @@ MonoBehaviour:
|
||||||
_ghostStructureMaterial: {fileID: 2100000, guid: dc919a35edbf85647939132e73b39642, type: 2}
|
_ghostStructureMaterial: {fileID: 2100000, guid: dc919a35edbf85647939132e73b39642, type: 2}
|
||||||
_isBuilding: 0
|
_isBuilding: 0
|
||||||
_buildingSelector: 0
|
_buildingSelector: 0
|
||||||
_availableStructuresObject: {fileID: 11400000, guid: f789f54c47873664284d6e8544724693, type: 2}
|
_availableSStructures: {fileID: 11400000, guid: f789f54c47873664284d6e8544724693, type: 2}
|
||||||
_activeStructures: []
|
|
||||||
|
|
|
@ -1,46 +1,18 @@
|
||||||
using System.Collections.Generic;
|
using AsteroidGame.Entities;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.Pool;
|
|
||||||
|
|
||||||
namespace AsteroidGame.Handlers
|
namespace AsteroidGame.Handlers
|
||||||
{
|
{
|
||||||
public class EnemyHandler : HandlerBase
|
public class EnemyHandler : HandlerBase
|
||||||
{
|
{
|
||||||
[Header("Parameters")]
|
[Header("Parameters")]
|
||||||
[SerializeField] [Range(0.1f, 60f)] float _spawnRate = 60f;
|
[SerializeField] [Range(0.1f, 60f)] private float _spawnRate = 60f;
|
||||||
[SerializeField] int _objectPoolSize = 15;
|
[SerializeField] private int _objectPoolSize = 15;
|
||||||
|
|
||||||
[Header("Prefabs")]
|
[Header("Configuration")]
|
||||||
[SerializeField] GameObject _objectPool;
|
[SerializeField] private SEnemyBaseList _availableEnemies;
|
||||||
[SerializeField] List<GameObject> _enemyPrefabs = new List<GameObject>();
|
|
||||||
|
|
||||||
[Header("Lists")]
|
[Header("Lists")]
|
||||||
[SerializeField] List<GameObject> _enemyPools = new List<GameObject>();
|
[SerializeField] private SEnemyBaseRuntimeSet _activeEnemies;
|
||||||
[SerializeField] List<GameObject> _allEnemies = new List<GameObject>();
|
|
||||||
|
|
||||||
private void Start()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public void AddEnemyToAllEnemies(GameObject enemy)
|
|
||||||
{
|
|
||||||
_allEnemies.Add(enemy);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void RemoveEnemy(GameObject enemy)
|
|
||||||
{
|
|
||||||
_allEnemies.Remove(enemy);
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<GameObject> ReturnAllEnemies()
|
|
||||||
{
|
|
||||||
return _allEnemies;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void NotifyEnemiesOfNewPath()
|
|
||||||
{
|
|
||||||
BroadcastMessage("RecalculatePath", SendMessageOptions.DontRequireReceiver);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -46,7 +46,5 @@ MonoBehaviour:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
_spawnRate: 60
|
_spawnRate: 60
|
||||||
_objectPoolSize: 15
|
_objectPoolSize: 15
|
||||||
_objectPool: {fileID: 0}
|
_availableEnemies: {fileID: 11400000, guid: 00c435d92e1df55499826c91b4f1e62f, type: 2}
|
||||||
_enemyPrefabs: []
|
_activeEnemies: {fileID: 11400000, guid: 5f6dc84d75dbd9a459e519de42279066, type: 2}
|
||||||
_enemyPools: []
|
|
||||||
_allEnemies: []
|
|
||||||
|
|
|
@ -1,22 +0,0 @@
|
||||||
{
|
|
||||||
"name": "Handlers",
|
|
||||||
"rootNamespace": "AsteroidGame",
|
|
||||||
"references": [
|
|
||||||
"GUID:6055be8ebefd69e48b49212b09b47b2f",
|
|
||||||
"GUID:75469ad4d38634e559750d17036d5f7c",
|
|
||||||
"GUID:f008ecc6829887e478aeb5eb004eb01b",
|
|
||||||
"GUID:f26d68a0bdefa1043b120b820f55e190",
|
|
||||||
"GUID:5041af1ee0cf75e4a9a52f5f23a0bfae",
|
|
||||||
"GUID:bc7863ca0989b494d84426bfd28432fa",
|
|
||||||
"GUID:17a5862fcd6383b4b97bad4dcb1e2e5d"
|
|
||||||
],
|
|
||||||
"includePlatforms": [],
|
|
||||||
"excludePlatforms": [],
|
|
||||||
"allowUnsafeCode": false,
|
|
||||||
"overrideReferences": false,
|
|
||||||
"precompiledReferences": [],
|
|
||||||
"autoReferenced": true,
|
|
||||||
"defineConstraints": [],
|
|
||||||
"versionDefines": [],
|
|
||||||
"noEngineReferences": false
|
|
||||||
}
|
|
|
@ -1,5 +1,4 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
|
||||||
using AsteroidGame.Entities;
|
using AsteroidGame.Entities;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
|
@ -13,26 +12,13 @@ namespace AsteroidGame.Handlers
|
||||||
[SerializeField] private float _powerFactor;
|
[SerializeField] private float _powerFactor;
|
||||||
|
|
||||||
[Header("Connections")]
|
[Header("Connections")]
|
||||||
[SerializeField] private BuildingHandler _buildingHandler;
|
[SerializeField] private SStructureBaseRuntimeSet _activeStructures;
|
||||||
|
|
||||||
#region Private
|
|
||||||
|
|
||||||
[SerializeField] private List<StructureBase> _activeStructures = new();
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
protected override void OnEnable()
|
|
||||||
{
|
|
||||||
base.OnEnable();
|
|
||||||
_buildingHandler = FindObjectOfType<BuildingHandler>();
|
|
||||||
_activeStructures = _buildingHandler.GetActiveStructures();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Update()
|
private void Update()
|
||||||
{
|
{
|
||||||
_powerConsumption = 0;
|
_powerConsumption = 0;
|
||||||
_powerCapacity = 0;
|
_powerCapacity = 0;
|
||||||
foreach (var structure in _activeStructures)
|
foreach (var structure in _activeStructures._list)
|
||||||
{
|
{
|
||||||
if (structure.IsConsumer)
|
if (structure.IsConsumer)
|
||||||
{
|
{
|
||||||
|
|
|
@ -47,5 +47,4 @@ MonoBehaviour:
|
||||||
_powerConsumption: 0
|
_powerConsumption: 0
|
||||||
_powerCapacity: 0
|
_powerCapacity: 0
|
||||||
_powerFactor: 0
|
_powerFactor: 0
|
||||||
_buildingHandler: {fileID: 0}
|
_activeStructures: {fileID: 11400000, guid: bccdf438a1004a444bc24492728d6fbd, type: 2}
|
||||||
_activeStructures: []
|
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
using TMPro;
|
using TMPro;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.SceneManagement;
|
using UnityEngine.SceneManagement;
|
||||||
using UnityEngine.Serialization;
|
|
||||||
|
|
||||||
namespace AsteroidGame.Handlers
|
namespace AsteroidGame.Handlers
|
||||||
{
|
{
|
||||||
|
|
|
@ -274,6 +274,51 @@ Transform:
|
||||||
m_CorrespondingSourceObject: {fileID: 5263199550015624126, guid: 2e352ad6389b4234083764d15d4e6a5f, type: 3}
|
m_CorrespondingSourceObject: {fileID: 5263199550015624126, guid: 2e352ad6389b4234083764d15d4e6a5f, type: 3}
|
||||||
m_PrefabInstance: {fileID: 5263199549561108292}
|
m_PrefabInstance: {fileID: 5263199549561108292}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
--- !u!1 &732841883
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 732841885}
|
||||||
|
- component: {fileID: 732841884}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: Disabler
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!114 &732841884
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 732841883}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: f60f8a4b6b214b04083229f46bf1170b, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
_set: {fileID: 11400000, guid: bccdf438a1004a444bc24492728d6fbd, type: 2}
|
||||||
|
--- !u!4 &732841885
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 732841883}
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: -1.8230318, y: 5.3787107, z: -4.0428505}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_RootOrder: 6
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!4 &991542217 stripped
|
--- !u!4 &991542217 stripped
|
||||||
Transform:
|
Transform:
|
||||||
m_CorrespondingSourceObject: {fileID: 493861824998956378, guid: 57a75520298c47140a928041b05d7f3c, type: 3}
|
m_CorrespondingSourceObject: {fileID: 493861824998956378, guid: 57a75520298c47140a928041b05d7f3c, type: 3}
|
||||||
|
@ -751,6 +796,18 @@ PrefabInstance:
|
||||||
propertyPath: m_LocalEulerAnglesHint.z
|
propertyPath: m_LocalEulerAnglesHint.z
|
||||||
value: 0
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 664620742648054781, guid: 3a89f87af6ee84a459d98a4c296dd1be, type: 3}
|
||||||
|
propertyPath: _availableStructures
|
||||||
|
value:
|
||||||
|
objectReference: {fileID: 11400000, guid: f789f54c47873664284d6e8544724693, type: 2}
|
||||||
|
- target: {fileID: 664620742648054781, guid: 3a89f87af6ee84a459d98a4c296dd1be, type: 3}
|
||||||
|
propertyPath: _buildingLists.Array.size
|
||||||
|
value: 1
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 664620742648054781, guid: 3a89f87af6ee84a459d98a4c296dd1be, type: 3}
|
||||||
|
propertyPath: _buildingLists.Array.data[0]
|
||||||
|
value:
|
||||||
|
objectReference: {fileID: 11400000, guid: bccdf438a1004a444bc24492728d6fbd, type: 2}
|
||||||
- target: {fileID: 664620742648054783, guid: 3a89f87af6ee84a459d98a4c296dd1be, type: 3}
|
- target: {fileID: 664620742648054783, guid: 3a89f87af6ee84a459d98a4c296dd1be, type: 3}
|
||||||
propertyPath: m_Name
|
propertyPath: m_Name
|
||||||
value: BuildingHandler
|
value: BuildingHandler
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 4b8bc87700fc5a44b88c1b13c4bdb3cf
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,20 @@
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace AsteroidGame.ScriptableObjects
|
||||||
|
{
|
||||||
|
public abstract class SRuntimeSet<T> : ScriptableObject
|
||||||
|
{
|
||||||
|
public List<T> _list;
|
||||||
|
|
||||||
|
public void Add(T component)
|
||||||
|
{
|
||||||
|
_list.Add(component);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Remove(T component)
|
||||||
|
{
|
||||||
|
_list.Remove(component);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1e81b384c7f010b4fa3c1b8f293a4c42
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -1,10 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Scripts",
|
"name": "ScriptableObjects",
|
||||||
"rootNamespace": "AsteroidGame",
|
"rootNamespace": "AsteroidGame",
|
||||||
"references": [
|
"references": [],
|
||||||
"GUID:75469ad4d38634e559750d17036d5f7c",
|
|
||||||
"GUID:f008ecc6829887e478aeb5eb004eb01b"
|
|
||||||
],
|
|
||||||
"includePlatforms": [],
|
"includePlatforms": [],
|
||||||
"excludePlatforms": [],
|
"excludePlatforms": [],
|
||||||
"allowUnsafeCode": false,
|
"allowUnsafeCode": false,
|
|
@ -1,5 +1,5 @@
|
||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 896bd127e4aae4c4d86d99385f967c0c
|
guid: eb3099ff524d60545a136315a154d67b
|
||||||
AssemblyDefinitionImporter:
|
AssemblyDefinitionImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 624b0cf4f0dd38a459121c046c909786
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -3,13 +3,15 @@ using AsteroidGame.Entities;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.UIElements;
|
using UnityEngine.UIElements;
|
||||||
using AsteroidGame.Handlers;
|
using AsteroidGame.Handlers;
|
||||||
|
using UnityEngine.Serialization;
|
||||||
|
|
||||||
namespace AsteroidGame.UI
|
namespace AsteroidGame.UI
|
||||||
{
|
{
|
||||||
public class BuildMenuUiController : MonoBehaviour
|
public class BuildMenuUiController : MonoBehaviour
|
||||||
{
|
{
|
||||||
|
[FormerlySerializedAs("_availableStructuresObject")]
|
||||||
[Header("Structures")]
|
[Header("Structures")]
|
||||||
[SerializeField] private StructureBaseScriptableObject _availableStructuresObject;
|
[SerializeField] private SStructureBaseList _availableSStructuresObject;
|
||||||
|
|
||||||
private VisualElement _mRoot;
|
private VisualElement _mRoot;
|
||||||
private VisualElement _mSlotContainer;
|
private VisualElement _mSlotContainer;
|
||||||
|
@ -18,7 +20,7 @@ namespace AsteroidGame.UI
|
||||||
|
|
||||||
private void OnEnable()
|
private void OnEnable()
|
||||||
{
|
{
|
||||||
_buildings = _availableStructuresObject._structureList;
|
_buildings = _availableSStructuresObject._structureList;
|
||||||
_buildingHandler = FindObjectOfType<BuildingHandler>();
|
_buildingHandler = FindObjectOfType<BuildingHandler>();
|
||||||
|
|
||||||
//Store the root from the UI Document component
|
//Store the root from the UI Document component
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
|
||||||
|
|
||||||
|
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=assets_005Cscripts_005Cscriptableobjects/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>
|
|
@ -1,6 +1,7 @@
|
||||||
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
|
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
|
||||||
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=assets_005Centities_005Cenemies/@EntryIndexedValue">True</s:Boolean>
|
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=assets_005Centities_005Cenemies/@EntryIndexedValue">True</s:Boolean>
|
||||||
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=assets_005Centities_005Cenemies_005Cscripts/@EntryIndexedValue">True</s:Boolean>
|
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=assets_005Centities_005Cenemies_005Cscripts/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=assets_005Centities_005Cscriptableobjects/@EntryIndexedValue">True</s:Boolean>
|
||||||
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=assets_005Centities_005Cstructures/@EntryIndexedValue">True</s:Boolean>
|
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=assets_005Centities_005Cstructures/@EntryIndexedValue">True</s:Boolean>
|
||||||
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=assets_005Centities_005Cstructures_005Cpowerplant/@EntryIndexedValue">True</s:Boolean>
|
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=assets_005Centities_005Cstructures_005Cpowerplant/@EntryIndexedValue">True</s:Boolean>
|
||||||
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=assets_005Centities_005Cstructures_005Cscriptableobjects/@EntryIndexedValue">True</s:Boolean>
|
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=assets_005Centities_005Cstructures_005Cscriptableobjects/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
|
||||||
|
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=assets_005Cscripts/@EntryIndexedValue">False</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=assets_005Cscripts_005Cscriptableobjects/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>
|
Loading…
Reference in New Issue