/// <summary> /// Checks an inventories permissions against an entities' flags to see if it has access to the inventory. /// </summary> /// <param name="entity_flags"></param> /// <param name="inventory_flags"></param> /// <returns></returns> public bool CheckInventoryPermissions(ENTITY_TYPE entity_flags, INVENTORY_MODIFIERS inventory_flags) { //Check if the inventory is machine accessible and if the entity is a machine. if (INV_UTILITY.HasTag(inventory_flags, INVENTORY_MODIFIERS.MachineAccessible) && ENTITY_UTILITY.HasTag(entity_flags, ENTITY_TYPE.Machine)) { return(true); }// Check if the inventory is player accessible and if the entity is a player. else if (INV_UTILITY.HasTag(inventory_flags, INVENTORY_MODIFIERS.PlayerAccessible) && ENTITY_UTILITY.HasTag(entity_flags, ENTITY_TYPE.Player)) { return(true); } //If it reaches this point then we don't have the right permissions. return(false); }
/// <summary> /// Checks if a given set of flags contains a flag /// Cannot check for flag none. /// </summary> /// <param name="FLAGS"></param> /// <param name="NEW_FLAG"></param> /// <returns></returns> public bool HasTag(INVENTORY_MODIFIERS FLAGS, INVENTORY_MODIFIERS NEW_FLAG) { return((FLAGS & NEW_FLAG) != 0); }
/// <summary> /// Toggles a given flag within the set of flags. /// If it was false, makes it true, if it was true, makes it false. /// </summary> /// <param name="FLAGS"></param> /// <param name="NEW_FLAG"></param> /// <returns></returns> public INVENTORY_MODIFIERS ToggleTag(INVENTORY_MODIFIERS FLAGS, INVENTORY_MODIFIERS NEW_FLAG) { return(FLAGS ^= NEW_FLAG); }
/// <summary> /// Removes a given flag for an item /// </summary> /// <param name="FLAGS"></param> /// <param name="NEW_FLAG"></param> /// <returns></returns> public INVENTORY_MODIFIERS RemoveTag(INVENTORY_MODIFIERS FLAGS, INVENTORY_MODIFIERS NEW_FLAG) { return(FLAGS &= ~NEW_FLAG); }
/// <summary> /// Adds new tags to items /// </summary> /// <param name="FLAGS"></param> /// <param name="NEW_FLAG"></param> /// <returns></returns> public INVENTORY_MODIFIERS AddTag(INVENTORY_MODIFIERS FLAGS, INVENTORY_MODIFIERS NEW_FLAG) { return(FLAGS |= NEW_FLAG); }