예제 #1
0
        protected sealed override void ServerInitialize(ServerInitializeData data)
        {
            var activeEvent = data.GameObject;
            var publicState = data.PublicState;

            if (data.IsFirstTimeInit)
            {
                var serverTime = Server.Game.FrameTime;
                publicState.EventEndTime  = serverTime + this.EventDuration.TotalSeconds;
                this.ServerLastActiveTime = serverTime;
            }

            // schedule rest of the initialization on the next frame
            ServerTimersSystem.AddAction(
                delaySeconds: 0,
                () =>
            {
                if (activeEvent.IsDestroyed)
                {
                    // the event was destroyed soon after creation
                    // (it was not correct one or something else)
                    return;
                }

                WorldEventsSystem.ServerRegisterEvent(activeEvent);
            });

            this.ServerInitializeEvent(data);
        }
예제 #2
0
 public sealed override void ServerOnDestroy(ILogicObject gameObject)
 {
     WorldEventsSystem.ServerUnregisterEvent(gameObject);
     this.ServerOnEventDestroyed(gameObject);
     Logger.Important("Event destroyed: " + gameObject);
 }