Add Visualization chat commands
This commit is contained in:
@@ -34,7 +34,7 @@ namespace OpenRA.Graphics
|
|||||||
readonly HardwarePalette palette = new HardwarePalette();
|
readonly HardwarePalette palette = new HardwarePalette();
|
||||||
readonly Dictionary<string, PaletteReference> palettes = new Dictionary<string, PaletteReference>();
|
readonly Dictionary<string, PaletteReference> palettes = new Dictionary<string, PaletteReference>();
|
||||||
readonly TerrainRenderer terrainRenderer;
|
readonly TerrainRenderer terrainRenderer;
|
||||||
readonly Lazy<DeveloperMode> devTrait;
|
readonly Lazy<DebugVisualizations> debugVis;
|
||||||
readonly Func<string, PaletteReference> createPaletteReference;
|
readonly Func<string, PaletteReference> createPaletteReference;
|
||||||
readonly bool enableDepthBuffer;
|
readonly bool enableDepthBuffer;
|
||||||
|
|
||||||
@@ -61,7 +61,7 @@ namespace OpenRA.Graphics
|
|||||||
Theater = new Theater(world.Map.Rules.TileSet);
|
Theater = new Theater(world.Map.Rules.TileSet);
|
||||||
terrainRenderer = new TerrainRenderer(world, this);
|
terrainRenderer = new TerrainRenderer(world, this);
|
||||||
|
|
||||||
devTrait = Exts.Lazy(() => world.LocalPlayer != null ? world.LocalPlayer.PlayerActor.Trait<DeveloperMode>() : null);
|
debugVis = Exts.Lazy(() => world.WorldActor.TraitOrDefault<DebugVisualizations>());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void UpdatePalettesForPlayer(string internalName, HSLColor color, bool replaceExisting)
|
public void UpdatePalettesForPlayer(string internalName, HSLColor color, bool replaceExisting)
|
||||||
@@ -125,11 +125,11 @@ namespace OpenRA.Graphics
|
|||||||
if (World.WorldActor.Disposed)
|
if (World.WorldActor.Disposed)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (devTrait.Value != null)
|
if (debugVis.Value != null)
|
||||||
{
|
{
|
||||||
Game.Renderer.WorldSpriteRenderer.SetDepthPreviewEnabled(devTrait.Value.ShowDepthPreview);
|
Game.Renderer.WorldSpriteRenderer.SetDepthPreviewEnabled(debugVis.Value.DepthBuffer);
|
||||||
Game.Renderer.WorldRgbaSpriteRenderer.SetDepthPreviewEnabled(devTrait.Value.ShowDepthPreview);
|
Game.Renderer.WorldRgbaSpriteRenderer.SetDepthPreviewEnabled(debugVis.Value.DepthBuffer);
|
||||||
Game.Renderer.WorldRgbaColorRenderer.SetDepthPreviewEnabled(devTrait.Value.ShowDepthPreview);
|
Game.Renderer.WorldRgbaColorRenderer.SetDepthPreviewEnabled(debugVis.Value.DepthBuffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
RefreshPalette();
|
RefreshPalette();
|
||||||
@@ -196,7 +196,7 @@ namespace OpenRA.Graphics
|
|||||||
foreach (var r in g)
|
foreach (var r in g)
|
||||||
r.Render(this);
|
r.Render(this);
|
||||||
|
|
||||||
if (devTrait.Value != null && devTrait.Value.ShowDebugGeometry)
|
if (debugVis.Value != null && debugVis.Value.RenderGeometry)
|
||||||
{
|
{
|
||||||
for (var i = 0; i < renderables.Count; i++)
|
for (var i = 0; i < renderables.Count; i++)
|
||||||
renderables[i].RenderDebugGeometry(this);
|
renderables[i].RenderDebugGeometry(this);
|
||||||
|
|||||||
@@ -190,6 +190,7 @@
|
|||||||
<Compile Include="Traits\World\ResourceType.cs" />
|
<Compile Include="Traits\World\ResourceType.cs" />
|
||||||
<Compile Include="Traits\World\ScreenShaker.cs" />
|
<Compile Include="Traits\World\ScreenShaker.cs" />
|
||||||
<Compile Include="Traits\World\Shroud.cs" />
|
<Compile Include="Traits\World\Shroud.cs" />
|
||||||
|
<Compile Include="Traits\World\DebugVisualizations.cs" />
|
||||||
<Compile Include="World.cs" />
|
<Compile Include="World.cs" />
|
||||||
<Compile Include="WorldUtils.cs" />
|
<Compile Include="WorldUtils.cs" />
|
||||||
<Compile Include="VoiceExts.cs" />
|
<Compile Include="VoiceExts.cs" />
|
||||||
|
|||||||
@@ -47,18 +47,6 @@ namespace OpenRA.Traits
|
|||||||
[Desc("Enable the path debug overlay by default.")]
|
[Desc("Enable the path debug overlay by default.")]
|
||||||
public bool PathDebug;
|
public bool PathDebug;
|
||||||
|
|
||||||
[Desc("Enable the combat geometry overlay by default.")]
|
|
||||||
public bool ShowCombatGeometry;
|
|
||||||
|
|
||||||
[Desc("Enable the debug geometry overlay by default.")]
|
|
||||||
public bool ShowDebugGeometry;
|
|
||||||
|
|
||||||
[Desc("Enable the depth buffer overlay by default.")]
|
|
||||||
public bool ShowDepthPreview;
|
|
||||||
|
|
||||||
[Desc("Enable the actor tags overlay by default.")]
|
|
||||||
public bool ShowActorTags;
|
|
||||||
|
|
||||||
IEnumerable<LobbyOption> ILobbyOptions.LobbyOptions(Ruleset rules)
|
IEnumerable<LobbyOption> ILobbyOptions.LobbyOptions(Ruleset rules)
|
||||||
{
|
{
|
||||||
yield return new LobbyBooleanOption("cheats", "Debug Menu", Enabled, Locked);
|
yield return new LobbyBooleanOption("cheats", "Debug Menu", Enabled, Locked);
|
||||||
@@ -88,12 +76,6 @@ namespace OpenRA.Traits
|
|||||||
public bool UnlimitedPower { get { return Enabled && unlimitedPower; } }
|
public bool UnlimitedPower { get { return Enabled && unlimitedPower; } }
|
||||||
public bool BuildAnywhere { get { return Enabled && buildAnywhere; } }
|
public bool BuildAnywhere { get { return Enabled && buildAnywhere; } }
|
||||||
|
|
||||||
// Client side only
|
|
||||||
public bool ShowCombatGeometry;
|
|
||||||
public bool ShowDebugGeometry;
|
|
||||||
public bool ShowDepthPreview;
|
|
||||||
public bool ShowActorTags;
|
|
||||||
|
|
||||||
bool enableAll;
|
bool enableAll;
|
||||||
|
|
||||||
public DeveloperMode(DeveloperModeInfo info)
|
public DeveloperMode(DeveloperModeInfo info)
|
||||||
@@ -105,11 +87,6 @@ namespace OpenRA.Traits
|
|||||||
pathDebug = info.PathDebug;
|
pathDebug = info.PathDebug;
|
||||||
unlimitedPower = info.UnlimitedPower;
|
unlimitedPower = info.UnlimitedPower;
|
||||||
buildAnywhere = info.BuildAnywhere;
|
buildAnywhere = info.BuildAnywhere;
|
||||||
|
|
||||||
ShowCombatGeometry = info.ShowCombatGeometry;
|
|
||||||
ShowDebugGeometry = info.ShowDebugGeometry;
|
|
||||||
ShowDepthPreview = info.ShowDepthPreview;
|
|
||||||
ShowActorTags = info.ShowActorTags;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void INotifyCreated.Created(Actor self)
|
void INotifyCreated.Created(Actor self)
|
||||||
|
|||||||
24
OpenRA.Game/Traits/World/DebugVisualizations.cs
Normal file
24
OpenRA.Game/Traits/World/DebugVisualizations.cs
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
#region Copyright & License Information
|
||||||
|
/*
|
||||||
|
* Copyright 2007-2017 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, either version 3 of
|
||||||
|
* the License, or (at your option) any later version. For more
|
||||||
|
* information, see COPYING.
|
||||||
|
*/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
namespace OpenRA.Traits
|
||||||
|
{
|
||||||
|
[Desc("Enables visualization commands. Attach this to the world actor.")]
|
||||||
|
public class DebugVisualizationsInfo : TraitInfo<DebugVisualizations> { }
|
||||||
|
|
||||||
|
public class DebugVisualizations
|
||||||
|
{
|
||||||
|
public bool CombatGeometry;
|
||||||
|
public bool RenderGeometry;
|
||||||
|
public bool DepthBuffer;
|
||||||
|
public bool ActorTags;
|
||||||
|
}
|
||||||
|
}
|
||||||
70
OpenRA.Mods.Common/Commands/DebugVisualizationCommands.cs
Normal file
70
OpenRA.Mods.Common/Commands/DebugVisualizationCommands.cs
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
#region Copyright & License Information
|
||||||
|
/*
|
||||||
|
* Copyright 2007-2017 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, either version 3 of
|
||||||
|
* the License, or (at your option) any later version. For more
|
||||||
|
* information, see COPYING.
|
||||||
|
*/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using OpenRA.Graphics;
|
||||||
|
using OpenRA.Traits;
|
||||||
|
|
||||||
|
namespace OpenRA.Mods.Common.Commands
|
||||||
|
{
|
||||||
|
[Desc("Enables visualization commands via the chatbox. Attach this to the world actor.")]
|
||||||
|
public class DebugVisualizationCommandsInfo : TraitInfo<DebugVisualizationCommands> { }
|
||||||
|
|
||||||
|
public class DebugVisualizationCommands : IChatCommand, IWorldLoaded
|
||||||
|
{
|
||||||
|
DebugVisualizations debugVis;
|
||||||
|
|
||||||
|
public void WorldLoaded(World w, WorldRenderer wr)
|
||||||
|
{
|
||||||
|
var world = w;
|
||||||
|
debugVis = world.WorldActor.TraitOrDefault<DebugVisualizations>();
|
||||||
|
|
||||||
|
if (debugVis == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var console = world.WorldActor.Trait<ChatCommands>();
|
||||||
|
var help = world.WorldActor.Trait<HelpCommand>();
|
||||||
|
|
||||||
|
Action<string, string> register = (name, helpText) =>
|
||||||
|
{
|
||||||
|
console.RegisterCommand(name, this);
|
||||||
|
help.RegisterHelp(name, helpText);
|
||||||
|
};
|
||||||
|
|
||||||
|
register("showcombatgeometry", "toggles combat geometry overlay.");
|
||||||
|
register("showrendergeometry", "toggles render geometry overlay.");
|
||||||
|
register("showdepthbuffer", "toggles depth buffer overlay.");
|
||||||
|
register("showactortags", "toggles actor tags overlay.");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void InvokeCommand(string name, string arg)
|
||||||
|
{
|
||||||
|
switch (name)
|
||||||
|
{
|
||||||
|
case "showcombatgeometry":
|
||||||
|
debugVis.CombatGeometry ^= true;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "showrendergeometry":
|
||||||
|
debugVis.RenderGeometry ^= true;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "showdepthbuffer":
|
||||||
|
debugVis.DepthBuffer ^= true;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "showactortags":
|
||||||
|
debugVis.ActorTags ^= true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -157,6 +157,7 @@
|
|||||||
<Compile Include="Commands\DevCommands.cs" />
|
<Compile Include="Commands\DevCommands.cs" />
|
||||||
<Compile Include="Commands\HelpCommand.cs" />
|
<Compile Include="Commands\HelpCommand.cs" />
|
||||||
<Compile Include="Commands\PlayerCommands.cs" />
|
<Compile Include="Commands\PlayerCommands.cs" />
|
||||||
|
<Compile Include="Commands\DebugVisualizationCommands.cs" />
|
||||||
<Compile Include="Graphics\ActorPreview.cs" />
|
<Compile Include="Graphics\ActorPreview.cs" />
|
||||||
<Compile Include="Graphics\BeamRenderable.cs" />
|
<Compile Include="Graphics\BeamRenderable.cs" />
|
||||||
<Compile Include="Graphics\ContrailRenderable.cs" />
|
<Compile Include="Graphics\ContrailRenderable.cs" />
|
||||||
|
|||||||
@@ -10,7 +10,6 @@
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using OpenRA.Graphics;
|
using OpenRA.Graphics;
|
||||||
@@ -30,7 +29,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
static readonly WVec TargetPosHLine = new WVec(0, 128, 0);
|
static readonly WVec TargetPosHLine = new WVec(0, 128, 0);
|
||||||
static readonly WVec TargetPosVLine = new WVec(128, 0, 0);
|
static readonly WVec TargetPosVLine = new WVec(128, 0, 0);
|
||||||
|
|
||||||
readonly DeveloperMode devMode;
|
readonly DebugVisualizations debugVis;
|
||||||
readonly HealthInfo healthInfo;
|
readonly HealthInfo healthInfo;
|
||||||
readonly Lazy<BodyOrientation> coords;
|
readonly Lazy<BodyOrientation> coords;
|
||||||
|
|
||||||
@@ -42,8 +41,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
healthInfo = self.Info.TraitInfoOrDefault<HealthInfo>();
|
healthInfo = self.Info.TraitInfoOrDefault<HealthInfo>();
|
||||||
coords = Exts.Lazy(self.Trait<BodyOrientation>);
|
coords = Exts.Lazy(self.Trait<BodyOrientation>);
|
||||||
|
|
||||||
var localPlayer = self.World.LocalPlayer;
|
debugVis = self.World.WorldActor.TraitOrDefault<DebugVisualizations>();
|
||||||
devMode = localPlayer != null ? localPlayer.PlayerActor.Trait<DeveloperMode>() : null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void INotifyCreated.Created(Actor self)
|
void INotifyCreated.Created(Actor self)
|
||||||
@@ -54,7 +52,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
|
|
||||||
void IRenderAboveWorld.RenderAboveWorld(Actor self, WorldRenderer wr)
|
void IRenderAboveWorld.RenderAboveWorld(Actor self, WorldRenderer wr)
|
||||||
{
|
{
|
||||||
if (devMode == null || !devMode.ShowCombatGeometry)
|
if (debugVis == null || !debugVis.CombatGeometry)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
var wcr = Game.Renderer.WorldRgbaColorRenderer;
|
var wcr = Game.Renderer.WorldRgbaColorRenderer;
|
||||||
@@ -132,7 +130,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
|
|
||||||
void INotifyDamage.Damaged(Actor self, AttackInfo e)
|
void INotifyDamage.Damaged(Actor self, AttackInfo e)
|
||||||
{
|
{
|
||||||
if (devMode == null || !devMode.ShowCombatGeometry || e.Damage.Value == 0)
|
if (debugVis == null || !debugVis.CombatGeometry || e.Damage.Value == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (healthInfo == null)
|
if (healthInfo == null)
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
class CustomTerrainDebugOverlay : IWorldLoaded, IChatCommand, IRender
|
class CustomTerrainDebugOverlay : IWorldLoaded, IChatCommand, IRender
|
||||||
{
|
{
|
||||||
const string CommandName = "debugcustomterrain";
|
const string CommandName = "debugcustomterrain";
|
||||||
const string CommandDesc = "Toggles the custom terrain debug overlay.";
|
const string CommandDesc = "toggles the custom terrain debug overlay.";
|
||||||
|
|
||||||
public bool Enabled;
|
public bool Enabled;
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ namespace OpenRA.Mods.Common.Traits.Render
|
|||||||
|
|
||||||
class RenderDebugState : INotifyAddedToWorld, INotifyOwnerChanged, IRenderAboveShroudWhenSelected
|
class RenderDebugState : INotifyAddedToWorld, INotifyOwnerChanged, IRenderAboveShroudWhenSelected
|
||||||
{
|
{
|
||||||
readonly DeveloperMode devMode;
|
readonly DebugVisualizations debugVis;
|
||||||
readonly SpriteFont font;
|
readonly SpriteFont font;
|
||||||
readonly Actor self;
|
readonly Actor self;
|
||||||
readonly WVec offset;
|
readonly WVec offset;
|
||||||
@@ -48,8 +48,7 @@ namespace OpenRA.Mods.Common.Traits.Render
|
|||||||
color = GetColor();
|
color = GetColor();
|
||||||
font = Game.Renderer.Fonts[info.Font];
|
font = Game.Renderer.Fonts[info.Font];
|
||||||
|
|
||||||
var localPlayer = self.World.LocalPlayer;
|
debugVis = self.World.WorldActor.TraitOrDefault<DebugVisualizations>();
|
||||||
devMode = localPlayer != null ? localPlayer.PlayerActor.Trait<DeveloperMode>() : null;
|
|
||||||
ai = self.Owner.PlayerActor.TraitsImplementing<HackyAI>().FirstOrDefault(x => x.IsEnabled);
|
ai = self.Owner.PlayerActor.TraitsImplementing<HackyAI>().FirstOrDefault(x => x.IsEnabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -70,7 +69,7 @@ namespace OpenRA.Mods.Common.Traits.Render
|
|||||||
|
|
||||||
IEnumerable<IRenderable> IRenderAboveShroudWhenSelected.RenderAboveShroud(Actor self, WorldRenderer wr)
|
IEnumerable<IRenderable> IRenderAboveShroudWhenSelected.RenderAboveShroud(Actor self, WorldRenderer wr)
|
||||||
{
|
{
|
||||||
if (devMode == null || !devMode.ShowActorTags)
|
if (debugVis == null || !debugVis.ActorTags)
|
||||||
yield break;
|
yield break;
|
||||||
|
|
||||||
yield return new TextRenderable(font, self.CenterPosition - offset, 0, color, tagString);
|
yield return new TextRenderable(font, self.CenterPosition - offset, 0, color, tagString);
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
public class TerrainGeometryOverlay : IRenderAboveWorld, IWorldLoaded, IChatCommand
|
public class TerrainGeometryOverlay : IRenderAboveWorld, IWorldLoaded, IChatCommand
|
||||||
{
|
{
|
||||||
const string CommandName = "terrainoverlay";
|
const string CommandName = "terrainoverlay";
|
||||||
const string CommandDesc = "Toggles the terrain geometry overlay";
|
const string CommandDesc = "toggles the terrain geometry overlay.";
|
||||||
|
|
||||||
public bool Enabled;
|
public bool Enabled;
|
||||||
|
|
||||||
|
|||||||
@@ -25,12 +25,9 @@ namespace OpenRA.Mods.Common.Warheads
|
|||||||
{
|
{
|
||||||
var world = firedBy.World;
|
var world = firedBy.World;
|
||||||
|
|
||||||
if (world.LocalPlayer != null)
|
var debugVis = world.WorldActor.TraitOrDefault<DebugVisualizations>();
|
||||||
{
|
if (debugVis != null && debugVis.CombatGeometry)
|
||||||
var devMode = world.LocalPlayer.PlayerActor.TraitOrDefault<DeveloperMode>();
|
world.WorldActor.Trait<WarheadDebugOverlay>().AddImpact(pos, Spread, DebugOverlayColor);
|
||||||
if (devMode != null && devMode.ShowCombatGeometry)
|
|
||||||
world.WorldActor.Trait<WarheadDebugOverlay>().AddImpact(pos, Spread, DebugOverlayColor);
|
|
||||||
}
|
|
||||||
|
|
||||||
var range = Spread[0];
|
var range = Spread[0];
|
||||||
var hitActors = world.FindActorsInCircle(pos, range);
|
var hitActors = world.FindActorsInCircle(pos, range);
|
||||||
|
|||||||
@@ -54,12 +54,9 @@ namespace OpenRA.Mods.Common.Warheads
|
|||||||
{
|
{
|
||||||
var world = firedBy.World;
|
var world = firedBy.World;
|
||||||
|
|
||||||
if (world.LocalPlayer != null)
|
var debugVis = world.WorldActor.TraitOrDefault<DebugVisualizations>();
|
||||||
{
|
if (debugVis != null && debugVis.CombatGeometry)
|
||||||
var devMode = world.LocalPlayer.PlayerActor.TraitOrDefault<DeveloperMode>();
|
world.WorldActor.Trait<WarheadDebugOverlay>().AddImpact(pos, Range, DebugOverlayColor);
|
||||||
if (devMode != null && devMode.ShowCombatGeometry)
|
|
||||||
world.WorldActor.Trait<WarheadDebugOverlay>().AddImpact(pos, Range, DebugOverlayColor);
|
|
||||||
}
|
|
||||||
|
|
||||||
// This only finds actors where the center is within the search radius,
|
// This only finds actors where the center is within the search radius,
|
||||||
// so we need to search beyond the maximum spread to account for actors with large health radius
|
// so we need to search beyond the maximum spread to account for actors with large health radius
|
||||||
|
|||||||
@@ -10,7 +10,6 @@
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using OpenRA.GameRules;
|
|
||||||
using OpenRA.Mods.Common.Traits;
|
using OpenRA.Mods.Common.Traits;
|
||||||
using OpenRA.Traits;
|
using OpenRA.Traits;
|
||||||
|
|
||||||
@@ -33,12 +32,9 @@ namespace OpenRA.Mods.Common.Warheads
|
|||||||
var world = firedBy.World;
|
var world = firedBy.World;
|
||||||
var debugOverlayRange = new[] { WDist.Zero, new WDist(128) };
|
var debugOverlayRange = new[] { WDist.Zero, new WDist(128) };
|
||||||
|
|
||||||
if (world.LocalPlayer != null)
|
var debugVis = world.WorldActor.TraitOrDefault<DebugVisualizations>();
|
||||||
{
|
if (debugVis != null && debugVis.CombatGeometry)
|
||||||
var devMode = world.LocalPlayer.PlayerActor.TraitOrDefault<DeveloperMode>();
|
world.WorldActor.Trait<WarheadDebugOverlay>().AddImpact(pos, debugOverlayRange, DebugOverlayColor);
|
||||||
if (devMode != null && devMode.ShowCombatGeometry)
|
|
||||||
world.WorldActor.Trait<WarheadDebugOverlay>().AddImpact(pos, debugOverlayRange, DebugOverlayColor);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void DoImpact(Actor victim, Actor firedBy, IEnumerable<int> damageModifiers)
|
public override void DoImpact(Actor victim, Actor firedBy, IEnumerable<int> damageModifiers)
|
||||||
@@ -53,8 +49,9 @@ namespace OpenRA.Mods.Common.Warheads
|
|||||||
if (world.LocalPlayer != null)
|
if (world.LocalPlayer != null)
|
||||||
{
|
{
|
||||||
var debugOverlayRange = new[] { WDist.Zero, new WDist(128) };
|
var debugOverlayRange = new[] { WDist.Zero, new WDist(128) };
|
||||||
var devMode = world.LocalPlayer.PlayerActor.TraitOrDefault<DeveloperMode>();
|
|
||||||
if (devMode != null && devMode.ShowCombatGeometry)
|
var debugVis = world.WorldActor.TraitOrDefault<DebugVisualizations>();
|
||||||
|
if (debugVis != null && debugVis.CombatGeometry)
|
||||||
world.WorldActor.Trait<WarheadDebugOverlay>().AddImpact(victim.CenterPosition, debugOverlayRange, DebugOverlayColor);
|
world.WorldActor.Trait<WarheadDebugOverlay>().AddImpact(victim.CenterPosition, debugOverlayRange, DebugOverlayColor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
|||||||
public DebugMenuLogic(Widget widget, World world)
|
public DebugMenuLogic(Widget widget, World world)
|
||||||
{
|
{
|
||||||
var devTrait = world.LocalPlayer.PlayerActor.Trait<DeveloperMode>();
|
var devTrait = world.LocalPlayer.PlayerActor.Trait<DeveloperMode>();
|
||||||
|
var debugVis = world.WorldActor.TraitOrDefault<DebugVisualizations>();
|
||||||
|
|
||||||
var visibilityCheckbox = widget.GetOrNull<CheckboxWidget>("DISABLE_VISIBILITY_CHECKS");
|
var visibilityCheckbox = widget.GetOrNull<CheckboxWidget>("DISABLE_VISIBILITY_CHECKS");
|
||||||
if (visibilityCheckbox != null)
|
if (visibilityCheckbox != null)
|
||||||
@@ -63,15 +64,17 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
|||||||
var showCombatCheckbox = widget.GetOrNull<CheckboxWidget>("SHOW_COMBATOVERLAY");
|
var showCombatCheckbox = widget.GetOrNull<CheckboxWidget>("SHOW_COMBATOVERLAY");
|
||||||
if (showCombatCheckbox != null)
|
if (showCombatCheckbox != null)
|
||||||
{
|
{
|
||||||
showCombatCheckbox.IsChecked = () => devTrait.ShowCombatGeometry;
|
showCombatCheckbox.Disabled = debugVis == null;
|
||||||
showCombatCheckbox.OnClick = () => devTrait.ShowCombatGeometry ^= true;
|
showCombatCheckbox.IsChecked = () => debugVis != null && debugVis.CombatGeometry;
|
||||||
|
showCombatCheckbox.OnClick = () => debugVis.CombatGeometry ^= true;
|
||||||
}
|
}
|
||||||
|
|
||||||
var showGeometryCheckbox = widget.GetOrNull<CheckboxWidget>("SHOW_GEOMETRY");
|
var showGeometryCheckbox = widget.GetOrNull<CheckboxWidget>("SHOW_GEOMETRY");
|
||||||
if (showGeometryCheckbox != null)
|
if (showGeometryCheckbox != null)
|
||||||
{
|
{
|
||||||
showGeometryCheckbox.IsChecked = () => devTrait.ShowDebugGeometry;
|
showGeometryCheckbox.Disabled = debugVis == null;
|
||||||
showGeometryCheckbox.OnClick = () => devTrait.ShowDebugGeometry ^= true;
|
showGeometryCheckbox.IsChecked = () => debugVis != null && debugVis.RenderGeometry;
|
||||||
|
showGeometryCheckbox.OnClick = () => debugVis.RenderGeometry ^= true;
|
||||||
}
|
}
|
||||||
|
|
||||||
var terrainGeometryTrait = world.WorldActor.Trait<TerrainGeometryOverlay>();
|
var terrainGeometryTrait = world.WorldActor.Trait<TerrainGeometryOverlay>();
|
||||||
@@ -85,8 +88,9 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
|||||||
var showDepthPreviewCheckbox = widget.GetOrNull<CheckboxWidget>("SHOW_DEPTH_PREVIEW");
|
var showDepthPreviewCheckbox = widget.GetOrNull<CheckboxWidget>("SHOW_DEPTH_PREVIEW");
|
||||||
if (showDepthPreviewCheckbox != null)
|
if (showDepthPreviewCheckbox != null)
|
||||||
{
|
{
|
||||||
showDepthPreviewCheckbox.IsChecked = () => devTrait.ShowDepthPreview;
|
showDepthPreviewCheckbox.Disabled = debugVis == null;
|
||||||
showDepthPreviewCheckbox.OnClick = () => devTrait.ShowDepthPreview ^= true;
|
showDepthPreviewCheckbox.IsChecked = () => debugVis != null && debugVis.DepthBuffer;
|
||||||
|
showDepthPreviewCheckbox.OnClick = () => debugVis.DepthBuffer ^= true;
|
||||||
}
|
}
|
||||||
|
|
||||||
var allTechCheckbox = widget.GetOrNull<CheckboxWidget>("ENABLE_TECH");
|
var allTechCheckbox = widget.GetOrNull<CheckboxWidget>("ENABLE_TECH");
|
||||||
@@ -123,8 +127,9 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
|||||||
var showActorTagsCheckbox = widget.GetOrNull<CheckboxWidget>("SHOW_ACTOR_TAGS");
|
var showActorTagsCheckbox = widget.GetOrNull<CheckboxWidget>("SHOW_ACTOR_TAGS");
|
||||||
if (showActorTagsCheckbox != null)
|
if (showActorTagsCheckbox != null)
|
||||||
{
|
{
|
||||||
showActorTagsCheckbox.IsChecked = () => devTrait.ShowActorTags;
|
showActorTagsCheckbox.Disabled = debugVis == null;
|
||||||
showActorTagsCheckbox.OnClick = () => devTrait.ShowActorTags ^= true;
|
showActorTagsCheckbox.IsChecked = () => debugVis != null && debugVis.ActorTags;
|
||||||
|
showActorTagsCheckbox.OnClick = () => debugVis.ActorTags ^= true;
|
||||||
}
|
}
|
||||||
|
|
||||||
var showCustomTerrainCheckbox = widget.GetOrNull<CheckboxWidget>("SHOW_CUSTOMTERRAIN_OVERLAY");
|
var showCustomTerrainCheckbox = widget.GetOrNull<CheckboxWidget>("SHOW_CUSTOMTERRAIN_OVERLAY");
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
MusicPlaylist:
|
MusicPlaylist:
|
||||||
VictoryMusic: win1
|
VictoryMusic: win1
|
||||||
DefeatMusic: nod_map1
|
DefeatMusic: nod_map1
|
||||||
|
DebugVisualizations:
|
||||||
TerrainGeometryOverlay:
|
TerrainGeometryOverlay:
|
||||||
ShroudRenderer:
|
ShroudRenderer:
|
||||||
ShroudVariants: typea, typeb, typec, typed
|
ShroudVariants: typea, typeb, typec, typed
|
||||||
@@ -54,6 +55,7 @@ World:
|
|||||||
Inherits: ^BaseWorld
|
Inherits: ^BaseWorld
|
||||||
ChatCommands:
|
ChatCommands:
|
||||||
DevCommands:
|
DevCommands:
|
||||||
|
DebugVisualizationCommands:
|
||||||
PlayerCommands:
|
PlayerCommands:
|
||||||
HelpCommand:
|
HelpCommand:
|
||||||
ScreenShaker:
|
ScreenShaker:
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
VictoryMusic: score
|
VictoryMusic: score
|
||||||
DefeatMusic: score
|
DefeatMusic: score
|
||||||
TerrainGeometryOverlay:
|
TerrainGeometryOverlay:
|
||||||
|
DebugVisualizations:
|
||||||
ShroudRenderer:
|
ShroudRenderer:
|
||||||
ShroudVariants: shrouda, shroudb, shroudc, shroudd
|
ShroudVariants: shrouda, shroudb, shroudc, shroudd
|
||||||
FogVariants: foga, fogb, fogc, fogd
|
FogVariants: foga, fogb, fogc, fogd
|
||||||
@@ -64,6 +65,7 @@ World:
|
|||||||
Inherits: ^BaseWorld
|
Inherits: ^BaseWorld
|
||||||
ChatCommands:
|
ChatCommands:
|
||||||
DevCommands:
|
DevCommands:
|
||||||
|
DebugVisualizationCommands:
|
||||||
PlayerCommands:
|
PlayerCommands:
|
||||||
HelpCommand:
|
HelpCommand:
|
||||||
ScreenShaker:
|
ScreenShaker:
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
VictoryMusic: score
|
VictoryMusic: score
|
||||||
DefeatMusic: map
|
DefeatMusic: map
|
||||||
TerrainGeometryOverlay:
|
TerrainGeometryOverlay:
|
||||||
|
DebugVisualizations:
|
||||||
ShroudRenderer:
|
ShroudRenderer:
|
||||||
FogVariants: shroud
|
FogVariants: shroud
|
||||||
Index: 255, 16, 32, 48, 64, 80, 96, 112, 128, 144, 160, 176, 192, 208, 224, 240, 20, 40, 56, 65, 97, 130, 148, 194, 24, 33, 66, 132, 28, 41, 67, 134, 1, 2, 4, 8, 3, 6, 12, 9, 7, 14, 13, 11, 5, 10, 15, 255
|
Index: 255, 16, 32, 48, 64, 80, 96, 112, 128, 144, 160, 176, 192, 208, 224, 240, 20, 40, 56, 65, 97, 130, 148, 194, 24, 33, 66, 132, 28, 41, 67, 134, 1, 2, 4, 8, 3, 6, 12, 9, 7, 14, 13, 11, 5, 10, 15, 255
|
||||||
@@ -93,6 +94,7 @@ World:
|
|||||||
Inherits: ^BaseWorld
|
Inherits: ^BaseWorld
|
||||||
ChatCommands:
|
ChatCommands:
|
||||||
DevCommands:
|
DevCommands:
|
||||||
|
DebugVisualizationCommands:
|
||||||
PlayerCommands:
|
PlayerCommands:
|
||||||
HelpCommand:
|
HelpCommand:
|
||||||
ScreenShaker:
|
ScreenShaker:
|
||||||
|
|||||||
@@ -61,6 +61,7 @@
|
|||||||
AllowUnderActors: true
|
AllowUnderActors: true
|
||||||
TerrainType: Veins
|
TerrainType: Veins
|
||||||
TerrainGeometryOverlay:
|
TerrainGeometryOverlay:
|
||||||
|
DebugVisualizations:
|
||||||
ExitsDebugOverlayManager:
|
ExitsDebugOverlayManager:
|
||||||
CliffBackImpassabilityLayer:
|
CliffBackImpassabilityLayer:
|
||||||
SubterraneanActorLayer:
|
SubterraneanActorLayer:
|
||||||
@@ -70,6 +71,7 @@ World:
|
|||||||
Inherits: ^BaseWorld
|
Inherits: ^BaseWorld
|
||||||
ChatCommands:
|
ChatCommands:
|
||||||
DevCommands:
|
DevCommands:
|
||||||
|
DebugVisualizationCommands:
|
||||||
PlayerCommands:
|
PlayerCommands:
|
||||||
HelpCommand:
|
HelpCommand:
|
||||||
BuildingInfluence:
|
BuildingInfluence:
|
||||||
|
|||||||
Reference in New Issue
Block a user