public static CharacterState_Type FromString(string name) { if (name.CompareTo("invincible") == 0) { return CharacterState_Type.CST_Invincible; } else if (name.CompareTo("fixedposition") == 0) { return CharacterState_Type.CST_FixedPosition; } else if (name.CompareTo("silence") == 0) { return CharacterState_Type.CST_Silence; } else if (name.CompareTo("sleep") == 0) { return CharacterState_Type.CST_Sleep; } else if (name.CompareTo("hidden") == 0) { return CharacterState_Type.CST_Hidden; } else if(name.StartsWith(c_state_bit_prefix)) { int bit = int.Parse(name.Substring(c_state_bit_prefix.Length)); return (CharacterState_Type)(1 << (bit - 1)); } else { return (CharacterState_Type)0; } }
internal void AddState(int objId, string state) { EntityInfo entity = m_Scene.EntityManager.GetEntityInfo(objId); if (null != entity) { entity.SetStateFlag(Operate_Type.OT_AddBit, CharacterStateUtility.FromString(state)); } }