Require explicit implementation of INotifyPassenger(Entered|Exited)

This commit is contained in:
Taryn Hill
2016-03-29 06:59:43 -05:00
parent 728bad9565
commit 6d4e365af5
2 changed files with 10 additions and 7 deletions

View File

@@ -93,7 +93,7 @@ namespace OpenRA.Mods.Common.Traits
getArmaments = () => armaments; getArmaments = () => armaments;
} }
public void PassengerEntered(Actor self, Actor passenger) void INotifyPassengerEntered.OnPassengerEntered(Actor self, Actor passenger)
{ {
paxFacing.Add(passenger, passenger.Trait<IFacing>()); paxFacing.Add(passenger, passenger.Trait<IFacing>());
paxPos.Add(passenger, passenger.Trait<IPositionable>()); paxPos.Add(passenger, passenger.Trait<IPositionable>());
@@ -103,7 +103,7 @@ namespace OpenRA.Mods.Common.Traits
.Where(a => Info.Armaments.Contains(a.Info.Name))); .Where(a => Info.Armaments.Contains(a.Info.Name)));
} }
public void PassengerExited(Actor self, Actor passenger) void INotifyPassengerExited.OnPassengerExited(Actor self, Actor passenger)
{ {
paxFacing.Remove(passenger); paxFacing.Remove(passenger);
paxPos.Remove(passenger); paxPos.Remove(passenger);

View File

@@ -246,7 +246,7 @@ namespace OpenRA.Mods.Common.Traits
SetPassengerFacing(a); SetPassengerFacing(a);
foreach (var npe in self.TraitsImplementing<INotifyPassengerExited>()) foreach (var npe in self.TraitsImplementing<INotifyPassengerExited>())
npe.PassengerExited(self, a); npe.OnPassengerExited(self, a);
var p = a.Trait<Passenger>(); var p = a.Trait<Passenger>();
p.Transport = null; p.Transport = null;
@@ -311,7 +311,7 @@ namespace OpenRA.Mods.Common.Traits
} }
foreach (var npe in self.TraitsImplementing<INotifyPassengerEntered>()) foreach (var npe in self.TraitsImplementing<INotifyPassengerEntered>())
npe.PassengerEntered(self, a); npe.OnPassengerEntered(self, a);
var p = a.Trait<Passenger>(); var p = a.Trait<Passenger>();
p.Transport = self; p.Transport = self;
@@ -406,7 +406,7 @@ namespace OpenRA.Mods.Common.Traits
c.Trait<Passenger>().Transport = self; c.Trait<Passenger>().Transport = self;
foreach (var npe in self.TraitsImplementing<INotifyPassengerEntered>()) foreach (var npe in self.TraitsImplementing<INotifyPassengerEntered>())
npe.PassengerEntered(self, c); npe.OnPassengerEntered(self, c);
} }
initialized = true; initialized = true;
@@ -421,8 +421,11 @@ namespace OpenRA.Mods.Common.Traits
} }
} }
public interface INotifyPassengerEntered { void PassengerEntered(Actor self, Actor passenger); } [RequireExplicitImplementation]
public interface INotifyPassengerExited { void PassengerExited(Actor self, Actor passenger); } public interface INotifyPassengerEntered { void OnPassengerEntered(Actor self, Actor passenger); }
[RequireExplicitImplementation]
public interface INotifyPassengerExited { void OnPassengerExited(Actor self, Actor passenger); }
public class RuntimeCargoInit : IActorInit<Actor[]>, ISuppressInitExport public class RuntimeCargoInit : IActorInit<Actor[]>, ISuppressInitExport
{ {