Merge pull request #8865 from Phrohdoh/lua#effects-rgba
Rename EffectGlobal to LightingGlobal and expose individual channels.
This commit is contained in:
@@ -216,7 +216,6 @@
|
|||||||
<Compile Include="Scripting\Global\CameraGlobal.cs" />
|
<Compile Include="Scripting\Global\CameraGlobal.cs" />
|
||||||
<Compile Include="Scripting\Global\CoordinateGlobals.cs" />
|
<Compile Include="Scripting\Global\CoordinateGlobals.cs" />
|
||||||
<Compile Include="Scripting\Global\DateTimeGlobal.cs" />
|
<Compile Include="Scripting\Global\DateTimeGlobal.cs" />
|
||||||
<Compile Include="Scripting\Global\EffectGlobal.cs" />
|
|
||||||
<Compile Include="Scripting\Global\FacingGlobal.cs" />
|
<Compile Include="Scripting\Global\FacingGlobal.cs" />
|
||||||
<Compile Include="Scripting\Global\HSLColorGlobal.cs" />
|
<Compile Include="Scripting\Global\HSLColorGlobal.cs" />
|
||||||
<Compile Include="Scripting\Global\MapGlobal.cs" />
|
<Compile Include="Scripting\Global\MapGlobal.cs" />
|
||||||
@@ -703,6 +702,7 @@
|
|||||||
<Compile Include="Lint\CheckRevealFootprint.cs" />
|
<Compile Include="Lint\CheckRevealFootprint.cs" />
|
||||||
<Compile Include="Traits\ThrowsShrapnel.cs" />
|
<Compile Include="Traits\ThrowsShrapnel.cs" />
|
||||||
<Compile Include="Traits\World\MusicPlaylist.cs" />
|
<Compile Include="Traits\World\MusicPlaylist.cs" />
|
||||||
|
<Compile Include="Scripting\Global\LightingGlobal.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
|
|||||||
@@ -1,51 +0,0 @@
|
|||||||
#region Copyright & License Information
|
|
||||||
/*
|
|
||||||
* Copyright 2007-2015 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.Collections.Generic;
|
|
||||||
using Eluant;
|
|
||||||
using OpenRA.Mods.Common.Traits;
|
|
||||||
using OpenRA.Scripting;
|
|
||||||
|
|
||||||
namespace OpenRA.Mods.Common.Scripting
|
|
||||||
{
|
|
||||||
[ScriptGlobal("Effect")]
|
|
||||||
public class EffectGlobal : ScriptGlobal
|
|
||||||
{
|
|
||||||
readonly IEnumerable<FlashPaletteEffect> fpes;
|
|
||||||
readonly GlobalLightingPaletteEffect lighting;
|
|
||||||
|
|
||||||
public EffectGlobal(ScriptContext context)
|
|
||||||
: base(context)
|
|
||||||
{
|
|
||||||
fpes = context.World.WorldActor.TraitsImplementing<FlashPaletteEffect>();
|
|
||||||
lighting = context.World.WorldActor.TraitOrDefault<GlobalLightingPaletteEffect>();
|
|
||||||
}
|
|
||||||
|
|
||||||
[Desc("Controls the `FlashPaletteEffect` trait.")]
|
|
||||||
public void Flash(string type = null, int ticks = -1)
|
|
||||||
{
|
|
||||||
foreach (var fpe in fpes)
|
|
||||||
if (fpe.Info.Type == type)
|
|
||||||
fpe.Enable(ticks);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Desc("Dynamically adjusts the `GlobalLightingPaletteEffect` trait.")]
|
|
||||||
public void ChangeLighting(double red, double green, double blue, double ambient)
|
|
||||||
{
|
|
||||||
if (lighting == null)
|
|
||||||
throw new LuaException("GlobalLightingPaletteEffect needs to be added to the World actor first.");
|
|
||||||
|
|
||||||
lighting.Red = (float)red;
|
|
||||||
lighting.Green = (float)green;
|
|
||||||
lighting.Blue = (float)blue;
|
|
||||||
lighting.Ambient = (float)ambient;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
64
OpenRA.Mods.Common/Scripting/Global/LightingGlobal.cs
Normal file
64
OpenRA.Mods.Common/Scripting/Global/LightingGlobal.cs
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
#region Copyright & License Information
|
||||||
|
/*
|
||||||
|
* Copyright 2007-2015 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.Collections.Generic;
|
||||||
|
using OpenRA.Mods.Common.Traits;
|
||||||
|
using OpenRA.Scripting;
|
||||||
|
|
||||||
|
namespace OpenRA.Mods.Common.Scripting
|
||||||
|
{
|
||||||
|
[ScriptGlobal("Lighting")]
|
||||||
|
public class LightingGlobal : ScriptGlobal
|
||||||
|
{
|
||||||
|
readonly IEnumerable<FlashPaletteEffect> flashPaletteEffects;
|
||||||
|
readonly GlobalLightingPaletteEffect lighting;
|
||||||
|
readonly bool hasLighting;
|
||||||
|
|
||||||
|
public LightingGlobal(ScriptContext context)
|
||||||
|
: base(context)
|
||||||
|
{
|
||||||
|
flashPaletteEffects = context.World.WorldActor.TraitsImplementing<FlashPaletteEffect>();
|
||||||
|
lighting = context.World.WorldActor.TraitOrDefault<GlobalLightingPaletteEffect>();
|
||||||
|
hasLighting = lighting != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
[Desc("Controls the `FlashPaletteEffect` trait.")]
|
||||||
|
public void Flash(string type = null, int ticks = -1)
|
||||||
|
{
|
||||||
|
foreach (var effect in flashPaletteEffects)
|
||||||
|
if (effect.Info.Type == type)
|
||||||
|
effect.Enable(ticks);
|
||||||
|
}
|
||||||
|
|
||||||
|
public double Red
|
||||||
|
{
|
||||||
|
get { return hasLighting ? lighting.Red : 0d; }
|
||||||
|
set { if (hasLighting) lighting.Red = (float)value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public double Green
|
||||||
|
{
|
||||||
|
get { return hasLighting ? lighting.Green : 0d; }
|
||||||
|
set { if (hasLighting) lighting.Green = (float)value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public double Blue
|
||||||
|
{
|
||||||
|
get { return hasLighting ? lighting.Blue : 0d; }
|
||||||
|
set { if (hasLighting) lighting.Blue = (float)value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public double Ambient
|
||||||
|
{
|
||||||
|
get { return hasLighting ? lighting.Ambient : 0d; }
|
||||||
|
set { if (hasLighting) lighting.Ambient = (float)value; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -150,7 +150,7 @@ end
|
|||||||
Tick = function()
|
Tick = function()
|
||||||
if (Utils.RandomInteger(1, 200) == 10) then
|
if (Utils.RandomInteger(1, 200) == 10) then
|
||||||
local delay = Utils.RandomInteger(1, 10)
|
local delay = Utils.RandomInteger(1, 10)
|
||||||
Effect.Flash("LightningStrike", delay)
|
Lighting.Flash("LightningStrike", delay)
|
||||||
Trigger.AfterDelay(delay, function()
|
Trigger.AfterDelay(delay, function()
|
||||||
Media.PlaySound("thunder" .. Utils.RandomInteger(1,6) .. ".aud")
|
Media.PlaySound("thunder" .. Utils.RandomInteger(1,6) .. ".aud")
|
||||||
end)
|
end)
|
||||||
|
|||||||
Reference in New Issue
Block a user