public virtual void onTrigger(EVENT_TYPE event_type, object data) { if (event_type == EVENT_TYPE.TRIGGER_LOGIN_STATE) { this.next_state = machine.getState (STATE_ID.LOGIN_STATE); } else if (event_type == EVENT_TYPE.TRIGGER_SELECT_ROOM_STATE) { this.next_state = machine.getState (STATE_ID.SELECT_ROOM_STATE); } else if (event_type == EVENT_TYPE.TRIGGER_HALL_STATE) { this.next_state = machine.getState(STATE_ID.HALL_STATE); } else if (event_type == EVENT_TYPE.TRIGGER_CREATE_ROOM_STATE) { this.next_state = machine.getState(STATE_ID.CREATE_ROOM_STATE); } }
public void addState(State state) { this.all_states [state.id] = state; }
public abstract void onLeave(State to_state);
public abstract void onEnter(State from_state);
public void run(State state) { if (current_state!=null) current_state.onLeave (state); if(state==null) state = this.getState (STATE_ID.LOGIN_STATE); state.onEnter (current_state); current_state = state; }
public void onTrigger(EVENT_TYPE event_type,object data) { current_state.onTrigger (event_type, data); State next_state = current_state.check (); if ((next_state==null) || (next_state.id == current_state.id)) { return; } current_state.onLeave (next_state); next_state.onEnter (current_state); current_state = next_state; }