From 43e2dc557ea2fbef7a9b3f0dec72c7787ae86655 Mon Sep 17 00:00:00 2001 From: MuhamadAjiW <16521119@mahasiswa.itb.ac.id> Date: Fri, 19 Apr 2024 09:11:38 +0700 Subject: [PATCH] refactor: object factory default parents to appropriate managers --- .../Collectibles/TestCollectible/TestCollectible.cs | 2 +- Assets/Scripts/Core/Objects/Projectiles/Projectile.cs | 3 +++ .../Core/Objects/Projectiles/Projectile.cs.meta | 11 +++++++++++ .../Core/Objects/Projectiles/TestProjectile.meta | 8 ++++++++ .../Projectiles/TestProjectile/TestProjectile.cs | 3 +++ .../Projectiles/TestProjectile/TestProjectile.cs.meta | 11 +++++++++++ .../Library/BaseClasses/EntityObject/AttackEntity.cs | 2 +- .../Library/BaseClasses/EntityObject/AttackObject.cs | 3 ++- Assets/Scripts/Library/Util/ObjectFactory.cs | 8 +++----- 9 files changed, 43 insertions(+), 8 deletions(-) create mode 100644 Assets/Scripts/Core/Objects/Projectiles/Projectile.cs create mode 100644 Assets/Scripts/Core/Objects/Projectiles/Projectile.cs.meta create mode 100644 Assets/Scripts/Core/Objects/Projectiles/TestProjectile.meta create mode 100644 Assets/Scripts/Core/Objects/Projectiles/TestProjectile/TestProjectile.cs create mode 100644 Assets/Scripts/Core/Objects/Projectiles/TestProjectile/TestProjectile.cs.meta diff --git a/Assets/Scripts/Core/Objects/Collectibles/TestCollectible/TestCollectible.cs b/Assets/Scripts/Core/Objects/Collectibles/TestCollectible/TestCollectible.cs index 86ae86d3..2d334ba1 100644 --- a/Assets/Scripts/Core/Objects/Collectibles/TestCollectible/TestCollectible.cs +++ b/Assets/Scripts/Core/Objects/Collectibles/TestCollectible/TestCollectible.cs @@ -2,7 +2,7 @@ using UnityEngine; public class TestCollectible : Collectible{ // Static attributes - public static string ObjectIdPrefix = "Player"; + public static string ObjectIdPrefix = "TestCollectible"; // Constructor protected new void Start(){ diff --git a/Assets/Scripts/Core/Objects/Projectiles/Projectile.cs b/Assets/Scripts/Core/Objects/Projectiles/Projectile.cs new file mode 100644 index 00000000..712465ef --- /dev/null +++ b/Assets/Scripts/Core/Objects/Projectiles/Projectile.cs @@ -0,0 +1,3 @@ +public class Projectile : AttackObject{ + +} \ No newline at end of file diff --git a/Assets/Scripts/Core/Objects/Projectiles/Projectile.cs.meta b/Assets/Scripts/Core/Objects/Projectiles/Projectile.cs.meta new file mode 100644 index 00000000..e0f9b5c5 --- /dev/null +++ b/Assets/Scripts/Core/Objects/Projectiles/Projectile.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 155e444c6e73b404981a30f674ebbe98 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Core/Objects/Projectiles/TestProjectile.meta b/Assets/Scripts/Core/Objects/Projectiles/TestProjectile.meta new file mode 100644 index 00000000..47ac0ae6 --- /dev/null +++ b/Assets/Scripts/Core/Objects/Projectiles/TestProjectile.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e0692a4893eed1143a9ffbe66c0d6767 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Core/Objects/Projectiles/TestProjectile/TestProjectile.cs b/Assets/Scripts/Core/Objects/Projectiles/TestProjectile/TestProjectile.cs new file mode 100644 index 00000000..590825f7 --- /dev/null +++ b/Assets/Scripts/Core/Objects/Projectiles/TestProjectile/TestProjectile.cs @@ -0,0 +1,3 @@ +public class TestProjectile : Projectile{ + +} \ No newline at end of file diff --git a/Assets/Scripts/Core/Objects/Projectiles/TestProjectile/TestProjectile.cs.meta b/Assets/Scripts/Core/Objects/Projectiles/TestProjectile/TestProjectile.cs.meta new file mode 100644 index 00000000..cbc956aa --- /dev/null +++ b/Assets/Scripts/Core/Objects/Projectiles/TestProjectile/TestProjectile.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 42130989abf222142803c893c15fda1d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Library/BaseClasses/EntityObject/AttackEntity.cs b/Assets/Scripts/Library/BaseClasses/EntityObject/AttackEntity.cs index 5b77ced0..82afa323 100644 --- a/Assets/Scripts/Library/BaseClasses/EntityObject/AttackEntity.cs +++ b/Assets/Scripts/Library/BaseClasses/EntityObject/AttackEntity.cs @@ -1,7 +1,7 @@ using System; using UnityEngine; -public class AttackEntity : WorldObject, IAttack{ +public class AttackEntity : WorldEntity, IAttack{ // Attributes [SerializeField] private float damage; [SerializeField] private float knockbackPower; diff --git a/Assets/Scripts/Library/BaseClasses/EntityObject/AttackObject.cs b/Assets/Scripts/Library/BaseClasses/EntityObject/AttackObject.cs index 940b3447..8c23b46a 100644 --- a/Assets/Scripts/Library/BaseClasses/EntityObject/AttackObject.cs +++ b/Assets/Scripts/Library/BaseClasses/EntityObject/AttackObject.cs @@ -1,7 +1,8 @@ using System; using UnityEngine; -public class AttackObject : WorldObject, IAttack{ +// TODO: Review whether attack object should be classified as a world object +public class AttackObject : MonoBehaviour, IAttack{ // Attributes [SerializeField] private float damage; [SerializeField] private float knockbackPower; diff --git a/Assets/Scripts/Library/Util/ObjectFactory.cs b/Assets/Scripts/Library/Util/ObjectFactory.cs index bbe48929..3f5a7d74 100644 --- a/Assets/Scripts/Library/Util/ObjectFactory.cs +++ b/Assets/Scripts/Library/Util/ObjectFactory.cs @@ -49,7 +49,7 @@ public static class ObjectFactory{ int renderingOrder = 0, string objectName = "Unnamed Object" ){ - GameObject prefabObject = CreateObject(prefabPath, parent, position, scale, rotation, renderingOrder, objectName); + GameObject prefabObject = CreateObject(prefabPath, parent == null? ObjectManager.instance.transform : parent, position, scale, rotation, renderingOrder, objectName); if(!prefabObject.TryGetComponent<IAttack>(out var attackObject)) Debug.LogError("Loaded prefab is not an IAttack: " + prefabPath); attackObject.Damage = damage; @@ -75,14 +75,13 @@ public static class ObjectFactory{ public static Collectible CreateCollectibleObject( string prefabPath, - Transform parent = null, Vector3? position = null, Vector3? scale = null, Quaternion? rotation = null, int renderingOrder = 0, string objectName = "Unnamed Object" ){ - GameObject prefabObject = CreateObject(prefabPath, parent == null? ObjectManager.instance.transform : parent, position, scale, rotation, renderingOrder, objectName); + GameObject prefabObject = CreateObject(prefabPath, ObjectManager.instance.transform, position, scale, rotation, renderingOrder, objectName); if(!prefabObject.TryGetComponent<Collectible>(out var collectible)) Debug.LogError("Loaded prefab is not a Collectible: " + prefabPath); prefabObject.layer = LayerMask.NameToLayer(GameEnvironmentConfig.LAYER_COLLECTIBLE); @@ -91,14 +90,13 @@ public static class ObjectFactory{ public static WorldEntity CreateEntity( string prefabPath, - Transform parent = null, Vector3? position = null, Vector3? scale = null, Quaternion? rotation = null, int renderingOrder = 0, string objectName = "Unnamed Object" ){ - GameObject prefabObject = CreateObject(prefabPath, parent == null? EntityManager.instance.transform : parent, position, scale, rotation, renderingOrder, objectName); + GameObject prefabObject = CreateObject(prefabPath, EntityManager.instance.transform, position, scale, rotation, renderingOrder, objectName); if(!prefabObject.TryGetComponent<WorldEntity>(out var entity)) Debug.LogError("Loaded prefab is not an entity: " + prefabPath); return entity; } -- GitLab