protected override void _TriggerEnter(NetEntity entity) { if (!(entity is Human hu) || !(hu.MovementController is ISurfControllable character) || character.MoveType == MoveType.Noclip) { return; } character.MoveData.GravityFactor = Gravity; GetOrCreateTimer(character).Timer = Duration; GravityTimer GetOrCreateTimer(ISurfControllable surfer) { foreach (var timer in _gravityTimers) { if (timer.Surfer == surfer) { return(timer); } } var result = new GravityTimer() { Surfer = surfer }; _gravityTimers.Add(result); return(result); } }
public override void OnExit(NetEntity entity) { if (null != entity) { entity.ExitIdle(); } }
//该方法用来改变有限状态机的状体,有限状态机基于当前的状态和通过的过渡状态。如果当前的状态没有用来通过的过度状态,则会抛出错误 public void SetTransition(Transition t, NetEntity entity) { if (null != Fsm) { Fsm.SwitchTransition(t, entity); } }
public override void OnExit(NetEntity entity) { if (null != entity) { entity.ArpgAnimatContorller.Walk = false; } }
public override void OnEnter(NetEntity entity) { if (null != entity) { entity.Dead(); } }
private void SimpleMove(NetEntity entity) { if (null != entity) { entity.SimpleMove(AppConst.AIAcceSpeed); } }
void Crash(NetEntity entity) { if (null != entity) { entity.CharaController.SimpleMove(entity.HitDir.normalized * Time.deltaTime * entity.Attribute.Speed); } }
protected override void _TriggerEnter(NetEntity entity) { if (!(entity is Human hu) || !(hu.MovementController is ISurfControllable character) || character.MoveType == MoveType.Noclip) { return; } if (!string.IsNullOrWhiteSpace(TargetActorName)) { // todo: cache actors for efficient lookup var target = FindObjectsOfType <FSMActor>().FirstOrDefault(x => x.ActorName.Equals(TargetActorName, System.StringComparison.OrdinalIgnoreCase)); if (target) { character.MoveData.Origin = target.transform.position; if (!DontRotate) { character.MoveData.ViewAngles = target.transform.rotation.eulerAngles; } } } if (SetVelocityToZero) { character.MoveData.Velocity = Vector3.zero; if (!DontRotate) { character.MoveData.BaseVelocity = Vector3.zero; } } }
async Task Listen() { while (true) { var res = await udp.ReceiveAsync(); var br = new BinaryReader(new MemoryStream(res.Buffer)); if (player == null) { player = NetEntity <Player> .Decode(br); Canvas.Draw(player); } else { var obj = NetEntity <GameObject> .Decode(br); var idx = objects.FindIndex(x => x.ID == obj.ID); if (idx == -1) { objects.Add(obj); } else { Canvas.Erase(objects[idx]); objects[idx] = obj; } Canvas.Draw(obj); } } }
public override void OnEnter(NetEntity entity) { if (null != entity) { entity.EnterIdle(); } }
private void EnterEndZone(NetEntity ent) { if (!(ent is Human hu) || !TryGetRunData(hu, out RunData runData) || !runData.Track.Live) { return; } runData.Track.Stop(); if (_trackType == FSMTrackType.Linear && _linearData.Checkpoints.Length > 0 && runData.Checkpoint != _linearData.Checkpoints.Length - 1) { Debug.LogError("Missed a checkpoint..."); return; } if (_trackType == FSMTrackType.Staged && _stageData.Stages.Length > 0 && runData.Stage != _stageData.Stages.Length - 1) { Debug.LogError("Missed a stage..."); return; } OnFinish?.Invoke(hu, runData.Track.CurrentFrame); }
public EntityFrame(NetEntity ent) { CurTime = 0; UserCmdFields = new UserCmd.CmdFields(); Position = ent.Origin; Angles = ent.Angles; }
public void TestMake() { NetEntity enitiy = new NetEntity(); enitiy.ConnectionID = 123456789; PlayerData data = new PlayerData(); data.Name = "Player yall"; data.PrefabName = "Player"; MakeEntity.AddComponent(enitiy, data); GameObject obj = new GameObject(); obj.transform.position = new Vector3(Random.RandomRange(1, 25), Random.RandomRange(1, 25), Random.RandomRange(1, 25)); obj.name = "a name yall"; NetTransform trans = new NetTransform(); trans.position.x = obj.transform.position.x; trans.position.y = obj.transform.position.y; trans.position.z = obj.transform.position.z; MakeEntity.AddComponent(enitiy, trans); NetTransform trans2 = MakeEntity.GetComponent <NetTransform>(enitiy); PlayerData playerData = MakeEntity.GetComponent <PlayerData>(enitiy); Debug.Log("Did it work?"); }
public override void OnEnter(NetEntity entity) { if (null != entity) { entity.ArpgAnimatContorller.Walk = true; } }
public override void OnExit(NetEntity entity) { if (null != entity) { m_enter_time = 0; entity.StopSkill(); } }
public override void OnEnter(NetEntity entity) { if (null != entity) { m_enter_time = 0; entity.SkillEvent(); } }
//MouseButton right menue operation private void entityToolStripMenuItem_Click(object sender, EventArgs e) { VolumeGenerateCommon(() => { comboBox1.Text = ".cs"; CommonComponent(() => NetEntity.CreateCode(CreateInfoDic)); }); }
private void SimpleMove(NetEntity entity) { if (null != entity) { entity.SimpleMove(1); entity.ChaseTarget(); } }
public void Load(NetEntity entity) { EntityId = entity.EntityId; EntityTypeId = entity.TypeId; ChangedTick = entity.ChangedTick; ChangedTime = entity.ChangedTime; entity.GetPropData(out PropDataSize, out PropData); }
public override void OnExit(NetEntity entity) { if (null != entity) { entity.StopAccelerate(); m_enter_time = 0; } }
public override void OnExit(NetEntity entity) { if (null != entity) { enter_time = 0; entity.Attribute.Speed = entity.Attribute.BaseSpeed; } }
public override void OnEnter(NetEntity entity) { if (null != entity) { enter_time = 0; entity.Attribute.Speed = entity.Attribute.BaseSpeed * AppConst.CrashSpeed; } }
public override void OnExcute(NetEntity entity) { m_enter_time += Time.deltaTime; if (m_enter_time > m_end_time) { m_enter_time = 0; entity.EndCurrentStateToOtherState(StateID.Walk); } }
public override void OnEnter(NetEntity entity) { if (null != entity) { entity.Accelerate(); m_enter_time = 0; m_end_time = Random.Range(AppConst.AcctMinTime, AppConst.AcctMaxTime); } }
protected override void _TriggerEnter(NetEntity entity) { Debug.Log(entity.Game.IsHost); if (entity is Human hu && hu.MovementController is DefaultMovementController mc) { hu.Velocity = SetVelocity; } }
public override void OnUpdate(NetEntity entity) { if (null != entity) { if (entity.IsAlive) { SimpleMove(entity); RandomDir(entity); } } }
public static void JsonObject(Packet packet) { int id = packet.ReadInt(); if (!GameManager.players.ContainsKey(id)) { return; } string json = packet.ReadString(); JsonSerializerSettings settings = new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All }; NetEntity jsonObj = JsonConvert.DeserializeObject <NetEntity>(json, settings); if (jsonObj is NetAnimator) { GameManager.players[id].Animator.Set(jsonObj as NetAnimator); return; } if (jsonObj is BuildingData) { GameManager.instance.SpawnStructure(jsonObj as BuildingData); return; } if (jsonObj is NetItem) { NetItem netItem = jsonObj as NetItem; if (netItem is Netwearable) { Netwearable netWear = netItem as Netwearable; Wearable wear = new Wearable(); wear.Initialize(netWear); GameManager.instance.ChangeInventory(id, wear); } if (netItem is NetHoldable) { NetHoldable netHold = netItem as NetHoldable; Holdable hold = new Holdable(); hold.Initialize(netHold); GameManager.instance.ChangeInventory(id, hold); } return; } if (jsonObj is NetLoot) { NetLoot netLoot = jsonObj as NetLoot; GameManager.instance.CheckLoot(netLoot); } if (jsonObj is NetInventory) { Debug.Log("update inventory"); } }
public IPlayer FindPlayer(NetEntity human) { for (int i = 0; i < Players.Count; i++) { if (Players[i].Entity == human) { return(Players[i]); } } return(null); }
public override void OnExcute(NetEntity entity) { if (null != entity) { m_enter_time += Time.deltaTime; if (m_enter_time > entity.GetSkillTime()) { entity.SwitchOccp(); //entity.EndCurrentStateToOtherState(StateID.Walk); } } }
public override void OnUpdate(NetEntity entity) { if (null != entity) { enter_time += Time.deltaTime; if (enter_time >= AppConst.CrashTime) { entity.EndCurrentStateToOtherState(StateID.Walk); return; } Crash(entity); } }