Move ChooseRandomEdgeCell from WorldUtils to Map
This commit is contained in:
@@ -558,11 +558,21 @@ namespace OpenRA
|
||||
return xy.Clamp(new Rectangle(r.X, r.Y, r.Width - 1, r.Height - 1));
|
||||
}
|
||||
|
||||
public CPos ChooseRandomCell(MersenneTwister r)
|
||||
public CPos ChooseRandomCell(MersenneTwister rand)
|
||||
{
|
||||
return new CPos(
|
||||
r.Next(Bounds.Left, Bounds.Right),
|
||||
r.Next(Bounds.Top, Bounds.Bottom));
|
||||
rand.Next(Bounds.Left, Bounds.Right),
|
||||
rand.Next(Bounds.Top, Bounds.Bottom));
|
||||
}
|
||||
|
||||
public CPos ChooseRandomEdgeCell(MersenneTwister rand)
|
||||
{
|
||||
var isX = rand.Next(2) == 0;
|
||||
var edge = rand.Next(2) == 0;
|
||||
|
||||
return new CPos(
|
||||
isX ? rand.Next(Bounds.Left, Bounds.Right) : (edge ? Bounds.Left : Bounds.Right),
|
||||
!isX ? rand.Next(Bounds.Top, Bounds.Bottom) : (edge ? Bounds.Top : Bounds.Bottom));
|
||||
}
|
||||
|
||||
public WRange DistanceToEdge(WPos pos, WVec dir)
|
||||
|
||||
@@ -55,18 +55,6 @@ namespace OpenRA
|
||||
}
|
||||
}
|
||||
|
||||
public static CPos ChooseRandomEdgeCell(this World w)
|
||||
{
|
||||
var isX = w.SharedRandom.Next(2) == 0;
|
||||
var edge = w.SharedRandom.Next(2) == 0;
|
||||
|
||||
return new CPos(
|
||||
isX ? w.SharedRandom.Next(w.Map.Bounds.Left, w.Map.Bounds.Right)
|
||||
: (edge ? w.Map.Bounds.Left : w.Map.Bounds.Right),
|
||||
!isX ? w.SharedRandom.Next(w.Map.Bounds.Top, w.Map.Bounds.Bottom)
|
||||
: (edge ? w.Map.Bounds.Top : w.Map.Bounds.Bottom));
|
||||
}
|
||||
|
||||
public static bool HasVoices(this Actor a)
|
||||
{
|
||||
var selectable = a.Info.Traits.GetOrDefault<SelectableInfo>();
|
||||
|
||||
@@ -89,8 +89,8 @@ namespace OpenRA.Mods.RA
|
||||
if (info.DeliveryAircraft != null)
|
||||
{
|
||||
var crate = w.CreateActor(false, crateActor, new TypeDictionary { new OwnerInit(w.WorldActor.Owner) });
|
||||
var startPos = w.ChooseRandomEdgeCell();
|
||||
var altitude = self.World.Map.Rules.Actors[info.DeliveryAircraft].Traits.Get<PlaneInfo>().CruiseAltitude;
|
||||
var startPos = w.Map.ChooseRandomEdgeCell(w.SharedRandom);
|
||||
var altitude = w.Map.Rules.Actors[info.DeliveryAircraft].Traits.Get<PlaneInfo>().CruiseAltitude;
|
||||
var plane = w.CreateActor(info.DeliveryAircraft, new TypeDictionary
|
||||
{
|
||||
new CenterPositionInit(startPos.CenterPosition + new WVec(WRange.Zero, WRange.Zero, altitude)),
|
||||
|
||||
@@ -52,7 +52,7 @@ namespace OpenRA.Mods.RA.Scripting
|
||||
[Desc("Returns a random cell on the visible border of the map.")]
|
||||
public CPos RandomEdgeCell()
|
||||
{
|
||||
return context.World.ChooseRandomEdgeCell();
|
||||
return context.World.Map.ChooseRandomEdgeCell(context.World.SharedRandom);
|
||||
}
|
||||
|
||||
[Desc("Returns true if there is only one human player.")]
|
||||
|
||||
@@ -345,7 +345,7 @@ namespace OpenRA.Mods.RA.Scripting
|
||||
[LuaGlobal]
|
||||
public CPos GetRandomEdgeCell()
|
||||
{
|
||||
return world.ChooseRandomEdgeCell();
|
||||
return world.Map.ChooseRandomEdgeCell(world.SharedRandom);
|
||||
}
|
||||
|
||||
[LuaGlobal]
|
||||
|
||||
@@ -39,7 +39,7 @@ namespace OpenRA.Mods.RA
|
||||
|
||||
var info = (ParatroopersPowerInfo)Info;
|
||||
var items = info.DropItems;
|
||||
var startPos = self.World.ChooseRandomEdgeCell();
|
||||
var startPos = self.World.Map.ChooseRandomEdgeCell(self.World.SharedRandom);
|
||||
|
||||
self.World.AddFrameEndTask(w =>
|
||||
{
|
||||
|
||||
@@ -29,7 +29,7 @@ namespace OpenRA.Mods.RA
|
||||
{
|
||||
base.Activate(self, order, manager);
|
||||
|
||||
var enterCell = self.World.ChooseRandomEdgeCell();
|
||||
var enterCell = self.World.Map.ChooseRandomEdgeCell(self.World.SharedRandom);
|
||||
var altitude = self.World.Map.Rules.Actors["u2"].Traits.Get<PlaneInfo>().CruiseAltitude;
|
||||
|
||||
var plane = self.World.CreateActor("u2", new TypeDictionary
|
||||
|
||||
Reference in New Issue
Block a user