Rename EffectsGlobal to LightingGlobal
Remove ChangeLighting in favor of individual channels Change RA's fort-lonestar to use Lighting instead of Effect
This commit is contained in:
@@ -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; }
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user