Added New Bases and removed Air and Ground Movement Implementations Temporarily

This commit is contained in:
2022-11-14 12:41:11 +03:00
parent a2d64a2eef
commit 99f5cf4fa4
12 changed files with 46 additions and 104 deletions

61
Bases/MovementBase.cs Normal file
View File

@@ -0,0 +1,61 @@
using System;
using Syntriax.Modules.Movement.State;
using UnityEngine;
namespace Syntriax.Modules.Movement
{
public abstract class MovementBase : MonoBehaviour, IMovement
{
protected IToggleState toggleState = null;
protected IMovementController movementController = null;
private bool _canTakeOver = false;
public float BaseSpeed { get; set; } = 1f;
public float MovementMultiplier { get; set; } = 1f;
public Action<bool> OnTakeOverStateChanged { get; set; } = null;
public bool CanTakeOver
{
get => _canTakeOver;
protected set
{
bool isNewValue = _canTakeOver != value;
_canTakeOver = value;
if (isNewValue)
OnTakeOverStateChanged.Invoke(value);
}
}
public IToggleState ToggleState { get; protected set; } = null;
public abstract void ApplyMovement();
public abstract void Move(float x = 0, float y = 0, float z = 0);
protected abstract void OnActivated();
protected abstract void OnDeactivated();
protected virtual void Start()
{
toggleState = GetComponent<ToggleState>();
movementController = GetComponent<IMovementController>();
movementController.OnMovementActivated += OnActivated;
movementController.OnMovementDeactivated += OnDeactivated;
}
private void OnActivated(IMovement movement)
{
if ((object)movement != this)
return;
OnActivated();
}
private void OnDeactivated(IMovement movement)
{
if ((object)movement != this)
return;
OnDeactivated();
}
}
}

View File

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

10
Bases/MovementBase1D.cs Normal file
View File

@@ -0,0 +1,10 @@
namespace Syntriax.Modules.Movement
{
public abstract class MovementBase1D : MovementBase
{
protected abstract float moveValue { get; set; }
public override void Move(float x = 0, float y = 0, float z = 0)
=> moveValue = x * BaseSpeed * MovementMultiplier;
}
}

View File

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

12
Bases/MovementBase2D.cs Normal file
View File

@@ -0,0 +1,12 @@
using UnityEngine;
namespace Syntriax.Modules.Movement
{
public abstract class MovementBase2D : MovementBase
{
protected abstract Vector2 moveValue { get; set; }
public override void Move(float x = 0, float y = 0, float z = 0)
=> moveValue = new Vector2(x, y) * BaseSpeed * MovementMultiplier;
}
}

View File

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

12
Bases/MovementBase3D.cs Normal file
View File

@@ -0,0 +1,12 @@
using UnityEngine;
namespace Syntriax.Modules.Movement
{
public abstract class MovementBase3D : MovementBase
{
protected abstract Vector3 moveValue { get; set; }
public override void Move(float x = 0, float y = 0, float z = 0)
=> moveValue = new Vector3(x, y, z) * BaseSpeed * MovementMultiplier;
}
}

View File

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