From 6734cd96a456f1d8a0e48ceec42666afe28b965a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Wed, 2 Jul 2014 10:58:18 +0200 Subject: [PATCH] add a voxel harvester unload animation --- .../Activities/VoxelHarvesterDockSequence.cs | 8 ++- OpenRA.Mods.TS/OpenRA.Mods.TS.csproj | 1 + OpenRA.Mods.TS/TiberianSunRefinery.cs | 2 +- OpenRA.Mods.TS/WithVoxelUnloadBody.cs | 61 +++++++++++++++++++ mods/ts/rules/vehicles.yaml | 2 +- mods/ts/sequences/voxels.yaml | 4 +- 6 files changed, 71 insertions(+), 7 deletions(-) create mode 100755 OpenRA.Mods.TS/WithVoxelUnloadBody.cs diff --git a/OpenRA.Mods.TS/Activities/VoxelHarvesterDockSequence.cs b/OpenRA.Mods.TS/Activities/VoxelHarvesterDockSequence.cs index 37ba084601..142756c4d5 100644 --- a/OpenRA.Mods.TS/Activities/VoxelHarvesterDockSequence.cs +++ b/OpenRA.Mods.TS/Activities/VoxelHarvesterDockSequence.cs @@ -18,19 +18,21 @@ using OpenRA.Traits; namespace OpenRA.Mods.TS { - public class SimpleHarvesterDockSequence : Activity + public class VoxelHarvesterDockSequence : Activity { enum State { Turn, Dock, Loop, Undock } readonly Actor proc; readonly Harvester harv; + readonly WithVoxelUnloadBody body; State state; - public SimpleHarvesterDockSequence(Actor self, Actor proc) + public VoxelHarvesterDockSequence(Actor self, Actor proc) { this.proc = proc; state = State.Turn; harv = self.Trait(); + body = self.Trait(); } public override Activity Tick(Actor self) @@ -45,6 +47,7 @@ namespace OpenRA.Mods.TS foreach (var nd in proc.TraitsImplementing()) nd.Docked(proc, self); state = State.Loop; + body.Docked = true; return this; case State.Loop: if (!proc.IsInWorld || proc.IsDead() || harv.TickUnload(self, proc)) @@ -54,6 +57,7 @@ namespace OpenRA.Mods.TS if (proc.IsInWorld && !proc.IsDead()) foreach (var nd in proc.TraitsImplementing()) nd.Undocked(proc, self); + body.Docked = false; return NextActivity; } diff --git a/OpenRA.Mods.TS/OpenRA.Mods.TS.csproj b/OpenRA.Mods.TS/OpenRA.Mods.TS.csproj index 5735d2e813..17c23d245a 100644 --- a/OpenRA.Mods.TS/OpenRA.Mods.TS.csproj +++ b/OpenRA.Mods.TS/OpenRA.Mods.TS.csproj @@ -50,6 +50,7 @@ +