Merge pull request #8749 from Mailaender/lint-palettes
Added a lint rule for palette references
This commit is contained in:
@@ -43,4 +43,11 @@ namespace OpenRA.Traits
|
|||||||
|
|
||||||
[AttributeUsage(AttributeTargets.Field)]
|
[AttributeUsage(AttributeTargets.Field)]
|
||||||
public sealed class UpgradeUsedReferenceAttribute : Attribute { }
|
public sealed class UpgradeUsedReferenceAttribute : Attribute { }
|
||||||
|
|
||||||
|
[AttributeUsage(AttributeTargets.Field)]
|
||||||
|
public sealed class PaletteDefinitionAttribute : Attribute { }
|
||||||
|
|
||||||
|
// TODO: differentiate player palettes
|
||||||
|
[AttributeUsage(AttributeTargets.Field)]
|
||||||
|
public sealed class PaletteReferenceAttribute : Attribute { }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,15 +16,20 @@ namespace OpenRA.Traits
|
|||||||
public class FixedColorPaletteInfo : ITraitInfo
|
public class FixedColorPaletteInfo : ITraitInfo
|
||||||
{
|
{
|
||||||
[Desc("The name of the palette to base off.")]
|
[Desc("The name of the palette to base off.")]
|
||||||
public readonly string Base = "terrain";
|
[PaletteReference] public readonly string Base = "terrain";
|
||||||
|
|
||||||
[Desc("The name of the resulting palette")]
|
[Desc("The name of the resulting palette")]
|
||||||
public readonly string Name = "resources";
|
[PaletteDefinition] public readonly string Name = "resources";
|
||||||
|
|
||||||
[Desc("Remap these indices to pre-defined colors.")]
|
[Desc("Remap these indices to pre-defined colors.")]
|
||||||
public readonly int[] RemapIndex = { };
|
public readonly int[] RemapIndex = { };
|
||||||
|
|
||||||
[Desc("The fixed color to remap.")]
|
[Desc("The fixed color to remap.")]
|
||||||
public readonly HSLColor Color;
|
public readonly HSLColor Color;
|
||||||
|
|
||||||
[Desc("Luminosity range to span.")]
|
[Desc("Luminosity range to span.")]
|
||||||
public readonly float Ramp = 0.05f;
|
public readonly float Ramp = 0.05f;
|
||||||
|
|
||||||
[Desc("Allow palette modifiers to change the palette.")]
|
[Desc("Allow palette modifiers to change the palette.")]
|
||||||
public readonly bool AllowModifiers = true;
|
public readonly bool AllowModifiers = true;
|
||||||
|
|
||||||
|
|||||||
@@ -17,13 +17,17 @@ namespace OpenRA.Traits
|
|||||||
public class PlayerColorPaletteInfo : ITraitInfo
|
public class PlayerColorPaletteInfo : ITraitInfo
|
||||||
{
|
{
|
||||||
[Desc("The name of the palette to base off.")]
|
[Desc("The name of the palette to base off.")]
|
||||||
public readonly string BasePalette = null;
|
[PaletteReference] public readonly string BasePalette = null;
|
||||||
|
|
||||||
[Desc("The prefix for the resulting player palettes")]
|
[Desc("The prefix for the resulting player palettes")]
|
||||||
public readonly string BaseName = "player";
|
public readonly string BaseName = "player";
|
||||||
|
|
||||||
[Desc("Remap these indices to player colors.")]
|
[Desc("Remap these indices to player colors.")]
|
||||||
public readonly int[] RemapIndex = { };
|
public readonly int[] RemapIndex = { };
|
||||||
|
|
||||||
[Desc("Luminosity range to span.")]
|
[Desc("Luminosity range to span.")]
|
||||||
public readonly float Ramp = 0.05f;
|
public readonly float Ramp = 0.05f;
|
||||||
|
|
||||||
[Desc("Allow palette modifiers to change the palette.")]
|
[Desc("Allow palette modifiers to change the palette.")]
|
||||||
public readonly bool AllowModifiers = true;
|
public readonly bool AllowModifiers = true;
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ namespace OpenRA.Traits
|
|||||||
{
|
{
|
||||||
public readonly string Sequence = "resources";
|
public readonly string Sequence = "resources";
|
||||||
[SequenceReference("Sequence")] public readonly string[] Variants = { };
|
[SequenceReference("Sequence")] public readonly string[] Variants = { };
|
||||||
public readonly string Palette = "terrain";
|
[PaletteReference] public readonly string Palette = "terrain";
|
||||||
public readonly int ResourceType = 1;
|
public readonly int ResourceType = 1;
|
||||||
|
|
||||||
public readonly int ValuePerUnit = 0;
|
public readonly int ValuePerUnit = 0;
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ namespace OpenRA.Mods.Cnc.Traits
|
|||||||
|
|
||||||
[Desc("Effect sequence to display")]
|
[Desc("Effect sequence to display")]
|
||||||
public readonly string Effect = "ionsfx";
|
public readonly string Effect = "ionsfx";
|
||||||
public readonly string EffectPalette = "effect";
|
[PaletteReference] public readonly string EffectPalette = "effect";
|
||||||
|
|
||||||
[Desc("Which weapon to fire"), WeaponReference]
|
[Desc("Which weapon to fire"), WeaponReference]
|
||||||
public readonly string Weapon = "IonCannon";
|
public readonly string Weapon = "IonCannon";
|
||||||
|
|||||||
@@ -35,13 +35,13 @@ namespace OpenRA.Mods.Common.Effects
|
|||||||
[SequenceReference("Image")] public readonly string Sequence = "idle";
|
[SequenceReference("Image")] public readonly string Sequence = "idle";
|
||||||
|
|
||||||
[Desc("The palette used to draw this projectile.")]
|
[Desc("The palette used to draw this projectile.")]
|
||||||
public readonly string Palette = "effect";
|
[PaletteReference] public readonly string Palette = "effect";
|
||||||
|
|
||||||
[Desc("Does this projectile have a shadow?")]
|
[Desc("Does this projectile have a shadow?")]
|
||||||
public readonly bool Shadow = false;
|
public readonly bool Shadow = false;
|
||||||
|
|
||||||
[Desc("Palette to use for this projectile's shadow if Shadow is true.")]
|
[Desc("Palette to use for this projectile's shadow if Shadow is true.")]
|
||||||
public readonly string ShadowPalette = "shadow";
|
[PaletteReference] public readonly string ShadowPalette = "shadow";
|
||||||
|
|
||||||
[Desc("Trail animation.")]
|
[Desc("Trail animation.")]
|
||||||
public readonly string Trail = null;
|
public readonly string Trail = null;
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ namespace OpenRA.Mods.Common.Effects
|
|||||||
[Desc("Sequence to play when launched. Skipped if null or empty.")]
|
[Desc("Sequence to play when launched. Skipped if null or empty.")]
|
||||||
[SequenceReference("Image")] public readonly string OpenSequence = null;
|
[SequenceReference("Image")] public readonly string OpenSequence = null;
|
||||||
|
|
||||||
public readonly string Palette = "effect";
|
[PaletteReference] public readonly string Palette = "effect";
|
||||||
|
|
||||||
public readonly bool Shadow = false;
|
public readonly bool Shadow = false;
|
||||||
|
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ namespace OpenRA.Mods.Common.Effects
|
|||||||
[Desc("Sequence of impact animation to use.")]
|
[Desc("Sequence of impact animation to use.")]
|
||||||
[SequenceReference("HitAnim")] public readonly string HitAnimSequence = "idle";
|
[SequenceReference("HitAnim")] public readonly string HitAnimSequence = "idle";
|
||||||
|
|
||||||
public readonly string HitAnimPalette = "effect";
|
[PaletteReference] public readonly string HitAnimPalette = "effect";
|
||||||
|
|
||||||
public IEffect Create(ProjectileArgs args)
|
public IEffect Create(ProjectileArgs args)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ namespace OpenRA.Mods.Common.Effects
|
|||||||
public readonly string Image = null;
|
public readonly string Image = null;
|
||||||
[SequenceReference("Image")] public readonly string Sequence = "idle";
|
[SequenceReference("Image")] public readonly string Sequence = "idle";
|
||||||
|
|
||||||
public readonly string Palette = "effect";
|
[PaletteReference] public readonly string Palette = "effect";
|
||||||
|
|
||||||
public readonly bool Shadow = false;
|
public readonly bool Shadow = false;
|
||||||
|
|
||||||
@@ -59,7 +59,8 @@ namespace OpenRA.Mods.Common.Effects
|
|||||||
[Desc("Interval in ticks between each spawned Trail animation.")]
|
[Desc("Interval in ticks between each spawned Trail animation.")]
|
||||||
public readonly int TrailInterval = 2;
|
public readonly int TrailInterval = 2;
|
||||||
|
|
||||||
public readonly string TrailPalette = "effect";
|
[PaletteReference] public readonly string TrailPalette = "effect";
|
||||||
|
|
||||||
public readonly bool TrailUsePlayerPalette = false;
|
public readonly bool TrailUsePlayerPalette = false;
|
||||||
public readonly int ContrailLength = 0;
|
public readonly int ContrailLength = 0;
|
||||||
public readonly Color ContrailColor = Color.White;
|
public readonly Color ContrailColor = Color.White;
|
||||||
|
|||||||
91
OpenRA.Mods.Common/Lint/CheckPalettes.cs
Normal file
91
OpenRA.Mods.Common/Lint/CheckPalettes.cs
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
#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;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using OpenRA.Mods.Common.Traits;
|
||||||
|
using OpenRA.Traits;
|
||||||
|
|
||||||
|
namespace OpenRA.Mods.Common.Lint
|
||||||
|
{
|
||||||
|
class CheckPalettes : ILintPass
|
||||||
|
{
|
||||||
|
public void Run(Action<string> emitError, Action<string> emitWarning, Map map)
|
||||||
|
{
|
||||||
|
if (map != null && !map.RuleDefinitions.Any())
|
||||||
|
return;
|
||||||
|
|
||||||
|
var rules = map == null ? Game.ModData.DefaultRules : map.Rules;
|
||||||
|
|
||||||
|
var palettes = GetPalettes(emitError, rules).ToList();
|
||||||
|
|
||||||
|
foreach (var actorInfo in rules.Actors)
|
||||||
|
{
|
||||||
|
foreach (var traitInfo in actorInfo.Value.Traits)
|
||||||
|
{
|
||||||
|
var fields = traitInfo.GetType().GetFields();
|
||||||
|
foreach (var field in fields.Where(x => x.HasAttribute<PaletteReferenceAttribute>()))
|
||||||
|
{
|
||||||
|
var references = LintExts.GetFieldValues(traitInfo, field, emitError);
|
||||||
|
foreach (var reference in references)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(reference))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (!palettes.Contains(reference))
|
||||||
|
emitError("Undefined palette reference {0} detected at {1}".F(reference, traitInfo));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var weaponInfo in rules.Weapons)
|
||||||
|
{
|
||||||
|
var projectileInfo = weaponInfo.Value.Projectile;
|
||||||
|
if (projectileInfo == null)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
foreach (var field in projectileInfo.GetType().GetFields())
|
||||||
|
{
|
||||||
|
if (field.HasAttribute<PaletteReferenceAttribute>())
|
||||||
|
{
|
||||||
|
var references = LintExts.GetFieldValues(projectileInfo, field, emitError);
|
||||||
|
foreach (var reference in references)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(reference))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (!palettes.Contains(reference))
|
||||||
|
emitError("Undefined palette reference {0} detected at weapon {1}.".F(reference, weaponInfo.Key));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static IEnumerable<string> GetPalettes(Action<string> emitError, Ruleset rules)
|
||||||
|
{
|
||||||
|
foreach (var actorInfo in rules.Actors)
|
||||||
|
{
|
||||||
|
foreach (var traitInfo in actorInfo.Value.Traits)
|
||||||
|
{
|
||||||
|
var fields = traitInfo.GetType().GetFields();
|
||||||
|
foreach (var field in fields.Where(x => x.HasAttribute<PaletteDefinitionAttribute>()))
|
||||||
|
{
|
||||||
|
var values = LintExts.GetFieldValues(traitInfo, field, emitError);
|
||||||
|
foreach (var value in values)
|
||||||
|
yield return value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -178,6 +178,7 @@
|
|||||||
<Compile Include="Graphics\VoxelActorPreview.cs" />
|
<Compile Include="Graphics\VoxelActorPreview.cs" />
|
||||||
<Compile Include="Graphics\VoxelRenderable.cs" />
|
<Compile Include="Graphics\VoxelRenderable.cs" />
|
||||||
<Compile Include="Lint\CheckSequences.cs" />
|
<Compile Include="Lint\CheckSequences.cs" />
|
||||||
|
<Compile Include="Lint\CheckPalettes.cs" />
|
||||||
<Compile Include="Lint\CheckPlayers.cs" />
|
<Compile Include="Lint\CheckPlayers.cs" />
|
||||||
<Compile Include="Lint\CheckActors.cs" />
|
<Compile Include="Lint\CheckActors.cs" />
|
||||||
<Compile Include="Lint\CheckMapCordon.cs" />
|
<Compile Include="Lint\CheckMapCordon.cs" />
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
public readonly string MuzzleSequence = null;
|
public readonly string MuzzleSequence = null;
|
||||||
|
|
||||||
[Desc("Palette to render Muzzle flash sequence in")]
|
[Desc("Palette to render Muzzle flash sequence in")]
|
||||||
public readonly string MuzzlePalette = "effect";
|
[PaletteReference] public readonly string MuzzlePalette = "effect";
|
||||||
|
|
||||||
[Desc("Use multiple muzzle images if non-zero")]
|
[Desc("Use multiple muzzle images if non-zero")]
|
||||||
public readonly int MuzzleSplitFacings = 0;
|
public readonly int MuzzleSplitFacings = 0;
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
[Desc("Fire port yaw cone angle.")]
|
[Desc("Fire port yaw cone angle.")]
|
||||||
public readonly WAngle[] PortCones = null;
|
public readonly WAngle[] PortCones = null;
|
||||||
|
|
||||||
public readonly string MuzzlePalette = "effect";
|
[PaletteReference] public readonly string MuzzlePalette = "effect";
|
||||||
|
|
||||||
public override object Create(ActorInitializer init) { return new AttackGarrisoned(init.Self, this); }
|
public override object Create(ActorInitializer init) { return new AttackGarrisoned(init.Self, this); }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
public readonly string ForceFaction = null;
|
public readonly string ForceFaction = null;
|
||||||
|
|
||||||
[Desc("Palette used for the production icon.")]
|
[Desc("Palette used for the production icon.")]
|
||||||
public readonly string IconPalette = "chrome";
|
[PaletteReference] public readonly string IconPalette = "chrome";
|
||||||
|
|
||||||
// TODO: UI fluff; doesn't belong here
|
// TODO: UI fluff; doesn't belong here
|
||||||
public readonly int BuildPaletteOrder = 9999;
|
public readonly int BuildPaletteOrder = 9999;
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
public class BibInfo : ITraitInfo, Requires<BuildingInfo>, IRenderActorPreviewSpritesInfo, Requires<RenderSpritesInfo>
|
public class BibInfo : ITraitInfo, Requires<BuildingInfo>, IRenderActorPreviewSpritesInfo, Requires<RenderSpritesInfo>
|
||||||
{
|
{
|
||||||
[SequenceReference] public readonly string Sequence = "bib";
|
[SequenceReference] public readonly string Sequence = "bib";
|
||||||
public readonly string Palette = "terrain";
|
[PaletteReference] public readonly string Palette = "terrain";
|
||||||
public readonly bool HasMinibib = false;
|
public readonly bool HasMinibib = false;
|
||||||
|
|
||||||
public object Create(ActorInitializer init) { return new Bib(init.Self, this); }
|
public object Create(ActorInitializer init) { return new Bib(init.Self, this); }
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
[SequenceReference("IndicatorImage")] public readonly string IndicatorSequence = "repair";
|
[SequenceReference("IndicatorImage")] public readonly string IndicatorSequence = "repair";
|
||||||
|
|
||||||
[Desc("Overrides the IndicatorPalettePrefix.")]
|
[Desc("Overrides the IndicatorPalettePrefix.")]
|
||||||
public readonly string IndicatorPalette = "";
|
[PaletteReference] public readonly string IndicatorPalette = "";
|
||||||
|
|
||||||
[Desc("Suffixed by the interal repairing player name.")]
|
[Desc("Suffixed by the interal repairing player name.")]
|
||||||
public readonly string IndicatorPalettePrefix = "player";
|
public readonly string IndicatorPalettePrefix = "player";
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
|
|
||||||
public readonly string CloakSound = null;
|
public readonly string CloakSound = null;
|
||||||
public readonly string UncloakSound = null;
|
public readonly string UncloakSound = null;
|
||||||
public readonly string Palette = "cloak";
|
[PaletteReference] public readonly string Palette = "cloak";
|
||||||
|
|
||||||
public readonly string[] CloakTypes = { "Cloak" };
|
public readonly string[] CloakTypes = { "Cloak" };
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
public readonly string Effect = null;
|
public readonly string Effect = null;
|
||||||
|
|
||||||
[Desc("Palette to draw the animation in.")]
|
[Desc("Palette to draw the animation in.")]
|
||||||
public readonly string Palette = "effect";
|
[PaletteReference] public readonly string Palette = "effect";
|
||||||
|
|
||||||
[Desc("Audio clip to play when the crate is collected.")]
|
[Desc("Audio clip to play when the crate is collected.")]
|
||||||
public readonly string Notification = null;
|
public readonly string Notification = null;
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
public readonly Dictionary<int, string[]> Upgrades = null;
|
public readonly Dictionary<int, string[]> Upgrades = null;
|
||||||
|
|
||||||
[Desc("Palette for the level up sprite.")]
|
[Desc("Palette for the level up sprite.")]
|
||||||
public readonly string LevelUpPalette = "effect";
|
[PaletteReference] public readonly string LevelUpPalette = "effect";
|
||||||
|
|
||||||
[Desc("Should the level-up animation be suppressed when actor is created?")]
|
[Desc("Should the level-up animation be suppressed when actor is created?")]
|
||||||
public readonly bool SuppressLevelupAnimation = true;
|
public readonly bool SuppressLevelupAnimation = true;
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
public class UpgradeOverlayInfo : UpgradableTraitInfo
|
public class UpgradeOverlayInfo : UpgradableTraitInfo
|
||||||
{
|
{
|
||||||
[Desc("Palette to use when rendering the overlay")]
|
[Desc("Palette to use when rendering the overlay")]
|
||||||
public readonly string Palette = "invuln";
|
[PaletteReference] public readonly string Palette = "invuln";
|
||||||
|
|
||||||
public override object Create(ActorInitializer init) { return new UpgradeOverlay(this); }
|
public override object Create(ActorInitializer init) { return new UpgradeOverlay(this); }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,11 +24,11 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
|
|
||||||
public readonly string GroundImpactSound = null;
|
public readonly string GroundImpactSound = null;
|
||||||
[SequenceReference("CorpseSequenceCollection")] public readonly string GroundCorpseSequence = "corpse";
|
[SequenceReference("CorpseSequenceCollection")] public readonly string GroundCorpseSequence = "corpse";
|
||||||
public readonly string GroundCorpsePalette = "effect";
|
[PaletteReference] public readonly string GroundCorpsePalette = "effect";
|
||||||
|
|
||||||
public readonly string WaterImpactSound = null;
|
public readonly string WaterImpactSound = null;
|
||||||
[SequenceReference("CorpseSequenceCollection")] public readonly string WaterCorpseSequence = null;
|
[SequenceReference("CorpseSequenceCollection")] public readonly string WaterCorpseSequence = null;
|
||||||
public readonly string WaterCorpsePalette = "effect";
|
[PaletteReference] public readonly string WaterCorpsePalette = "effect";
|
||||||
|
|
||||||
public readonly int FallRate = 13;
|
public readonly int FallRate = 13;
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
public class PlaceBuildingInfo : ITraitInfo
|
public class PlaceBuildingInfo : ITraitInfo
|
||||||
{
|
{
|
||||||
[Desc("Palette to use for rendering the placement sprite.")]
|
[Desc("Palette to use for rendering the placement sprite.")]
|
||||||
public readonly string Palette = "terrain";
|
[PaletteReference] public readonly string Palette = "terrain";
|
||||||
|
|
||||||
[Desc("Play NewOptionsNotification this many ticks after building placement.")]
|
[Desc("Play NewOptionsNotification this many ticks after building placement.")]
|
||||||
public readonly int NewOptionsNotificationDelay = 10;
|
public readonly int NewOptionsNotificationDelay = 10;
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
public class LeavesTrailsInfo : ITraitInfo
|
public class LeavesTrailsInfo : ITraitInfo
|
||||||
{
|
{
|
||||||
public readonly string Image = null;
|
public readonly string Image = null;
|
||||||
public readonly string Palette = "effect";
|
[PaletteReference] public readonly string Palette = "effect";
|
||||||
|
|
||||||
[Desc("Only do so when the terrain types match with the previous cell.")]
|
[Desc("Only do so when the terrain types match with the previous cell.")]
|
||||||
public readonly string[] TerrainTypes = { };
|
public readonly string[] TerrainTypes = { };
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
public readonly Dictionary<string, string> RaceImages = null;
|
public readonly Dictionary<string, string> RaceImages = null;
|
||||||
|
|
||||||
[Desc("Custom palette name")]
|
[Desc("Custom palette name")]
|
||||||
public readonly string Palette = null;
|
[PaletteReference] public readonly string Palette = null;
|
||||||
|
|
||||||
[Desc("Custom PlayerColorPalette: BaseName")]
|
[Desc("Custom PlayerColorPalette: BaseName")]
|
||||||
public readonly string PlayerPalette = "player";
|
public readonly string PlayerPalette = "player";
|
||||||
|
|||||||
@@ -28,12 +28,12 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
public readonly string Image = null;
|
public readonly string Image = null;
|
||||||
|
|
||||||
[Desc("Custom palette name")]
|
[Desc("Custom palette name")]
|
||||||
public readonly string Palette = null;
|
[PaletteReference] public readonly string Palette = null;
|
||||||
|
|
||||||
[Desc("Custom PlayerColorPalette: BaseName")]
|
[Desc("Custom PlayerColorPalette: BaseName")]
|
||||||
public readonly string PlayerPalette = "player";
|
[PaletteReference] public readonly string PlayerPalette = "player";
|
||||||
public readonly string NormalsPalette = "normals";
|
[PaletteReference] public readonly string NormalsPalette = "normals";
|
||||||
public readonly string ShadowPalette = "shadow";
|
[PaletteReference] public readonly string ShadowPalette = "shadow";
|
||||||
|
|
||||||
[Desc("Change the image size.")]
|
[Desc("Change the image size.")]
|
||||||
public readonly float Scale = 10;
|
public readonly float Scale = 10;
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
{
|
{
|
||||||
public class SelectionDecorationsInfo : ITraitInfo, ISelectionDecorationsInfo
|
public class SelectionDecorationsInfo : ITraitInfo, ISelectionDecorationsInfo
|
||||||
{
|
{
|
||||||
public readonly string Palette = "chrome";
|
[PaletteReference] public readonly string Palette = "chrome";
|
||||||
|
|
||||||
[Desc("Visual bounds for selection box. If null, it uses AutoSelectionSize.",
|
[Desc("Visual bounds for selection box. If null, it uses AutoSelectionSize.",
|
||||||
"The first two values define the bounds' size, the optional third and fourth",
|
"The first two values define the bounds' size, the optional third and fourth",
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
public readonly int Delay = 0;
|
public readonly int Delay = 0;
|
||||||
|
|
||||||
[Desc("Custom palette name")]
|
[Desc("Custom palette name")]
|
||||||
public readonly string Palette = "effect";
|
[PaletteReference] public readonly string Palette = "effect";
|
||||||
|
|
||||||
public object Create(ActorInitializer init) { return new WithBuildingExplosion(init.Self, this); }
|
public object Create(ActorInitializer init) { return new WithBuildingExplosion(init.Self, this); }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
public readonly WVec Offset = WVec.Zero;
|
public readonly WVec Offset = WVec.Zero;
|
||||||
|
|
||||||
[Desc("Custom palette name")]
|
[Desc("Custom palette name")]
|
||||||
public readonly string Palette = null;
|
[PaletteReference] public readonly string Palette = null;
|
||||||
|
|
||||||
[Desc("Custom palette is a player palette BaseName")]
|
[Desc("Custom palette is a player palette BaseName")]
|
||||||
public readonly bool IsPlayerPalette = false;
|
public readonly bool IsPlayerPalette = false;
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
[SequenceReference] public readonly string Sequence = "active";
|
[SequenceReference] public readonly string Sequence = "active";
|
||||||
|
|
||||||
[Desc("Custom palette name")]
|
[Desc("Custom palette name")]
|
||||||
public readonly string Palette = null;
|
[PaletteReference] public readonly string Palette = null;
|
||||||
|
|
||||||
[Desc("Custom palette is a player palette BaseName")]
|
[Desc("Custom palette is a player palette BaseName")]
|
||||||
public readonly bool IsPlayerPalette = false;
|
public readonly bool IsPlayerPalette = false;
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
public readonly string Sequence = null;
|
public readonly string Sequence = null;
|
||||||
|
|
||||||
[Desc("Palette to render the sprite in. Reference the world actor's PaletteFrom* traits.")]
|
[Desc("Palette to render the sprite in. Reference the world actor's PaletteFrom* traits.")]
|
||||||
public readonly string Palette = "chrome";
|
[PaletteReference] public readonly string Palette = "chrome";
|
||||||
|
|
||||||
[Desc("Point in the actor's bounding box used as reference for offsetting the decoration image." +
|
[Desc("Point in the actor's bounding box used as reference for offsetting the decoration image." +
|
||||||
"Possible values are any combination of Top, VCenter, Bottom and Left, HCenter, Right separated by a comma.")]
|
"Possible values are any combination of Top, VCenter, Bottom and Left, HCenter, Right separated by a comma.")]
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
[Desc("Position relative to body")]
|
[Desc("Position relative to body")]
|
||||||
public readonly WVec Offset = WVec.Zero;
|
public readonly WVec Offset = WVec.Zero;
|
||||||
|
|
||||||
public readonly string Palette = "effect";
|
[PaletteReference] public readonly string Palette = "effect";
|
||||||
|
|
||||||
public object Create(ActorInitializer init) { return new WithHarvestOverlay(init.Self, this); }
|
public object Create(ActorInitializer init) { return new WithHarvestOverlay(init.Self, this); }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
public readonly WVec Offset = WVec.Zero;
|
public readonly WVec Offset = WVec.Zero;
|
||||||
|
|
||||||
[Desc("Custom palette name")]
|
[Desc("Custom palette name")]
|
||||||
public readonly string Palette = null;
|
[PaletteReference] public readonly string Palette = null;
|
||||||
|
|
||||||
[Desc("Custom palette is a player palette BaseName")]
|
[Desc("Custom palette is a player palette BaseName")]
|
||||||
public readonly bool IsPlayerPalette = false;
|
public readonly bool IsPlayerPalette = false;
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
[Desc("Clones the aircraft sprite with another palette below it.")]
|
[Desc("Clones the aircraft sprite with another palette below it.")]
|
||||||
class WithShadowInfo : ITraitInfo
|
class WithShadowInfo : ITraitInfo
|
||||||
{
|
{
|
||||||
public readonly string Palette = "shadow";
|
[PaletteReference] public readonly string Palette = "shadow";
|
||||||
|
|
||||||
public object Create(ActorInitializer init) { return new WithShadow(this); }
|
public object Create(ActorInitializer init) { return new WithShadow(this); }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,13 +40,13 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
public readonly bool DisplayTimer = false;
|
public readonly bool DisplayTimer = false;
|
||||||
|
|
||||||
[Desc("Palette used for the icon.")]
|
[Desc("Palette used for the icon.")]
|
||||||
public readonly string IconPalette = "chrome";
|
[PaletteReference] public readonly string IconPalette = "chrome";
|
||||||
|
|
||||||
[Desc("Beacons are only supported on the Airstrike and Nuke powers")]
|
[Desc("Beacons are only supported on the Airstrike and Nuke powers")]
|
||||||
public readonly bool DisplayBeacon = false;
|
public readonly bool DisplayBeacon = false;
|
||||||
public readonly string BeaconPalettePrefix = "player";
|
public readonly string BeaconPalettePrefix = "player";
|
||||||
public readonly string BeaconPoster = null;
|
public readonly string BeaconPoster = null;
|
||||||
public readonly string BeaconPosterPalette = "chrome";
|
[PaletteReference] public readonly string BeaconPosterPalette = "chrome";
|
||||||
|
|
||||||
public readonly bool DisplayRadarPing = false;
|
public readonly bool DisplayRadarPing = false;
|
||||||
|
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
[SequenceReference("Image")] public readonly string Sequence = null;
|
[SequenceReference("Image")] public readonly string Sequence = null;
|
||||||
|
|
||||||
[Desc("Palette to render the sprite in. Reference the world actor's PaletteFrom* traits.")]
|
[Desc("Palette to render the sprite in. Reference the world actor's PaletteFrom* traits.")]
|
||||||
public readonly string Palette = "chrome";
|
[PaletteReference] public readonly string Palette = "chrome";
|
||||||
|
|
||||||
[Desc("Point on the production icon's used as reference for offsetting the overlay. ",
|
[Desc("Point on the production icon's used as reference for offsetting the overlay. ",
|
||||||
"Possible values are any combination of Top, VCenter, Bottom and Left, HCenter, Right separated by a comma.")]
|
"Possible values are any combination of Top, VCenter, Bottom and Left, HCenter, Right separated by a comma.")]
|
||||||
|
|||||||
@@ -18,11 +18,13 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
[Desc("Loads the palette specified in the tileset definition")]
|
[Desc("Loads the palette specified in the tileset definition")]
|
||||||
class PaletteFromCurrentTilesetInfo : ITraitInfo
|
class PaletteFromCurrentTilesetInfo : ITraitInfo
|
||||||
{
|
{
|
||||||
[FieldLoader.Require]
|
[FieldLoader.Require, PaletteDefinition]
|
||||||
[Desc("internal palette name")]
|
[Desc("internal palette name")]
|
||||||
public readonly string Name = null;
|
public readonly string Name = null;
|
||||||
|
|
||||||
[Desc("Map listed indices to shadow. Ignores previous color.")]
|
[Desc("Map listed indices to shadow. Ignores previous color.")]
|
||||||
public readonly int[] ShadowIndex = { };
|
public readonly int[] ShadowIndex = { };
|
||||||
|
|
||||||
public readonly bool AllowModifiers = true;
|
public readonly bool AllowModifiers = true;
|
||||||
|
|
||||||
public object Create(ActorInitializer init) { return new PaletteFromCurrentTileset(init.World, this); }
|
public object Create(ActorInitializer init) { return new PaletteFromCurrentTileset(init.World, this); }
|
||||||
|
|||||||
@@ -17,16 +17,20 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
{
|
{
|
||||||
class PaletteFromFileInfo : ITraitInfo
|
class PaletteFromFileInfo : ITraitInfo
|
||||||
{
|
{
|
||||||
[FieldLoader.Require]
|
[FieldLoader.Require, PaletteDefinition]
|
||||||
[Desc("internal palette name")]
|
[Desc("internal palette name")]
|
||||||
public readonly string Name = null;
|
public readonly string Name = null;
|
||||||
|
|
||||||
[Desc("If defined, load the palette only for this tileset.")]
|
[Desc("If defined, load the palette only for this tileset.")]
|
||||||
public readonly string Tileset = null;
|
public readonly string Tileset = null;
|
||||||
|
|
||||||
[FieldLoader.Require]
|
[FieldLoader.Require]
|
||||||
[Desc("filename to load")]
|
[Desc("filename to load")]
|
||||||
public readonly string Filename = null;
|
public readonly string Filename = null;
|
||||||
|
|
||||||
[Desc("Map listed indices to shadow. Ignores previous color.")]
|
[Desc("Map listed indices to shadow. Ignores previous color.")]
|
||||||
public readonly int[] ShadowIndex = { };
|
public readonly int[] ShadowIndex = { };
|
||||||
|
|
||||||
public readonly bool AllowModifiers = true;
|
public readonly bool AllowModifiers = true;
|
||||||
|
|
||||||
public object Create(ActorInitializer init) { return new PaletteFromFile(init.World, this); }
|
public object Create(ActorInitializer init) { return new PaletteFromFile(init.World, this); }
|
||||||
|
|||||||
@@ -19,11 +19,11 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
[Desc("Create a palette by applying alpha transparency to another palette.")]
|
[Desc("Create a palette by applying alpha transparency to another palette.")]
|
||||||
class PaletteFromPaletteWithAlphaInfo : ITraitInfo
|
class PaletteFromPaletteWithAlphaInfo : ITraitInfo
|
||||||
{
|
{
|
||||||
[FieldLoader.Require]
|
[FieldLoader.Require, PaletteDefinition]
|
||||||
[Desc("Internal palette name")]
|
[Desc("Internal palette name")]
|
||||||
public readonly string Name = null;
|
public readonly string Name = null;
|
||||||
|
|
||||||
[FieldLoader.Require]
|
[FieldLoader.Require, PaletteReference]
|
||||||
[Desc("The name of the palette to base off.")]
|
[Desc("The name of the palette to base off.")]
|
||||||
public readonly string BasePalette = null;
|
public readonly string BasePalette = null;
|
||||||
|
|
||||||
|
|||||||
@@ -18,19 +18,25 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
[Desc("Creates a single color palette without any base palette file.")]
|
[Desc("Creates a single color palette without any base palette file.")]
|
||||||
class PaletteFromRGBAInfo : ITraitInfo
|
class PaletteFromRGBAInfo : ITraitInfo
|
||||||
{
|
{
|
||||||
[FieldLoader.Require]
|
[FieldLoader.Require, PaletteDefinition]
|
||||||
[Desc("internal palette name")]
|
[Desc("internal palette name")]
|
||||||
public readonly string Name = null;
|
public readonly string Name = null;
|
||||||
|
|
||||||
[Desc("If defined, load the palette only for this tileset.")]
|
[Desc("If defined, load the palette only for this tileset.")]
|
||||||
public readonly string Tileset = null;
|
public readonly string Tileset = null;
|
||||||
|
|
||||||
[Desc("red color component")]
|
[Desc("red color component")]
|
||||||
public readonly int R = 0;
|
public readonly int R = 0;
|
||||||
|
|
||||||
[Desc("green color component")]
|
[Desc("green color component")]
|
||||||
public readonly int G = 0;
|
public readonly int G = 0;
|
||||||
|
|
||||||
[Desc("blue color component")]
|
[Desc("blue color component")]
|
||||||
public readonly int B = 0;
|
public readonly int B = 0;
|
||||||
|
|
||||||
[Desc("alpha channel (transparency)")]
|
[Desc("alpha channel (transparency)")]
|
||||||
public readonly int A = 255;
|
public readonly int A = 255;
|
||||||
|
|
||||||
public readonly bool AllowModifiers = true;
|
public readonly bool AllowModifiers = true;
|
||||||
|
|
||||||
public object Create(ActorInitializer init) { return new PaletteFromRGBA(init.World, this); }
|
public object Create(ActorInitializer init) { return new PaletteFromRGBA(init.World, this); }
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
{
|
{
|
||||||
class PlayerPaletteFromCurrentTilesetInfo : ITraitInfo
|
class PlayerPaletteFromCurrentTilesetInfo : ITraitInfo
|
||||||
{
|
{
|
||||||
[FieldLoader.Require]
|
[FieldLoader.Require, PaletteDefinition]
|
||||||
[Desc("internal palette name")]
|
[Desc("internal palette name")]
|
||||||
public readonly string Name = null;
|
public readonly string Name = null;
|
||||||
[Desc("Map listed indices to shadow.")]
|
[Desc("Map listed indices to shadow.")]
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
class ShroudPaletteInfo : ITraitInfo
|
class ShroudPaletteInfo : ITraitInfo
|
||||||
{
|
{
|
||||||
[Desc("Internal palette name")]
|
[Desc("Internal palette name")]
|
||||||
|
[FieldLoader.Require, PaletteDefinition]
|
||||||
public readonly string Name = "shroud";
|
public readonly string Name = "shroud";
|
||||||
|
|
||||||
[Desc("Palette type")]
|
[Desc("Palette type")]
|
||||||
|
|||||||
@@ -23,11 +23,11 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
public class ShroudRendererInfo : ITraitInfo
|
public class ShroudRendererInfo : ITraitInfo
|
||||||
{
|
{
|
||||||
public readonly string Sequence = "shroud";
|
public readonly string Sequence = "shroud";
|
||||||
public readonly string[] ShroudVariants = new[] { "shroud" };
|
[SequenceReference("Sequence")] public readonly string[] ShroudVariants = new[] { "shroud" };
|
||||||
public readonly string[] FogVariants = new[] { "fog" };
|
[SequenceReference("Sequence")] public readonly string[] FogVariants = new[] { "fog" };
|
||||||
|
|
||||||
public readonly string ShroudPalette = "shroud";
|
[PaletteReference] public readonly string ShroudPalette = "shroud";
|
||||||
public readonly string FogPalette = "fog";
|
[PaletteReference] public readonly string FogPalette = "fog";
|
||||||
|
|
||||||
[Desc("Bitfield of shroud directions for each frame. Lower four bits are",
|
[Desc("Bitfield of shroud directions for each frame. Lower four bits are",
|
||||||
"corners clockwise from TL; upper four are edges clockwise from top")]
|
"corners clockwise from TL; upper four are edges clockwise from top")]
|
||||||
@@ -37,11 +37,11 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
public readonly bool UseExtendedIndex = false;
|
public readonly bool UseExtendedIndex = false;
|
||||||
|
|
||||||
[Desc("Override for source art that doesn't define a fully shrouded tile")]
|
[Desc("Override for source art that doesn't define a fully shrouded tile")]
|
||||||
public readonly string OverrideFullShroud = null;
|
[SequenceReference("Sequence")] public readonly string OverrideFullShroud = null;
|
||||||
public readonly int OverrideShroudIndex = 15;
|
public readonly int OverrideShroudIndex = 15;
|
||||||
|
|
||||||
[Desc("Override for source art that doesn't define a fully fogged tile")]
|
[Desc("Override for source art that doesn't define a fully fogged tile")]
|
||||||
public readonly string OverrideFullFog = null;
|
[SequenceReference("Sequence")] public readonly string OverrideFullFog = null;
|
||||||
public readonly int OverrideFogIndex = 15;
|
public readonly int OverrideFogIndex = 15;
|
||||||
|
|
||||||
public readonly BlendMode ShroudBlend = BlendMode.Alpha;
|
public readonly BlendMode ShroudBlend = BlendMode.Alpha;
|
||||||
|
|||||||
@@ -31,9 +31,9 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
public readonly string SmokeType = "smoke_m";
|
public readonly string SmokeType = "smoke_m";
|
||||||
[SequenceReference("SmokeType")] public readonly string SmokeSequence = "idle";
|
[SequenceReference("SmokeType")] public readonly string SmokeSequence = "idle";
|
||||||
|
|
||||||
public readonly string SmokePalette = "effect";
|
[PaletteReference] public readonly string SmokePalette = "effect";
|
||||||
|
|
||||||
public readonly string Palette = "terrain";
|
[PaletteReference] public readonly string Palette = "terrain";
|
||||||
|
|
||||||
public object Create(ActorInitializer init) { return new SmudgeLayer(init.Self, this); }
|
public object Create(ActorInitializer init) { return new SmudgeLayer(init.Self, this); }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
{
|
{
|
||||||
public class VoxelNormalsPaletteInfo : ITraitInfo
|
public class VoxelNormalsPaletteInfo : ITraitInfo
|
||||||
{
|
{
|
||||||
|
[PaletteDefinition]
|
||||||
public readonly string Name = "normals";
|
public readonly string Name = "normals";
|
||||||
|
|
||||||
[Desc("Can be TiberianSun or RedAlert2")]
|
[Desc("Can be TiberianSun or RedAlert2")]
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ namespace OpenRA.Mods.D2k.Traits
|
|||||||
[SequenceReference] public readonly string Sequence = null;
|
[SequenceReference] public readonly string Sequence = null;
|
||||||
|
|
||||||
[Desc("Custom palette name")]
|
[Desc("Custom palette name")]
|
||||||
public readonly string Palette = null;
|
[PaletteReference] public readonly string Palette = null;
|
||||||
|
|
||||||
[Desc("Custom palette is a player palette BaseName")]
|
[Desc("Custom palette is a player palette BaseName")]
|
||||||
public readonly bool IsPlayerPalette = false;
|
public readonly bool IsPlayerPalette = false;
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ namespace OpenRA.Mods.D2k.Traits
|
|||||||
[SequenceReference] public readonly string Sequence = "crumble-overlay";
|
[SequenceReference] public readonly string Sequence = "crumble-overlay";
|
||||||
|
|
||||||
[Desc("Custom palette name")]
|
[Desc("Custom palette name")]
|
||||||
public readonly string Palette = null;
|
[PaletteReference] public readonly string Palette = null;
|
||||||
|
|
||||||
[Desc("Custom palette is a player palette BaseName")]
|
[Desc("Custom palette is a player palette BaseName")]
|
||||||
public readonly bool IsPlayerPalette = false;
|
public readonly bool IsPlayerPalette = false;
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ namespace OpenRA.Mods.D2k.Traits
|
|||||||
public readonly WVec Offset = WVec.Zero;
|
public readonly WVec Offset = WVec.Zero;
|
||||||
|
|
||||||
[Desc("Custom palette name")]
|
[Desc("Custom palette name")]
|
||||||
public readonly string Palette = null;
|
[PaletteReference] public readonly string Palette = null;
|
||||||
|
|
||||||
[Desc("Custom palette is a player palette BaseName")]
|
[Desc("Custom palette is a player palette BaseName")]
|
||||||
public readonly bool IsPlayerPalette = false;
|
public readonly bool IsPlayerPalette = false;
|
||||||
|
|||||||
@@ -19,14 +19,17 @@ namespace OpenRA.Mods.D2k.Traits
|
|||||||
{
|
{
|
||||||
class FogPaletteFromR8Info : ITraitInfo
|
class FogPaletteFromR8Info : ITraitInfo
|
||||||
{
|
{
|
||||||
[FieldLoader.Require]
|
[FieldLoader.Require, PaletteDefinition]
|
||||||
[Desc("Internal palette name")]
|
[Desc("Internal palette name")]
|
||||||
public readonly string Name = null;
|
public readonly string Name = null;
|
||||||
|
|
||||||
[FieldLoader.Require]
|
[FieldLoader.Require]
|
||||||
[Desc("Filename to load")]
|
[Desc("Filename to load")]
|
||||||
public readonly string Filename = null;
|
public readonly string Filename = null;
|
||||||
|
|
||||||
[Desc("Palette byte offset")]
|
[Desc("Palette byte offset")]
|
||||||
public readonly long Offset = 0;
|
public readonly long Offset = 0;
|
||||||
|
|
||||||
public readonly bool AllowModifiers = true;
|
public readonly bool AllowModifiers = true;
|
||||||
public readonly bool InvertColor = false;
|
public readonly bool InvertColor = false;
|
||||||
|
|
||||||
|
|||||||
@@ -19,14 +19,17 @@ namespace OpenRA.Mods.D2k.Traits
|
|||||||
{
|
{
|
||||||
class PaletteFromR8Info : ITraitInfo
|
class PaletteFromR8Info : ITraitInfo
|
||||||
{
|
{
|
||||||
[FieldLoader.Require]
|
[FieldLoader.Require, PaletteDefinition]
|
||||||
[Desc("Internal palette name")]
|
[Desc("Internal palette name")]
|
||||||
public readonly string Name = null;
|
public readonly string Name = null;
|
||||||
|
|
||||||
[FieldLoader.Require]
|
[FieldLoader.Require]
|
||||||
[Desc("Filename to load")]
|
[Desc("Filename to load")]
|
||||||
public readonly string Filename = null;
|
public readonly string Filename = null;
|
||||||
|
|
||||||
[Desc("Palette byte offset")]
|
[Desc("Palette byte offset")]
|
||||||
public readonly long Offset = 0;
|
public readonly long Offset = 0;
|
||||||
|
|
||||||
public readonly bool AllowModifiers = true;
|
public readonly bool AllowModifiers = true;
|
||||||
public readonly bool InvertColor = false;
|
public readonly bool InvertColor = false;
|
||||||
|
|
||||||
|
|||||||
@@ -19,11 +19,11 @@ namespace OpenRA.Mods.D2k.Traits
|
|||||||
[Desc("Create a palette by applying a scale and offset to the colors in another palette.")]
|
[Desc("Create a palette by applying a scale and offset to the colors in another palette.")]
|
||||||
class PaletteFromScaledPaletteInfo : ITraitInfo
|
class PaletteFromScaledPaletteInfo : ITraitInfo
|
||||||
{
|
{
|
||||||
[FieldLoader.Require]
|
[FieldLoader.Require, PaletteDefinition]
|
||||||
[Desc("Internal palette name")]
|
[Desc("Internal palette name")]
|
||||||
public readonly string Name = null;
|
public readonly string Name = null;
|
||||||
|
|
||||||
[FieldLoader.Require]
|
[FieldLoader.Require, PaletteReference]
|
||||||
[Desc("The name of the palette to base off.")]
|
[Desc("The name of the palette to base off.")]
|
||||||
public readonly string BasePalette = null;
|
public readonly string BasePalette = null;
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ namespace OpenRA.Mods.RA.Effects
|
|||||||
[SequenceReference("Image")] public readonly string BrightSequence = "bright";
|
[SequenceReference("Image")] public readonly string BrightSequence = "bright";
|
||||||
[SequenceReference("Image")] public readonly string DimSequence = "dim";
|
[SequenceReference("Image")] public readonly string DimSequence = "dim";
|
||||||
|
|
||||||
public readonly string Palette = "effect";
|
[PaletteReference] public readonly string Palette = "effect";
|
||||||
|
|
||||||
public readonly int BrightZaps = 1;
|
public readonly int BrightZaps = 1;
|
||||||
public readonly int DimZaps = 2;
|
public readonly int DimZaps = 2;
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ namespace OpenRA.Mods.TS.Traits
|
|||||||
[Desc("Adds the hard-coded shroud palette to the game")]
|
[Desc("Adds the hard-coded shroud palette to the game")]
|
||||||
class TSShroudPaletteInfo : ITraitInfo
|
class TSShroudPaletteInfo : ITraitInfo
|
||||||
{
|
{
|
||||||
|
[FieldLoader.Require, PaletteDefinition]
|
||||||
[Desc("Internal palette name")]
|
[Desc("Internal palette name")]
|
||||||
public readonly string Name = "shroud";
|
public readonly string Name = "shroud";
|
||||||
|
|
||||||
|
|||||||
@@ -54,6 +54,7 @@
|
|||||||
B: 0
|
B: 0
|
||||||
A: 180
|
A: 180
|
||||||
ShroudPalette@shroud:
|
ShroudPalette@shroud:
|
||||||
|
Name: shroud
|
||||||
Type: Shroud
|
Type: Shroud
|
||||||
ShroudPalette@fog:
|
ShroudPalette@fog:
|
||||||
Name: fog
|
Name: fog
|
||||||
|
|||||||
@@ -56,6 +56,7 @@
|
|||||||
B: 0
|
B: 0
|
||||||
A: 180
|
A: 180
|
||||||
ShroudPalette@shroud:
|
ShroudPalette@shroud:
|
||||||
|
Name: shroud
|
||||||
Type: Shroud
|
Type: Shroud
|
||||||
ShroudPalette@fog:
|
ShroudPalette@fog:
|
||||||
Name: fog
|
Name: fog
|
||||||
|
|||||||
@@ -80,6 +80,7 @@
|
|||||||
BasePalette: ra
|
BasePalette: ra
|
||||||
Alpha: 0.75
|
Alpha: 0.75
|
||||||
TSShroudPalette@shroud:
|
TSShroudPalette@shroud:
|
||||||
|
Name: shroud
|
||||||
Type: Shroud
|
Type: Shroud
|
||||||
VoxelNormalsPalette@normals:
|
VoxelNormalsPalette@normals:
|
||||||
Name: normals
|
Name: normals
|
||||||
|
|||||||
Reference in New Issue
Block a user