- Movement & Controller
- Special Actions
- ToggleState
- ColliderChecker
- and 2D Implementations
This commit is contained in:
2022-03-08 10:13:27 +03:00
parent 91839d2323
commit f0ffc2a8c4
81 changed files with 419 additions and 751 deletions

View File

@@ -1,12 +0,0 @@
namespace Syntriax.Modules.Movement.VariableMovement
{
public class DefaulVariableMovementAsset : IVariableMovementAsset
{
public static DefaulVariableMovementAsset _instance = new DefaulVariableMovementAsset();
public static DefaulVariableMovementAsset Instance => _instance;
public string MovementName => "Default Movement";
public float MovementMultiplier { get; } = 1f;
}
}

View File

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

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: bb29c5d8308d0b5469f8761266612fe5
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,7 +0,0 @@
namespace Syntriax.Modules.Movement.VariableMovement
{
public class VariableMovementAssetFactory : TypeFactoryBaseMonoBehaviour<VariableMovementAssetFactory, IVariableMovementAsset>
{
protected override int InitialCapacity => 8;
}
}

View File

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

View File

@@ -1,7 +0,0 @@
namespace Syntriax.Modules.Movement.VariableMovement
{
public class VariableMovementCollectionFactory : TypeFactoryBaseMonoBehaviour<VariableMovementCollectionFactory, IVariableMovementCollection>
{
protected override int InitialCapacity => 8;
}
}

View File

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

View File

@@ -1,7 +0,0 @@
namespace Syntriax.Modules.Movement.VariableMovement
{
public class VariableMovementControllerFactory : TypeFactoryBaseMonoBehaviour<VariableMovementControllerFactory, IVariableMovementController>
{
protected override int InitialCapacity => 8;
}
}

View File

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

View File

@@ -1,7 +0,0 @@
namespace Syntriax.Modules.Movement.VariableMovement
{
public class VariableMovementFactory : TypeFactoryBaseMonoBehaviour<VariableMovementFactory, IVariableMovement>
{
protected override int InitialCapacity => 8;
}
}

View File

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

View File

@@ -1,7 +0,0 @@
namespace Syntriax.Modules.Movement.VariableMovement
{
public interface IVariableMovement : IState
{
IVariableMovementAsset VariableMovementAsset { get; set; }
}
}

View File

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

View File

@@ -1,8 +0,0 @@
namespace Syntriax.Modules.Movement.VariableMovement
{
public interface IVariableMovementAsset
{
string MovementName { get; }
float MovementMultiplier { get; }
}
}

View File

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

View File

@@ -1,10 +0,0 @@
using System.Collections.Generic;
namespace Syntriax.Modules.Movement.VariableMovement
{
public interface IVariableMovementCollection
{
IVariableMovementAsset DefaultVariableMovementsAsset { get; }
List<IVariableMovementAsset> VariableMovementsAssets { get; }
}
}

View File

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

View File

@@ -1,11 +0,0 @@
using System.Collections.Generic;
namespace Syntriax.Modules.Movement.VariableMovement
{
public interface IVariableMovementController : IState
{
List<IVariableMovement> VariableMovements { get; }
IVariableMovementCollection VariableMovementCollection { get; set; }
IVariableMovement CurrentVariableMovement { get; }
}
}

View File

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

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: bc3b3517b04c51746a6f678728212d27
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

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

View File

@@ -1,13 +0,0 @@
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

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

View File

@@ -1,15 +0,0 @@
using System.Collections.Generic;
using UnityEngine;
namespace Syntriax.Modules.Movement.VariableMovement.SimpleImplementation
{
[CreateAssetMenu(fileName = "Simple VM Asset Collection", menuName = "Syntriax/Modules/Movement/VariableMovement/Simple VM Asset Collection", order = 0)]
public class SimpleVariableMovementCollection : ScriptableObject, IVariableMovementCollection
{
[SerializeField] protected SimpleVariableMovementAsset defaultVariableMovementsAsset = null;
[SerializeField] protected List<SimpleVariableMovementAsset> variableMovementsAssets = new List<SimpleVariableMovementAsset>();
public IVariableMovementAsset DefaultVariableMovementsAsset => defaultVariableMovementsAsset;
public List<IVariableMovementAsset> VariableMovementsAssets => variableMovementsAssets.ConvertAll<IVariableMovementAsset>(simple => (IVariableMovementAsset)simple);
}
}

View File

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

View File

@@ -1,50 +0,0 @@
using System.Collections.Generic;
using UnityEngine;
namespace Syntriax.Modules.Movement.VariableMovement.SimpleImplementation
{
public class SimpleVariableMovementController : MonoBehaviour, IVariableMovementController
{
protected IVariableMovement _defaultVariableMovement = new SimpleVariableMovement();
protected IVariableMovementCollection _variableMovementCollection = null;
public bool StateEnabled { get; set; } = false;
public List<IVariableMovement> VariableMovements { get; protected set; } = new List<IVariableMovement>();
public IVariableMovementCollection VariableMovementCollection
{
get => _variableMovementCollection;
set
{
_variableMovementCollection = value;
VariableMovements.Clear();
_defaultVariableMovement.VariableMovementAsset = value.DefaultVariableMovementsAsset;
_defaultVariableMovement.StateEnabled = true;
if (VariableMovements.Capacity < value.VariableMovementsAssets.Count)
VariableMovements.Capacity = value.VariableMovementsAssets.Count;
foreach (var asset in value.VariableMovementsAssets)
VariableMovements.Add(new SimpleVariableMovement(asset));
}
}
public IVariableMovement CurrentVariableMovement
{
get
{
if (!StateEnabled)
return _defaultVariableMovement;
foreach (IVariableMovement variableMovement in VariableMovements)
if (variableMovement.StateEnabled)
return variableMovement;
return _defaultVariableMovement;
}
}
}
}

View File

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

View File

@@ -1,24 +0,0 @@
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
namespace Syntriax.Modules.Movement.VariableMovement
{
public class VariableMovementBehaviourApplier : MonoBehaviour
{
private List<IMovement> movements = new List<IMovement>();
private IVariableMovementController variableMovementController = null;
private void Start()
{
movements = GetComponents<IMovement>().ToList();
variableMovementController = GetComponent<IVariableMovementController>();
}
private void Update()
{
foreach (var movement in movements)
movement.MovementMultiplier = variableMovementController.CurrentVariableMovement.VariableMovementAsset.MovementMultiplier;
}
}
}

View File

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