Пример #1
0
 protected override void Execute(RailRoom room, RailController sender)
 {
     if (TryFind(EntityId, out MobilePartyEntityServer entity))
     {
         if (sender.ControlledEntities.Contains(entity))
         {
             Logger.Trace(
                 "[T {}] Ack move entity {id} to {position}.",
                 room.Tick,
                 EntityId,
                 Movement);
             entity.State.Movement = Movement;
         }
         else
         {
             Logger.Warn(
                 "{controller} tried to move entity {id} without permission.",
                 sender,
                 EntityId);
         }
     }
 }
Пример #2
0
 protected override void Execute(RailRoom room, RailController sender)
 {
     if (MethodRegistry.IdToMethod.TryGetValue(Call.Id, out MethodAccess method))
     {
         if (room is RailServerRoom serverRoom)
         {
             Logger.Trace("Broadcast SyncCall: {}", Call);
             serverRoom.BroadcastEvent(this);
         }
         else if (room is RailClientRoom clientRoom)
         {
             Logger.Trace("SyncCall: {}", Call);
             method.CallOriginal(
                 clientRoom.Resolve(Call.Instance),
                 clientRoom.Resolve(Call.Arguments));
         }
     }
     else
     {
         Logger.Warn("Unknown SyncCall: ", Call);
     }
 }
Пример #3
0
 protected override void Execute(RailRoom room, RailController sender)
 {
     if (TryFind(EntityId, out MobilePartyEntityServer entity))
     {
         // TODO: As we currently share the party control, disable any checks and just allow movement.
         // if (sender.ControlledEntities.Contains(entity))
         {
             Logger.Trace(
                 "[{tick}] Ack move entity {id} to {position}.",
                 room.Tick,
                 EntityId,
                 Movement);
             entity.State.Movement = Movement;
         }
         // else
         // {
         //     Logger.Warn(
         //         "{controller} tried to move entity {id} without permission.",
         //         sender,
         //         EntityId);
         // }
     }
 }
Пример #4
0
 protected override void Execute(RailRoom room, RailController sender)
 {
 }
Пример #5
0
 protected void SetRoom(RailRoom room, Tick startTick)
 {
     Room = room;
     Room.Initialize(startTick);
 }