From b1fba883a9b35712822047ded37e75f6139ada8d Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Sun, 19 Oct 2014 12:33:16 +1300 Subject: [PATCH] Remove legacy Lua API. --- AUTHORS | 7 - Makefile | 4 +- OpenRA.Mods.RA/OpenRA.Mods.RA.csproj | 11 - OpenRA.Mods.RA/Scripting/LuaScriptContext.cs | 142 ------ OpenRA.Mods.RA/Scripting/LuaScriptEvents.cs | 65 --- .../Scripting/LuaScriptInterface.cs | 470 ------------------ mods/common/lua/actor.lua | 236 --------- mods/common/lua/facing.lua | 10 - mods/common/lua/map.lua | 109 ---- mods/common/lua/media.lua | 20 - mods/common/lua/mission.lua | 37 -- mods/common/lua/openra.lua | 83 ---- mods/common/lua/production.lua | 94 ---- mods/common/lua/reinforcements.lua | 82 --- mods/common/lua/rules.lua | 21 - mods/common/lua/supportpowers.lua | 44 -- mods/common/lua/team.lua | 73 --- mods/common/lua/utils.lua | 94 ---- packaging/package-all.sh | 6 +- packaging/windows/OpenRA.nsi | 4 - thirdparty/KopiLua.dll | Bin 245248 -> 0 bytes thirdparty/NLua.dll | Bin 75776 -> 0 bytes 22 files changed, 2 insertions(+), 1610 deletions(-) delete mode 100644 OpenRA.Mods.RA/Scripting/LuaScriptContext.cs delete mode 100644 OpenRA.Mods.RA/Scripting/LuaScriptEvents.cs delete mode 100644 OpenRA.Mods.RA/Scripting/LuaScriptInterface.cs delete mode 100644 mods/common/lua/actor.lua delete mode 100644 mods/common/lua/facing.lua delete mode 100644 mods/common/lua/map.lua delete mode 100644 mods/common/lua/media.lua delete mode 100644 mods/common/lua/mission.lua delete mode 100644 mods/common/lua/openra.lua delete mode 100644 mods/common/lua/production.lua delete mode 100644 mods/common/lua/reinforcements.lua delete mode 100644 mods/common/lua/rules.lua delete mode 100644 mods/common/lua/supportpowers.lua delete mode 100644 mods/common/lua/team.lua delete mode 100644 mods/common/lua/utils.lua delete mode 100644 thirdparty/KopiLua.dll delete mode 100644 thirdparty/NLua.dll diff --git a/AUTHORS b/AUTHORS index f99bd317ac..32b7426e38 100644 --- a/AUTHORS +++ b/AUTHORS @@ -111,13 +111,6 @@ the Apache 2.0 license. Using GeoLite2 data created by MaxMind and distributed under the CC BY-SA 3.0 license. -Using KopiLua created by Mark Feldman and -maintained by Vinicius Jarina and distributed -under the MIT license. - -Using NLua created by Vinicius Jarina and -distributed under the MIT license. - Using SharpFont created by Robert Rouhani and distributed under the MIT license. diff --git a/Makefile b/Makefile index d407aa0682..2986ec25aa 100644 --- a/Makefile +++ b/Makefile @@ -120,7 +120,7 @@ mod_common: $(mod_common_TARGET) ##### Official Mods ##### -STD_MOD_LIBS = $(game_TARGET) thirdparty/KopiLua.dll thirdparty/NLua.dll +STD_MOD_LIBS = $(game_TARGET) STD_MOD_DEPS = $(STD_MOD_LIBS) $(ralint_TARGET) @@ -341,8 +341,6 @@ install-core: default @$(INSTALL_PROGRAM) SharpFont.dll "$(DATA_INSTALL_DIR)" @$(CP) SharpFont.dll.config "$(DATA_INSTALL_DIR)" @$(INSTALL_PROGRAM) Mono.Nat.dll "$(DATA_INSTALL_DIR)" - @$(INSTALL_PROGRAM) KopiLua.dll "$(DATA_INSTALL_DIR)" - @$(INSTALL_PROGRAM) NLua.dll "$(DATA_INSTALL_DIR)" @$(INSTALL_PROGRAM) MaxMind.Db.dll "$(DATA_INSTALL_DIR)" @$(INSTALL_PROGRAM) MaxMind.GeoIP2.dll "$(DATA_INSTALL_DIR)" @$(INSTALL_PROGRAM) Newtonsoft.Json.dll "$(DATA_INSTALL_DIR)" diff --git a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj index 84ed13657c..ff41de2412 100644 --- a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj +++ b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj @@ -53,14 +53,6 @@ ..\thirdparty\FuzzyLogicLibrary.dll False - - ..\thirdparty\KopiLua.dll - False - - - ..\thirdparty\NLua.dll - False - @@ -324,10 +316,7 @@ - - - diff --git a/OpenRA.Mods.RA/Scripting/LuaScriptContext.cs b/OpenRA.Mods.RA/Scripting/LuaScriptContext.cs deleted file mode 100644 index cf9af09840..0000000000 --- a/OpenRA.Mods.RA/Scripting/LuaScriptContext.cs +++ /dev/null @@ -1,142 +0,0 @@ -#region Copyright & License Information -/* - * Copyright 2007-2014 The OpenRA Developers (see AUTHORS) - * This file is part of OpenRA, which is free software. It is made - * available to you under the terms of the GNU General Public License - * as published by the Free Software Foundation. For more information, - * see COPYING. - */ -#endregion - -using System; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; -using NLua; -using NLua.Event; -using OpenRA.Primitives; - -namespace OpenRA.Mods.RA.Scripting -{ - [Desc("Part of the legacy Lua API.")] - public sealed class LuaScriptContext : IDisposable - { - public Lua Lua { get; private set; } - readonly Cache functionCache; - - public LuaScriptContext() - { - Log.AddChannel("lua", "lua.log"); - Log.Write("lua", "Creating Lua script context"); - Lua = new Lua(); - Lua.HookException += OnLuaException; - functionCache = new Cache(Lua.GetFunction); - } - - public void RegisterObject(object target, string tableName, bool exposeAllMethods) - { - Log.Write("lua", "Registering object {0}", target); - - if (tableName != null && Lua.GetTable(tableName) == null) - Lua.NewTable(tableName); - - var type = target.GetType(); - - var methods = type.GetMethods(BindingFlags.Public | BindingFlags.Instance); - RegisterMethods(tableName, target, methods, exposeAllMethods); - } - - public void RegisterType(Type type, string tableName, bool exposeAllMethods) - { - Log.Write("lua", "Registering type {0}", type); - - if (tableName != null && Lua.GetTable(tableName) == null) - Lua.NewTable(tableName); - - var methods = type.GetMethods(BindingFlags.Public | BindingFlags.Static); - RegisterMethods(tableName, null, methods, exposeAllMethods); - } - - void RegisterMethods(string tableName, object target, IEnumerable methods, bool allMethods) - { - foreach (var method in methods) - { - string methodName; - - var attr = method.GetCustomAttributes(true).FirstOrDefault(); - if (attr == null) - { - if (allMethods) - methodName = method.Name; - else - continue; - } - else - methodName = attr.Name ?? method.Name; - - var methodTarget = method.IsStatic ? null : target; - - if (tableName != null) - Lua.RegisterFunction(tableName + "." + methodName, methodTarget, method); - else - Lua.RegisterFunction(methodName, methodTarget, method); - } - } - - void OnLuaException(object sender, HookExceptionEventArgs e) - { - ShowException(e.Exception); - } - - void ShowException(Exception e) - { - ShowErrorMessage(e.Message, e.ToString()); - } - - public void ShowErrorMessage(string shortMessage, string longMessage) - { - Game.Debug("{0}", shortMessage); - Game.Debug("See lua.log for details"); - Log.Write("lua", "{0}", longMessage ?? shortMessage); - } - - public void LoadLuaScripts(Func getFileContents, params string[] files) - { - foreach (var file in files) - { - try - { - Log.Write("lua", "Loading Lua script {0}", file); - var content = getFileContents(file); - Lua.DoString(content, file); - } - catch (Exception e) - { - ShowException(e); - } - } - } - - public object[] InvokeLuaFunction(string name, params object[] args) - { - try - { - var function = functionCache[name]; - if (function == null) - return null; - return function.Call(args); - } - catch (Exception e) - { - ShowException(e); - return null; - } - } - - public void Dispose() - { - if (Lua != null) - Lua.Dispose(); - } - } -} diff --git a/OpenRA.Mods.RA/Scripting/LuaScriptEvents.cs b/OpenRA.Mods.RA/Scripting/LuaScriptEvents.cs deleted file mode 100644 index 7dfdc049b6..0000000000 --- a/OpenRA.Mods.RA/Scripting/LuaScriptEvents.cs +++ /dev/null @@ -1,65 +0,0 @@ -#region Copyright & License Information -/* - * Copyright 2007-2014 The OpenRA Developers (see AUTHORS) - * This file is part of OpenRA, which is free software. It is made - * available to you under the terms of the GNU General Public License - * as published by the Free Software Foundation. For more information, - * see COPYING. - */ -#endregion - -using System; -using OpenRA.Traits; - -namespace OpenRA.Mods.RA.Scripting -{ - [Desc("Part of the legacy Lua API.")] - public class LuaScriptEventsInfo : TraitInfo { } - - public class LuaScriptEvents : INotifyKilled, INotifyAddedToWorld, INotifyRemovedFromWorld, - INotifyCapture, INotifyDamage, INotifyIdle, INotifyProduction - { - public event Action OnKilled = (self, e) => { }; - public event Action OnAddedToWorld = self => { }; - public event Action OnRemovedFromWorld = self => { }; - public event Action OnCaptured = (self, captor, oldOwner, newOwner) => { }; - public event Action OnDamaged = (self, e) => { }; - public event Action OnIdle = self => { }; - public event Action OnProduced = (self, other, exit) => { }; - - public void Killed(Actor self, AttackInfo e) - { - OnKilled(self, e); - } - - public void AddedToWorld(Actor self) - { - OnAddedToWorld(self); - } - - public void RemovedFromWorld(Actor self) - { - OnRemovedFromWorld(self); - } - - public void OnCapture(Actor self, Actor captor, Player oldOwner, Player newOwner) - { - OnCaptured(self, captor, oldOwner, newOwner); - } - - public void Damaged(Actor self, AttackInfo e) - { - OnDamaged(self, e); - } - - public void TickIdle(Actor self) - { - OnIdle(self); - } - - public void UnitProduced(Actor self, Actor other, CPos exit) - { - OnProduced(self, other, exit); - } - } -} diff --git a/OpenRA.Mods.RA/Scripting/LuaScriptInterface.cs b/OpenRA.Mods.RA/Scripting/LuaScriptInterface.cs deleted file mode 100644 index fe8e22b888..0000000000 --- a/OpenRA.Mods.RA/Scripting/LuaScriptInterface.cs +++ /dev/null @@ -1,470 +0,0 @@ -#region Copyright & License Information -/* - * Copyright 2007-2014 The OpenRA Developers (see AUTHORS) - * This file is part of OpenRA, which is free software. It is made - * available to you under the terms of the GNU General Public License - * as published by the Free Software Foundation. For more information, - * see COPYING. - */ -#endregion - -using System; -using System.Collections; -using System.Collections.Generic; -using System.Linq; -using NLua; -using OpenRA.Effects; -using OpenRA.FileSystem; -using OpenRA.Mods.RA.Activities; -using OpenRA.Mods.RA.Air; -using OpenRA.Network; -using OpenRA.Scripting; -using OpenRA.Support; -using OpenRA.Traits; -using WorldRenderer = OpenRA.Graphics.WorldRenderer; - -namespace OpenRA.Mods.RA.Scripting -{ - [Desc("Part of the legacy Lua API.")] - public class LuaScriptInterfaceInfo : ITraitInfo, Requires - { - public readonly string[] LuaScripts = { }; - - public object Create(ActorInitializer init) { return new LuaScriptInterface(this); } - } - - public sealed class LuaScriptInterface : IWorldLoaded, ITick, IDisposable - { - World world; - SpawnMapActors sma; - readonly LuaScriptContext context = new LuaScriptContext(); - readonly LuaScriptInterfaceInfo info; - - public LuaScriptInterface(LuaScriptInterfaceInfo info) - { - this.info = info; - } - - public void WorldLoaded(World w, WorldRenderer wr) - { - world = w; - sma = world.WorldActor.Trait(); - - context.Lua["World"] = w; - context.Lua["WorldRenderer"] = wr; - context.RegisterObject(this, "Internal", false); - context.RegisterType(typeof(WVec), "WVec", true); - context.RegisterType(typeof(CVec), "CVec", true); - context.RegisterType(typeof(WPos), "WPos", true); - context.RegisterType(typeof(CPos), "CPos", true); - context.RegisterType(typeof(WRot), "WRot", true); - context.RegisterType(typeof(WAngle), "WAngle", true); - context.RegisterType(typeof(WRange), "WRange", true); - context.RegisterType(typeof(int2), "int2", true); - context.RegisterType(typeof(float2), "float2", true); - - context.LoadLuaScripts(f => GlobalFileSystem.Open(f).ReadAllText(), Game.modData.Manifest.LuaScripts); - - AddMapActorGlobals(); - - context.LoadLuaScripts(f => w.Map.Container.GetContent(f).ReadAllText(), info.LuaScripts); - - context.InvokeLuaFunction("WorldLoaded"); - } - - void AddMapActorGlobals() - { - foreach (var kv in sma.Actors) - { - if (context.Lua[kv.Key] != null) - context.ShowErrorMessage("{0}: The global name '{1}' is reserved and may not be used by map actor {2}".F(GetType().Name, kv.Key, kv.Value), null); - else - context.Lua[kv.Key] = kv.Value; - } - } - - public void Tick(Actor self) - { - using (new PerfSample("tick_lua")) - context.InvokeLuaFunction("Tick"); - } - - public void Dispose() - { - context.Dispose(); - } - - [LuaGlobal] - public object New(string typeName, LuaTable args) - { - var type = Game.modData.ObjectCreator.FindType(typeName); - if (type == null) - throw new InvalidOperationException("Cannot locate type: {0}".F(typeName)); - if (args == null) - return Activator.CreateInstance(type); - var argsArray = ConvertArgs(args); - return Activator.CreateInstance(type, argsArray); - } - - static object[] ConvertArgs(LuaTable args) - { - var argsArray = new object[args.Keys.Count]; - for (var i = 1; i <= args.Keys.Count; i++) - { - var arg = args[i] as LuaTable; - if (arg != null && arg[1] != null && arg[2] != null) - argsArray[i - 1] = Convert.ChangeType(arg[1], Enum.Parse(arg[2].ToString())); - else - argsArray[i - 1] = args[i]; - } - return argsArray; - } - - [LuaGlobal] - public void Debug(object obj) - { - if (obj != null) - Game.Debug(obj.ToString()); - } - - [LuaGlobal] - public object TraitOrDefault(Actor actor, string className) - { - var type = Game.modData.ObjectCreator.FindType(className); - if (type == null) - return null; - - var method = typeof(Actor).GetMethod("TraitOrDefault"); - var genericMethod = method.MakeGenericMethod(type); - return genericMethod.Invoke(actor, null); - } - - [LuaGlobal] - public object Trait(Actor actor, string className) - { - var ret = TraitOrDefault(actor, className); - if (ret == null) - throw new InvalidOperationException("Actor {0} does not have trait of type {1}".F(actor, className)); - return ret; - } - - [LuaGlobal] - public bool HasTrait(Actor actor, string className) - { - var ret = TraitOrDefault(actor, className); - return ret != null; - } - - [LuaGlobal] - public object[] ActorsWithTrait(string className) - { - var type = Game.modData.ObjectCreator.FindType(className); - if (type == null) - throw new InvalidOperationException("Cannot locate type: {0}".F(className)); - - var method = typeof(World).GetMethod("ActorsWithTrait"); - var genericMethod = method.MakeGenericMethod(type); - var result = ((IEnumerable)genericMethod.Invoke(world, null)).Cast().ToArray(); - return result; - } - - [LuaGlobal] - public object TraitInfoOrDefault(string actorType, string className) - { - var type = Game.modData.ObjectCreator.FindType(className); - if (type == null || !world.Map.Rules.Actors.ContainsKey(actorType)) - return null; - - return world.Map.Rules.Actors[actorType].Traits.GetOrDefault(type); - } - - [LuaGlobal] - public object TraitInfo(string actorType, string className) - { - var ret = TraitInfoOrDefault(actorType, className); - if (ret == null) - throw new InvalidOperationException("Actor type {0} does not have trait info of type {1}".F(actorType, className)); - return ret; - } - - [LuaGlobal] - public bool HasTraitInfo(string actorType, string className) - { - var ret = TraitInfoOrDefault(actorType, className); - return ret != null; - } - - [LuaGlobal] - public void RunAfterDelay(double delay, Action func) - { - world.AddFrameEndTask(w => w.Add(new DelayedAction((int)delay, func))); - } - - [LuaGlobal] - public void PlaySpeechNotification(Player player, string notification) - { - Sound.PlayNotification(world.Map.Rules, player, "Speech", notification, player != null ? player.Country.Race : null); - } - - [LuaGlobal] - public void PlaySoundNotification(Player player, string notification) - { - Sound.PlayNotification(world.Map.Rules, player, "Sounds", notification, player != null ? player.Country.Race : null); - } - - [LuaGlobal] - public void WaitFor(Actor actor, Func func) - { - actor.QueueActivity(new WaitFor(func)); - } - - [LuaGlobal] - public void CallFunc(Actor actor, Action func) - { - actor.QueueActivity(new CallFunc(func)); - } - - [LuaGlobal] - public int GetFacing(object vec, double currentFacing) - { - if (vec is CVec) - return world.Map.FacingBetween(CPos.Zero, CPos.Zero + (CVec)vec, (int)currentFacing); - if (vec is WVec) - return Util.GetFacing((WVec)vec, (int)currentFacing); - throw new ArgumentException("Unsupported vector type: {0}".F(vec.GetType())); - } - - [LuaGlobal] - public WRange GetWRangeFromCells(double cells) - { - return WRange.FromCells((int)cells); - } - - [LuaGlobal] - public void SetWinState(Player player, string winState) - { - player.WinState = Enum.Parse(winState); - } - - [LuaGlobal] - public void PlayRandomMusic() - { - if (!Game.Settings.Sound.MapMusic || !world.Map.Rules.InstalledMusic.Any()) - return; - Game.ConnectionStateChanged += StopMusic; - PlayMusic(); - } - - void PlayMusic() - { - var track = world.Map.Rules.InstalledMusic.Random(Game.CosmeticRandom); - Sound.PlayMusicThen(track.Value, PlayMusic); - } - - void StopMusic(OrderManager orderManager) - { - if (!orderManager.GameStarted) - { - Sound.StopMusic(); - Game.ConnectionStateChanged -= StopMusic; - } - } - - [LuaGlobal] - public bool IsDead(Actor actor) - { - return actor.IsDead(); - } - - [LuaGlobal] - public void PlayMovieFullscreen(string movie, Action onComplete) - { - Media.PlayFMVFullscreen(world, movie, onComplete); - } - - [LuaGlobal] - public void FlyToPos(Actor actor, WPos pos) - { - actor.QueueActivity(new Fly(actor, Target.FromPos(pos))); - } - - [LuaGlobal] - public void FlyAttackActor(Actor actor, Actor targetActor) - { - actor.QueueActivity(new FlyAttack(Target.FromActor(targetActor))); - } - - [LuaGlobal] - public void FlyAttackCell(Actor actor, CPos location) - { - actor.QueueActivity(new FlyAttack(Target.FromCell(actor.World, location))); - } - - [LuaGlobal] - public void HeliFlyToPos(Actor actor, WPos pos) - { - actor.QueueActivity(new HeliFly(actor, Target.FromPos(pos))); - } - - [LuaGlobal] - public void SetUnitStance(Actor actor, string stance) - { - var at = actor.TraitOrDefault(); - if (at != null) - at.Stance = Enum.Parse(stance); - } - - [LuaGlobal] - public bool RequiredUnitsAreDestroyed(Player player) - { - return player.HasNoRequiredUnits(); - } - - [LuaGlobal] - public void AttackMove(Actor actor, CPos location, double nearEnough) - { - if (actor.HasTrait()) - actor.QueueActivity(new AttackMove.AttackMoveActivity(actor, new Move.Move(actor, location, (int)nearEnough))); - else - actor.QueueActivity(new Move.Move(actor, location, (int)nearEnough)); - } - - [LuaGlobal] - public int GetRandomInteger(double low, double high) - { - return world.SharedRandom.Next((int)low, (int)high); - } - - [LuaGlobal] - public CPos GetRandomCell() - { - return world.Map.ChooseRandomCell(world.SharedRandom); - } - - [LuaGlobal] - public CPos GetRandomEdgeCell() - { - return world.Map.ChooseRandomEdgeCell(world.SharedRandom); - } - - [LuaGlobal] - public Actor GetNamedActor(string actorName) - { - return sma.Actors[actorName]; - } - - [LuaGlobal] - public bool IsNamedActor(Actor actor) - { - return actor.ActorID <= sma.LastMapActorID && actor.ActorID > sma.LastMapActorID - sma.Actors.Count; - } - - [LuaGlobal] - public IEnumerable GetNamedActors() - { - return sma.Actors.Values; - } - - [LuaGlobal] - public Actor[] FindActorsInBox(WPos topLeft, WPos bottomRight) - { - return world.ActorMap.ActorsInBox(topLeft, bottomRight).ToArray(); - } - - [LuaGlobal] - public Actor[] FindActorsInCircle(WPos location, WRange radius) - { - return world.FindActorsInCircle(location, radius).ToArray(); - } - - ClassicProductionQueue GetSharedQueueForCategory(Player player, string category) - { - return world.ActorsWithTrait() - .Where(a => a.Actor.Owner == player && a.Trait.Info.Type == category) - .Select(a => a.Trait).FirstOrDefault(); - } - - ClassicProductionQueue GetSharedQueueForUnit(Player player, string unit) - { - var ri = world.Map.Rules.Actors[unit]; - - var bi = ri.Traits.GetOrDefault(); - if (bi == null) - return null; - - return bi.Queue.Select(q => GetSharedQueueForCategory(player, q)).FirstOrDefault(); - } - - [LuaGlobal] - public void BuildWithSharedQueue(Player player, string unit, double amount) - { - var queue = GetSharedQueueForUnit(player, unit); - - if (queue != null) - queue.ResolveOrder(queue.Actor, Order.StartProduction(queue.Actor, unit, (int)amount)); - } - - [LuaGlobal] - public void BuildWithPerFactoryQueue(Actor factory, string unit, double amount) - { - var ri = world.Map.Rules.Actors[unit]; - - var bi = ri.Traits.GetOrDefault(); - if (bi == null) - return; - - var queue = factory.TraitsImplementing() - .FirstOrDefault(q => q.Enabled); - - if (queue != null) - queue.ResolveOrder(factory, Order.StartProduction(factory, unit, (int)amount)); - } - - [LuaGlobal] - public bool SharedQueueIsBusy(Player player, string category) - { - var queue = GetSharedQueueForCategory(player, category); - - if (queue == null) - return true; - - return queue.CurrentItem() != null; - } - - [LuaGlobal] - public bool PerFactoryQueueIsBusy(Actor factory) - { - var queue = factory.TraitsImplementing() - .FirstOrDefault(q => q.Enabled); - - if (queue == null) - return true; - - return queue.CurrentItem() != null; - } - - [LuaGlobal] - public void Guard(Actor guard, Actor target) - { - if (target.HasTrait()) - { - var gt = guard.TraitOrDefault(); - - if (gt != null) - gt.GuardTarget(guard, Target.FromActor(target)); - } - } - - [LuaGlobal] - public IEnumerable ExpandFootprint(LuaTable cells, bool allowDiagonal) - { - return Util.ExpandFootprint(cells.Values.Cast(), allowDiagonal); - } - - [LuaGlobal] - public WPos CenterOfCell(CPos position) - { - return world.Map.CenterOfCell(position); - } - } -} diff --git a/mods/common/lua/actor.lua b/mods/common/lua/actor.lua deleted file mode 100644 index 0ace58e364..0000000000 --- a/mods/common/lua/actor.lua +++ /dev/null @@ -1,236 +0,0 @@ -Actor = { } - -Actor.Create = function(name, init) - if name == nil then error("No actor name specified", 2) end - if init.Owner == nil then error("No actor owner specified", 2) end - local td = OpenRA.New("TypeDictionary") - local addToWorld = true - for key, value in pairs(init) do - if key == "AddToWorld" then - addToWorld = value - else - td:Add(OpenRA.New(key .. "Init", { value })) - end - end - return World:CreateActor(addToWorld, name, td) -end - -Actor.Turn = function(actor, facing) - actor:QueueActivity(OpenRA.New("Turn", { actor, { facing, "Int32" } })) -end - -Actor.Move = function(actor, location) - Actor.MoveNear(actor, location, 0) -end - -Actor.MoveNear = function(actor, location, nearEnough) - actor:QueueActivity(OpenRA.New("Move", { actor, location, WRange.FromCells(nearEnough) })) -end - -Actor.ScriptedMove = function(actor, location) - if Actor.HasTrait(actor, "Helicopter") then - Internal.HeliFlyToPos(actor, Map.CenterOfCell(location)) - else - actor:QueueActivity(OpenRA.New("Move", { actor, location })) - end -end - -Actor.AfterMove = function(actor) - local heli = Actor.TraitOrDefault(actor, "Helicopter") - if heli ~= nil then - Actor.Turn(actor, heli.Info.InitialFacing) - Actor.HeliLand(actor, true) - end -end - -Actor.Teleport = function(actor, location) - actor:QueueActivity(OpenRA.New("SimpleTeleport", { location })) -end - -Actor.AttackMove = function(actor, location, nearEnough) - Internal.AttackMove(actor, location, nearEnough or 0) -end - -Actor.HeliFly = function(actor, position) - Internal.HeliFlyToPos(actor, position) -end - -Actor.HeliLand = function(actor, requireSpace) - actor:QueueActivity(OpenRA.New("HeliLand", { requireSpace })) -end - -Actor.Fly = function(actor, position) - Internal.FlyToPos(actor, position) -end - -Actor.FlyAttackActor = function(actor, targetActor) - Internal.FlyAttackActor(actor, targetActor) -end - -Actor.FlyAttackCell = function(actor, location) - Internal.FlyAttackCell(actor, location) -end - -Actor.FlyOffMap = function(actor) - actor:QueueActivity(OpenRA.New("FlyOffMap")) -end - -Actor.Hunt = function(actor) - if Actor.HasTrait(actor, "AttackBase") and Actor.HasTrait(actor, "IMove") then - actor:QueueActivity(OpenRA.New("Hunt", { actor })) - end -end - -Actor.CargoIsEmpty = function(actor) - local cargo = Actor.TraitOrDefault(actor, "Cargo") - return cargo == nil or cargo:IsEmpty(actor) -end - -Actor.UnloadCargo = function(actor, unloadAll) - actor:QueueActivity(OpenRA.New("UnloadCargo", { actor, unloadAll })) -end - -Actor.Harvest = function(actor) - actor:QueueActivity(OpenRA.New("FindResources")) -end - -Actor.Scatter = function(actor) - local mobile = Actor.Trait(actor, "Mobile") - mobile:Nudge(actor, actor, true) -end - -Actor.Wait = function(actor, period) - actor:QueueActivity(OpenRA.New("Wait", { { period, "Int32" } })) -end - -Actor.WaitFor = function(actor, func) - Internal.WaitFor(actor, func) -end - -Actor.CallFunc = function(actor, func) - Internal.CallFunc(actor, func) -end - -Actor.DeployTransform = function(actor) - Actor.CallFunc(actor, function() - -- Queue the transform order - Actor.Trait(actor, "Transforms"):DeployTransform(true) - end) -end - -Actor.RemoveSelf = function(actor) - actor:QueueActivity(OpenRA.New("RemoveSelf")) -end - -Actor.Stop = function(actor) - actor:CancelActivity() -end - -Actor.IsDead = function(actor) - return Internal.IsDead(actor) -end - -Actor.IsInWorld = function(actor) - return actor.IsInWorld -end - -Actor.Owner = function(actor) - return actor.Owner -end - -Actor.Facing = function(actor) - return Actor.Trait(actor, "IFacing"):get_Facing() -end - -Actor.IsIdle = function(actor) - return actor.IsIdle -end - -Actor.SetStance = function(actor, stance) - Internal.SetUnitStance(actor, stance) -end - -Actor.RepairBuilding = function(actor) - local rb = Actor.TraitOrDefault(actor, "RepairableBuilding") - if rb ~= nil and not rb.RepairActive then - rb:RepairBuilding(actor, Actor.Owner(actor)) - end -end - -Actor.OnDamaged = function(actor, eh) - Actor.Trait(actor, "LuaScriptEvents").OnDamaged:Add(eh) -end - -Actor.OnKilled = function(actor, eh) - Actor.Trait(actor, "LuaScriptEvents").OnKilled:Add(eh) -end - -Actor.OnAddedToWorld = function(actor, eh) - Actor.Trait(actor, "LuaScriptEvents").OnAddedToWorld:Add(eh) -end - -Actor.OnRemovedFromWorld = function(actor, eh) - Actor.Trait(actor, "LuaScriptEvents").OnRemovedFromWorld:Add(eh) -end - -Actor.OnCaptured = function(actor, eh) - Actor.Trait(actor, "LuaScriptEvents").OnCaptured:Add(eh) -end - -Actor.OnIdle = function(actor, eh) - Actor.Trait(actor, "LuaScriptEvents").OnIdle:Add(eh) -end - -Actor.OnProduced = function(actor, eh) - Actor.Trait(actor, "LuaScriptEvents").OnProduced:Add(eh) -end - -Actor.ActorsWithTrait = function(className) - local ret = { } - for item in Utils.Enumerate(Internal.ActorsWithTrait(className)) do - table.insert(ret, item.Actor) - end - return ret -end - -Actor.HasTrait = function(actor, className) - return Internal.HasTrait(actor, className) -end - -Actor.TraitOrDefault = function(actor, className) - return Internal.TraitOrDefault(actor, className) -end - -Actor.Trait = function(actor, className) - return Internal.Trait(actor, className) -end - -Actor.ReturnToBase = function(actor, airfield) - actor:QueueActivity(OpenRA.New("ReturnToBase", { actor, airfield })) -end - -Actor.Guard = function(actor, target) - Internal.Guard(actor, target) -end - -Actor.Patrol = function(actor, waypoints, wait, loop) - if not Actor.IsDead(actor) then - Utils.Do(waypoints, function(wpt) - Actor.AttackMove(actor, wpt.Location, 3) - Actor.Wait(actor, wait or 0) - end) - if loop or loop == nil then - Actor.CallFunc(actor, function() Actor.Patrol(actor, waypoints, wait, loop) end) - end - end -end - -Actor.PatrolUntil = function(actor, waypoints, wait, func) - if func == nil then error("No function specified", 2) end - if not Actor.IsDead(actor) then - Actor.Patrol(actor, waypoints, wait, false) - if not func(actor) then - Actor.CallFunc(actor, function() Actor.PatrolUntil(actor, waypoints, wait, func) end) - end - end -end diff --git a/mods/common/lua/facing.lua b/mods/common/lua/facing.lua deleted file mode 100644 index 827d3c6890..0000000000 --- a/mods/common/lua/facing.lua +++ /dev/null @@ -1,10 +0,0 @@ -Facing = { } - -Facing.North = { 0, "Int32" } -Facing.NorthWest = { 32, "Int32" } -Facing.West = { 64, "Int32" } -Facing.SouthWest = { 96, "Int32" } -Facing.South = { 128, "Int32" } -Facing.SouthEast = { 160, "Int32" } -Facing.East = { 192, "Int32" } -Facing.NorthEast = { 224, "Int32" } diff --git a/mods/common/lua/map.lua b/mods/common/lua/map.lua deleted file mode 100644 index f1ed30ce9c..0000000000 --- a/mods/common/lua/map.lua +++ /dev/null @@ -1,109 +0,0 @@ -Map = { } - -Map.GetFacing = function(vec, currentFacing) - return Internal.GetFacing(vec, currentFacing) -end - -Map.GetRandomCell = function() - return Internal.GetRandomCell() -end - -Map.GetRandomEdgeCell = function() - return Internal.GetRandomEdgeCell() -end - -Map.IsNamedActor = function(actor) - return Internal.IsNamedActor(actor) -end - -Map.GetNamedActor = function(actorName) - return Internal.GetNamedActor(actorName) -end - -Map.GetNamedActors = function() - return Internal.GetNamedActors() -end - -Map.FindActorsInCircle = function(location, radius, func) - local actors = Internal.FindActorsInCircle(location.CenterPosition, WRange.FromCells(radius)) - return Utils.EnumerableWhere(actors, func) -end - -Map.FindActorsInBox = function(topLeft, bottomRight, func) - local actors = Internal.FindActorsInBox(topLeft.CenterPosition, bottomRight.CenterPosition) - return Utils.EnumerableWhere(actors, func) -end - -Map.__FilterByTrait = function(a, player, trait) - return Actor.Owner(a) == player and Actor.HasTrait(a, trait) -end - -Map.__FilterByTraitAndIdle = function(a, player, trait) - return Map.__FilterByTrait(a, player, trait) and Actor.IsIdle(a) -end - -Map.FindUnitsInCircle = function(player, location, radius) - return Map.FindActorsInCircle(location, radius, function(a) return Map.__FilterByTrait(a, player, "Mobile") end) -end - -Map.FindUnitsInBox = function(player, topLeft, bottomRight) - return Map.FindActorsInBox(topLeft, bottomRight, function(a) return Map.__FilterByTrait(a, player, "Mobile") end) -end - -Map.FindStructuresInCircle = function(player, location, radius) - return Map.FindActorsInCircle(location, radius, function(a) return Map.__FilterByTrait(a, player, "Building") end) -end - -Map.FindStructuresInBox = function(player, topLeft, bottomRight) - return Map.FindActorsInBox(topLeft, bottomRight, function(a) return Map.__FilterByTrait(a, player, "Building") end) -end - -Map.FindIdleUnitsInCircle = function(player, location, radius) - return Map.FindActorsInCircle(location, radius, function(a) return Map.__FilterByTraitAndIdle(a, player, "Mobile") end) -end - -Map.FindIdleUnitsInBox = function(player, topLeft, bottomRight) - return Map.FindActorsInBox(topLeft, bottomRight, function(a) return Map.__FilterByTraitAndIdle(a, player, "Mobile") end) -end - -Map.ExpandFootprint = function(cells, allowDiagonal) - return Utils.EnumerableToTable(Internal.ExpandFootprint(cells, allowDiagonal)) -end - -Map.CenterOfCell = function(position) - return Internal.CenterOfCell(position) -end - -CPos.New = function(x, y) - return OpenRA.New("CPos", { { x, "Int32" }, { y, "Int32" } }) -end - -WPos.New = function(x, y, z) - if z == nil then - z = 0 - end - return OpenRA.New("WPos", { { x, "Int32" }, { y, "Int32" }, { z, "Int32" } }) -end - -WPos.FromCPos = function(location) - return WPos.New(location.X * 1024, location.Y * 1024, 0) -end - -CVec.New = function(x, y) - return OpenRA.New("CVec", { { x, "Int32" }, { y, "Int32" } }) -end - -WVec.New = function(x, y, z) - if z == nil then - z = 0 - end - return OpenRA.New("WVec", { { x, "Int32" }, { y, "Int32" }, { z, "Int32" } }) -end - -WRange.New = function(r) - return OpenRA.New("WRange", { { r, "Int32" } }) -end - -WRange.FromCells = function(cells) - return WRange.New(cells * 1024) -end diff --git a/mods/common/lua/media.lua b/mods/common/lua/media.lua deleted file mode 100644 index 7400551f46..0000000000 --- a/mods/common/lua/media.lua +++ /dev/null @@ -1,20 +0,0 @@ -Media = { } - -Media.PlaySpeechNotification = function(notification, player) - Internal.PlaySpeechNotification(player, notification) -end - -Media.PlaySoundNotification = function(notification, player) - Internal.PlaySoundNotification(player, notification) -end - -Media.PlayRandomMusic = function() - Internal.PlayRandomMusic() -end - -Media.PlayMovieFullscreen = function(movie, onComplete) - if onComplete == nil then - onComplete = function() end - end - Internal.PlayMovieFullscreen(movie, onComplete) -end \ No newline at end of file diff --git a/mods/common/lua/mission.lua b/mods/common/lua/mission.lua deleted file mode 100644 index ae942766ea..0000000000 --- a/mods/common/lua/mission.lua +++ /dev/null @@ -1,37 +0,0 @@ -Mission = { } - -Mission.MissionOver = function(winners, losers, setWinStates) - World:SetLocalPauseState(true) - World:set_PauseStateLocked(true) - if winners then - for i, player in ipairs(winners) do - Media.PlaySpeechNotification("Win", player) - if setWinStates then - OpenRA.SetWinState(player, "Won") - end - end - end - if losers then - for i, player in ipairs(losers) do - Media.PlaySpeechNotification("Lose", player) - if setWinStates then - OpenRA.SetWinState(player, "Lost") - end - end - end - Mission.MissionIsOver = true -end - -Mission.GetGroundAttackersOf = function(player) - return Utils.Where(Actor.ActorsWithTrait("AttackBase"), function(actor) - return not Actor.IsDead(actor) and Actor.IsInWorld(actor) and Actor.Owner(actor) == player and Actor.HasTrait(actor, "Mobile") - end) -end - -Mission.TickTakeOre = function(player) - OpenRA.TakeOre(player, 0.01 * OpenRA.GetOreCapacity(player) / 25) -end - -Mission.RequiredUnitsAreDestroyed = function(player) - return Internal.RequiredUnitsAreDestroyed(player) -end \ No newline at end of file diff --git a/mods/common/lua/openra.lua b/mods/common/lua/openra.lua deleted file mode 100644 index 5d1fe6096e..0000000000 --- a/mods/common/lua/openra.lua +++ /dev/null @@ -1,83 +0,0 @@ -print = Internal.Debug - -OpenRA = { } - -OpenRA.New = function(className, args) - if args == nil then - args = { } - end - return Internal.New(className, args) -end - -OpenRA.RunAfterDelay = function(delay, func) - if func == nil then error("No function specified", 2) end - Internal.RunAfterDelay(delay, func) -end - -OpenRA.SetViewportCenterPosition = function(position) - WorldRenderer.Viewport:Center(position) -end - -OpenRA.GetViewportCenterPosition = function() - return WorldRenderer.Viewport.CenterPosition -end - -OpenRA.GetDifficulty = function() - return World.LobbyInfo.GlobalSettings.Difficulty -end - -OpenRA.IsSinglePlayer = function() - return World.LobbyInfo:get_IsSinglePlayer() -end - -OpenRA.GetPlayer = function(internalName) - return Utils.EnumerableFirstOrNil(World.Players, function(p) return p.InternalName == internalName end) -end - -OpenRA.GetPlayers = function(func) - return Utils.EnumerableWhere(World.Players, func) -end - -OpenRA.SetWinState = function(player, winState) - Internal.SetWinState(player, winState) -end - -OpenRA.GetRandomInteger = function(low, high) - if high <= low then - return low - else - return Internal.GetRandomInteger(low, high) - end -end - -OpenRA.TakeOre = function(player, amount) - Actor.Trait(player.PlayerActor, "PlayerResources"):TakeResources(amount) -end - -OpenRA.TakeCash = function(player, amount) - Actor.Trait(player.PlayerActor, "PlayerResources"):TakeCash(amount) -end - -OpenRA.GiveOre = function(player, amount) - Actor.Trait(player.PlayerActor, "PlayerResources"):GiveResources(amount) -end - -OpenRA.GiveCash = function(player, amount) - Actor.Trait(player.PlayerActor, "PlayerResources"):GiveCash(amount) -end - -OpenRA.CanGiveOre = function(player, amount) - return Actor.Trait(player.PlayerActor, "PlayerResources"):CanGiveResources(amount) -end - -OpenRA.GetOreCapacity = function(player) - return Actor.Trait(player.PlayerActor, "PlayerResources").ResourceCapacity -end - -OpenRA.GetOre = function(player) - return Actor.Trait(player.PlayerActor, "PlayerResources").Resources -end - -OpenRA.GetCash = function(player) - return Actor.Trait(player.PlayerActor, "PlayerResources").Cash -end diff --git a/mods/common/lua/production.lua b/mods/common/lua/production.lua deleted file mode 100644 index 09290015d3..0000000000 --- a/mods/common/lua/production.lua +++ /dev/null @@ -1,94 +0,0 @@ -Production = { } -Production.EventHandlers = { } - -Production.BuildWithSharedQueue = function(player, unit, amount) - Internal.BuildWithSharedQueue(player, unit, amount or 1) -end - -Production.BuildWithPerFactoryQueue = function(factory, unit, amount) - Internal.BuildWithPerFactoryQueue(factory, unit, amount or 1) -end - -Production.Build = function(factory, unit, amount) - if Actor.HasTrait(factory, "ProductionQueue") then - Production.BuildWithPerFactoryQueue(factory, unit, amount) - elseif Actor.HasTrait(factory, "Production") then - Production.SetPrimaryBuilding(factory) - Production.BuildWithSharedQueue(Actor.Owner(factory), unit, amount) - else - error("Production.Build: not a factory") - end -end - -Production.SharedQueueIsBusy = function(player, category) - return Internal.SharedQueueIsBusy(player, category) -end - -Production.PerFactoryQueueIsBusy = function(factory) - return Internal.PerFactoryQueueIsBusy(factory) -end - -Production.SetRallyPoint = function(factory, location) - local srp = Actor.Trait(factory, "RallyPoint") - if srp ~= nil then - srp.Location = location.Location - end -end - -Production.SetPrimaryBuilding = function(factory) - local pb = Actor.TraitOrDefault(factory, "PrimaryBuilding") - if pb ~= nil then - pb:SetPrimaryProducer(factory, true) - end -end - -Production.BuildTeamFromTemplate = function(player, template, func) - local factories = { } - Utils.Do(template, function(t) table.insert(factories, t[1]) end) - - if Utils.Any(factories, Actor.IsDead) then - return - end - - if Utils.Any(factories, function(fact) return Production.EventHandlers[fact] end) then - OpenRA.RunAfterDelay(Utils.Seconds(10), function() Production.BuildTeamFromTemplate(player, template, func) end) - return - end - - local team = Team.New({ }) - local teamSize = 0 - Utils.Do(template, function(t) teamSize = teamSize + #t[2] end) - - local eventHandler = function(unit) - Team.Add(team, unit) - - if #team.Actors >= teamSize then - func(team) - Utils.Do(factories, function(factory) - Production.EventHandlers[factory] = nil - end) - end - end - - Utils.Do(factories, function(factory) - Production.EventHandlers[factory] = eventHandler - end) - - Utils.Do(template, function(t) - Utils.Do(t[2], function(unit) - Production.Build(t[1], unit) - end) - end) -end - -Production.EventHandlers.Setup = function(player) - Utils.Do(Actor.ActorsWithTrait("Production"), function(factory) - if Actor.Owner(factory) == player then - Actor.OnProduced(factory, function(fact, unit) - if Production.EventHandlers[fact] then - Production.EventHandlers[fact](unit) - end - end) - end - end) -end diff --git a/mods/common/lua/reinforcements.lua b/mods/common/lua/reinforcements.lua deleted file mode 100644 index 7325acf014..0000000000 --- a/mods/common/lua/reinforcements.lua +++ /dev/null @@ -1,82 +0,0 @@ -Reinforcements = { } - -Reinforcements.Insert = function(owner, transportName, passengerNames, enterPath, exitPath) - local facing = { Map.GetFacing(CPos.op_Subtraction(enterPath[2], enterPath[1]), 0), "Int32" } - local center = WPos.op_Addition(Map.CenterOfCell(enterPath[1]), WVec.New(0, 0, Rules.InitialAltitude(transportName))) - local transport = Actor.Create(transportName, { Owner = owner, Location = enterPath[1], CenterPosition = center, Facing = facing }) - local cargo = Actor.Trait(transport, "Cargo") - local passengers = { } - - for i, passengerName in ipairs(passengerNames) do - local passenger = Actor.Create(passengerName, { AddToWorld = false, Owner = owner }) - passengers[i] = passenger - cargo:Load(transport, passenger) - end - - Utils.Do(Utils.Skip(enterPath, 1), function(l) Actor.ScriptedMove(transport, l) end) - Actor.AfterMove(transport) - Actor.UnloadCargo(transport, true) - Actor.Wait(transport, 25) - Utils.Do(exitPath, function(l) Actor.ScriptedMove(transport, l) end) - Actor.RemoveSelf(transport) - return transport, passengers -end - -Reinforcements.Extract = function(owner, transportName, passengerNames, enterPath, exitPath) - local facing = { Map.GetFacing(CPos.op_Subtraction(enterPath[2], enterPath[1]), 0), "Int32" } - local center = WPos.op_Addition(Map.CenterOfCell(enterPath[1]), WVec.New(0, 0, Rules.InitialAltitude(transportName))) - local transport = Actor.Create(transportName, { Owner = owner, Location = enterPath[1], CenterPosition = center, Facing = facing }) - local cargo = Actor.Trait(transport, "Cargo") - - Utils.Do(Utils.Skip(enterPath, 1), function(l) Actor.ScriptedMove(transport, l) end) - Actor.AfterMove(transport) - Actor.WaitFor(transport, function() - return Utils.All(passengerNames, function(passenger) return cargo.Passengers:Contains(passenger) end) - end) - - Actor.Wait(transport, 125) - Utils.Do(exitPath, function(l) Actor.ScriptedMove(transport, l) end) - Actor.RemoveSelf(transport) - return transport -end - -Reinforcements.Reinforce = function(owner, reinforcementNames, enterLocation, rallyPointLocation, interval, onCreateFunc) - local facing = { Map.GetFacing(CPos.op_Subtraction(rallyPointLocation, enterLocation), 0), "Int32" } - local reinforcements = { } - for i, reinforcementName in ipairs(reinforcementNames) do - local reinforcement = Actor.Create(reinforcementName, { AddToWorld = false, Owner = owner, Location = enterLocation, Facing = facing }) - reinforcements[i] = reinforcement - OpenRA.RunAfterDelay((i - 1) * interval, function() - World:Add(reinforcement) - Actor.MoveNear(reinforcement, rallyPointLocation, 2) - if onCreateFunc ~= nil then - onCreateFunc(reinforcement) - end - end) - end - return reinforcements -end - -Reinforcements.ReinforceWithCargo = function(owner, actorName, path, cargoNames, actionFunc) - local facing = { Map.GetFacing(CPos.op_Subtraction(path[2].Location, path[1].Location), 0), "Int32" } - local center = WPos.op_Addition(path[1].CenterPosition, WVec.New(0, 0, Rules.InitialAltitude(actorName))) - local actor = Actor.Create(actorName, { Owner = owner, Location = path[1].Location, CenterPosition = center, Facing = facing }) - local cargo = Actor.TraitOrDefault(actor, "Cargo") - local team = Team.New({}) - if cargo ~= nil and cargoNames ~= nil and #cargoNames > 0 then - local passengers = { } - - for i, cargoName in ipairs(cargoNames) do - local passenger = Actor.Create(cargoName, { AddToWorld = false, Owner = owner }) - Team.Add(team, passenger) - passengers[i] = passenger - cargo:Load(actor, passenger) - end - - end - - Utils.Do(Utils.Skip(path, 1), function(waypoint) Actor.ScriptedMove(actor, waypoint.Location) end) - - if actionFunc then actionFunc(actor, team) end - return actor, team -end diff --git a/mods/common/lua/rules.lua b/mods/common/lua/rules.lua deleted file mode 100644 index fe9f0fe86f..0000000000 --- a/mods/common/lua/rules.lua +++ /dev/null @@ -1,21 +0,0 @@ -Rules = { } - -Rules.HasTraitInfo = function(actorType, className) - return Internal.HasTraitInfo(actorType, className) -end - -Rules.TraitInfoOrDefault = function(actorType, className) - return Internal.TraitInfoOrDefault(actorType, className) -end - -Rules.TraitInfo = function(actorType, className) - return Internal.TraitInfo(actorType, className) -end - -Rules.InitialAltitude = function(actorType) - local ai = Rules.TraitInfoOrDefault(actorType, "AircraftInfo") - if ai ~= nil then - return ai.CruiseAltitude.Range - end - return 0 -end \ No newline at end of file diff --git a/mods/common/lua/supportpowers.lua b/mods/common/lua/supportpowers.lua deleted file mode 100644 index ac620f0120..0000000000 --- a/mods/common/lua/supportpowers.lua +++ /dev/null @@ -1,44 +0,0 @@ -SupportPowers = { } - -SupportPowers.Airstrike = function(owner, planeName, enterLocation, bombLocation) - local facing = { Map.GetFacing(CPos.op_Subtraction(bombLocation, enterLocation), 0), "Int32" } - local center = WPos.op_Addition(Map.CenterOfCell(enterLocation), WVec.New(0, 0, Rules.InitialAltitude(planeName))) - local plane = Actor.Create(planeName, { Location = enterLocation, Owner = owner, Facing = facing, CenterPosition = center }) - local bombLoc = Map.CenterOfCell(bombLocation) - Actor.Trait(plane, "AttackBomber"):SetTarget(bombLoc) - Actor.Fly(plane, bombLoc) - Actor.FlyOffMap(plane) - Actor.RemoveSelf(plane) - return plane -end - -SupportPowers.Paradrop = function(owner, planeName, passengerNames, enterLocation, dropLocation) - local facing = { Map.GetFacing(CPos.op_Subtraction(dropLocation, enterLocation), 0), "Int32" } - local center = WPos.op_Addition(Map.CenterOfCell(enterLocation), WVec.New(0, 0, Rules.InitialAltitude(planeName))) - local plane = Actor.Create(planeName, { Location = enterLocation, Owner = owner, Facing = facing, CenterPosition = center }) - Actor.Fly(plane, Map.CenterOfCell(dropLocation)) - Actor.Trait(plane, "ParaDrop"):SetLZ(dropLocation, true) - Actor.FlyOffMap(plane) - Actor.RemoveSelf(plane) - local cargo = Actor.Trait(plane, "Cargo") - local passengers = { } - for i, passengerName in ipairs(passengerNames) do - local passenger = Actor.Create(passengerName, { AddToWorld = false, Owner = owner }) - passengers[i] = passenger - cargo:Load(plane, passenger) - end - return plane, passengers -end - -SupportPowers.Chronoshift = function(unitLocationPairs, chronosphere, duration, killCargo) - duration = duration or -1 - killCargo = killCargo or true - Utils.Do(unitLocationPairs, function(pair) - local unit = pair[1] - local cell = pair[2] - local cs = Actor.TraitOrDefault(unit, "Chronoshiftable") - if cs ~= nil and cs:CanChronoshiftTo(unit, cell) then - cs:Teleport(unit, cell, duration, killCargo, chronosphere) - end - end) -end diff --git a/mods/common/lua/team.lua b/mods/common/lua/team.lua deleted file mode 100644 index 863e904019..0000000000 --- a/mods/common/lua/team.lua +++ /dev/null @@ -1,73 +0,0 @@ -Team = { } - -Team.New = function(actors) - local team = { } - team.Actors = actors - team.OnAllKilled = { } - team.OnAnyKilled = { } - team.OnAllRemovedFromWorld = { } - team.OnAnyRemovedFromWorld = { } - Team.Do(team, function(actor) Team.AddActorEventHandlers(team, actor) end) - return team -end - -Team.Add = function(team, actor) - table.insert(team.Actors, actor) - Team.AddActorEventHandlers(team, actor) -end - -Team.AddActorEventHandlers = function(team, actor) - Actor.OnKilled(actor, function() - Team.InvokeHandlers(team.OnAnyKilled) - if Team.AllAreDead(team) then Team.InvokeHandlers(team.OnAllKilled) end - end) - - Actor.OnRemovedFromWorld(actor, function() - Team.InvokeHandlers(team.OnAnyRemovedFromWorld) - if not Team.AnyAreInWorld(team) then Team.InvokeHandlers(team.OnAllRemovedFromWorld) end - end) -end - -Team.InvokeHandlers = function(event) - Utils.Do(event, function(handler) handler() end) -end - -Team.AllAreDead = function(team) - return Utils.All(team.Actors, Actor.IsDead) -end - -Team.AnyAreDead = function(team) - return Utils.Any(team.Actors, Actor.IsDead) -end - -Team.AllAreInWorld = function(team) - return Utils.All(team.Actors, Actor.IsInWorld) -end - -Team.AnyAreInWorld = function(team) - return Utils.Any(team.Actors, Actor.IsInWorld) -end - -Team.AddEventHandler = function(event, func) - table.insert(event, func) -end - -Team.Contains = function(team, actor) - return Utils.Any(team.Actors, function(a) return a == actor end) -end - -Team.Do = function(team, func) - Utils.Do(team.Actors, function(actor) - if not Actor.IsDead(actor) then - func(actor) - end - end) -end - -Team.Patrol = function(team, waypoints, wait, loop) - Team.Do(team, function(a) Actor.Patrol(a, waypoints, wait, loop) end) -end - -Team.PatrolUntil = function(team, waypoints, wait, func) - Team.Do(team, function(a) Actor.PatrolUntil(a, waypoints, wait, func) end) -end diff --git a/mods/common/lua/utils.lua b/mods/common/lua/utils.lua deleted file mode 100644 index 03f3ef0031..0000000000 --- a/mods/common/lua/utils.lua +++ /dev/null @@ -1,94 +0,0 @@ -Utils = { } - -Utils.Enumerate = function(netEnumerable) - local enum = netEnumerable:GetEnumerator() - return function() - if enum:MoveNext() then - return enum:get_Current() - end - end -end - -Utils.EnumerableFirstOrNil = function(netEnumerable, func) - for item in Utils.Enumerate(netEnumerable) do - if func(item) then - return item - end - end - return nil -end - -Utils.EnumerableWhere = function(netEnumerable, func) - local ret = { } - for item in Utils.Enumerate(netEnumerable) do - if func(item) then - table.insert(ret, item) - end - end - return ret -end - -Utils.EnumerableToTable = function(netEnumerable, func) - local ret = { } - for item in Utils.Enumerate(netEnumerable) do - table.insert(ret, item) - end - return ret -end - -Utils.Where = function(array, func) - local ret = { } - for i, item in ipairs(array) do - if func(item) then - table.insert(ret, item) - end - end - return ret -end - -Utils.All = function(array, func) - for i, item in ipairs(array) do - if not func(item) then - return false - end - end - return true -end - -Utils.Any = function(array, func) - for i, item in ipairs(array) do - if func(item) then - return true - end - end - return false -end - -Utils.Do = function(array, func) - for i, item in ipairs(array) do - func(item) - end -end - -Utils.Skip = function(array, n) - local ret = { } - for i, item in ipairs(array) do - if i > n then - table.insert(ret, item) - end - end - return ret -end - -Utils.TableToArray = function(luaTable) - return Internal.TableToArray(luaTable) -end - -Utils.Seconds = function(seconds) - local TicksPerSecond = 25 - return seconds * TicksPerSecond -end - -Utils.Minutes = function(minutes) - return Utils.Seconds(minutes * 60) -end diff --git a/packaging/package-all.sh b/packaging/package-all.sh index 9877f6a26d..7767970584 100755 --- a/packaging/package-all.sh +++ b/packaging/package-all.sh @@ -58,11 +58,7 @@ cp thirdparty/SDL2-CS* packaging/built # Mono.NAT for UPnP support cp thirdparty/Mono.Nat.dll packaging/built -# (legacy) Lua -cp thirdparty/KopiLua.dll packaging/built -cp thirdparty/NLua.dll packaging/built - -# Eluant (new lua) +# Eluant (Lua integration) cp thirdparty/Eluant* packaging/built # GeoIP database access diff --git a/packaging/windows/OpenRA.nsi b/packaging/windows/OpenRA.nsi index 6e015620ec..2caead9fe8 100644 --- a/packaging/windows/OpenRA.nsi +++ b/packaging/windows/OpenRA.nsi @@ -90,8 +90,6 @@ Section "Game" GAME File "${SRCDIR}\Newtonsoft.Json.dll" File "${SRCDIR}\RestSharp.dll" File "${SRCDIR}\GeoLite2-Country.mmdb" - File "${SRCDIR}\KopiLua.dll" - File "${SRCDIR}\NLua.dll" File "${SRCDIR}\eluant.dll" File "${DEPSDIR}\soft_oal.dll" File "${DEPSDIR}\SDL2.dll" @@ -212,8 +210,6 @@ Function ${UN}Clean Delete $INSTDIR\RestSharp.dll Delete $INSTDIR\GeoLite2-Country.mmdb Delete $INSTDIR\KopiLua.dll - Delete $INSTDIR\NLua.dll - Delete $INSTDIR\SDL2-CS.dll Delete $INSTDIR\soft_oal.dll Delete $INSTDIR\SDL2.dll Delete $INSTDIR\lua51.dll diff --git a/thirdparty/KopiLua.dll b/thirdparty/KopiLua.dll deleted file mode 100644 index 5b7b8daa0acf5d184876abf5e100daf694b140cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 245248 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