Stop more simple behaviors retaining configs

This commit is contained in:
Meta Vens 2026-06-15 17:48:36 +01:00
commit 8930b7945e
9 changed files with 37 additions and 32 deletions

View file

@ -21,24 +21,24 @@ public class ItemUsageConfig : RuntimeBehaviorConfig
public class ItemUsage : Behavior
{
private ItemUsageConfig _data;
private readonly string _itemKey;
public ItemUsage(ItemUsageConfig data, EquippedItem item) : base(data, item)
{
_data = data;
_itemKey = data.ItemKey;
}
public ItemUsage(ItemUsageConfig data, ConsumableItemEffect item) : base(data, item)
{
_data = data;
_itemKey = data.ItemKey;
}
public override bool Execute(float dt)
{
var cargo = Entity.FindItemInCargo(_data.ItemKey);
var cargo = Entity.FindItemInCargo(_itemKey);
if (cargo == null) return false;
var item = cargo.GetFirstItem(_data.ItemKey);
var item = cargo.GetFirstItem(_itemKey);
if (item is SimpleCommodity simpleCommodity)
cargo.Remove(simpleCommodity, 1);
if (item is CraftedItemInstance craftedItemInstance)

View file

@ -27,22 +27,22 @@ public class ReflectorConfig : RuntimeBehaviorConfig
public class Reflector : Behavior
{
private ReflectorConfig _data;
private readonly PerformanceStat _crossSection;
public Reflector(ReflectorConfig data, EquippedItem item) : base(data, item)
{
_data = data;
_crossSection = data.CrossSection;
}
public Reflector(ReflectorConfig data, ConsumableItemEffect item) : base(data, item)
{
_data = data;
_crossSection = data.CrossSection;
}
public override bool Execute(float dt)
{
Entity.VisibilitySources[this] = Evaluate(_data.CrossSection) * Entity.Zone.GetLight(Entity.Position.xz);
Entity.VisibilitySources[this] = Evaluate(_crossSection) * Entity.Zone.GetLight(Entity.Position.xz);
return true;
}
}
}

View file

@ -21,20 +21,20 @@ public class VelocityConversionConfig : RuntimeBehaviorConfig
public class VelocityConversion : Behavior
{
private VelocityConversionConfig _data;
private readonly PerformanceStat _lambda;
public VelocityConversion(VelocityConversionConfig data, EquippedItem item) : base(data, item)
{
_data = data;
_lambda = data.Lambda;
}
public VelocityConversion(VelocityConversionConfig data, ConsumableItemEffect item) : base(data, item)
{
_data = data;
_lambda = data.Lambda;
}
public override bool Execute(float dt)
{
Entity.Velocity = AetheriaMath.Damp(Entity.Velocity, Entity.Direction * length(Entity.Velocity), Evaluate(_data.Lambda), dt);
Entity.Velocity = AetheriaMath.Damp(Entity.Velocity, Entity.Direction * length(Entity.Velocity), Evaluate(_lambda), dt);
return true;
}
}
}

View file

@ -26,25 +26,25 @@ public class VelocityLimit : Behavior
{
public float Limit { get; private set; }
private VelocityLimitConfig _data;
private readonly PerformanceStat _topSpeed;
public VelocityLimit(VelocityLimitConfig data, EquippedItem item) : base(data, item)
{
_data = data;
Limit = Evaluate(_data.TopSpeed);
_topSpeed = data.TopSpeed;
Limit = Evaluate(_topSpeed);
}
public VelocityLimit(VelocityLimitConfig data, ConsumableItemEffect item) : base(data, item)
{
_data = data;
Limit = Evaluate(_data.TopSpeed);
_topSpeed = data.TopSpeed;
Limit = Evaluate(_topSpeed);
}
public override bool Execute(float dt)
{
Limit = Evaluate(_data.TopSpeed);
Limit = Evaluate(_topSpeed);
if (length(Entity.Velocity) > Limit)
Entity.Velocity = normalize(Entity.Velocity) * Limit;
return true;
}
}
}

View file

@ -25,20 +25,20 @@ public class VisibilityConfig : RuntimeBehaviorConfig
public class Visibility : Behavior
{
private VisibilityConfig _data;
private readonly PerformanceStat _visibility;
public Visibility(VisibilityConfig data, EquippedItem item) : base(data, item)
{
_data = data;
_visibility = data.Visibility;
}
public Visibility(VisibilityConfig data, ConsumableItemEffect item) : base(data, item)
{
_data = data;
_visibility = data.Visibility;
}
public override bool Execute(float dt)
{
Entity.VisibilitySources[this] = Evaluate(_data.Visibility);
Entity.VisibilitySources[this] = Evaluate(_visibility);
return true;
}
}
}

View file

@ -24,20 +24,20 @@ public class WearConfig : RuntimeBehaviorConfig
public class Wear : Behavior
{
private WearConfig _data;
private readonly bool _perSecond;
public Wear(WearConfig data, EquippedItem item) : base(data, item)
{
_data = data;
_perSecond = data.PerSecond;
}
public Wear(WearConfig data, ConsumableItemEffect item) : base(data, item)
{
_data = data;
_perSecond = data.PerSecond;
}
public override bool Execute(float dt)
{
CauseWearDamage(_data.PerSecond ? dt : 1);
CauseWearDamage(_perSecond ? dt : 1);
return true;
}
}
}