// Use this for initialization private void Awake() { if (instance != this) { instance = this; } else { Debug.LogError("RailController singleton bug"); } }
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; }
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)); } } }
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; }
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); } } }
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); } }
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; }
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); // } } }
protected override void Execute(RailRoom room, RailController sender) { }
// Start is called before the first frame update private void Awake() { instance = this; }
private void OnClientLeft(RailController client) { ClientLeft?.Invoke(client); }
private void OnClientJoined(RailController client) { ClientJoined?.Invoke(client); }
public RailScope(RailController owner, IRailStateConstruction stateCreator) { Evaluator = new RailScopeEvaluator(); this.owner = owner; this.stateCreator = stateCreator; }