// September 2015 // Levee Patroller / Dijk Patrouille // This source file is (c) by Deltares. This source file is open source but only available to select users. Do not redistribute without written permission of Stichting Deltares, Delft, The Netherlands. // This header has been automatically generated. //============================================================================= // Mover made for gates // Place Key frame one in one side and two in the other. 0 in beggining //============================================================================= class GateMover extends Mover; var int OpeningSide; // Handle when the mover finishes opening. function FinishedOpening() { // Update sound effects. PlaySound( OpenedSound, SLOT_None, SoundVolume / 255.0, false, SoundRadius, SoundPitch / 64.0); // Trigger any chained movers / Events TriggerEvent(Event, Self, Instigator); TriggerEvent(OpenedEvent, Self, Instigator); If ( MyMarker != None ) MyMarker.MoverOpened(); FinishNotify(); } // Open the mover. function DoSpecialOpen(int Side) { bOpening = true; bDelaying = false; InterpolateTo( Side, MoveTime ); MakeNoise(1.0); PlaySound( OpeningSound, SLOT_None, SoundVolume / 255.0, false, SoundRadius, SoundPitch / 64.0); AmbientSound = MoveAmbientSound; TriggerEvent(OpeningEvent, Self, Instigator); if ( Follower != None ) Follower.DoOpen(); } // Close the mover. function DoSpecialClose() { bOpening = false; bDelaying = false; InterpolateTo( 0, MoveTime ); MakeNoise(1.0); PlaySound( ClosingSound, SLOT_None, SoundVolume / 255.0, false, SoundRadius, SoundPitch / 64.0); UntriggerEvent(Event, self, Instigator); AmbientSound = MoveAmbientSound; TriggerEvent(ClosingEvent,Self,Instigator); } //================================================================= // Other Mover States // Toggle when triggered. state() TriggerToggle { function Trigger( actor Other, pawn EventInstigator ) { local GateTrigger MyGateTrigger; //Should use this one, check how to do the IsA function // if(Other.IsA("GateTrigger")) // { MyGateTrigger = GateTrigger(Other); if(MyGateTrigger != None) { OpeningSide = MyGateTrigger.GateOpeningSide; SavedTrigger = Other; Instigator = EventInstigator; if ( SavedTrigger != None ) SavedTrigger.BeginEvent(); if( KeyNum==0 ) GotoState( 'TriggerToggle', 'Open' ); } } Open: bClosed = false; if ( DelayTime > 0 ) { bDelaying = true; Sleep(DelayTime); } DoSpecialOpen(OpeningSide); FinishInterpolation(); FinishedOpening(); if ( SavedTrigger != None ) SavedTrigger.EndEvent(); Sleep( StayOpenTime ); if( bTriggerOnceOnly ) GotoState(''); Close: DoSpecialClose(); FinishInterpolation(); FinishedClosing(); } defaultproperties { ClosingSound=Sound'GeoHumanLandscapeSounds.wooden_gate.wooden_gate1' OpeningSound=Sound'GeoHumanLandscapeSounds.wooden_gate.wooden_gate1' InitialState=TriggerToggle StayOpenTime=12.0 }