Skip to content

Commit

Permalink
Remove AS's copy of ResourcePurifier, update GCoRP.
Browse files Browse the repository at this point in the history
  • Loading branch information
MustaphaTR committed Dec 15, 2023
1 parent 495fc22 commit 9c80068
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 94 deletions.
17 changes: 11 additions & 6 deletions OpenRA.Mods.AS/Traits/Conditions/GrantConditionOnResourcePurify.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
*/
#endregion

using System.Linq;
using OpenRA.Mods.Common.Traits;
using OpenRA.Traits;

Expand All @@ -24,30 +25,34 @@ public class GrantConditionOnResourcePurifyInfo : PausableConditionalTraitInfo
[FieldLoader.Require]
public readonly int Duration;

public override object Create(ActorInitializer init) { return new GrantConditionOnResourcePurify(init.Self, this); }
[Desc("ResourceTypes to grant this condition. When empty, all resources trigger.")]
public readonly string[] ResourceTypes = System.Array.Empty<string>();

public override object Create(ActorInitializer init) { return new GrantConditionOnResourcePurify(this); }
}

public class GrantConditionOnResourcePurify : PausableConditionalTrait<GrantConditionOnResourcePurifyInfo>, ITick, IResourcePurifier
public class GrantConditionOnResourcePurify : PausableConditionalTrait<GrantConditionOnResourcePurifyInfo>, ITick, INotifyResourceAccepted
{
readonly Actor self;
readonly GrantConditionOnResourcePurifyInfo info;

int token = Actor.InvalidConditionToken;

int ticks;

public GrantConditionOnResourcePurify(Actor self, GrantConditionOnResourcePurifyInfo info)
public GrantConditionOnResourcePurify(GrantConditionOnResourcePurifyInfo info)
: base(info)
{
this.self = self;
this.info = info;
}

void IResourcePurifier.RefineAmount(int amount)
void INotifyResourceAccepted.OnResourceAccepted(Actor self, Actor refinery, string resourceType, int count, int value)
{
if (IsTraitDisabled)
return;

if (info.ResourceTypes.Length != 0 && !Info.ResourceTypes.Contains(resourceType))
return;

ticks = info.Duration;

if (token == Actor.InvalidConditionToken)
Expand Down
78 changes: 0 additions & 78 deletions OpenRA.Mods.AS/Traits/ResourcePurifier.cs

This file was deleted.

4 changes: 0 additions & 4 deletions OpenRA.Mods.Common/Traits/Buildings/Refinery.cs
Original file line number Diff line number Diff line change
Expand Up @@ -90,10 +90,6 @@ int IAcceptResources.AcceptResources(Actor self, string resourceType, int count)
foreach (var rrd in refineryResourceDelivereds)
rrd.ResourceGiven(self, value);

var purifiers = self.World.ActorsWithTrait<IResourcePurifier>().Where(x => x.Actor.Owner == self.Owner).Select(x => x.Trait);
foreach (var p in purifiers)
p.RefineAmount(value);

if (info.ShowTicks)
currentDisplayValue += value;

Expand Down
6 changes: 0 additions & 6 deletions OpenRA.Mods.Common/TraitsInterfacesExternal.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,6 @@ namespace OpenRA.Mods.Common.Traits
[RequireExplicitImplementation]
public interface IBuildPaletteOrderModifierInfo : ITraitInfoInterface { int GetBuildPaletteOrderModifier(TechTree techTree, string queue); }

[RequireExplicitImplementation]
public interface IResourcePurifier
{
void RefineAmount(int amount);
}

[RequireExplicitImplementation]
public interface IResourceLogicLayer
{
Expand Down

0 comments on commit 9c80068

Please sign in to comment.