diff --git a/1.6/Assemblies/WulaFallenEmpire.dll b/1.6/Assemblies/WulaFallenEmpire.dll index a28dc11c..7141428c 100644 Binary files a/1.6/Assemblies/WulaFallenEmpire.dll and b/1.6/Assemblies/WulaFallenEmpire.dll differ diff --git a/1.6/Assemblies/WulaFallenEmpire.pdb b/1.6/Assemblies/WulaFallenEmpire.pdb new file mode 100644 index 00000000..5846c13e Binary files /dev/null and b/1.6/Assemblies/WulaFallenEmpire.pdb differ diff --git a/1.6/Defs/PawnKinds/PawnKinds_Wula.xml b/1.6/Defs/PawnKinds/PawnKinds_Wula.xml index c410051b..ac4ede8d 100644 --- a/1.6/Defs/PawnKinds/PawnKinds_Wula.xml +++ b/1.6/Defs/PawnKinds/PawnKinds_Wula.xml @@ -219,8 +219,19 @@ Mech_WULA_Cat_Assault Mech_WULA_Cat_Assault + +
  • + + Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin + Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None + CutoutWithOverlay + Graphic_Multi + 1.1 + +
  • +
    -
  • Wula_Constructor_Cat_Weapon
  • +
  • Wula_Assault_Cat_Weapon
  • \ No newline at end of file diff --git a/1.6/Defs/WulaHullDefs/WulaHullDef.xml b/1.6/Defs/WulaHullDefs/WulaHullDef.xml new file mode 100644 index 00000000..eb51fedd --- /dev/null +++ b/1.6/Defs/WulaHullDefs/WulaHullDef.xml @@ -0,0 +1,26 @@ + + + + + + WulaHullConfig + + + + WulaWall + + + CutoutComplex + + + Things/Building/Linked/GravshipHull/AngledGravshipHull_northwest + Things/Building/Linked/GravshipHull/AngledGravshipHull_northeast + Things/Building/Linked/GravshipHull/AngledGravshipHull_southwest + Things/Building/Linked/GravshipHull/AngledGravshipHull_southeast + Things/Building/Linked/GravshipHull/AngledGravshipHull_Partial_northwest + Things/Building/Linked/GravshipHull/AngledGravshipHull_Partial_northeast + Things/Building/Linked/GravshipHull/AngledGravshipHull_Partial_southwest + Things/Building/Linked/GravshipHull/AngledGravshipHull_Partial_southeast + + + \ No newline at end of file diff --git a/Source/WulaFallenEmpire/.gitignore b/Source/WulaFallenEmpire/.gitignore new file mode 100644 index 00000000..93713d58 --- /dev/null +++ b/Source/WulaFallenEmpire/.gitignore @@ -0,0 +1,18 @@ +# Compiled output +bin/ +obj/ + +# Rider +.idea/ + +# Visual Studio +.vs/ +*.suo +*.user +*.userosf +*.sln.docstates + +# OS generated files +.DS_Store +.localized +Thumbs.db diff --git a/Source/WulaFallenEmpire/.vs/WulaFallenEmpire/FileContentIndex/299c3c50-9221-4905-9f8b-f9d7bba18ee3.vsidx b/Source/WulaFallenEmpire/.vs/WulaFallenEmpire/FileContentIndex/299c3c50-9221-4905-9f8b-f9d7bba18ee3.vsidx deleted file mode 100644 index 7f5f33cd..00000000 Binary files a/Source/WulaFallenEmpire/.vs/WulaFallenEmpire/FileContentIndex/299c3c50-9221-4905-9f8b-f9d7bba18ee3.vsidx and /dev/null differ diff --git a/Source/WulaFallenEmpire/.vs/WulaFallenEmpire/FileContentIndex/c22e1bad-5f90-4483-8bcb-f1e6d3c6413f.vsidx b/Source/WulaFallenEmpire/.vs/WulaFallenEmpire/FileContentIndex/c22e1bad-5f90-4483-8bcb-f1e6d3c6413f.vsidx deleted file mode 100644 index ac53fde2..00000000 Binary files a/Source/WulaFallenEmpire/.vs/WulaFallenEmpire/FileContentIndex/c22e1bad-5f90-4483-8bcb-f1e6d3c6413f.vsidx and /dev/null differ diff --git a/Source/WulaFallenEmpire/Building_Wula_DarkEnergy_Engine.cs b/Source/WulaFallenEmpire/Building_Wula_DarkEnergy_Engine.cs index 33f49471..d10298ee 100644 --- a/Source/WulaFallenEmpire/Building_Wula_DarkEnergy_Engine.cs +++ b/Source/WulaFallenEmpire/Building_Wula_DarkEnergy_Engine.cs @@ -1,43 +1,59 @@ using RimWorld; using System; -using System.Collections.Generic; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +using UnityEngine; using Verse; namespace WulaFallenEmpire { - [StaticConstructorOnStartup] - public class Building_Wula_DarkEnergy_Engine : Building_GravEngine + // ========================================================================= + // 1. 抽象的引擎父类 (Abstract Base Class) + // 它现在通过完全重写 DrawAt 方法来获得对绘制逻辑的控制权。 + // ========================================================================= + public abstract class Building_Wula_Engine_Base : Building_GravEngine { - // 子类自己的静态只读字段 - private static readonly string _childStaticValue = "Child Value"; - private static readonly CachedMaterial Wula_DarkEnergy_OrbMat = new CachedMaterial("Wula/Building/Wula_DarkEnergy_Engine_Orb", ShaderDatabase.Cutout); + // 契约:所有子类都必须提供一个用于绘制的能量球贴图。 + // 这个部分保持不变。 + protected abstract CachedMaterial OrbMat { get; } - // 通过实例属性暴露静态值 - protected override string InstanceValue => _childStaticValue; - private static readonly CachedMaterial OrbMat = new CachedMaterial("Wula/Building/Wula_DarkEnergy_Engine_Orb", ShaderDatabase.Cutout); - } - public abstract class Building_Wula_DarkEnergy_Engine_Parent : Building_GravEngine - { - // 受保护的抽象属性(实例级别) - protected abstract string InstanceValue { get; } - - // 公共访问点 - public void PrintValue() + // **关键修正**: 完全重写 DrawAt 方法 + protected override void DrawAt(Vector3 drawLoc, bool flip = false) { - Console.WriteLine(InstanceValue); + // --- 第 1 部分:复制父类的 `base.DrawAt(drawLoc, flip)` 逻辑 --- + // 这会负责绘制建筑本身的基础图形。 + base.DrawAt(drawLoc, flip); + + // --- 第 2 部分:复制并修改 `Building_GravEngine` 的绘制逻辑 --- + if (base.Spawned) + { + // 这是原版引擎的“悬浮”动画逻辑,我们将其完整保留。 + if (Find.TickManager.TicksGame >= cooldownCompleteTick) + { + drawLoc.z += 0.5f * (1f + Mathf.Sin((float)Math.PI * 2f * (float)GenTicks.TicksGame / 500f)) * 0.3f; + } + + // 这是原版引擎的高度微调,我们也保留。 + drawLoc.y += 0.03658537f; + + // 设置缩放,这部分也来自原版代码。 + Vector3 s = new Vector3(def.graphicData.drawSize.x, 1f, def.graphicData.drawSize.y); + + // **最终修改**: 使用我们自己的 OrbMat 属性,而不是父类的私有变量! + // 这使得子类可以自由决定能量球的外观。 + Graphics.DrawMesh(MeshPool.plane10Back, Matrix4x4.TRS(drawLoc, base.Rotation.AsQuat, s), this.OrbMat.Material, 0); + } } } - public class Child : Parent - { - // 子类自己的静态只读字段 - private static readonly string _childStaticValue = "Child Value"; - // 通过实例属性暴露静态值 - protected override string InstanceValue => _childStaticValue; + // ========================================================================= + // 2. 具体的暗能量引擎子类 (Concrete Child Class) + // 这个类完全不需要修改,它已经正确地实现了父类的要求。 + // ========================================================================= + [StaticConstructorOnStartup] + public class Building_Wula_DarkEnergy_Engine : Building_Wula_Engine_Base + { + private static readonly CachedMaterial _darkEnergyOrbMat = new CachedMaterial("Wula/Building/Wula_DarkEnergy_Engine_Orb", ShaderDatabase.Cutout); + + protected override CachedMaterial OrbMat => _darkEnergyOrbMat; } } \ No newline at end of file diff --git a/Source/WulaFallenEmpire/SectionLayer_WulaHull.cs b/Source/WulaFallenEmpire/SectionLayer_WulaHull.cs new file mode 100644 index 00000000..d927ad21 --- /dev/null +++ b/Source/WulaFallenEmpire/SectionLayer_WulaHull.cs @@ -0,0 +1,193 @@ +using LudeonTK; +using RimWorld; +using UnityEngine; +using Verse; + +namespace WulaFallenEmpire +{ + // 定义了一个数据结构,用于从XML文件中加载我们的配置。 + public class WulaHullDef : Def + { + // 以下所有 public 字段都会由RimWorld的加载系统自动从XML同名节点中填充。 + public ThingDef targetDef; + public ShaderTypeDef shaderType; + + public string texPath_Corner_NW; + public string texPath_Corner_NE; + public string texPath_Corner_SW; + public string texPath_Corner_SE; + public string texPath_Diagonal_NW; + public string texPath_Diagonal_NE; + public string texPath_Diagonal_SW; + public string texPath_Diagonal_SE; + + // 提供一个全局静态访问点,方便在代码中随时获取配置,而无需传来传去。 + public static WulaHullDef Current => DefDatabase.GetNamed("WulaHullConfig"); + } + + // 这是核心的渲染类,继承自SectionLayer,负责在地图上绘制额外的视觉效果。 + public class SectionLayer_WulaHull : SectionLayer + { + public enum CornerType { None, Corner_NW, Corner_NE, Corner_SW, Corner_SE, Diagonal_NW, Diagonal_NE, Diagonal_SW, Diagonal_SE } + + private static readonly Vector2[] UVs = { new Vector2(0f, 0f), new Vector2(0f, 1f), new Vector2(1f, 1f), new Vector2(1f, 0f) }; + [TweakValue("WulaHullCorners", 0f, 2f)] + private static float HullCornerScale = 2f; + + private static CachedMaterial mat_Corner_NW, mat_Corner_NE, mat_Corner_SW, mat_Corner_SE, mat_Diagonal_NW, mat_Diagonal_NE, mat_Diagonal_SW, mat_Diagonal_SE; + private static readonly float cornerAltitude = AltitudeLayer.BuildingOnTop.AltitudeFor(); + private static bool initalized; + + private static readonly IntVec3[] Directions = { IntVec3.North, IntVec3.East, IntVec3.South, IntVec3.West, IntVec3.North + IntVec3.West, IntVec3.North + IntVec3.East, IntVec3.South + IntVec3.East, IntVec3.South + IntVec3.West }; + private static bool[] tmpChecks = new bool[Directions.Length]; + + // 获取要使用的着色器。优先从XML配置中读取,如果未配置则使用一个安全合理的默认值。 + private static Shader WallShader => WulaHullDef.Current.shaderType?.Shader ?? ShaderDatabase.CutoutComplex; + + public override bool Visible => true; + + public SectionLayer_WulaHull(Section section) : base(section) + { + // 告诉游戏,当建筑、地形等发生变化时,需要重绘我们的图层。 + relevantChangeTypes = (ulong)MapMeshFlagDefOf.Buildings | (ulong)MapMeshFlagDefOf.Terrain | (ulong)MapMeshFlagDefOf.Things | (ulong)MapMeshFlagDefOf.Roofs; + } + + // 这是一个性能优化技巧,确保贴图和材质只在第一次使用时被加载和创建,而不是每次重绘都加载。 + private static void EnsureInitialized() + { + if (!initalized) + { + initalized = true; + WulaHullDef config = WulaHullDef.Current; + + mat_Corner_NW = new CachedMaterial(config.texPath_Corner_NW, WallShader); + mat_Corner_NE = new CachedMaterial(config.texPath_Corner_NE, WallShader); + mat_Corner_SW = new CachedMaterial(config.texPath_Corner_SW, WallShader); + mat_Corner_SE = new CachedMaterial(config.texPath_Corner_SE, WallShader); + mat_Diagonal_NW = new CachedMaterial(config.texPath_Diagonal_NW, WallShader); + mat_Diagonal_NE = new CachedMaterial(config.texPath_Diagonal_NE, WallShader); + mat_Diagonal_SW = new CachedMaterial(config.texPath_Diagonal_SW, WallShader); + mat_Diagonal_SE = new CachedMaterial(config.texPath_Diagonal_SE, WallShader); + } + } + + // 游戏引擎会定期调用这个方法来更新和重绘我们的图层。 + public override void Regenerate() + { + ClearSubMeshes(MeshParts.All); + Map map = base.Map; + TerrainGrid terrGrid = map.terrainGrid; + foreach (IntVec3 item in section.CellRect) + { + if (ShouldDrawCornerPiece(item, map, terrGrid, out var cornerType, out var color)) + { + CachedMaterial material = GetMaterial(cornerType); + IntVec3 offset = GetOffset(cornerType); + bool addGravshipMask = false; + bool addIndoorMask = IsCornerIndoorMasked(item, cornerType, map); + AddQuad(material.Material, item + offset, HullCornerScale, cornerAltitude, color, addGravshipMask, addIndoorMask); + } + } + FinalizeMesh(MeshParts.All); + } + + // 这是整个框架的核心判断逻辑。 + // 它检查给定的坐标,分析其周围8个方向的建筑,来决定是否需要绘制斜角,以及绘制哪种类型的斜角。 + public static bool ShouldDrawCornerPiece(IntVec3 pos, Map map, TerrainGrid terrGrid, out CornerType cornerType, out Color color) + { + cornerType = CornerType.None; + color = Color.white; + if (pos.GetEdifice(map) != null) return false; + TerrainDef terrainDef = terrGrid.FoundationAt(pos); + if (terrainDef != null && terrainDef.IsSubstructure) return false; + ThingDef targetDef = WulaHullDef.Current.targetDef; + if (targetDef == null) { Log.ErrorOnce("WulaHullConfig has a null targetDef. Please check WulaHullDefs.xml.", 168168168); return false; } + for (int i = 0; i < Directions.Length; i++) { tmpChecks[i] = (pos + Directions[i]).GetEdificeSafe(map)?.def == targetDef; } + if (tmpChecks[0] && tmpChecks[3] && !tmpChecks[2] && !tmpChecks[1]) cornerType = (tmpChecks[4] ? CornerType.Corner_NW : CornerType.Diagonal_NW); + else if (tmpChecks[0] && tmpChecks[1] && !tmpChecks[2] && !tmpChecks[3]) cornerType = (tmpChecks[5] ? CornerType.Corner_NE : CornerType.Diagonal_NE); + else if (tmpChecks[2] && tmpChecks[1] && !tmpChecks[0] && !tmpChecks[3]) cornerType = (tmpChecks[6] ? CornerType.Corner_SE : CornerType.Diagonal_SE); + else if (tmpChecks[2] && tmpChecks[3] && !tmpChecks[0] && !tmpChecks[1]) cornerType = (tmpChecks[7] ? CornerType.Corner_SW : CornerType.Diagonal_SW); + if (cornerType == CornerType.None) return false; + for (int j = 0; j < 4; j++) { if (tmpChecks[j]) { color = (pos + Directions[j]).GetEdificeSafe(map).DrawColor; break; } } + return true; + } + + private static CachedMaterial GetMaterial(CornerType edgeType) + { + EnsureInitialized(); + switch (edgeType) + { + case CornerType.Corner_NW: return mat_Corner_NW; + case CornerType.Corner_NE: return mat_Corner_NE; + case CornerType.Corner_SW: return mat_Corner_SW; + case CornerType.Corner_SE: return mat_Corner_SE; + case CornerType.Diagonal_NW: return mat_Diagonal_NW; + case CornerType.Diagonal_NE: return mat_Diagonal_NE; + case CornerType.Diagonal_SW: return mat_Diagonal_SW; + case CornerType.Diagonal_SE: return mat_Diagonal_SE; + default: throw new System.ArgumentOutOfRangeException("edgeType", edgeType, null); + } + } + + private static IntVec3 GetOffset(CornerType cornerType) + { + switch (cornerType) + { + case CornerType.Corner_NE: case CornerType.Diagonal_NE: return new IntVec3(0, 0, 0); + case CornerType.Corner_NW: case CornerType.Diagonal_NW: return new IntVec3(-1, 0, 0); + case CornerType.Corner_SE: case CornerType.Diagonal_SE: return new IntVec3(0, 0, -1); + case CornerType.Corner_SW: case CornerType.Diagonal_SW: return new IntVec3(-1, 0, -1); + default: return IntVec3.Zero; + } + } + + private void AddQuad(Material mat, IntVec3 c, float scale, float altitude, Color color, bool addGravshipMask, bool addIndoorMask) + { + LayerSubMesh subMesh = GetSubMesh(mat); + AddQuad(subMesh, c.ToVector3(), scale, altitude, color); + if (addGravshipMask) + { + Texture2D srcTex = subMesh.material.mainTexture as Texture2D; + Color color2 = subMesh.material.color; + Material material = MaterialPool.MatFrom(srcTex, ShaderDatabase.GravshipMaskMasked, color2); + AddQuad(GetSubMesh(material), c.ToVector3(), scale, altitude, color); + } + if (addIndoorMask) + { + Texture2D srcTex2 = subMesh.material.mainTexture as Texture2D; + Color color3 = subMesh.material.color; + Material material2 = MaterialPool.MatFrom(srcTex2, ShaderDatabase.IndoorMaskMasked, color3); + AddQuad(GetSubMesh(material2), c.ToVector3(), scale, altitude, color); + } + } + + private static void AddQuad(LayerSubMesh sm, Vector3 c, float scale, float altitude, Color color) + { + int count = sm.verts.Count; + for (int i = 0; i < 4; i++) + { + sm.verts.Add(new Vector3(c.x + UVs[i].x * scale, altitude, c.z + UVs[i].y * scale)); + sm.uvs.Add(UVs[i % 4]); + sm.colors.Add(color); + } + sm.tris.Add(count); + sm.tris.Add(count + 1); + sm.tris.Add(count + 2); + sm.tris.Add(count); + sm.tris.Add(count + 2); + sm.tris.Add(count + 3); + } + + private static bool IsCornerIndoorMasked(IntVec3 c, CornerType cornerType, Map map) + { + switch (cornerType) + { + case CornerType.Corner_NE: case CornerType.Diagonal_NE: if (!c.Roofed(map)) return (c + IntVec3.East).Roofed(map); return true; + case CornerType.Corner_NW: case CornerType.Diagonal_NW: if (!c.Roofed(map)) return (c + IntVec3.West).Roofed(map); return true; + case CornerType.Corner_SE: case CornerType.Diagonal_SE: if (!c.Roofed(map)) return (c + IntVec3.East).Roofed(map); return true; + case CornerType.Corner_SW: case CornerType.Diagonal_SW: if (!c.Roofed(map)) return (c + IntVec3.West).Roofed(map); return true; + default: return false; + } + } + } +} \ No newline at end of file diff --git a/Source/WulaFallenEmpire/WulaFallenEmpire.csproj b/Source/WulaFallenEmpire/WulaFallenEmpire.csproj index 7cf9c3fe..18b8e0ba 100644 --- a/Source/WulaFallenEmpire/WulaFallenEmpire.csproj +++ b/Source/WulaFallenEmpire/WulaFallenEmpire.csproj @@ -1,4 +1,4 @@ - + @@ -17,7 +17,7 @@ true full false - bin\Debug\ + ..\..\1.6\Assemblies\ DEBUG;TRACE prompt 4 @@ -32,7 +32,8 @@ - ..\..\..\..\RimWorldWin64_Data\Managed\Assembly-CSharp.dll + ..\..\..\..\..\..\common\RimWorld\RimWorldWin64_Data\Managed\Assembly-CSharp.dll + False @@ -42,13 +43,19 @@ + + ..\..\..\..\..\..\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.dll + False + - ..\..\..\..\RimWorldWin64_Data\Managed\UnityEngine.CoreModule.dll + ..\..\..\..\..\..\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.CoreModule.dll + False + \ No newline at end of file diff --git a/Source/WulaFallenEmpire/bin/Debug/Assembly-CSharp-firstpass.dll b/Source/WulaFallenEmpire/bin/Debug/Assembly-CSharp-firstpass.dll deleted file mode 100644 index 574dfc50..00000000 Binary files a/Source/WulaFallenEmpire/bin/Debug/Assembly-CSharp-firstpass.dll and /dev/null differ diff --git a/Source/WulaFallenEmpire/bin/Debug/Assembly-CSharp.dll b/Source/WulaFallenEmpire/bin/Debug/Assembly-CSharp.dll deleted file mode 100644 index 75153410..00000000 Binary files a/Source/WulaFallenEmpire/bin/Debug/Assembly-CSharp.dll and /dev/null differ diff --git a/Source/WulaFallenEmpire/bin/Debug/ISharpZipLib.dll b/Source/WulaFallenEmpire/bin/Debug/ISharpZipLib.dll deleted file mode 100644 index bb15d24f..00000000 Binary files a/Source/WulaFallenEmpire/bin/Debug/ISharpZipLib.dll and /dev/null differ diff --git a/Source/WulaFallenEmpire/bin/Debug/NAudio.dll b/Source/WulaFallenEmpire/bin/Debug/NAudio.dll deleted file mode 100644 index decb8dd2..00000000 Binary files a/Source/WulaFallenEmpire/bin/Debug/NAudio.dll and /dev/null differ diff --git a/Source/WulaFallenEmpire/bin/Debug/NVorbis.dll b/Source/WulaFallenEmpire/bin/Debug/NVorbis.dll deleted file mode 100644 index 89d72143..00000000 Binary files a/Source/WulaFallenEmpire/bin/Debug/NVorbis.dll and /dev/null differ diff --git a/Source/WulaFallenEmpire/bin/Debug/Unity.Burst.Unsafe.dll b/Source/WulaFallenEmpire/bin/Debug/Unity.Burst.Unsafe.dll deleted file mode 100644 index ac36cfa2..00000000 Binary files a/Source/WulaFallenEmpire/bin/Debug/Unity.Burst.Unsafe.dll and /dev/null differ diff --git a/Source/WulaFallenEmpire/bin/Debug/Unity.Burst.dll b/Source/WulaFallenEmpire/bin/Debug/Unity.Burst.dll deleted file mode 100644 index 85a06bd4..00000000 Binary files a/Source/WulaFallenEmpire/bin/Debug/Unity.Burst.dll and /dev/null differ diff --git a/Source/WulaFallenEmpire/bin/Debug/Unity.Collections.LowLevel.ILSupport.dll b/Source/WulaFallenEmpire/bin/Debug/Unity.Collections.LowLevel.ILSupport.dll deleted file mode 100644 index 638e2796..00000000 Binary files a/Source/WulaFallenEmpire/bin/Debug/Unity.Collections.LowLevel.ILSupport.dll and /dev/null differ diff --git a/Source/WulaFallenEmpire/bin/Debug/Unity.Collections.dll b/Source/WulaFallenEmpire/bin/Debug/Unity.Collections.dll deleted file mode 100644 index 0e79734d..00000000 Binary files a/Source/WulaFallenEmpire/bin/Debug/Unity.Collections.dll and /dev/null differ diff --git a/Source/WulaFallenEmpire/bin/Debug/Unity.Mathematics.dll b/Source/WulaFallenEmpire/bin/Debug/Unity.Mathematics.dll deleted file mode 100644 index 4e320232..00000000 Binary files a/Source/WulaFallenEmpire/bin/Debug/Unity.Mathematics.dll and /dev/null differ diff --git a/Source/WulaFallenEmpire/bin/Debug/Unity.TextMeshPro.dll b/Source/WulaFallenEmpire/bin/Debug/Unity.TextMeshPro.dll deleted file mode 100644 index 45496ada..00000000 Binary files a/Source/WulaFallenEmpire/bin/Debug/Unity.TextMeshPro.dll and /dev/null differ diff --git a/Source/WulaFallenEmpire/bin/Debug/UnityEngine.AnimationModule.dll b/Source/WulaFallenEmpire/bin/Debug/UnityEngine.AnimationModule.dll deleted file mode 100644 index ab14b3e6..00000000 Binary files a/Source/WulaFallenEmpire/bin/Debug/UnityEngine.AnimationModule.dll and /dev/null differ diff --git a/Source/WulaFallenEmpire/bin/Debug/UnityEngine.AssetBundleModule.dll b/Source/WulaFallenEmpire/bin/Debug/UnityEngine.AssetBundleModule.dll deleted file mode 100644 index 463dc93d..00000000 Binary files a/Source/WulaFallenEmpire/bin/Debug/UnityEngine.AssetBundleModule.dll and /dev/null differ diff --git a/Source/WulaFallenEmpire/bin/Debug/UnityEngine.AudioModule.dll b/Source/WulaFallenEmpire/bin/Debug/UnityEngine.AudioModule.dll deleted file mode 100644 index 78f1886b..00000000 Binary files a/Source/WulaFallenEmpire/bin/Debug/UnityEngine.AudioModule.dll and /dev/null differ diff --git a/Source/WulaFallenEmpire/bin/Debug/UnityEngine.CoreModule.dll b/Source/WulaFallenEmpire/bin/Debug/UnityEngine.CoreModule.dll deleted file mode 100644 index 4f569441..00000000 Binary files a/Source/WulaFallenEmpire/bin/Debug/UnityEngine.CoreModule.dll and /dev/null differ diff --git a/Source/WulaFallenEmpire/bin/Debug/UnityEngine.IMGUIModule.dll b/Source/WulaFallenEmpire/bin/Debug/UnityEngine.IMGUIModule.dll deleted file mode 100644 index 1cf0b119..00000000 Binary files a/Source/WulaFallenEmpire/bin/Debug/UnityEngine.IMGUIModule.dll and /dev/null differ diff --git a/Source/WulaFallenEmpire/bin/Debug/UnityEngine.ImageConversionModule.dll b/Source/WulaFallenEmpire/bin/Debug/UnityEngine.ImageConversionModule.dll deleted file mode 100644 index 7b5e0c1b..00000000 Binary files a/Source/WulaFallenEmpire/bin/Debug/UnityEngine.ImageConversionModule.dll and /dev/null differ diff --git a/Source/WulaFallenEmpire/bin/Debug/UnityEngine.InputLegacyModule.dll b/Source/WulaFallenEmpire/bin/Debug/UnityEngine.InputLegacyModule.dll deleted file mode 100644 index 68015db7..00000000 Binary files a/Source/WulaFallenEmpire/bin/Debug/UnityEngine.InputLegacyModule.dll and /dev/null differ diff --git a/Source/WulaFallenEmpire/bin/Debug/UnityEngine.PerformanceReportingModule.dll b/Source/WulaFallenEmpire/bin/Debug/UnityEngine.PerformanceReportingModule.dll deleted file mode 100644 index cffba325..00000000 Binary files a/Source/WulaFallenEmpire/bin/Debug/UnityEngine.PerformanceReportingModule.dll and /dev/null differ diff --git a/Source/WulaFallenEmpire/bin/Debug/UnityEngine.Physics2DModule.dll b/Source/WulaFallenEmpire/bin/Debug/UnityEngine.Physics2DModule.dll deleted file mode 100644 index 5c7020f9..00000000 Binary files a/Source/WulaFallenEmpire/bin/Debug/UnityEngine.Physics2DModule.dll and /dev/null differ diff --git a/Source/WulaFallenEmpire/bin/Debug/UnityEngine.PhysicsModule.dll b/Source/WulaFallenEmpire/bin/Debug/UnityEngine.PhysicsModule.dll deleted file mode 100644 index 4a8b0a42..00000000 Binary files a/Source/WulaFallenEmpire/bin/Debug/UnityEngine.PhysicsModule.dll and /dev/null differ diff --git a/Source/WulaFallenEmpire/bin/Debug/UnityEngine.PropertiesModule.dll b/Source/WulaFallenEmpire/bin/Debug/UnityEngine.PropertiesModule.dll deleted file mode 100644 index 6ec68356..00000000 Binary files a/Source/WulaFallenEmpire/bin/Debug/UnityEngine.PropertiesModule.dll and /dev/null differ diff --git a/Source/WulaFallenEmpire/bin/Debug/UnityEngine.ScreenCaptureModule.dll b/Source/WulaFallenEmpire/bin/Debug/UnityEngine.ScreenCaptureModule.dll deleted file mode 100644 index f3397e31..00000000 Binary files a/Source/WulaFallenEmpire/bin/Debug/UnityEngine.ScreenCaptureModule.dll and /dev/null differ diff --git a/Source/WulaFallenEmpire/bin/Debug/UnityEngine.SharedInternalsModule.dll b/Source/WulaFallenEmpire/bin/Debug/UnityEngine.SharedInternalsModule.dll deleted file mode 100644 index 0d807f45..00000000 Binary files a/Source/WulaFallenEmpire/bin/Debug/UnityEngine.SharedInternalsModule.dll and /dev/null differ diff --git a/Source/WulaFallenEmpire/bin/Debug/UnityEngine.SpriteShapeModule.dll b/Source/WulaFallenEmpire/bin/Debug/UnityEngine.SpriteShapeModule.dll deleted file mode 100644 index 24b201d0..00000000 Binary files a/Source/WulaFallenEmpire/bin/Debug/UnityEngine.SpriteShapeModule.dll and /dev/null differ diff --git a/Source/WulaFallenEmpire/bin/Debug/UnityEngine.TextCoreFontEngineModule.dll b/Source/WulaFallenEmpire/bin/Debug/UnityEngine.TextCoreFontEngineModule.dll deleted file mode 100644 index bdbc5d17..00000000 Binary files a/Source/WulaFallenEmpire/bin/Debug/UnityEngine.TextCoreFontEngineModule.dll and /dev/null differ diff --git a/Source/WulaFallenEmpire/bin/Debug/UnityEngine.TextCoreTextEngineModule.dll b/Source/WulaFallenEmpire/bin/Debug/UnityEngine.TextCoreTextEngineModule.dll deleted file mode 100644 index 3f8f3055..00000000 Binary files a/Source/WulaFallenEmpire/bin/Debug/UnityEngine.TextCoreTextEngineModule.dll and /dev/null differ diff --git a/Source/WulaFallenEmpire/bin/Debug/UnityEngine.TextRenderingModule.dll b/Source/WulaFallenEmpire/bin/Debug/UnityEngine.TextRenderingModule.dll deleted file mode 100644 index 3064bf8d..00000000 Binary files a/Source/WulaFallenEmpire/bin/Debug/UnityEngine.TextRenderingModule.dll and /dev/null differ diff --git a/Source/WulaFallenEmpire/bin/Debug/UnityEngine.UI.dll b/Source/WulaFallenEmpire/bin/Debug/UnityEngine.UI.dll deleted file mode 100644 index e84275cd..00000000 Binary files a/Source/WulaFallenEmpire/bin/Debug/UnityEngine.UI.dll and /dev/null differ diff --git a/Source/WulaFallenEmpire/bin/Debug/UnityEngine.UIModule.dll b/Source/WulaFallenEmpire/bin/Debug/UnityEngine.UIModule.dll deleted file mode 100644 index fc27804c..00000000 Binary files a/Source/WulaFallenEmpire/bin/Debug/UnityEngine.UIModule.dll and /dev/null differ diff --git a/Source/WulaFallenEmpire/bin/Debug/WulaFallenEmpire.dll b/Source/WulaFallenEmpire/bin/Debug/WulaFallenEmpire.dll deleted file mode 100644 index a28dc11c..00000000 Binary files a/Source/WulaFallenEmpire/bin/Debug/WulaFallenEmpire.dll and /dev/null differ diff --git a/Source/WulaFallenEmpire/bin/Debug/WulaFallenEmpire.pdb b/Source/WulaFallenEmpire/bin/Debug/WulaFallenEmpire.pdb deleted file mode 100644 index 44e2df3a..00000000 Binary files a/Source/WulaFallenEmpire/bin/Debug/WulaFallenEmpire.pdb and /dev/null differ diff --git a/Source/WulaFallenEmpire/bin/Debug/com.rlabrecque.steamworks.net.dll b/Source/WulaFallenEmpire/bin/Debug/com.rlabrecque.steamworks.net.dll deleted file mode 100644 index 4187b94c..00000000 Binary files a/Source/WulaFallenEmpire/bin/Debug/com.rlabrecque.steamworks.net.dll and /dev/null differ diff --git a/Source/WulaFallenEmpire/bin/Debug/netstandard.dll b/Source/WulaFallenEmpire/bin/Debug/netstandard.dll deleted file mode 100644 index 12f381af..00000000 Binary files a/Source/WulaFallenEmpire/bin/Debug/netstandard.dll and /dev/null differ diff --git a/Source/WulaFallenEmpire/obj/Debug/WulaFall.44DB8A10.Up2Date b/Source/WulaFallenEmpire/obj/Debug/WulaFall.44DB8A10.Up2Date deleted file mode 100644 index e69de29b..00000000 diff --git a/Textures/Wula/Building/Wula_DarkEnergy_Engine_east.sai2 b/Textures/Wula/Building/Wula_DarkEnergy_Engine_east.sai2 deleted file mode 100644 index 41c7aadb..00000000 Binary files a/Textures/Wula/Building/Wula_DarkEnergy_Engine_east.sai2 and /dev/null differ diff --git a/Textures/Wula/Building/Wula_DarkEnergy_FuelTank.png b/Textures/Wula/Building/Wula_DarkEnergy_FuelTank.png new file mode 100644 index 00000000..cf2923d4 Binary files /dev/null and b/Textures/Wula/Building/Wula_DarkEnergy_FuelTank.png differ diff --git a/Textures/Wula/Building/Wula_DarkEnergy_FuelTank.sai2 b/Textures/Wula/Building/Wula_DarkEnergy_FuelTank.sai2 new file mode 100644 index 00000000..4ca93dab Binary files /dev/null and b/Textures/Wula/Building/Wula_DarkEnergy_FuelTank.sai2 differ diff --git a/Textures/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_east.dds b/Textures/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_east.dds new file mode 100644 index 00000000..b88cc944 Binary files /dev/null and b/Textures/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_east.dds differ diff --git a/Textures/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_east.png b/Textures/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_east.png new file mode 100644 index 00000000..37b54f7e Binary files /dev/null and b/Textures/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_east.png differ diff --git a/Textures/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_north.dds b/Textures/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_north.dds new file mode 100644 index 00000000..b88cc944 Binary files /dev/null and b/Textures/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_north.dds differ diff --git a/Textures/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_north.png b/Textures/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_north.png new file mode 100644 index 00000000..37b54f7e Binary files /dev/null and b/Textures/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_north.png differ diff --git a/Textures/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_south.dds b/Textures/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_south.dds new file mode 100644 index 00000000..b88cc944 Binary files /dev/null and b/Textures/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_south.dds differ diff --git a/Textures/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_south.png b/Textures/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_south.png new file mode 100644 index 00000000..37b54f7e Binary files /dev/null and b/Textures/Wula/Things/WULA_Assault_Cat/AllegianceOverlays/None_south.png differ diff --git a/Textures/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_east.png b/Textures/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_east.png new file mode 100644 index 00000000..c3b4ffec Binary files /dev/null and b/Textures/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_east.png differ diff --git a/Textures/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_north.png b/Textures/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_north.png new file mode 100644 index 00000000..da83a87e Binary files /dev/null and b/Textures/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_north.png differ diff --git a/Textures/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_south.png b/Textures/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_south.png new file mode 100644 index 00000000..82181f2c Binary files /dev/null and b/Textures/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_south.png differ diff --git a/Textures/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_south.sai2 b/Textures/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_south.sai2 new file mode 100644 index 00000000..0e89b367 Binary files /dev/null and b/Textures/Wula/Things/WULA_Assault_Cat/WULA_Cat_Thin_south.sai2 differ diff --git a/Textures/Wula/Weapon/WULA_RW_Base_AR_Cat.png b/Textures/Wula/Weapon/WULA_RW_Base_AR_Cat.png new file mode 100644 index 00000000..52afaf1d Binary files /dev/null and b/Textures/Wula/Weapon/WULA_RW_Base_AR_Cat.png differ