Commit Description:
Merge in m4-beginning.
Commit Description:
Merge in m4-beginning.
References:
File last commit:
Show/Diff file:
Action:
isometric-park-fna/Engines/PolicyEngine.cs
56 lines | 1.6 KiB | text/x-csharp | CSharpLexer
using System;
using Encompass;
using isometricparkfna.Messages;
using isometricparkfna.Components;
namespace isometricparkfna.Engines
{
[Receives(typeof(SetTrespassingPolicyMessage))]
[Reads(typeof(TrespassingPolicyComponent))]
[Writes(typeof(TrespassingPolicyComponent),
typeof(BudgetLineComponent))]
public class PolicyEngine : Engine
{
public PolicyEngine()
{
}
public override void Update(double dt)
{
foreach (ref readonly var message
in ReadMessages<SetTrespassingPolicyMessage>())
{
foreach (ref readonly var entity
in ReadEntities<TrespassingPolicyComponent>())
{
SetComponent<TrespassingPolicyComponent>(entity,
new TrespassingPolicyComponent {tresspassingPolicy
= message.newEnforcementLevel });
var newCost =message.newEnforcementLevel switch {
EnforcementLevel.NoEnforcement => 0,
EnforcementLevel.EnforcedWithWarnings => 100,
EnforcementLevel.EnforcedWithFines => 100,
};
SetComponent<BudgetLineComponent>(entity,
new BudgetLineComponent {category = "Enforcement",
amount = newCost
});
}
}
}
}
}