Remove IClientSingularityInstance, move visual effects to SingularityDistortionComponent (#4194)

* Remove IClientSingularityInstance

* In and out 5 minute refactor

* Component states for singularity distortion

* Fix distortion states

* Address reviews
This commit is contained in:
DrSmugleaf
2021-06-24 04:48:11 +02:00
committed by GitHub
parent 34e457b854
commit 716bee0746
16 changed files with 244 additions and 190 deletions

View File

@@ -1,75 +1,11 @@
using Content.Shared.Singularity.Components;
using Content.Shared.Singularity.Components;
using Robust.Shared.GameObjects;
using Robust.Shared.ViewVariables;
namespace Content.Client.Singularity.Components
{
[RegisterComponent]
[ComponentReference(typeof(IClientSingularityInstance))]
class ClientSingularityComponent : SharedSingularityComponent, IClientSingularityInstance
[ComponentReference(typeof(SharedSingularityComponent))]
public class ClientSingularityComponent : SharedSingularityComponent
{
[ViewVariables]
public int Level { get; set; }
//I am lazy
[ViewVariables]
public float Intensity
{
get
{
switch (Level)
{
case 0:
return 0.0f;
case 1:
return 2.7f;
case 2:
return 14.4f;
case 3:
return 47.2f;
case 4:
return 180.0f;
case 5:
return 600.0f;
case 6:
return 800.0f;
}
return -1.0f;
}
}
[ViewVariables]
public float Falloff
{
get
{
switch (Level)
{
case 0:
return 9999f;
case 1:
return 6.4f;
case 2:
return 7.0f;
case 3:
return 8.0f;
case 4:
return 10.0f;
case 5:
return 12.0f;
case 6:
return 12.0f;
}
return -1.0f;
}
}
public override void HandleComponentState(ComponentState? curState, ComponentState? nextState)
{
if (curState is not SingularityComponentState state)
{
return;
}
Level = state.Level;
}
}
}

View File

@@ -6,7 +6,7 @@ namespace Content.Client.Singularity.Components
{
public class ContainmentFieldComponent : Component
{
public override string Name => "Containment Field";
public override string Name => "ContainmentField";
private SpriteComponent? _spriteComponent;
@@ -16,7 +16,7 @@ namespace Content.Client.Singularity.Components
if (!Owner.TryGetComponent(out _spriteComponent))
{
Logger.Error("Containmentfieldcomponent created without spritecomponent");
Logger.Error($"{nameof(ContainmentFieldComponent)} created without {nameof(SpriteComponent)}");
}
else
{

View File

@@ -1,12 +0,0 @@
namespace Content.Client.Singularity.Components
{
interface IClientSingularityInstance
{
public float Intensity { get; }
public float Falloff { get; }
}
}

View File

@@ -1,17 +0,0 @@
using Robust.Shared.GameObjects;
using Robust.Shared.ViewVariables;
namespace Content.Client.Singularity.Components
{
[RegisterComponent]
[ComponentReference(typeof(IClientSingularityInstance))]
public class ToySingularityComponent : Component, IClientSingularityInstance
{
public override string Name => "ToySingularity";
[ViewVariables(VVAccess.ReadWrite)]
public float Falloff { get; set; } = 2.0f;
[ViewVariables(VVAccess.ReadWrite)]
public float Intensity { get; set; } = 0.25f;
}
}