Refactor the settings to remove the old class
This commit is contained in:
@@ -23,8 +23,8 @@ namespace AppleHills.Core.Settings
|
||||
[SerializeField] private GameObject levelSwitchMenuPrefab;
|
||||
|
||||
[Header("Item Configuration")]
|
||||
[SerializeField] private List<GameSettings.CombinationRule> combinationRules = new List<GameSettings.CombinationRule>();
|
||||
[SerializeField] private List<GameSettings.SlotItemConfig> slotItemConfigs = new List<GameSettings.SlotItemConfig>();
|
||||
[SerializeField] private List<CombinationRule> combinationRules = new List<CombinationRule>();
|
||||
[SerializeField] private List<SlotItemConfig> slotItemConfigs = new List<SlotItemConfig>();
|
||||
|
||||
// IInteractionSettings implementation
|
||||
public float PlayerStopDistance => playerStopDistance;
|
||||
@@ -33,8 +33,8 @@ namespace AppleHills.Core.Settings
|
||||
public LayerMask InteractableLayerMask => interactableLayerMask;
|
||||
public GameObject BasePickupPrefab => basePickupPrefab;
|
||||
public GameObject LevelSwitchMenuPrefab => levelSwitchMenuPrefab;
|
||||
public List<GameSettings.CombinationRule> CombinationRules => combinationRules;
|
||||
public List<GameSettings.SlotItemConfig> SlotItemConfigs => slotItemConfigs;
|
||||
public List<CombinationRule> CombinationRules => combinationRules;
|
||||
public List<SlotItemConfig> SlotItemConfigs => slotItemConfigs;
|
||||
|
||||
public override void OnValidate()
|
||||
{
|
||||
|
||||
27
Assets/Scripts/Core/Settings/ItemConfigTypes.cs
Normal file
27
Assets/Scripts/Core/Settings/ItemConfigTypes.cs
Normal file
@@ -0,0 +1,27 @@
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace AppleHills.Core.Settings
|
||||
{
|
||||
/// <summary>
|
||||
/// Defines a rule for combining two items
|
||||
/// </summary>
|
||||
[System.Serializable]
|
||||
public class CombinationRule
|
||||
{
|
||||
public PickupItemData itemA;
|
||||
public PickupItemData itemB;
|
||||
public GameObject resultPrefab; // The prefab to spawn as the result
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Configuration for items that can be placed in slots
|
||||
/// </summary>
|
||||
[System.Serializable]
|
||||
public class SlotItemConfig
|
||||
{
|
||||
public PickupItemData slotItem; // The slot object (SO reference)
|
||||
public List<PickupItemData> allowedItems;
|
||||
public List<PickupItemData> forbiddenItems; // Items that cannot be placed in this slot
|
||||
}
|
||||
}
|
||||
3
Assets/Scripts/Core/Settings/ItemConfigTypes.cs.meta
Normal file
3
Assets/Scripts/Core/Settings/ItemConfigTypes.cs.meta
Normal file
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9f9547445fd84c7db30533b7ee9d81dd
|
||||
timeCreated: 1758699048
|
||||
13
Assets/Scripts/Core/Settings/MovementModeTypes.cs
Normal file
13
Assets/Scripts/Core/Settings/MovementModeTypes.cs
Normal file
@@ -0,0 +1,13 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace AppleHills.Core.Settings
|
||||
{
|
||||
/// <summary>
|
||||
/// Enum defining different movement modes for player movement
|
||||
/// </summary>
|
||||
public enum HoldMovementMode
|
||||
{
|
||||
Pathfinding,
|
||||
Direct
|
||||
}
|
||||
}
|
||||
3
Assets/Scripts/Core/Settings/MovementModeTypes.cs.meta
Normal file
3
Assets/Scripts/Core/Settings/MovementModeTypes.cs.meta
Normal file
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b6b1454235ab476dae09e99238d6c7ce
|
||||
timeCreated: 1758699033
|
||||
@@ -12,7 +12,7 @@ namespace AppleHills.Core.Settings
|
||||
[SerializeField] private float moveSpeed = 5f;
|
||||
[SerializeField] private float stopDistance = 0.1f;
|
||||
[SerializeField] private bool useRigidbody = true;
|
||||
[SerializeField] private GameSettings.HoldMovementMode defaultHoldMovementMode = GameSettings.HoldMovementMode.Pathfinding;
|
||||
[SerializeField] private HoldMovementMode defaultHoldMovementMode = HoldMovementMode.Pathfinding;
|
||||
|
||||
[Header("Follower Settings")]
|
||||
[SerializeField] private float followDistance = 1.5f;
|
||||
@@ -31,7 +31,7 @@ namespace AppleHills.Core.Settings
|
||||
public float MoveSpeed => moveSpeed;
|
||||
public float StopDistance => stopDistance;
|
||||
public bool UseRigidbody => useRigidbody;
|
||||
public GameSettings.HoldMovementMode DefaultHoldMovementMode => defaultHoldMovementMode;
|
||||
public HoldMovementMode DefaultHoldMovementMode => defaultHoldMovementMode;
|
||||
public float FollowDistance => followDistance;
|
||||
public float ManualMoveSmooth => manualMoveSmooth;
|
||||
public float ThresholdFar => thresholdFar;
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using UnityEngine;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace AppleHills.Core.Settings
|
||||
{
|
||||
@@ -11,7 +12,7 @@ namespace AppleHills.Core.Settings
|
||||
float MoveSpeed { get; }
|
||||
float StopDistance { get; }
|
||||
bool UseRigidbody { get; }
|
||||
GameSettings.HoldMovementMode DefaultHoldMovementMode { get; }
|
||||
HoldMovementMode DefaultHoldMovementMode { get; }
|
||||
|
||||
// Follower settings
|
||||
float FollowDistance { get; }
|
||||
@@ -35,8 +36,8 @@ namespace AppleHills.Core.Settings
|
||||
LayerMask InteractableLayerMask { get; }
|
||||
GameObject BasePickupPrefab { get; }
|
||||
GameObject LevelSwitchMenuPrefab { get; }
|
||||
System.Collections.Generic.List<GameSettings.CombinationRule> CombinationRules { get; }
|
||||
System.Collections.Generic.List<GameSettings.SlotItemConfig> SlotItemConfigs { get; }
|
||||
List<CombinationRule> CombinationRules { get; }
|
||||
List<SlotItemConfig> SlotItemConfigs { get; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user