Index: binaries/data/mods/public/simulation/components/Gate.js =================================================================== --- binaries/data/mods/public/simulation/components/Gate.js +++ binaries/data/mods/public/simulation/components/Gate.js @@ -236,6 +236,9 @@ var cmpVisual = Engine.QueryInterface(this.entity, IID_Visual); if (cmpVisual) cmpVisual.SelectAnimation("gate_opening", true, 1.0); + + let cmpTimer = Engine.QueryInterface(SYSTEM_ENTITY, IID_Timer); + this.timer = cmpTimer.SetTimeout(this.entity, IID_Gate, "SetIdle", 2500); }; /** @@ -280,6 +283,16 @@ let cmpVisual = Engine.QueryInterface(this.entity, IID_Visual); if (cmpVisual) cmpVisual.SelectAnimation("gate_closing", true, 1.0); + + let cmpTimer = Engine.QueryInterface(SYSTEM_ENTITY, IID_Timer); + this.timer = cmpTimer.SetTimeout(this.entity, IID_Gate, "SetIdle", 2500); }; +Gate.prototype.SetIdle = function() +{ + let cmpVisual = Engine.QueryInterface(this.entity, IID_Visual); + if (cmpVisual) + cmpVisual.SelectAnimation("idle", false, 1.0); +} + Engine.RegisterComponentType(IID_Gate, "Gate", Gate); Index: binaries/data/mods/public/simulation/components/tests/test_Gate.js =================================================================== --- binaries/data/mods/public/simulation/components/tests/test_Gate.js +++ binaries/data/mods/public/simulation/components/tests/test_Gate.js @@ -1,9 +1,14 @@ Engine.LoadComponentScript("interfaces/Gate.js"); +Engine.LoadComponentScript("interfaces/Timer.js"); Engine.LoadComponentScript("interfaces/UnitAI.js"); Engine.LoadComponentScript("Gate.js"); function testBasicBehaviour() { + AddMock(SYSTEM_ENTITY, IID_Timer, { + "SetTimeout": () => {} + }); + const gate = 10; const own = 11; const passRange = 20;