public void SyncPlayer(FullState state) { if (_client != null) { _client.OnSync(state); } }
public void SpawnAvatar(FullState state) { if (_client != null) { _client.OnSpawn(state); } }
public void Sync(FullState state) { _currentSpeed = state.speed; _currentRotation = state.rotation; transform.position = state.position; transform.rotation = state.rotation; _health = state.health; }
protected override void onSync(int connectionId, FullState data) { foreach (var it in _allConnections) { if (it != connectionId) { sendSyncEvent(it, data); } } }
static void Main(string[] args) { Init(); MyStopWatch timer = new MyStopWatch(); Context context = new Context(); IRaspberryPiStates emptyState = new EmptyState(); IRaspberryPiStates fullState = new FullState(); IRaspberryPiStates notDoneState = new NotDoneState(); //Bluetooth bt = new Bluetooth(); //bt.Init(); JsonWriter writer = new JsonWriter(); context.setState(emptyState); writer.JsonWriterFunc("Emptystate", "0", "Start"); //bt.SendData("EmptyState"); while (ReferenceEquals(context.getState(), emptyState) || ReferenceEquals(context.getState(), fullState) || ReferenceEquals(context.getState(), notDoneState)) { try { context.IsFull(timer, context, emptyState, fullState, notDoneState); } catch (ArgumentException) { //bt.SendData("ErrorFullStateGoEmptyState"); writer.JsonWriterFunc("Emptystate", "0", "Fullstate error"); context.setState(emptyState); } catch (InvalidOperationException) { //bt.SendData("TimeoutGoEmptyState"); writer.JsonWriterFunc("Emptystate", "0", "Timeout"); context.setState(emptyState); } catch (Exception) { //bt.SendData("ErrorGoEmptyState"); writer.JsonWriterFunc("Emptystate", "0", "ProgramCrash"); context.setState(emptyState); } } void Init() { MagnetSensor Magnet = new MagnetSensor(); LaserSensorBottom LaserBot = new LaserSensorBottom(); LaserSensorTop LaserTop = new LaserSensorTop(); Magnet.Initiate(); LaserTop.Initiate(); LaserBot.Initiate(); } }
protected override void onSync(int connectionId, FullState data) { AvatarController avatar; if (_connectedAvatars.TryGetValue(connectionId, out avatar)) { avatar.Sync(data); } else { onSpawn(connectionId, data); } }
static void Main(string[] args) { var stateRules = new Dictionary <string, Actions>(); var fullState = new FullState { State = 'A', Index = TapeSize / 2 }; var inputList = readInput("input.txt"); var stateRe = new Regex("In state (.)"); var valRe = new Regex(@"If the current value is (\d)"); var nextValRe = new Regex(@"Write the value (\d)"); var moveRe = new Regex(@"Move one slot to the (\w+)"); var nextStateRe = new Regex(@"Continue with state (.)"); var curState = 'A'; var curVal = 0; var act = new Actions(); foreach (var item in inputList) { if (stateRe.IsMatch(item)) { curState = stateRe.Match(item).Groups[1].Value[0]; } else if (valRe.IsMatch(item)) { curVal = int.Parse(valRe.Match(item).Groups[1].Value); } else if (nextValRe.IsMatch(item)) { act.Value = int.Parse(nextValRe.Match(item).Groups[1].Value); } else if (moveRe.IsMatch(item)) { act.Direction = moveRe.Match(item).Groups[1].Value == "right" ? 1 : -1; } else if (nextStateRe.IsMatch(item)) { act.NextState = nextStateRe.Match(item).Groups[1].Value[0]; stateRules[curState + curVal.ToString()] = act; act = new Actions(); } } for (int i = 0; i < 12994925; i++) { Step(fullState, stateRules[fullState.State + Tape[fullState.Index].ToString()]); } Console.WriteLine(Tape.Sum()); Console.ReadLine(); }
protected override void onSpawn(int connectionId, FullState data) { if (_connectedAvatars.ContainsKey(connectionId)) { var avatar = _connectedAvatars[connectionId]; GameObject.Destroy(avatar); _connectedAvatars.Remove(connectionId); } var resource = Resources.Load <AvatarController>(CHARACTER_RESOURCE); var character = GameObject.Instantiate <AvatarController>(resource); _connectedAvatars.Add(connectionId, character); character.Sync(data); }
public static FullState Parse(string id) { try { long steamid = SteamConverter.FromSteam64ToSteam32(long.Parse(id)); WebBrowser web = new WebBrowser(); FullState fullState = new FullState(); web.Navigate("https://steamid.xyz/" + steamid); while (web.ReadyState != WebBrowserReadyState.Complete) { Application.DoEvents(); } string name = "User"; try { var lines = Regex.Split(web.DocumentText, @"\n"); for (int d = 0; d < lines.Count(); d++) { if (lines[d].Contains("Nick Name")) { name = Regex.Match(lines[d + 1], "value=\"(.+)\"").Value; name = name.Substring(7, name.Length - 7); name = name.Remove(name.Length - 1); } } } catch { } string url = "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/fe/fef49e7fa7e1997310d705b2a6158ff8dc1cdfeb_full.jpg"; try { url = Regex.Match(web.DocumentText, @"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/(.+)").Value.Replace("\">", string.Empty); } catch { } if (web.DocumentText.Contains("User is VAC Banned")) { fullState.ban = true; } fullState.name = name; fullState.id = id; fullState.url = url; return(fullState); } catch { } return(null); }
private void handleData(int hostId, int connectionId, byte[] data, int dataSize) { using (var stream = new MemoryStream(data, 0, dataSize)) { using (var reader = new BinaryReader(stream)) { var eventType = (EventType)reader.ReadByte(); switch (eventType) { case EventType.Death: onDeath(connectionId); break; case EventType.ShootAnim: onShootAnim(connectionId); break; case EventType.Shoot: var shootEvent = new ShootEvent(); shootEvent.Read(reader); onShoot(connectionId, shootEvent); break; case EventType.Spawn: var spawnData = new FullState(); spawnData.Read(reader); onSpawn(connectionId, spawnData); break; case EventType.Sync: var syncData = new FullState(); syncData.Read(reader); onSync(connectionId, syncData); break; } } } }
protected abstract void onSync(int connectionId, FullState data);
protected void sendSyncEvent(int connectionId, FullState data) { sendData(connectionId, _deltaChannelId, EventType.Sync, data); }
protected void sendSpawnEvent(int connectionId, FullState data) { sendData(connectionId, _eventChannelId, EventType.Spawn, data); }
public void OnSync(FullState data) { sendSyncEvent(_connectionId, data); }
// simple state machine protected override void Init() { target = new Cat(); HungryState hungry = new HungryState(); AddState(hungry); FullState full = new FullState(); AddState(full); defaultState = hungry; AddTransition(new FiniteStateTransition("give_food", "HungryState", "FullState")); AddTransition(new FiniteStateTransition("run", "FullState", "HungryState")); }
public NonsharedConcreteFlyweight() { this.fullState = new FullState(); }
public void OnSpawn(FullState data) { sendSpawnEvent(_connectionId, data); }
static void Step(FullState state, Actions act) { Tape[state.Index] = act.Value; state.Index += act.Direction; state.State = act.NextState; }