コード例 #1
0
    // Use this for initialization

    private void Awake()
    {
        if (instance != this)
        {
            instance = this;
        }
        else
        {
            Debug.LogError("RailController singleton bug");
        }
    }
コード例 #2
0
ファイル: RailClientRoom.cs プロジェクト: araex/RailgunNet
        public RailClientRoom(RailResource resource, RailClient client) : base(resource, client)
        {
            eventCreator = resource;
            ToUpdate     = new List <RailEntityClient>();
            ToRemove     = new List <RailEntityClient>();

            IEqualityComparer <EntityId> entityIdComparer = EntityId.CreateEqualityComparer();

            pendingEntities = new Dictionary <EntityId, RailEntityClient>(entityIdComparer);
            knownEntities   = new Dictionary <EntityId, RailEntityClient>(entityIdComparer);
            localPeer       = new RailController(resource, ExternalEntityVisibility.All, null);
            this.client     = client;
        }
コード例 #3
0
        private void ProduceRemoved(
            RailController target,
            IEnumerable <RailEntityServer> removedEntities)
        {
            foreach (RailEntityServer entity in removedEntities)
            {
                RailViewEntry latest = ackedByClient.GetLatest(entity.Id);

                // Note: Because the removed tick is valid, this should force-create
                if (latest.IsValid && latest.LastReceivedTick < entity.RemovedTick)
                {
                    removedList.Add(
                        entity.ProduceDelta(stateCreator, latest.LastReceivedTick, target, false));
                }
            }
        }
コード例 #4
0
    void Awake()
    {
        m_Left  = transform.FindChild("Left").gameObject;
        m_Right = transform.FindChild("Right").gameObject;

        target   = GameObject.Find("Player");
        m_Player = target.GetComponent <Player>();

        m_ShotGripper = transform.GetComponent <ShotGripper>();

        m_Rigidbody = transform.GetComponent <Rigidbody>();
        m_Rail      = FindObjectOfType <RailController>().transform.GetComponent <RailController>();
        //手元の大きさと場所を取得
        GetPrototypeAttribute();

        point = m_Player.HitPoint;
    }
コード例 #5
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);
         }
     }
 }
コード例 #6
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);
     }
 }
コード例 #7
0
    void Start()
    {
        instance = this;
        pivot    = GameObject.Find("pivot");
        shot     = GameObject.Find("Bullet");
        RailBox  = GameObject.Find("RailBox");

        xMax      = 140;
        xMin      = -140;
        yMax      = 150;
        yMin      = -150;
        maxRoll   = 15;
        maxPitch  = 15;
        maxYaw    = 0;
        speed     = 5;
        shotspeed = 200.0f;
        lives     = 5;
        maxFuel   = 20;
        fuel      = maxFuel;

        shotInterval = 0.2f;
        shotCount    = 0;
    }
コード例 #8
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);
         // }
     }
 }
コード例 #9
0
ファイル: TestUtils.cs プロジェクト: araex/RailgunNet
 protected override void Execute(RailRoom room, RailController sender)
 {
 }
コード例 #10
0
    // Start is called before the first frame update

    private void Awake()
    {
        instance = this;
    }
コード例 #11
0
ファイル: RailServerRoom.cs プロジェクト: araex/RailgunNet
 private void OnClientLeft(RailController client)
 {
     ClientLeft?.Invoke(client);
 }
コード例 #12
0
ファイル: RailServerRoom.cs プロジェクト: araex/RailgunNet
 private void OnClientJoined(RailController client)
 {
     ClientJoined?.Invoke(client);
 }
コード例 #13
0
 public RailScope(RailController owner, IRailStateConstruction stateCreator)
 {
     Evaluator         = new RailScopeEvaluator();
     this.owner        = owner;
     this.stateCreator = stateCreator;
 }