Variable Movement Added

This commit is contained in:
2022-02-19 15:03:06 +03:00
parent 2c996a9a29
commit 1139293328
16 changed files with 179 additions and 0 deletions

View File

@@ -0,0 +1,11 @@
namespace Syntriax.Modules.Movement.VariableMovement.SimpleImplementation
{
public class SimpleVariableMovement : IVariableMovement
{
public IVariableMovementAsset VariableMovementAsset { get; protected set; } = null;
public bool StateEnabled { get; set; } = false;
public SimpleVariableMovement(IVariableMovementAsset variableMovementAsset)
=> VariableMovementAsset = variableMovementAsset;
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 05bc4dd9eef91cf4b82018ce47c7b9c9
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,13 @@
using UnityEngine;
namespace Syntriax.Modules.Movement.VariableMovement.SimpleImplementation
{
[CreateAssetMenu(fileName = "Simple Variable Movement Asset", menuName = "Syntriax/Modules/Movement/VariableMovement/Simple Variable Movement Asset", order = 0)]
public class SimpleVariableMovementAsset : ScriptableObject, IVariableMovementAsset
{
[SerializeField] protected float movementMultiplier = 1f;
public string MovementName => this.name;
public float MovementMultiplier => movementMultiplier;
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: f0b94067bad67de4689a6a41749e1b1b
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,28 @@
using System.Collections.Generic;
using UnityEngine;
namespace Syntriax.Modules.Movement.VariableMovement.SimpleImplementation
{
public class SimpleVariableMovementController : MonoBehaviour, IVariableMovementController
{
private static IVariableMovement DefaultVariableMovement = new SimpleVariableMovement(new DefaulVariableMovementAsset());
public bool StateEnabled { get; set; } = false;
public List<IVariableMovement> VariableMovements { get; protected set; } = new List<IVariableMovement>();
public IVariableMovement CurrentVariableMovement
{
get
{
if (!StateEnabled)
return DefaultVariableMovement;
foreach (IVariableMovement variableMovement in VariableMovements)
if (variableMovement.StateEnabled)
return variableMovement;
return DefaultVariableMovement;
}
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 580058b11e72667419d381dbffba60e8
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: