public static bool IsValidIdentifier(AmmoIdentifier identifier) { switch (identifier.AmmoType) { case AmmoType.GADGET: return(ModdedStringRegistry.IsValidString(identifier.stringIdentifier)); case AmmoType.LANDPLOT: return(ModdedStringRegistry.IsValidString(identifier.stringIdentifier) && Enum.IsDefined(typeof(SiloStorage.StorageType), (SiloStorage.StorageType)(int) identifier.longIdentifier)); case AmmoType.PLAYER: return(Enum.IsDefined(typeof(PlayerState.AmmoMode), (PlayerState.AmmoMode)(int) identifier.longIdentifier)); } return(true); }
public static List <AmmoDataV02> ResolveToData(AmmoIdentifier identifier, Game game) { switch (identifier.AmmoType) { case AmmoType.PLAYER: return(game.player.ammo[(PlayerState.AmmoMode)identifier.longIdentifier]); case AmmoType.GADGET: return(ModdedStringRegistry.IsValidString(identifier.stringIdentifier) ? (game.world.placedGadgets[identifier.stringIdentifier].drone?.drone?.ammo is AmmoDataV02 amdat ? new AmmoDataV02[] { amdat }.ToList() : game.world.placedGadgets[identifier.stringIdentifier].ammo) :null); case AmmoType.LANDPLOT: return(game.ranch.plots.FirstOrDefault((x) => x.id == identifier.stringIdentifier)? .siloAmmo[(SiloStorage.StorageType)identifier.longIdentifier]); } return(null); }