public void SetFlag(ExplosionResponse added, bool targetValue) { //If we have the flag XOR we want it if (HasFlag(ResponseType, added) ^ targetValue) { //Toggle it ResponseType = ToogleFlag(ResponseType, added); } }
void Start() { if (HasFlag(ExplosionResponse.Rigidbody) && rb == null) { rb = GetComponent <Rigidbody>(); if (rb == null) { Debug.LogError("Explodable Object [" + name + "] is marked as a Rigidbody Explodable but does not have a rigidbody assigned\n\tDefaulting and removing the rigidbody explodable flag.\n"); ResponseType = UnsetFlag(ResponseType, ExplosionResponse.Rigidbody); } } }
public ExplosionResponse ToogleFlag(ExplosionResponse baseID, ExplosionResponse toggleID) { return(baseID ^ toggleID); }
public ExplosionResponse UnsetFlag(ExplosionResponse baseID, ExplosionResponse removed) { return(baseID & (~removed)); }
public ExplosionResponse SetFlag(ExplosionResponse baseID, ExplosionResponse added) { return(baseID | added); }
public static bool HasFlag(ExplosionResponse baseID, ExplosionResponse checkHaveID) { return((baseID & checkHaveID) == checkHaveID); }
public bool HasFlag(ExplosionResponse checkHaveID) { return((ResponseType & checkHaveID) == checkHaveID); }