void ProcessRenderMessage_ChangePosition(ChangePositionRenderMessage msg) { RenderEntity render_entity = m_render_entity_manager.GetObject(msg.EntityID); if (render_entity == null) { return; } PredictLogicComponent predic_component = render_entity.GetComponent(PredictLogicComponent.ID) as PredictLogicComponent; if (predic_component != null) { if (msg.m_micro_adjusting && predic_component.HasMovementPredict) { return; } else { predic_component.ClearAllPrediction(); } } ModelComponent model_component = render_entity.GetComponent <ModelComponent>(); if (model_component == null) { return; } model_component.UpdatePosition(); }
void ProcessRenderMessage_StopMoving(LocomoteRenderMessage msg) { RenderEntity render_entity = m_render_entity_manager.GetObject(msg.EntityID); if (render_entity == null) { return; } ModelComponent model_component = render_entity.GetComponent(ModelComponent.ID) as ModelComponent; if (model_component == null) { return; } m_render_world.UnregisterMovingEntity(model_component); if (msg.m_block_animation) { return; } PredictLogicComponent predic_component = render_entity.GetComponent(PredictLogicComponent.ID) as PredictLogicComponent; if (msg.m_reason == LocomoteRenderMessage.NotFromCommand || predic_component == null || !predic_component.HasMovementPredict) { PlayIdleAnimation(render_entity); } }
public virtual void OnLogicWorldHandleCommand(Command cmd, bool result) { RenderEntity render_entity = m_render_entity_manager.GetObject(cmd.m_entity_id); if (render_entity == null) { return; } PredictLogicComponent predict_logic_component = render_entity.GetComponent(PredictLogicComponent.ID) as PredictLogicComponent; if (predict_logic_component == null) { return; } predict_logic_component.ConfirmCommand(cmd, result); }
protected virtual void PredictCommand(Command cmd) { RenderEntity render_entity = m_render_entity_manager.GetObject(cmd.m_entity_id); if (render_entity == null) { return; } PredictLogicComponent predict_logic_component = render_entity.GetComponent(PredictLogicComponent.ID) as PredictLogicComponent; if (predict_logic_component == null) { return; } predict_logic_component.PredictCommand(cmd); }
void ProcessRenderMessage_Hide(int entity_id) { RenderEntity render_entity = m_render_entity_manager.GetObject(entity_id); if (render_entity == null) { return; } render_entity.Hide = true; PredictLogicComponent predict_component = render_entity.GetComponent <PredictLogicComponent>(); if (predict_component != null) { predict_component.ClearAllPrediction(); } }
void ProcessRenderMessage_StartMoving(LocomoteRenderMessage msg) { RenderEntity render_entity = m_render_entity_manager.GetObject(msg.EntityID); if (render_entity == null) { return; } ModelComponent model_component = render_entity.GetComponent(ModelComponent.ID) as ModelComponent; if (model_component == null) { return; } m_render_world.RegisterMovingEntity(model_component); PredictLogicComponent predic_component = render_entity.GetComponent(PredictLogicComponent.ID) as PredictLogicComponent; if (msg.m_reason == LocomoteRenderMessage.NotLocomotion || msg.m_block_animation) { model_component.UpdateAngle(); if (predic_component != null) { predic_component.OnLogicMove(); } } else if (msg.m_reason == LocomoteRenderMessage.NotFromCommand) { model_component.UpdateAngle(); PlayLocomotorAnimation(render_entity); if (predic_component != null) { predic_component.OnLogicMove(); } } else if (msg.m_reason == LocomoteRenderMessage.UnblockAnimation) { model_component.UpdateAngle(); PlayLocomotorAnimation(render_entity); } else if (predic_component == null || !predic_component.HasMovementPredict) { model_component.UpdateAngle(); PlayLocomotorAnimation(render_entity); } }
void ProcessRenderMessage_ChangeDirection(ChangeDirectionRenderMessage msg) { //ZZWTODO 移动动作和朝向 RenderEntity render_entity = m_render_entity_manager.GetObject(msg.EntityID); if (render_entity == null) { return; } PredictLogicComponent predic_component = render_entity.GetComponent(PredictLogicComponent.ID) as PredictLogicComponent; if (predic_component != null && predic_component.HasMovementPredict) { return; } ModelComponent model_component = render_entity.GetComponent(ModelComponent.ID) as ModelComponent; if (model_component == null) { return; } model_component.UpdateAngle(); }
public void SetPredictComponent(PredictLogicComponent predict_component) { m_predict_component = predict_component; }
public override void OnReset() { m_predict_component = null; m_direction = Vector3.zero; m_remain_predict_time = -1f; }
public void Construct(PredictLogicComponent predict_component, Vector3 direction, float max_predict_time) { m_predict_component = predict_component; m_direction = direction; m_remain_predict_time = max_predict_time; }