diff --git a/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java b/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java index 97ddb5b20..a975b4b8e 100644 --- a/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java +++ b/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java @@ -507,9 +507,9 @@ public class BulletConfigSyncingUtil { configSet.put(NUKE_AMAT, GunFatmanFactory.getBalefireConfig()); - configSet.put(TWR_RAY, GunEnergyFactory.getSingConfig()); - configSet.put(HLR_NORMAL, GunEnergyFactory.getHLRPrecisionConfig()); - configSet.put(HLR_ALT, GunEnergyFactory.getHLRScatterConfig()); + //configSet.put(TWR_RAY, GunEnergyFactory.getSingConfig()); + //configSet.put(HLR_NORMAL, GunEnergyFactory.getHLRPrecisionConfig()); + //configSet.put(HLR_ALT, GunEnergyFactory.getHLRScatterConfig()); configSet.put(ZOMG_BOLT, GunEnergyFactory.getZOMGBoltConfig()); configSet.put(DET_BOLT, GunDetonatorFactory.getLaserConfig()); diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index 61505ccf9..e4bbd2c4e 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -581,13 +581,14 @@ public class AnvilRecipes { for(Object[] objs : recs) { + ComparableStack ammoIn = new ComparableStack((ItemStack) objs[0]); + ItemStack out = (ItemStack) objs[2]; + if(objs[1] instanceof Item) { - constructionRecipes.add(new AnvilConstructionRecipe(new AStack[] { new ComparableStack((Item)objs[0], (int)objs[3]), new ComparableStack((Item)objs[1], 1) }, - new AnvilOutput(new ItemStack((Item)objs[2], (int)objs[3]))).setTier((int)objs[4])); + constructionRecipes.add(new AnvilConstructionRecipe(new AStack[] { ammoIn, new ComparableStack((Item)objs[1], 1) }, new AnvilOutput(out)).setTier((int)objs[3])); } else if(objs[1] instanceof String) { - constructionRecipes.add(new AnvilConstructionRecipe(new AStack[] { new ComparableStack((Item)objs[0], (int)objs[3]), new OreDictStack((String)objs[1], 1) }, - new AnvilOutput(new ItemStack((Item)objs[2], (int)objs[3]))).setTier((int)objs[4])); + constructionRecipes.add(new AnvilConstructionRecipe(new AStack[] { ammoIn, new OreDictStack((String)objs[1], 1) }, new AnvilOutput(out)).setTier((int)objs[3])); } } } diff --git a/src/main/java/com/hbm/items/ItemAmmoEnums.java b/src/main/java/com/hbm/items/ItemAmmoEnums.java index 4859f44c1..e284cd76d 100644 --- a/src/main/java/com/hbm/items/ItemAmmoEnums.java +++ b/src/main/java/com/hbm/items/ItemAmmoEnums.java @@ -10,788 +10,933 @@ import com.hbm.lib.HbmCollection; public class ItemAmmoEnums { - public enum AmmoLunaticSniper implements IAmmoItemEnum - { - SABOT(Gun50BMGFactory.getLunaticSabotRound()), - INCENDIARY(Gun50BMGFactory.getLunaticIncendiaryRound()), - EXPLOSIVE(Gun50BMGFactory.getLunaticSabotRound()); + public enum AmmoLunaticSniper implements IAmmoItemEnum { + SABOT("ammo_lunar", Gun50BMGFactory.getLunaticSabotRound()), + INCENDIARY("ammo_lunar_incendiary", Gun50BMGFactory.getLunaticIncendiaryRound()), + EXPLOSIVE("ammo_lunar_explosive", Gun50BMGFactory.getLunaticSabotRound()); + private final Set traits; private final BulletConfiguration config; - private AmmoLunaticSniper(BulletConfiguration config, AmmoItemTrait...traits) - { - this.config = config; - this.traits = safeAssign(traits); - } - @Override - public Set getTraits() - { - return traits; - } - @Override - public BulletConfiguration getConfig() - { - return config; - } - - } - - public enum AmmoFireExt implements IAmmoItemEnum - { - WATER(GunEnergyFactory.getFextConfig()), - FOAM(GunEnergyFactory.getFextFoamConfig()), - SAND(GunEnergyFactory.getFextSandConfig()); - private final Set traits; - private final BulletConfiguration config; - private AmmoFireExt(BulletConfiguration config, AmmoItemTrait...traits) - { + private final String unloc; + + private AmmoLunaticSniper(String unloc, BulletConfiguration config, AmmoItemTrait... traits) { this.config = config; this.traits = safeAssign(traits); + this.unloc = unloc; } @Override - public Set getTraits() - { + public Set getTraits() { return traits; } @Override - public BulletConfiguration getConfig() - { + public BulletConfiguration getConfig() { return config; } - } - - public enum AmmoFlamethrower implements IAmmoItemEnum - { - DIESEL(GunEnergyFactory.getFlameConfig()), - NAPALM(GunEnergyFactory.getNapalmConfig(), AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.PRO_RANGE, AmmoItemTrait.CON_HEAVY_WEAR), - PHOSPHORUS(GunEnergyFactory.getPhosphorusConfig(), AmmoItemTrait.PRO_PHOSPHORUS_SPLASH, AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.PRO_RANGE, AmmoItemTrait.PRO_RANGE, AmmoItemTrait.PRO_ACCURATE1, AmmoItemTrait.NEU_WARCRIME1, AmmoItemTrait.CON_SING_PROJECTILE, AmmoItemTrait.CON_HEAVY_WEAR), - VAPORIZER(GunEnergyFactory.getVaporizerConfig(), AmmoItemTrait.PRO_PHOSPHORUS, AmmoItemTrait.PRO_FLAMES, AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.NEU_ERASER, AmmoItemTrait.CON_ACCURACY2, AmmoItemTrait.CON_RANGE2, AmmoItemTrait.CON_HEAVY_WEAR, AmmoItemTrait.CON_LING_FIRE), - CHLORINE(GunEnergyFactory.getGasConfig(), AmmoItemTrait.PRO_NO_GRAVITY, AmmoItemTrait.PRO_POISON_GAS, AmmoItemTrait.CON_NO_DAMAGE, AmmoItemTrait.CON_NO_FIRE); - private final Set traits; - private final BulletConfiguration config; - private AmmoFlamethrower(BulletConfiguration config, AmmoItemTrait...traits) - { - this.config = config; - this.traits = safeAssign(traits); - } @Override - public Set getTraits() - { + public String getInternalName() { + return unloc; + } + } + + public enum AmmoFireExt implements IAmmoItemEnum { + WATER("ammo_fireext", GunEnergyFactory.getFextConfig()), + FOAM("ammo_fireext_foam", GunEnergyFactory.getFextFoamConfig()), + SAND("ammo_fireext_sand", GunEnergyFactory.getFextSandConfig()); + + private final Set traits; + private final BulletConfiguration config; + private final String unloc; + + private AmmoFireExt(String unloc, BulletConfiguration config, AmmoItemTrait... traits) { + this.config = config; + this.traits = safeAssign(traits); + this.unloc = unloc; + } + + @Override + public Set getTraits() { return traits; } @Override - public BulletConfiguration getConfig() - { + public BulletConfiguration getConfig() { return config; } - } - - public enum AmmoMisc implements IAmmoItemEnum - { - LUNA_SNIPER(Gun50BMGFactory.getLunaticSabotRound(), AmmoItemTrait.PRO_HEAVY_DAMAGE, AmmoItemTrait.PRO_ACCURATE2, AmmoItemTrait.NEU_HEAVY_METAL), - DGK(GunDGKFactory.getDGKConfig()); - private final Set traits; - private final BulletConfiguration config; - private AmmoMisc(BulletConfiguration config, AmmoItemTrait...traits) - { - this.config = config; - this.traits = safeAssign(traits); - } @Override - public Set getTraits() - { + public String getInternalName() { + return unloc; + } + } + + public enum AmmoFlamethrower implements IAmmoItemEnum { + DIESEL("ammo_fuel", GunEnergyFactory.getFlameConfig()), + NAPALM("ammo_fuel_napalm", GunEnergyFactory.getNapalmConfig(), AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.PRO_RANGE, AmmoItemTrait.CON_HEAVY_WEAR), + PHOSPHORUS("ammo_fuel_phosphorus", GunEnergyFactory.getPhosphorusConfig(), AmmoItemTrait.PRO_PHOSPHORUS_SPLASH, AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.PRO_RANGE, AmmoItemTrait.PRO_RANGE, AmmoItemTrait.PRO_ACCURATE1, AmmoItemTrait.NEU_WARCRIME1, AmmoItemTrait.CON_SING_PROJECTILE, AmmoItemTrait.CON_HEAVY_WEAR), + VAPORIZER("ammo_fuel_vaporizer", GunEnergyFactory.getVaporizerConfig(), AmmoItemTrait.PRO_PHOSPHORUS, AmmoItemTrait.PRO_FLAMES, AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.NEU_ERASER, AmmoItemTrait.CON_ACCURACY2, AmmoItemTrait.CON_RANGE2, AmmoItemTrait.CON_HEAVY_WEAR, AmmoItemTrait.CON_LING_FIRE), + CHLORINE("ammo_fuel_gas", GunEnergyFactory.getGasConfig(), AmmoItemTrait.PRO_NO_GRAVITY, AmmoItemTrait.PRO_POISON_GAS, AmmoItemTrait.CON_NO_DAMAGE, AmmoItemTrait.CON_NO_FIRE); + + private final Set traits; + private final BulletConfiguration config; + private final String unloc; + + private AmmoFlamethrower(String unloc, BulletConfiguration config, AmmoItemTrait... traits) { + this.config = config; + this.traits = safeAssign(traits); + this.unloc = unloc; + } + + @Override + public Set getTraits() { return traits; } @Override - public BulletConfiguration getConfig() - { + public BulletConfiguration getConfig() { return config; } + + @Override + public String getInternalName() { + return unloc; + } } - public enum AmmoStinger implements IAmmoItemEnum - { - STOCK(GunRocketHomingFactory.getRocketStingerConfig()), - HE(GunRocketHomingFactory.getRocketStingerHEConfig(), AmmoItemTrait.PRO_RADIUS, AmmoItemTrait.CON_WEAR), - INCENDIARY(GunRocketHomingFactory.getRocketStingerIncendiaryConfig(), HbmCollection.IncendiaryType), - NUCLEAR(GunRocketHomingFactory.getRocketStingerNuclearConfig(), AmmoItemTrait.PRO_NUCLEAR, AmmoItemTrait.CON_SUPER_WEAR), - BONES(GunRocketHomingFactory.getRocketStingerBonesConfig()); + public enum AmmoMisc implements IAmmoItemEnum { + //LUNA_SNIPER("ammo_lunar", Gun50BMGFactory.getLunaticSabotRound(), AmmoItemTrait.PRO_HEAVY_DAMAGE, AmmoItemTrait.PRO_ACCURATE2, AmmoItemTrait.NEU_HEAVY_METAL), + DGK("ammo_dkg", GunDGKFactory.getDGKConfig()); + private final Set traits; private final BulletConfiguration config; - private AmmoStinger(BulletConfiguration config, AmmoItemTrait...traits) - { + private final String unloc; + + private AmmoMisc(String unloc, BulletConfiguration config, AmmoItemTrait... traits) { this.config = config; this.traits = safeAssign(traits); + this.unloc = unloc; } - private AmmoStinger(BulletConfiguration config, Set traits) - { + + @Override + public Set getTraits() { + return traits; + } + + @Override + public BulletConfiguration getConfig() { + return config; + } + + @Override + public String getInternalName() { + return unloc; + } + } + + public enum AmmoStinger implements IAmmoItemEnum { + STOCK("ammo_stinger_rocket", GunRocketHomingFactory.getRocketStingerConfig()), + HE("ammo_stinger_rocket_he", GunRocketHomingFactory.getRocketStingerHEConfig(), AmmoItemTrait.PRO_RADIUS, AmmoItemTrait.CON_WEAR), + INCENDIARY("ammo_stinger_rocket_incendiary", GunRocketHomingFactory.getRocketStingerIncendiaryConfig(), HbmCollection.IncendiaryType), + NUCLEAR("ammo_stinger_rocket_nuclear", GunRocketHomingFactory.getRocketStingerNuclearConfig(), AmmoItemTrait.PRO_NUCLEAR, AmmoItemTrait.CON_SUPER_WEAR), + BONES("ammo_stinger_rocket_bones", GunRocketHomingFactory.getRocketStingerBonesConfig()); + + private final Set traits; + private final BulletConfiguration config; + private final String unloc; + + private AmmoStinger(String unloc, BulletConfiguration config, AmmoItemTrait... traits) { + this.config = config; + this.traits = safeAssign(traits); + this.unloc = unloc; + } + + private AmmoStinger(String unloc, BulletConfiguration config, Set traits) { this.config = config; this.traits = traits; + this.unloc = unloc; } + @Override - public Set getTraits() - { + public Set getTraits() { return traits; } @Override - public BulletConfiguration getConfig() - { + public BulletConfiguration getConfig() { return config; } + + @Override + public String getInternalName() { + return unloc; + } } - public enum AmmoRocket implements IAmmoItemEnum - { - STOCK(GunRocketFactory.getRocketConfig()), - HE(GunRocketFactory.getRocketHEConfig(), AmmoItemTrait.PRO_RADIUS, AmmoItemTrait.CON_WEAR), - INCENDIARY(GunRocketFactory.getRocketIncendiaryConfig(), HbmCollection.IncendiaryType), - EMP(GunRocketFactory.getRocketEMPConfig(), AmmoItemTrait.PRO_EMP, AmmoItemTrait.CON_RADIUS), - SLEEK(GunRocketFactory.getRocketSleekConfig(), AmmoItemTrait.PRO_RADIUS_HIGH, AmmoItemTrait.PRO_NO_GRAVITY, AmmoItemTrait.CON_SPEED), - SHRAPNEL(GunRocketFactory.getRocketShrapnelConfig(), AmmoItemTrait.PRO_SHRAPNEL), - GLARE(GunRocketFactory.getRocketGlareConfig(), AmmoItemTrait.PRO_SPEED, AmmoItemTrait.PRO_INCENDIARY, AmmoItemTrait.CON_WEAR), - NUCLEAR(GunRocketFactory.getRocketNukeConfig(), AmmoItemTrait.PRO_NUCLEAR, AmmoItemTrait.CON_SUPER_WEAR, AmmoItemTrait.CON_SPEED), - CHLORINE(GunRocketFactory.getRocketChlorineConfig(), AmmoItemTrait.PRO_CHLORINE, AmmoItemTrait.CON_NO_EXPLODE1, AmmoItemTrait.CON_SPEED), - RPC(GunRocketFactory.getRocketRPCConfig(),AmmoItemTrait.PRO_CHAINSAW, AmmoItemTrait.PRO_PENETRATION, AmmoItemTrait.PRO_NO_GRAVITY, AmmoItemTrait.CON_WEAR, AmmoItemTrait.CON_NO_EXPLODE1, AmmoItemTrait.NEU_UHH ), - PHOSPHORUS(GunRocketFactory.getRocketPhosphorusConfig(), HbmCollection.PhosphorusTypeSpecial), - CANISTER(GunRocketFactory.getRocketCanisterConfig()), - DIGAMMA(GunRocketFactory.getRocketErrorConfig()); + public enum AmmoRocket implements IAmmoItemEnum { + STOCK("ammo_rocket", GunRocketFactory.getRocketConfig()), + HE("ammo_rocket_he", GunRocketFactory.getRocketHEConfig(), AmmoItemTrait.PRO_RADIUS, AmmoItemTrait.CON_WEAR), + INCENDIARY("ammo_rocket_incendiary", GunRocketFactory.getRocketIncendiaryConfig(), HbmCollection.IncendiaryType), + EMP("ammo_rocket_emp", GunRocketFactory.getRocketEMPConfig(), AmmoItemTrait.PRO_EMP, AmmoItemTrait.CON_RADIUS), + SLEEK("ammo_rocket_sleek", GunRocketFactory.getRocketSleekConfig(), AmmoItemTrait.PRO_RADIUS_HIGH, AmmoItemTrait.PRO_NO_GRAVITY, AmmoItemTrait.CON_SPEED), + SHRAPNEL("ammo_rocket_shrapnel", GunRocketFactory.getRocketShrapnelConfig(), AmmoItemTrait.PRO_SHRAPNEL), + GLARE("ammo_rocket_glare", GunRocketFactory.getRocketGlareConfig(), AmmoItemTrait.PRO_SPEED, AmmoItemTrait.PRO_INCENDIARY, AmmoItemTrait.CON_WEAR), + NUCLEAR("ammo_rocket_nuclear", GunRocketFactory.getRocketNukeConfig(), AmmoItemTrait.PRO_NUCLEAR, AmmoItemTrait.CON_SUPER_WEAR, AmmoItemTrait.CON_SPEED), + CHLORINE("ammo_rocket_toxic", GunRocketFactory.getRocketChlorineConfig(), AmmoItemTrait.PRO_CHLORINE, AmmoItemTrait.CON_NO_EXPLODE1, AmmoItemTrait.CON_SPEED), + RPC("ammo_rocket_rpc", GunRocketFactory.getRocketRPCConfig(),AmmoItemTrait.PRO_CHAINSAW, AmmoItemTrait.PRO_PENETRATION, AmmoItemTrait.PRO_NO_GRAVITY, AmmoItemTrait.CON_WEAR, AmmoItemTrait.CON_NO_EXPLODE1, AmmoItemTrait.NEU_UHH ), + PHOSPHORUS("ammo_rocket_phosphorus", GunRocketFactory.getRocketPhosphorusConfig(), HbmCollection.PhosphorusTypeSpecial), + CANISTER("ammo_rocket_canister", GunRocketFactory.getRocketCanisterConfig()), + DIGAMMA("ammo_rocket_digamma", GunRocketFactory.getRocketErrorConfig()); + private final Set traits; private final BulletConfiguration config; - private AmmoRocket(BulletConfiguration config, AmmoItemTrait...traits) - { + private final String unloc; + + private AmmoRocket(String unloc, BulletConfiguration config, AmmoItemTrait... traits) { this.config = config; this.traits = safeAssign(traits); + this.unloc = unloc; } - private AmmoRocket(BulletConfiguration config, Set traits) - { + + private AmmoRocket(String unloc, BulletConfiguration config, Set traits) { this.config = config; this.traits = traits; + this.unloc = unloc; } + @Override - public Set getTraits() - { + public Set getTraits() { return traits; } @Override - public BulletConfiguration getConfig() - { + public BulletConfiguration getConfig() { return config; } - } - - public enum AmmoGrenade implements IAmmoItemEnum - { - STOCK(GunGrenadeFactory.getGrenadeConfig()), - HE(GunGrenadeFactory.getGrenadeHEConfig(), AmmoItemTrait.PRO_RADIUS, AmmoItemTrait.CON_WEAR), - INCENDIARY(GunGrenadeFactory.getGrenadeIncendirayConfig(), AmmoItemTrait.PRO_INCENDIARY, AmmoItemTrait.CON_WEAR), - PHOSPHORUS(GunGrenadeFactory.getGrenadePhosphorusConfig(), AmmoItemTrait.PRO_PHOSPHORUS_SPLASH, AmmoItemTrait.NEU_WARCRIME1, AmmoItemTrait.CON_WEAR), - //SMOKE(GunGrenadeFactory.getGrenadeSmokeConfig(), AmmoItemTrait.PRO_PHOSPHORUS_SPLASH, AmmoItemTrait.CON_NO_EXPLODE1, AmmoItemTrait.CON_NO_EXPLODE3), - CHLORINE(GunGrenadeFactory.getGrenadeChlorineConfig(), AmmoItemTrait.PRO_CHLORINE, AmmoItemTrait.CON_NO_EXPLODE1), - SLEEK(GunGrenadeFactory.getGrenadeSleekConfig(), AmmoItemTrait.PRO_RADIUS, AmmoItemTrait.NEU_JOLT), - CONCUSSION(GunGrenadeFactory.getGrenadeConcussionConfig(), AmmoItemTrait.PRO_RADIUS, AmmoItemTrait.CON_NO_EXPLODE2), - FINNED(GunGrenadeFactory.getGrenadeFinnedConfig(), AmmoItemTrait.PRO_GRAVITY, AmmoItemTrait.CON_RADIUS), - NUCLEAR(GunGrenadeFactory.getGrenadeNuclearConfig(), AmmoItemTrait.PRO_NUCLEAR, AmmoItemTrait.PRO_RANGE, AmmoItemTrait.CON_HEAVY_WEAR), - //LUNATIC(GunGrenadeFactory.getGrenadeLunaticConfig(), AmmoItemTrait.PRO_LUNATIC, AmmoItemTrait.PRO_RANGE, AmmoItemTrait.CON_NO_EXPLODE2, AmmoItemTrait.CON_SUPER_WEAR), - TRACER(GunGrenadeFactory.getGrenadeTracerConfig(), AmmoItemTrait.NEU_BLANK), - KAMPF(GunGrenadeFactory.getGrenadeKampfConfig(), AmmoItemTrait.PRO_ROCKET_PROPELLED, AmmoItemTrait.PRO_RADIUS, AmmoItemTrait.PRO_ACCURATE1, AmmoItemTrait.CON_WEAR); - private final Set traits; - private final BulletConfiguration config; - private AmmoGrenade(BulletConfiguration config, AmmoItemTrait...traits) - { - this.config = config; - this.traits = safeAssign(traits); - } @Override - public Set getTraits() - { + public String getInternalName() { + return unloc; + } + } + + public enum AmmoGrenade implements IAmmoItemEnum { + STOCK("ammo_grenade", GunGrenadeFactory.getGrenadeConfig()), + HE("ammo_grenade_he", GunGrenadeFactory.getGrenadeHEConfig(), AmmoItemTrait.PRO_RADIUS, AmmoItemTrait.CON_WEAR), + INCENDIARY("ammo_grenade_incendiary", GunGrenadeFactory.getGrenadeIncendirayConfig(), AmmoItemTrait.PRO_INCENDIARY, AmmoItemTrait.CON_WEAR), + PHOSPHORUS("ammo_grenade_phosphorus", GunGrenadeFactory.getGrenadePhosphorusConfig(), AmmoItemTrait.PRO_PHOSPHORUS_SPLASH, AmmoItemTrait.NEU_WARCRIME1, AmmoItemTrait.CON_WEAR), + CHLORINE("ammo_grenade_toxic", GunGrenadeFactory.getGrenadeChlorineConfig(), AmmoItemTrait.PRO_CHLORINE, AmmoItemTrait.CON_NO_EXPLODE1), + SLEEK("ammo_grenade_sleek", GunGrenadeFactory.getGrenadeSleekConfig(), AmmoItemTrait.PRO_RADIUS, AmmoItemTrait.NEU_JOLT), + CONCUSSION("ammo_grenade_concussion", GunGrenadeFactory.getGrenadeConcussionConfig(), AmmoItemTrait.PRO_RADIUS, AmmoItemTrait.CON_NO_EXPLODE2), + FINNED("ammo_grenade_finned", GunGrenadeFactory.getGrenadeFinnedConfig(), AmmoItemTrait.PRO_GRAVITY, AmmoItemTrait.CON_RADIUS), + NUCLEAR("ammo_grenade_nuclear", GunGrenadeFactory.getGrenadeNuclearConfig(), AmmoItemTrait.PRO_NUCLEAR, AmmoItemTrait.PRO_RANGE, AmmoItemTrait.CON_HEAVY_WEAR), + TRACER("ammo_grenade_tracer", GunGrenadeFactory.getGrenadeTracerConfig(), AmmoItemTrait.NEU_BLANK), + KAMPF("ammo_grenade_kampf", GunGrenadeFactory.getGrenadeKampfConfig(), AmmoItemTrait.PRO_ROCKET_PROPELLED, AmmoItemTrait.PRO_RADIUS, AmmoItemTrait.PRO_ACCURATE1, AmmoItemTrait.CON_WEAR); + + private final Set traits; + private final BulletConfiguration config; + private final String unloc; + + private AmmoGrenade(String unloc, BulletConfiguration config, AmmoItemTrait... traits) { + this.config = config; + this.traits = safeAssign(traits); + this.unloc = unloc; + } + + @Override + public Set getTraits() { return traits; } @Override - public BulletConfiguration getConfig() - { + public BulletConfiguration getConfig() { return config; } - } - - public enum AmmoFatman implements IAmmoItemEnum - { - STOCK(GunFatmanFactory.getNukeConfig()), - LOW(GunFatmanFactory.getNukeLowConfig(), AmmoItemTrait.CON_RADIUS), - HIGH(GunFatmanFactory.getNukeHighConfig(), AmmoItemTrait.PRO_RADIUS, AmmoItemTrait.PRO_FALLOUT), - TOTS(GunFatmanFactory.getNukeTotsConfig(), AmmoItemTrait.PRO_BOMB_COUNT, AmmoItemTrait.NEU_FUN, AmmoItemTrait.CON_ACCURACY2, AmmoItemTrait.CON_RADIUS, AmmoItemTrait.CON_NO_MIRV), - SAFE(GunFatmanFactory.getNukeSafeConfig(), AmmoItemTrait.CON_RADIUS, AmmoItemTrait.CON_NO_EXPLODE2), - PUMPKIN(GunFatmanFactory.getNukePumpkinConfig(), AmmoItemTrait.CON_NN), - MIRV(GunFatmanFactory.getMirvConfig()), - MIRV_LOW(GunFatmanFactory.getMirvLowConfig(), AmmoItemTrait.CON_RADIUS), - MIRV_HIGH(GunFatmanFactory.getMirvHighConfig(), AmmoItemTrait.PRO_RADIUS, AmmoItemTrait.PRO_FALLOUT), - MIRV_SAFE(GunFatmanFactory.getMirvSafeConfig(), AmmoItemTrait.CON_RADIUS, AmmoItemTrait.CON_NO_EXPLODE2), - MIRV_SPECIAL(GunFatmanFactory.getMirvSpecialConfig()), - BALEFIRE(GunFatmanFactory.getBalefireConfig()), - BARREL(GunFatmanFactory.getNukeBarrelConfig()); - private final Set traits; - private final BulletConfiguration config; - private AmmoFatman(BulletConfiguration config, AmmoItemTrait...traits) - { - this.config = config; - this.traits = safeAssign(traits); - } @Override - public Set getTraits() - { + public String getInternalName() { + return unloc; + } + } + + public enum AmmoFatman implements IAmmoItemEnum { + STOCK("ammo_nuke", GunFatmanFactory.getNukeConfig()), + LOW("ammo_nuke_low", GunFatmanFactory.getNukeLowConfig(), AmmoItemTrait.CON_RADIUS), + HIGH("ammo_nuke_high", GunFatmanFactory.getNukeHighConfig(), AmmoItemTrait.PRO_RADIUS, AmmoItemTrait.PRO_FALLOUT), + TOTS("ammo_nuke_tots", GunFatmanFactory.getNukeTotsConfig(), AmmoItemTrait.PRO_BOMB_COUNT, AmmoItemTrait.NEU_FUN, AmmoItemTrait.CON_ACCURACY2, AmmoItemTrait.CON_RADIUS, AmmoItemTrait.CON_NO_MIRV), + SAFE("ammo_nuke_safe", GunFatmanFactory.getNukeSafeConfig(), AmmoItemTrait.CON_RADIUS, AmmoItemTrait.CON_NO_EXPLODE2), + PUMPKIN("ammo_nuke_pumpkin", GunFatmanFactory.getNukePumpkinConfig(), AmmoItemTrait.CON_NN), + MIRV("ammo_mirv", GunFatmanFactory.getMirvConfig()), + MIRV_LOW("ammo_mirv_low", GunFatmanFactory.getMirvLowConfig(), AmmoItemTrait.CON_RADIUS), + MIRV_HIGH("ammo_mirv_high", GunFatmanFactory.getMirvHighConfig(), AmmoItemTrait.PRO_RADIUS, AmmoItemTrait.PRO_FALLOUT), + MIRV_SAFE("ammo_mirv_safe", GunFatmanFactory.getMirvSafeConfig(), AmmoItemTrait.CON_RADIUS, AmmoItemTrait.CON_NO_EXPLODE2), + MIRV_SPECIAL("ammo_mirv_special", GunFatmanFactory.getMirvSpecialConfig()), + BALEFIRE("gun_bf_ammo", GunFatmanFactory.getBalefireConfig()), + BARREL("ammo_nuke_barrel", GunFatmanFactory.getNukeBarrelConfig()); + + private final Set traits; + private final BulletConfiguration config; + private final String unloc; + + private AmmoFatman(String unloc, BulletConfiguration config, AmmoItemTrait... traits) { + this.config = config; + this.traits = safeAssign(traits); + this.unloc = unloc; + } + + @Override + public Set getTraits() { return traits; } @Override - public BulletConfiguration getConfig() - { + public BulletConfiguration getConfig() { return config; } - } - - public enum AmmoDart implements IAmmoItemEnum - { - GPS(GunDartFactory.getGPSConfig()), - NUCLEAR(GunDartFactory.getNukeConfig()), - NERF(GunDartFactory.getNERFConfig()); - private final Set traits; - private final BulletConfiguration config; - private AmmoDart(BulletConfiguration config, AmmoItemTrait...traits) - { - this.config = config; - this.traits = safeAssign(traits); - } @Override - public Set getTraits() - { + public String getInternalName() { + return unloc; + } + } + + public enum AmmoDart implements IAmmoItemEnum { + GPS("ammo_dart", GunDartFactory.getGPSConfig()), + NUCLEAR("ammo_dart_nuclear", GunDartFactory.getNukeConfig()), + NERF("ammo_dart_nerf", GunDartFactory.getNERFConfig()); + + private final Set traits; + private final BulletConfiguration config; + private final String unloc; + + private AmmoDart(String unloc, BulletConfiguration config, AmmoItemTrait... traits) { + this.config = config; + this.traits = safeAssign(traits); + this.unloc = unloc; + } + + @Override + public Set getTraits() { return traits; } @Override - public BulletConfiguration getConfig() - { + public BulletConfiguration getConfig() { return config; } - } - - public enum Ammo240Shell implements IAmmoItemEnum, IItemEnum - { - STOCK(GunCannonFactory.getShellConfig()), - EXPLOSIVE(GunCannonFactory.getShellExplosiveConfig()), - APFSDS_T(GunCannonFactory.getShellAPConfig()), - APFSDS_DU(GunCannonFactory.getShellDUConfig()), - W9(GunCannonFactory.getShellW9Config()); - private final Set traits; - private final BulletConfiguration config; - private Ammo240Shell(BulletConfiguration config, AmmoItemTrait...traits) - { - this.config = config; - this.traits = safeAssign(traits); - } @Override - public Set getTraits() - { + public String getInternalName() { + return unloc; + } + } + + public enum Ammo240Shell implements IAmmoItemEnum { + STOCK("ammo_shell", GunCannonFactory.getShellConfig()), + EXPLOSIVE("ammo_shell_explosive", GunCannonFactory.getShellExplosiveConfig()), + APFSDS_T("ammo_shell_apfsds_t", GunCannonFactory.getShellAPConfig()), + APFSDS_DU("ammo_shell_apfsds_du", GunCannonFactory.getShellDUConfig()), + W9("ammo_shell_w9", GunCannonFactory.getShellW9Config()); + + private final Set traits; + private final BulletConfiguration config; + private final String unloc; + + private Ammo240Shell(String unloc, BulletConfiguration config, AmmoItemTrait... traits) { + this.config = config; + this.traits = safeAssign(traits); + this.unloc = unloc; + } + + @Override + public Set getTraits() { return traits; } @Override - public BulletConfiguration getConfig() - { + public BulletConfiguration getConfig() { return config; } + + @Override + public String getInternalName() { + return unloc; + } } - public enum Ammo9mm implements IAmmoItemEnum - { - STOCK(Gun9mmFactory.get9mmConfig()), - AP(Gun9mmFactory.get9mmAPConfig(), HbmCollection.APType), - DU(Gun9mmFactory.get9mmDUConfig(), HbmCollection.DUType), - CHLOROPHYTE(Gun9mmFactory.get9mmConfig().getChlorophyte(), HbmCollection.ChlorophyteType), - ROCKET(Gun9mmFactory.get9mmRocketConfig(), AmmoItemTrait.PRO_ROCKET, AmmoItemTrait.NEU_UHH); + public enum Ammo9mm implements IAmmoItemEnum { + STOCK("ammo_9mm", Gun9mmFactory.get9mmConfig()), + AP("ammo_9mm_ap", Gun9mmFactory.get9mmAPConfig(), HbmCollection.APType), + DU("ammo_9mm_du", Gun9mmFactory.get9mmDUConfig(), HbmCollection.DUType), + CHLOROPHYTE("ammo_9mm_chlorophyte", Gun9mmFactory.get9mmConfig().getChlorophyte(), HbmCollection.ChlorophyteType), + ROCKET("ammo_9mm_rocket", Gun9mmFactory.get9mmRocketConfig(), AmmoItemTrait.PRO_ROCKET, AmmoItemTrait.NEU_UHH); + private final Set traits; private final BulletConfiguration config; - private Ammo9mm(BulletConfiguration config, AmmoItemTrait...traits) - { + private final String unloc; + + private Ammo9mm(String unloc, BulletConfiguration config, AmmoItemTrait... traits) { this.config = config; this.traits = safeAssign(traits); + this.unloc = unloc; } - private Ammo9mm(BulletConfiguration config, Set traits) - { + + private Ammo9mm(String unloc, BulletConfiguration config, Set traits) { this.config = config; this.traits = traits; + this.unloc = unloc; } + @Override - public Set getTraits() - { + public Set getTraits() { return traits; } @Override - public BulletConfiguration getConfig() - { + public BulletConfiguration getConfig() { return config; } + + @Override + public String getInternalName() { + return unloc; + } } - public enum Ammo762NATO implements IAmmoItemEnum - { - STOCK(Gun762mmFactory.get762NATOConfig()), - AP(Gun762mmFactory.get762APConfig(), HbmCollection.APType), - DU(Gun762mmFactory.get762DUConfig(), HbmCollection.DUType), - TRACER(Gun762mmFactory.get762TracerConfig(), AmmoItemTrait.NEU_TRACER), - PHOSPHORUS(Gun762mmFactory.get762WPConfig(), HbmCollection.PhosphorusType), - BLANK(Gun762mmFactory.get762BlankConfig(), AmmoItemTrait.NEU_BLANK); + public enum Ammo762NATO implements IAmmoItemEnum { + STOCK("ammo_762", Gun762mmFactory.get762NATOConfig()), + AP("ammo_762_ap", Gun762mmFactory.get762APConfig(), HbmCollection.APType), + DU("ammo_762_du", Gun762mmFactory.get762DUConfig(), HbmCollection.DUType), + TRACER("ammo_762_tracer", Gun762mmFactory.get762TracerConfig(), AmmoItemTrait.NEU_TRACER), + PHOSPHORUS("ammo_762_phosphorus", Gun762mmFactory.get762WPConfig(), HbmCollection.PhosphorusType), + BLANK("ammo_762_blank", Gun762mmFactory.get762BlankConfig(), AmmoItemTrait.NEU_BLANK); + private final Set traits; private final BulletConfiguration config; - private Ammo762NATO(BulletConfiguration config, AmmoItemTrait...traits) - { + private final String unloc; + + private Ammo762NATO(String unloc, BulletConfiguration config, AmmoItemTrait... traits) { this.config = config; this.traits = safeAssign(traits); + this.unloc = unloc; } - private Ammo762NATO(BulletConfiguration config, Set traits) - { + + private Ammo762NATO(String unloc, BulletConfiguration config, Set traits) { this.config = config; this.traits = traits; + this.unloc = unloc; } + @Override - public Set getTraits() - { + public Set getTraits() { return traits; } @Override - public BulletConfiguration getConfig() - { + public BulletConfiguration getConfig() { return config; } - } - - public enum Ammo75Bolt implements IAmmoItemEnum - { - STOCK(Gun75BoltFactory.get75BoltConfig()), - INCENDIARY(Gun75BoltFactory.get75BoltIncConfig()), - HE(Gun75BoltFactory.get75BoltHEConfig()); - private final Set traits; - private final BulletConfiguration config; - private Ammo75Bolt(BulletConfiguration config, AmmoItemTrait...traits) - { - this.config = config; - this.traits = safeAssign(traits); - } @Override - public Set getTraits() - { + public String getInternalName() { + return unloc; + } + } + + public enum Ammo75Bolt implements IAmmoItemEnum { + STOCK("ammo_75bolt", Gun75BoltFactory.get75BoltConfig()), + INCENDIARY("ammo_75bolt_incendiary", Gun75BoltFactory.get75BoltIncConfig()), + HE("ammo_75bolt_he", Gun75BoltFactory.get75BoltHEConfig()); + + private final Set traits; + private final BulletConfiguration config; + private final String unloc; + + private Ammo75Bolt(String unloc, BulletConfiguration config, AmmoItemTrait... traits) { + this.config = config; + this.traits = safeAssign(traits); + this.unloc = unloc; + } + + @Override + public Set getTraits() { return traits; } @Override - public BulletConfiguration getConfig() - { + public BulletConfiguration getConfig() { return config; } + + @Override + public String getInternalName() { + return unloc; + } } - public enum Ammo5mm implements IAmmoItemEnum - { - STOCK(Gun5mmFactory.get5mmConfig()), - EXPLOSIVE(Gun5mmFactory.get5mmExplosiveConfig(), HbmCollection.ExplosiveType), - DU(Gun5mmFactory.get5mmDUConfig(), HbmCollection.DUType), - STAR(Gun5mmFactory.get5mmStarConfig(), HbmCollection.StarmetalType), - CHLOROPHYTE(Gun5mmFactory.get5mmConfig().getChlorophyte(), HbmCollection.ChlorophyteType); + public enum Ammo5mm implements IAmmoItemEnum { + STOCK("ammo_5mm", Gun5mmFactory.get5mmConfig()), + EXPLOSIVE("ammo_5mm_explosive", Gun5mmFactory.get5mmExplosiveConfig(), HbmCollection.ExplosiveType), + DU("ammo_5mm_du", Gun5mmFactory.get5mmDUConfig(), HbmCollection.DUType), + STAR("ammo_5mm_star", Gun5mmFactory.get5mmStarConfig(), HbmCollection.StarmetalType), + CHLOROPHYTE("ammo_5mm_chlorophyte", Gun5mmFactory.get5mmConfig().getChlorophyte(), HbmCollection.ChlorophyteType); + private final Set traits; private final BulletConfiguration config; - private Ammo5mm(BulletConfiguration config, AmmoItemTrait...traits) - { + private final String unloc; + + private Ammo5mm(String unloc, BulletConfiguration config, AmmoItemTrait... traits) { this.config = config; this.traits = safeAssign(traits); + this.unloc = unloc; } - private Ammo5mm(BulletConfiguration config, Set traits) - { + + private Ammo5mm(String unloc, BulletConfiguration config, Set traits) { this.config = config; this.traits = traits; + this.unloc = unloc; } + @Override - public Set getTraits() - { + public Set getTraits() { return traits; } @Override - public BulletConfiguration getConfig() - { + public BulletConfiguration getConfig() { return config; } + + @Override + public String getInternalName() { + return unloc; + } } - public enum Ammo556mm implements IAmmoItemEnum - { - STOCK(Gun556mmFactory.get556Config()), - GOLD(Gun556mmFactory.get556GoldConfig()), - PHOSPHORUS(Gun556mmFactory.get556PhosphorusConfig(), HbmCollection.PhosphorusType), - AP(Gun556mmFactory.get556APConfig(), HbmCollection.APType), - DU(Gun556mmFactory.get556DUConfig(), HbmCollection.DUType), - STAR(Gun556mmFactory.get556StarConfig(), HbmCollection.StarmetalType), - CHLOROPHYTE(Gun556mmFactory.get556Config().getChlorophyte(), HbmCollection.ChlorophyteType), - SLEEK(Gun556mmFactory.get556SleekConfig(), AmmoItemTrait.NEU_MASKMAN_METEORITE), - TRACER(Gun556mmFactory.get556TracerConfig(), AmmoItemTrait.NEU_TRACER), - FLECHETTE(Gun556mmFactory.get556FlechetteConfig(), HbmCollection.FlechetteType), - FLECHETTE_INCENDIARY(Gun556mmFactory.get556FlechetteIncendiaryConfig(), AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.PRO_INCENDIARY, AmmoItemTrait.NEU_LESS_BOUNCY, AmmoItemTrait.CON_WEAR, AmmoItemTrait.CON_PENETRATION), - FLECHETTE_PHOSPHORUS(Gun556mmFactory.get556FlechettePhosphorusConfig(), AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.PRO_PHOSPHORUS, AmmoItemTrait.NEU_WARCRIME2, AmmoItemTrait.NEU_LESS_BOUNCY, AmmoItemTrait.CON_WEAR, AmmoItemTrait.CON_PENETRATION), - FLECHETTE_DU(Gun556mmFactory.get556FlechetteDUConfig(), AmmoItemTrait.PRO_HEAVY_DAMAGE, AmmoItemTrait.PRO_PENETRATION, AmmoItemTrait.NEU_HEAVY_METAL, AmmoItemTrait.NEU_LESS_BOUNCY, AmmoItemTrait.CON_HEAVY_WEAR), - FLECHETTE_CHLOROPHYTE(Gun556mmFactory.get556FlechetteConfig().getChlorophyte(), HbmCollection.ChlorophyteType), - FLECHETTE_SLEEK(Gun556mmFactory.get556FlechetteSleekConfig(), AmmoItemTrait.NEU_MASKMAN_METEORITE), - K(Gun556mmFactory.get556KConfig(), AmmoItemTrait.NEU_BLANK); + public enum Ammo556mm implements IAmmoItemEnum { + STOCK("ammo_556", Gun556mmFactory.get556Config()), + GOLD("gun_pm_ammo", Gun556mmFactory.get556GoldConfig()), + PHOSPHORUS("ammo_556_phosphorus", Gun556mmFactory.get556PhosphorusConfig(), HbmCollection.PhosphorusType), + AP("ammo_556_ap", Gun556mmFactory.get556APConfig(), HbmCollection.APType), + DU("ammo_556_du", Gun556mmFactory.get556DUConfig(), HbmCollection.DUType), + STAR("ammo_556_star", Gun556mmFactory.get556StarConfig(), HbmCollection.StarmetalType), + CHLOROPHYTE("ammo_556_chlorophyte", Gun556mmFactory.get556Config().getChlorophyte(), HbmCollection.ChlorophyteType), + SLEEK("ammo_556_sleek", Gun556mmFactory.get556SleekConfig(), AmmoItemTrait.NEU_MASKMAN_METEORITE), + TRACER("ammo_556_tracer", Gun556mmFactory.get556TracerConfig(), AmmoItemTrait.NEU_TRACER), + FLECHETTE("ammo_556_flechette", Gun556mmFactory.get556FlechetteConfig(), HbmCollection.FlechetteType), + FLECHETTE_INCENDIARY("ammo_556_flechette_incendiary", Gun556mmFactory.get556FlechetteIncendiaryConfig(), AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.PRO_INCENDIARY, AmmoItemTrait.NEU_LESS_BOUNCY, AmmoItemTrait.CON_WEAR, AmmoItemTrait.CON_PENETRATION), + FLECHETTE_PHOSPHORUS("ammo_556_flechette_phosphorus", Gun556mmFactory.get556FlechettePhosphorusConfig(), AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.PRO_PHOSPHORUS, AmmoItemTrait.NEU_WARCRIME2, AmmoItemTrait.NEU_LESS_BOUNCY, AmmoItemTrait.CON_WEAR, AmmoItemTrait.CON_PENETRATION), + FLECHETTE_DU("ammo_556_flechette_du", Gun556mmFactory.get556FlechetteDUConfig(), AmmoItemTrait.PRO_HEAVY_DAMAGE, AmmoItemTrait.PRO_PENETRATION, AmmoItemTrait.NEU_HEAVY_METAL, AmmoItemTrait.NEU_LESS_BOUNCY, AmmoItemTrait.CON_HEAVY_WEAR), + FLECHETTE_CHLOROPHYTE("ammo_556_flechette_chlorophyte", Gun556mmFactory.get556FlechetteConfig().getChlorophyte(), HbmCollection.ChlorophyteType), + FLECHETTE_SLEEK("ammo_556_flechette_sleek", Gun556mmFactory.get556FlechetteSleekConfig(), AmmoItemTrait.NEU_MASKMAN_METEORITE), + K("ammo_556_k", Gun556mmFactory.get556KConfig(), AmmoItemTrait.NEU_BLANK); + private final Set traits; private final BulletConfiguration config; - private Ammo556mm(BulletConfiguration config, AmmoItemTrait...traits) - { + private final String unloc; + + private Ammo556mm(String unloc, BulletConfiguration config, AmmoItemTrait... traits) { this.config = config; this.traits = safeAssign(traits); + this.unloc = unloc; } - private Ammo556mm(BulletConfiguration config, Set traits) - { + + private Ammo556mm(String unloc, BulletConfiguration config, Set traits) { this.config = config; this.traits = traits; + this.unloc = unloc; } + @Override - public Set getTraits() - { + public Set getTraits() { return traits; } @Override - public BulletConfiguration getConfig() - { + public BulletConfiguration getConfig() { return config; } + + @Override + public String getInternalName() { + return unloc; + } } - public enum Ammo50BMG implements IAmmoItemEnum - { - STOCK(Gun50BMGFactory.get50BMGConfig()), - INCENDIARY(Gun50BMGFactory.get50BMGFireConfig(), HbmCollection.IncendiaryType), - PHOSPHORUS(Gun50BMGFactory.get50BMGPhosphorusConfig(), HbmCollection.PhosphorusType), - EXPLOSIVE(Gun50BMGFactory.get50BMGExplosiveConfig(), HbmCollection.ExplosiveType), - AP(Gun50BMGFactory.get50BMGAPConfig(), HbmCollection.APType), - DU(Gun50BMGFactory.get50BMGDUConfig(), HbmCollection.DUType), - STAR(Gun50BMGFactory.get50BMGStarConfig(), HbmCollection.StarmetalType), - CHLOROPHYTE(Gun50BMGFactory.get50BMGConfig().getChlorophyte(), HbmCollection.ChlorophyteType), - SLEEK(Gun50BMGFactory.get50BMGSleekConfig(), AmmoItemTrait.NEU_MASKMAN_METEORITE), - FLECHETTE(Gun50BMGFactory.get50BMGFlechetteConfig(), AmmoItemTrait.PRO_DAMAGE), - FLECHETTE_AM(Gun50BMGFactory.get50BMGFlechetteAMConfig(), AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.NEU_UHH), - FLECHETTE_PO(Gun50BMGFactory.get50BMGFlechettePOConfig(), AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.NEU_UHH); + public enum Ammo50BMG implements IAmmoItemEnum { + STOCK("ammo_50bmg", Gun50BMGFactory.get50BMGConfig()), + INCENDIARY("ammo_50bmg_incendiary", Gun50BMGFactory.get50BMGFireConfig(), HbmCollection.IncendiaryType), + PHOSPHORUS("ammo_50bmg_phosphorus", Gun50BMGFactory.get50BMGPhosphorusConfig(), HbmCollection.PhosphorusType), + EXPLOSIVE("ammo_50bmg_explosive", Gun50BMGFactory.get50BMGExplosiveConfig(), HbmCollection.ExplosiveType), + AP("ammo_50bmg_ap", Gun50BMGFactory.get50BMGAPConfig(), HbmCollection.APType), + DU("ammo_50bmg_du", Gun50BMGFactory.get50BMGDUConfig(), HbmCollection.DUType), + STAR("ammo_50bmg_star", Gun50BMGFactory.get50BMGStarConfig(), HbmCollection.StarmetalType), + CHLOROPHYTE("ammo_50bmg_chlorophyte", Gun50BMGFactory.get50BMGConfig().getChlorophyte(), HbmCollection.ChlorophyteType), + SLEEK("ammo_50bmg_sleek", Gun50BMGFactory.get50BMGSleekConfig(), AmmoItemTrait.NEU_MASKMAN_METEORITE), + FLECHETTE("ammo_50bmg_flechette", Gun50BMGFactory.get50BMGFlechetteConfig(), AmmoItemTrait.PRO_DAMAGE), + FLECHETTE_AM("ammo_50bmg_flechette_am", Gun50BMGFactory.get50BMGFlechetteAMConfig(), AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.NEU_UHH), + FLECHETTE_PO("ammo_50bmg_flechette_po", Gun50BMGFactory.get50BMGFlechettePOConfig(), AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.NEU_UHH); + private final Set traits; private final BulletConfiguration config; - private Ammo50BMG(BulletConfiguration config, AmmoItemTrait...traits) - { + private final String unloc; + + private Ammo50BMG(String unloc, BulletConfiguration config, AmmoItemTrait... traits) { this.config = config; this.traits = safeAssign(traits); + this.unloc = unloc; } - private Ammo50BMG(BulletConfiguration config, Set traits) - { + + private Ammo50BMG(String unloc, BulletConfiguration config, Set traits) { this.config = config; this.traits = traits; + this.unloc = unloc; } + @Override - public Set getTraits() - { + public Set getTraits() { return traits; } @Override - public BulletConfiguration getConfig() - { + public BulletConfiguration getConfig() { return config; } + + @Override + public String getInternalName() { + return unloc; + } } - public enum Ammo50AE implements IAmmoItemEnum - { - STOCK(Gun50AEFactory.get50AEConfig()), - AP(Gun50AEFactory.get50APConfig(), HbmCollection.APType), - DU(Gun50AEFactory.get50DUConfig(), HbmCollection.DUType), - STAR(Gun50AEFactory.get50StarConfig(), HbmCollection.StarmetalType), - CHLOROPHYTE(Gun50AEFactory.get50AEConfig().getChlorophyte(), HbmCollection.ChlorophyteType); + public enum Ammo50AE implements IAmmoItemEnum { + STOCK("ammo_50ae", Gun50AEFactory.get50AEConfig()), + AP("ammo_50ae_ap", Gun50AEFactory.get50APConfig(), HbmCollection.APType), + DU("ammo_50ae_du", Gun50AEFactory.get50DUConfig(), HbmCollection.DUType), + STAR("ammo_50ae_star", Gun50AEFactory.get50StarConfig(), HbmCollection.StarmetalType), + CHLOROPHYTE("ammo_50ae_chlorophyte", Gun50AEFactory.get50AEConfig().getChlorophyte(), HbmCollection.ChlorophyteType); + private final Set traits; private final BulletConfiguration config; - private Ammo50AE(BulletConfiguration config, AmmoItemTrait...traits) - { + private final String unloc; + + private Ammo50AE(String unloc, BulletConfiguration config, AmmoItemTrait... traits) { this.config = config; this.traits = safeAssign(traits); + this.unloc = unloc; } - private Ammo50AE(BulletConfiguration config, Set traits) - { + + private Ammo50AE(String unloc, BulletConfiguration config, Set traits) { this.config = config; this.traits = traits; + this.unloc = unloc; } + @Override - public Set getTraits() - { + public Set getTraits() { return traits; } @Override - public BulletConfiguration getConfig() - { + public BulletConfiguration getConfig() { return config; } + + @Override + public String getInternalName() { + return unloc; + } } - public enum Ammo4Gauge implements IAmmoItemEnum - { - STOCK(Gun4GaugeFactory.get4GaugeConfig()), - SLUG(Gun4GaugeFactory.get4GaugeSlugConfig(), AmmoItemTrait.PRO_ACCURATE2, AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.PRO_WEAR, AmmoItemTrait.CON_SING_PROJECTILE), - FLECHETTE(Gun4GaugeFactory.get4GaugeFlechetteConfig(), HbmCollection.FlechetteType), - FLECHETTE_PHOSPHORUS(Gun4GaugeFactory.get4GaugeFlechettePhosphorusConfig(), AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.PRO_PHOSPHORUS, AmmoItemTrait.NEU_WARCRIME2, AmmoItemTrait.NEU_LESS_BOUNCY, AmmoItemTrait.CON_WEAR), - EXPLOSIVE(Gun4GaugeFactory.get4GaugeExplosiveConfig(), AmmoItemTrait.PRO_EXPLOSIVE, AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.NEU_40MM, AmmoItemTrait.CON_HEAVY_WEAR, AmmoItemTrait.CON_SING_PROJECTILE), - MINING(Gun4GaugeFactory.get4GaugeMiningConfig(), AmmoItemTrait.PRO_EXPLOSIVE, AmmoItemTrait.PRO_MINING, AmmoItemTrait.CON_NO_EXPLODE3, AmmoItemTrait.CON_HEAVY_WEAR, AmmoItemTrait.CON_SING_PROJECTILE), - BALEFIRE(Gun4GaugeFactory.get4GaugeBalefireConfig(), AmmoItemTrait.PRO_EXPLOSIVE, AmmoItemTrait.PRO_BALEFIRE, AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.CON_HEAVY_WEAR, AmmoItemTrait.CON_SING_PROJECTILE), - KAMPF(Gun4GaugeFactory.getGrenadeKampfConfig(), AmmoItemTrait.PRO_EXPLOSIVE, AmmoItemTrait.PRO_ROCKET_PROPELLED, AmmoItemTrait.PRO_ACCURATE1, AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.CON_WEAR, AmmoItemTrait.CON_SING_PROJECTILE), - CANISTER(Gun4GaugeFactory.getGrenadeCanisterConfig()), - SLEEK(Gun4GaugeFactory.get4GaugeSleekConfig(), AmmoItemTrait.NEU_MASKMAN_FLECHETTE), - CLAW(Gun4GaugeFactory.get4GaugeClawConfig()), - VAMPIRE(Gun4GaugeFactory.get4GaugeVampireConfig()), - VOID(Gun4GaugeFactory.get4GaugeVoidConfig()), - QUACK(Gun4GaugeFactory.get4GaugeQuackConfig(), AmmoItemTrait.PRO_MARAUDER, AmmoItemTrait.NEU_NO_CON); + public enum Ammo4Gauge implements IAmmoItemEnum { + STOCK("ammo_4gauge", Gun4GaugeFactory.get4GaugeConfig()), + SLUG("ammo_4gauge_slug", Gun4GaugeFactory.get4GaugeSlugConfig(), AmmoItemTrait.PRO_ACCURATE2, AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.PRO_WEAR, AmmoItemTrait.CON_SING_PROJECTILE), + FLECHETTE("ammo_4gauge_flechette", Gun4GaugeFactory.get4GaugeFlechetteConfig(), HbmCollection.FlechetteType), + FLECHETTE_PHOSPHORUS("ammo_4gauge_flechette_phosphorus", Gun4GaugeFactory.get4GaugeFlechettePhosphorusConfig(), AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.PRO_PHOSPHORUS, AmmoItemTrait.NEU_WARCRIME2, AmmoItemTrait.NEU_LESS_BOUNCY, AmmoItemTrait.CON_WEAR), + EXPLOSIVE("ammo_4gauge_explosive", Gun4GaugeFactory.get4GaugeExplosiveConfig(), AmmoItemTrait.PRO_EXPLOSIVE, AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.NEU_40MM, AmmoItemTrait.CON_HEAVY_WEAR, AmmoItemTrait.CON_SING_PROJECTILE), + MINING("ammo_4gauge_semtex", Gun4GaugeFactory.get4GaugeMiningConfig(), AmmoItemTrait.PRO_EXPLOSIVE, AmmoItemTrait.PRO_MINING, AmmoItemTrait.CON_NO_EXPLODE3, AmmoItemTrait.CON_HEAVY_WEAR, AmmoItemTrait.CON_SING_PROJECTILE), + BALEFIRE("ammo_4gauge_balefire", Gun4GaugeFactory.get4GaugeBalefireConfig(), AmmoItemTrait.PRO_EXPLOSIVE, AmmoItemTrait.PRO_BALEFIRE, AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.CON_HEAVY_WEAR, AmmoItemTrait.CON_SING_PROJECTILE), + KAMPF("ammo_4gauge_kampf", Gun4GaugeFactory.getGrenadeKampfConfig(), AmmoItemTrait.PRO_EXPLOSIVE, AmmoItemTrait.PRO_ROCKET_PROPELLED, AmmoItemTrait.PRO_ACCURATE1, AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.CON_WEAR, AmmoItemTrait.CON_SING_PROJECTILE), + CANISTER("ammo_4gauge_canister", Gun4GaugeFactory.getGrenadeCanisterConfig()), + SLEEK("ammo_4gauge_sleek", Gun4GaugeFactory.get4GaugeSleekConfig(), AmmoItemTrait.NEU_MASKMAN_FLECHETTE), + CLAW("ammo_4gauge_claw", Gun4GaugeFactory.get4GaugeClawConfig()), + VAMPIRE("ammo_4gauge_vampire", Gun4GaugeFactory.get4GaugeVampireConfig()), + VOID("ammo_4gauge_void", Gun4GaugeFactory.get4GaugeVoidConfig()), + QUACK("ammo_4gauge_titan", Gun4GaugeFactory.get4GaugeQuackConfig(), AmmoItemTrait.PRO_MARAUDER, AmmoItemTrait.NEU_NO_CON); + private final Set traits; private final BulletConfiguration config; - private Ammo4Gauge(BulletConfiguration config, AmmoItemTrait...traits) - { + private final String unloc; + + private Ammo4Gauge(String unloc, BulletConfiguration config, AmmoItemTrait... traits) { this.config = config; this.traits = safeAssign(traits); + this.unloc = unloc; } - private Ammo4Gauge(BulletConfiguration config, Set traits) - { + + private Ammo4Gauge(String unloc, BulletConfiguration config, Set traits) { this.config = config; this.traits = traits; + this.unloc = unloc; } + @Override - public Set getTraits() - { + public Set getTraits() { return traits; } @Override - public BulletConfiguration getConfig() - { + public BulletConfiguration getConfig() { return config; } + + @Override + public String getInternalName() { + return unloc; + } } - public enum Ammo45ACP implements IAmmoItemEnum - { - STOCK(Gun45ACPFactory.get45AutoConfig()), - AP(Gun45ACPFactory.get45AutoAPConfig(), HbmCollection.APType), - DU(Gun45ACPFactory.get45AutoDUConfig(), HbmCollection.DUType); + public enum Ammo45ACP implements IAmmoItemEnum { + STOCK("ammo_45", Gun45ACPFactory.get45AutoConfig()), + AP("ammo_45_ap", Gun45ACPFactory.get45AutoAPConfig(), HbmCollection.APType), + DU("ammo_45_du", Gun45ACPFactory.get45AutoDUConfig(), HbmCollection.DUType); + private final Set traits; private final BulletConfiguration config; - private Ammo45ACP(BulletConfiguration config, AmmoItemTrait...traits) - { + private final String unloc; + + private Ammo45ACP(String unloc, BulletConfiguration config, AmmoItemTrait... traits) { this.config = config; this.traits = safeAssign(traits); + this.unloc = unloc; } - private Ammo45ACP(BulletConfiguration config, Set traits) - { + + private Ammo45ACP(String unloc, BulletConfiguration config, Set traits) { this.config = config; this.traits = traits; + this.unloc = unloc; } + @Override - public Set getTraits() - { + public Set getTraits() { return traits; } @Override - public BulletConfiguration getConfig() - { + public BulletConfiguration getConfig() { return config; } + + @Override + public String getInternalName() { + return unloc; + } } - public enum Ammo44Magnum implements IAmmoItemEnum - { - STOCK(Gun44MagnumFactory.getNoPipConfig()), - AP(Gun44MagnumFactory.getNoPipAPConfig(), HbmCollection.APType), - DU(Gun44MagnumFactory.getNoPipDUConfig(), HbmCollection.DUType), - PHOSPHORUS(Gun44MagnumFactory.getPhosphorusConfig(), HbmCollection.PhosphorusType), - STAR(Gun44MagnumFactory.getNoPipStarConfig(), HbmCollection.StarmetalType), - CHLOROPHYTE(Gun44MagnumFactory.getNoPipConfig().getChlorophyte(), HbmCollection.ChlorophyteType), - PIP(Gun44MagnumFactory.getPipConfig(), AmmoItemTrait.NEU_BOXCAR, AmmoItemTrait.CON_DAMAGE), - BJ(Gun44MagnumFactory.getBJConfig(), AmmoItemTrait.NEU_BOAT, AmmoItemTrait.CON_DAMAGE), - SILVER(Gun44MagnumFactory.getSilverStormConfig(), AmmoItemTrait.NEU_BUILDING, AmmoItemTrait.CON_DAMAGE), - ROCKET(Gun44MagnumFactory.getRocketConfig(), AmmoItemTrait.PRO_ROCKET, AmmoItemTrait.NEU_UHH); + public enum Ammo44Magnum implements IAmmoItemEnum { + STOCK("ammo_44", Gun44MagnumFactory.getNoPipConfig()), + AP("ammo_44_ap", Gun44MagnumFactory.getNoPipAPConfig(), HbmCollection.APType), + DU("ammo_44_du", Gun44MagnumFactory.getNoPipDUConfig(), HbmCollection.DUType), + PHOSPHORUS("ammo_44_phosphorus", Gun44MagnumFactory.getPhosphorusConfig(), HbmCollection.PhosphorusType), + STAR("ammo_44_star", Gun44MagnumFactory.getNoPipStarConfig(), HbmCollection.StarmetalType), + CHLOROPHYTE("ammo_44_chlorophyte", Gun44MagnumFactory.getNoPipConfig().getChlorophyte(), HbmCollection.ChlorophyteType), + PIP("ammo_44_pip", Gun44MagnumFactory.getPipConfig(), AmmoItemTrait.NEU_BOXCAR, AmmoItemTrait.CON_DAMAGE), + BJ("ammo_44_bj", Gun44MagnumFactory.getBJConfig(), AmmoItemTrait.NEU_BOAT, AmmoItemTrait.CON_DAMAGE), + SILVER("ammo_44_silver", Gun44MagnumFactory.getSilverStormConfig(), AmmoItemTrait.NEU_BUILDING, AmmoItemTrait.CON_DAMAGE), + ROCKET("ammo_44_rocket", Gun44MagnumFactory.getRocketConfig(), AmmoItemTrait.PRO_ROCKET, AmmoItemTrait.NEU_UHH); + private final Set traits; private final BulletConfiguration config; - private Ammo44Magnum(BulletConfiguration config, AmmoItemTrait...traits) - { + private final String unloc; + + private Ammo44Magnum(String unloc, BulletConfiguration config, AmmoItemTrait... traits) { this.config = config; this.traits = safeAssign(traits); + this.unloc = unloc; } - private Ammo44Magnum(BulletConfiguration config, Set traits) - { + + private Ammo44Magnum(String unloc, BulletConfiguration config, Set traits) { this.config = config; this.traits = traits; + this.unloc = unloc; } + @Override - public Set getTraits() - { + public Set getTraits() { return traits; } @Override - public BulletConfiguration getConfig() - { + public BulletConfiguration getConfig() { return config; } + + @Override + public String getInternalName() { + return unloc; + } } - public enum Ammo357Magnum implements IAmmoItemEnum - { - IRON(Gun357MagnumFactory.getRevIronConfig()), - LEAD(Gun357MagnumFactory.getRevLeadConfig()), - NUCLEAR(Gun357MagnumFactory.getRevNuclearConfig()), - GOLD(Gun357MagnumFactory.getRevGoldConfig()), - DESH(Gun357MagnumFactory.getRevDeshConfig(), AmmoItemTrait.PRO_FIT_357, AmmoItemTrait.PRO_DAMAGE_SLIGHT), - SCHRABIDIUM(Gun357MagnumFactory.getRevSchrabidiumConfig()), - STEEL(Gun357MagnumFactory.getRevCursedConfig()), - NIGHTMARE1(Gun357MagnumFactory.getRevNightmare1Config()), - NIGHTMARE2(Gun357MagnumFactory.getRevNightmare2Config()); + public enum Ammo357Magnum implements IAmmoItemEnum { + IRON("gun_revolver_iron_ammo", Gun357MagnumFactory.getRevIronConfig()), + LEAD("gun_revolver_ammo", Gun357MagnumFactory.getRevLeadConfig()), + NUCLEAR("gun_revolver_lead_ammo", Gun357MagnumFactory.getRevNuclearConfig()), + GOLD("gun_revolver_gold_ammo", Gun357MagnumFactory.getRevGoldConfig()), + DESH("ammo_357_desh", Gun357MagnumFactory.getRevDeshConfig(), AmmoItemTrait.PRO_FIT_357, AmmoItemTrait.PRO_DAMAGE_SLIGHT), + SCHRABIDIUM("gun_revolver_schrabidium_ammo", Gun357MagnumFactory.getRevSchrabidiumConfig()), + STEEL("gun_revolver_cursed_ammo", Gun357MagnumFactory.getRevCursedConfig()), + NIGHTMARE1("gun_revolver_nightmare_ammo", Gun357MagnumFactory.getRevNightmare1Config()), + NIGHTMARE2("gun_revolver_nightmare2_ammo", Gun357MagnumFactory.getRevNightmare2Config()); + private final Set traits; private final BulletConfiguration config; - private Ammo357Magnum(BulletConfiguration config, AmmoItemTrait...traits) - { + private final String unloc; + + private Ammo357Magnum(String unloc, BulletConfiguration config, AmmoItemTrait... traits) { this.config = config; this.traits = safeAssign(traits); + this.unloc = unloc; } + @Override - public Set getTraits() - { + public Set getTraits() { return traits; } @Override - public BulletConfiguration getConfig() - { + public BulletConfiguration getConfig() { return config; } + + @Override + public String getInternalName() { + return unloc; + } } - public enum Ammo22LR implements IAmmoItemEnum - { - STOCK(Gun22LRFactory.get22LRConfig()), - AP(Gun22LRFactory.get22LRAPConfig(), HbmCollection.APType), - CHLOROPHYTE(Gun22LRFactory.get22LRConfig().getChlorophyte(), HbmCollection.ChlorophyteType); + public enum Ammo22LR implements IAmmoItemEnum { + STOCK("ammo_22lr", Gun22LRFactory.get22LRConfig()), + AP("ammo_22lr_ap", Gun22LRFactory.get22LRAPConfig(), HbmCollection.APType), + CHLOROPHYTE("ammo_22lr_chlorophyte", Gun22LRFactory.get22LRConfig().getChlorophyte(), HbmCollection.ChlorophyteType); + private final Set traits; private final BulletConfiguration config; - private Ammo22LR(BulletConfiguration config, AmmoItemTrait...traits) - { + private final String unloc; + + private Ammo22LR(String unloc, BulletConfiguration config, AmmoItemTrait... traits) { this.config = config; this.traits = safeAssign(traits); + this.unloc = unloc; } - private Ammo22LR(BulletConfiguration config, Set traits) - { + + private Ammo22LR(String unloc, BulletConfiguration config, Set traits) { this.config = config; this.traits = traits; + this.unloc = unloc; } + @Override - public Set getTraits() - { + public Set getTraits() { return traits; } @Override - public BulletConfiguration getConfig() - { + public BulletConfiguration getConfig() { return config; } + + @Override + public String getInternalName() { + return unloc; + } } - public enum Ammo20Gauge implements IAmmoItemEnum - { - STOCK(Gun20GaugeFactory.get20GaugeConfig()), - SLUG(Gun20GaugeFactory.get20GaugeSlugConfig(), AmmoItemTrait.PRO_ACCURATE2, AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.PRO_WEAR, AmmoItemTrait.CON_SING_PROJECTILE), - FLECHETTE(Gun20GaugeFactory.get20GaugeFlechetteConfig(), HbmCollection.FlechetteType), - INCENDIARY(Gun20GaugeFactory.get20GaugeFireConfig(), AmmoItemTrait.PRO_INCENDIARY, AmmoItemTrait.CON_WEAR), - SHRAPNEL(Gun20GaugeFactory.get20GaugeShrapnelConfig(), AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.NEU_MORE_BOUNCY, AmmoItemTrait.CON_WEAR), - EXPLOSIVE(Gun20GaugeFactory.get20GaugeExplosiveConfig(), HbmCollection.ExplosiveType), - CAUSTIC(Gun20GaugeFactory.get20GaugeCausticConfig(), AmmoItemTrait.PRO_TOXIC, AmmoItemTrait.PRO_CAUSTIC, AmmoItemTrait.NEU_NO_BOUNCE, AmmoItemTrait.CON_HEAVY_WEAR), - SHOCK(Gun20GaugeFactory.get20GaugeShockConfig(), AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.PRO_STUNNING, AmmoItemTrait.PRO_EMP, AmmoItemTrait.NEU_NO_BOUNCE, AmmoItemTrait.CON_HEAVY_WEAR), - WITHER(Gun20GaugeFactory.get20GaugeWitherConfig(), AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.PRO_WITHERING), - SLEEK(Gun20GaugeFactory.get20GaugeSleekConfig(), AmmoItemTrait.NEU_MASKMAN_FLECHETTE); + public enum Ammo20Gauge implements IAmmoItemEnum { + STOCK("ammo_20gauge", Gun20GaugeFactory.get20GaugeConfig()), + SLUG("ammo_20gauge_slug", Gun20GaugeFactory.get20GaugeSlugConfig(), AmmoItemTrait.PRO_ACCURATE2, AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.PRO_WEAR, AmmoItemTrait.CON_SING_PROJECTILE), + FLECHETTE("ammo_20gauge_flechette", Gun20GaugeFactory.get20GaugeFlechetteConfig(), HbmCollection.FlechetteType), + INCENDIARY("ammo_20gauge_incendiary", Gun20GaugeFactory.get20GaugeFireConfig(), AmmoItemTrait.PRO_INCENDIARY, AmmoItemTrait.CON_WEAR), + SHRAPNEL("ammo_20gauge_shrapnel", Gun20GaugeFactory.get20GaugeShrapnelConfig(), AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.NEU_MORE_BOUNCY, AmmoItemTrait.CON_WEAR), + EXPLOSIVE("ammo_20gauge_explosive", Gun20GaugeFactory.get20GaugeExplosiveConfig(), HbmCollection.ExplosiveType), + CAUSTIC("ammo_20gauge_caustic", Gun20GaugeFactory.get20GaugeCausticConfig(), AmmoItemTrait.PRO_TOXIC, AmmoItemTrait.PRO_CAUSTIC, AmmoItemTrait.NEU_NO_BOUNCE, AmmoItemTrait.CON_HEAVY_WEAR), + SHOCK("ammo_20gauge_shock", Gun20GaugeFactory.get20GaugeShockConfig(), AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.PRO_STUNNING, AmmoItemTrait.PRO_EMP, AmmoItemTrait.NEU_NO_BOUNCE, AmmoItemTrait.CON_HEAVY_WEAR), + WITHER("ammo_20gauge_wither", Gun20GaugeFactory.get20GaugeWitherConfig(), AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.PRO_WITHERING), + SLEEK("ammo_20gauge_sleek", Gun20GaugeFactory.get20GaugeSleekConfig(), AmmoItemTrait.NEU_MASKMAN_FLECHETTE); + private final Set traits; private final BulletConfiguration config; - private Ammo20Gauge(BulletConfiguration config, AmmoItemTrait...traits) - { + private final String unloc; + + private Ammo20Gauge(String unloc, BulletConfiguration config, AmmoItemTrait... traits) { this.config = config; this.traits = safeAssign(traits); + this.unloc = unloc; } - private Ammo20Gauge(BulletConfiguration config, Set traits) - { + + private Ammo20Gauge(String unloc, BulletConfiguration config, Set traits) { this.config = config; this.traits = traits; + this.unloc = unloc; } + @Override - public Set getTraits() - { + public Set getTraits() { return traits; } @Override - public BulletConfiguration getConfig() - { + public BulletConfiguration getConfig() { return config; } + + @Override + public String getInternalName() { + return unloc; + } } - public enum Ammo12Gauge implements IAmmoItemEnum - { - STOCK(Gun12GaugeFactory.get12GaugeConfig()), - INCENDIARY(Gun12GaugeFactory.get12GaugeFireConfig(), AmmoItemTrait.PRO_INCENDIARY, AmmoItemTrait.CON_WEAR), - SHRAPNEL(Gun12GaugeFactory.get12GaugeShrapnelConfig(), AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.NEU_MORE_BOUNCY, AmmoItemTrait.CON_WEAR), - DU(Gun12GaugeFactory.get12GaugeDUConfig(), AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.PRO_PENETRATION, AmmoItemTrait.NEU_HEAVY_METAL, AmmoItemTrait.CON_HEAVY_WEAR), - MARAUDER(Gun12GaugeFactory.get12GaugeAMConfig(), AmmoItemTrait.PRO_MARAUDER, AmmoItemTrait.NEU_NO_CON), - SLEEK(Gun12GaugeFactory.get12GaugeSleekConfig(), AmmoItemTrait.NEU_MASKMAN_FLECHETTE); + public enum Ammo12Gauge implements IAmmoItemEnum { + STOCK("ammo_12gauge", Gun12GaugeFactory.get12GaugeConfig()), + INCENDIARY("ammo_12gauge_incendiary", Gun12GaugeFactory.get12GaugeFireConfig(), AmmoItemTrait.PRO_INCENDIARY, AmmoItemTrait.CON_WEAR), + SHRAPNEL("ammo_12gauge_shrapnel", Gun12GaugeFactory.get12GaugeShrapnelConfig(), AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.NEU_MORE_BOUNCY, AmmoItemTrait.CON_WEAR), + DU("ammo_12gauge_du", Gun12GaugeFactory.get12GaugeDUConfig(), AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.PRO_PENETRATION, AmmoItemTrait.NEU_HEAVY_METAL, AmmoItemTrait.CON_HEAVY_WEAR), + MARAUDER("ammo_12gauge_marauder", Gun12GaugeFactory.get12GaugeAMConfig(), AmmoItemTrait.PRO_MARAUDER, AmmoItemTrait.NEU_NO_CON), + SLEEK("ammo_12gauge_sleek", Gun12GaugeFactory.get12GaugeSleekConfig(), AmmoItemTrait.NEU_MASKMAN_FLECHETTE); + private final Set traits; private final BulletConfiguration config; - private Ammo12Gauge(BulletConfiguration config, AmmoItemTrait...traits) - { + private final String unloc; + + private Ammo12Gauge(String unloc, BulletConfiguration config, AmmoItemTrait... traits) { this.traits = safeAssign(traits); this.config = config; + this.unloc = unloc; } @Override - public Set getTraits() - { + public Set getTraits() { return traits; } @Override - public BulletConfiguration getConfig() - { + public BulletConfiguration getConfig() { return config; } + + @Override + public String getInternalName() { + return unloc; + } } - public interface IAmmoItemEnum - { + public interface IAmmoItemEnum { public Set getTraits(); public BulletConfiguration getConfig(); + public String getInternalName(); } - static Set safeAssign(AmmoItemTrait[] traits) - { + static Set safeAssign(AmmoItemTrait[] traits) { return traits == null ? ImmutableSet.of() : ImmutableSet.copyOf(traits); } } diff --git a/src/main/java/com/hbm/items/weapon/ItemAmmo.java b/src/main/java/com/hbm/items/weapon/ItemAmmo.java index fadd9caa9..089c54f3a 100644 --- a/src/main/java/com/hbm/items/weapon/ItemAmmo.java +++ b/src/main/java/com/hbm/items/weapon/ItemAmmo.java @@ -3,12 +3,8 @@ package com.hbm.items.weapon; import java.util.ArrayList; import java.util.Comparator; import java.util.List; -import java.util.Random; import java.util.Set; -import com.hbm.handler.BulletConfiguration; -import com.hbm.handler.indexing.AmmoIndex; -import com.hbm.handler.indexing.AmmoIndex.AmmoTrait; import com.hbm.items.ItemAmmoEnums.AmmoRocket; import com.hbm.items.ItemAmmoEnums.IAmmoItemEnum; import com.hbm.items.ItemEnumMulti; @@ -18,10 +14,13 @@ import com.hbm.main.MainRegistry; import com.hbm.util.EnumUtil; import com.hbm.util.I18nUtil; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.IIcon; public class ItemAmmo extends ItemEnumMulti { @@ -133,8 +132,8 @@ public class ItemAmmo extends ItemEnumMulti { list.add(player.worldObj.rand.nextInt(3) < 2 ? EnumChatFormatting.RED + "COVER YOURSELF IN OIL" : EnumChatFormatting.RED + "" + EnumChatFormatting.OBFUSCATED + "COVER YOURSELF IN OIL"); } - final IAmmoItemEnum item = (IAmmoItemEnum) EnumUtil.grabEnumSafely(theEnum, stack.getItemDamage()); - final Set ammoTraits = item.getTraits(); + IAmmoItemEnum item = (IAmmoItemEnum) EnumUtil.grabEnumSafely(theEnum, stack.getItemDamage()); + Set ammoTraits = item.getTraits(); if(ammoTraits.size() > 0) { @@ -152,6 +151,23 @@ public class ItemAmmo extends ItemEnumMulti { } } } + + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister reg) { + Enum[] enums = theEnum.getEnumConstants(); + this.icons = new IIcon[enums.length]; + + for(int i = 0; i < icons.length; i++) { + IAmmoItemEnum num = (IAmmoItemEnum) enums[i]; + this.icons[i] = reg.registerIcon(RefStrings.MODID + ":" + num.getInternalName()); + } + } + + @Override + public String getUnlocalizedName(ItemStack stack) { + IAmmoItemEnum num = EnumUtil.grabEnumSafely(theEnum, stack.getItemDamage()); + return "item." + num.getInternalName(); + } @Override public ItemEnumMulti setUnlocalizedName(String uloc) { diff --git a/src/main/java/com/hbm/items/weapon/gununified/ItemEnergyGunBase.java b/src/main/java/com/hbm/items/weapon/gununified/ItemEnergyGunBase.java index d1ef25af6..21dc8448a 100644 --- a/src/main/java/com/hbm/items/weapon/gununified/ItemEnergyGunBase.java +++ b/src/main/java/com/hbm/items/weapon/gununified/ItemEnergyGunBase.java @@ -9,32 +9,22 @@ import com.hbm.entity.projectile.EntityBulletBase; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.handler.GunConfiguration; -import com.hbm.handler.HbmKeybinds; import com.hbm.interfaces.IHoldableWeapon; -import com.hbm.items.machine.ItemBattery; import com.hbm.items.weapon.ItemGunBase; -import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.GunAnimationPacket; import com.hbm.packet.GunButtonPacket; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.PlayerInformPacket; import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.render.util.RenderScreenOverlay; import com.hbm.render.util.RenderScreenOverlay.Crosshair; import com.hbm.util.BobMathUtil; import com.hbm.util.ChatBuilder; -import com.hbm.util.I18nUtil; import api.hbm.energy.IBatteryItem; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.client.settings.GameSettings; import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.Item; @@ -56,28 +46,11 @@ public class ItemEnergyGunBase extends ItemGunBase implements IBatteryItem { } @Override -public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { list.add("Energy Stored: " + BobMathUtil.getShortNumber(getCharge(stack)) + "/" + BobMathUtil.getShortNumber(mainConfig.maxCharge) + "HE"); list.add("Charge rate: " + BobMathUtil.getShortNumber(mainConfig.chargeRate) + "HE/t"); - BulletConfiguration config = getConfig(stack); - - list.add(""); - list.add("Mode: " + I18nUtil.resolveKey(config.modeName)); - list.add("Mode info:"); - list.add("Average damage: " + ((float)(config.dmgMax + config.dmgMin) / 2F)); - list.add("Firing Rate: " + BobMathUtil.roundDecimal((1F / (((float)config.firingRate) / 20F)), 2) + " rounds per second"); - list.add("Power Consumption per Shot: " + BobMathUtil.getShortNumber(config.dischargePerShot) + "HE"); - - list.add(""); - list.add("Name: " + mainConfig.name); - list.add("Manufacturer: " + mainConfig.manufacturer); - - if(!mainConfig.comment.isEmpty()) { - list.add(""); - for(String s : mainConfig.comment) - list.add(EnumChatFormatting.ITALIC + s); - } + addAdditionalInformation(stack, list); } @Override diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 5e1b46faa..bef737701 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -17,6 +17,8 @@ import com.hbm.inventory.fluid.Fluids; import static com.hbm.inventory.OreDictManager.*; import com.hbm.items.ModItems; +import com.hbm.items.ItemAmmoEnums.Ammo50BMG; +import com.hbm.items.ItemAmmoEnums.Ammo5mm; import com.hbm.items.ItemEnums.EnumLegendaryType; import com.hbm.items.ItemEnums.EnumPlantType; import com.hbm.items.ItemGenericPart.EnumPartType; @@ -229,7 +231,7 @@ public class CraftingManager { ItemStack infinity = new ItemStack(Items.enchanted_book); EnchantmentUtil.addEnchantment(infinity, Enchantment.infinity, 1); - addRecipeAuto(infinity, new Object[] { "SBS", "BDB", "SBS", 'S', ModItems.ammo_50bmg_star, 'B', ModItems.ammo_5mm_star, 'D', ModItems.powder_magic }); + addRecipeAuto(infinity, new Object[] { "SBS", "BDB", "SBS", 'S', ModItems.ammo_50bmg.stackFromEnum(Ammo50BMG.STAR), 'B', ModItems.ammo_5mm.stackFromEnum(Ammo5mm.STAR), 'D', ModItems.powder_magic }); ItemStack unbreaking = new ItemStack(Items.enchanted_book); EnchantmentUtil.addEnchantment(unbreaking, Enchantment.unbreaking, 3); addRecipeAuto(unbreaking, new Object[] { "SBS", "BDB", "SBS", 'S', BIGMT.ingot(), 'B', ModItems.plate_armor_lunar, 'D', ModItems.powder_magic }); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index c2d2de3a4..f872cebad 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -21,29 +21,6 @@ public class ResourceManager { ////Obj TEs //Turrets - public static final IModelCustom turret_heavy_base = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/turret_heavy_base.obj")); - public static final IModelCustom turret_heavy_rotor = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/turret_heavy_rotor.obj")); - - public static final IModelCustom turret_spitfire_base = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/turret_spitfire_base.obj")); - public static final IModelCustom turret_spitfire_rotor = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/turret_spitfire_rotor.obj")); - - public static final IModelCustom turret_cwis_base = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/cwis_base.obj")); - public static final IModelCustom turret_cwis_rotor = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/cwis_rotor.obj")); - - public static final IModelCustom turret_cheapo_base = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/turret_cheapo_base.obj")); - public static final IModelCustom turret_cheapo_rotor = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/turret_cheapo_rotor.obj")); - - public static final IModelCustom turret_heavy_gun = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/turret_heavy_gun.obj")); - public static final IModelCustom turret_rocket_gun = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/turret_rocket_gun.obj")); - public static final IModelCustom turret_light_gun = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/turret_light_gun.obj")); - public static final IModelCustom turret_flamer_gun = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/turret_flamer_gun.obj")); - public static final IModelCustom turret_tau_gun = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/turret_tau_gun.obj")); - public static final IModelCustom turret_spitfire_gun = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/turret_spitfire_gun.obj")); - public static final IModelCustom turret_cwis_head = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/cwis_head.obj")); - public static final IModelCustom turret_cwis_gun = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/cwis_gun.obj")); - public static final IModelCustom turret_cheapo_head = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/turret_cheapo_head.obj")); - public static final IModelCustom turret_cheapo_gun = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/turret_cheapo_gun.obj")); - public static final IModelCustom turret_chekhov = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_chekhov.obj")); public static final IModelCustom turret_jeremy = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_jeremy.obj")); public static final IModelCustom turret_tauon = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_tauon.obj")); @@ -339,28 +316,7 @@ public class ResourceManager { public static final ResourceLocation universal = new ResourceLocation(RefStrings.MODID, "textures/models/TheGadget3_.png"); public static final ResourceLocation universal_bright = new ResourceLocation(RefStrings.MODID, "textures/models/turbofan_blades.png"); - - public static final ResourceLocation turret_heavy_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turret_heavy_base.png"); - public static final ResourceLocation turret_heavy_rotor_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turret_heavy_rotor.png"); - public static final ResourceLocation turret_heavy_gun_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turret_heavy_gun.png"); - public static final ResourceLocation turret_light_rotor_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turret_light_rotor.png"); - public static final ResourceLocation turret_light_gun_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turret_light_gun.png"); - public static final ResourceLocation turret_rocket_rotor_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turret_rocket_rotor.png"); - public static final ResourceLocation turret_rocket_gun_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turret_rocket_gun.png"); - public static final ResourceLocation turret_flamer_rotor_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turret_flamer_rotor.png"); - public static final ResourceLocation turret_flamer_gun_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turret_flamer_gun.png"); - public static final ResourceLocation turret_tau_rotor_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turret_tau_rotor.png"); - public static final ResourceLocation turret_tau_gun_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turret_tau_gun.png"); - public static final ResourceLocation turret_ciws_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/cwis_base.png"); - public static final ResourceLocation turret_ciws_rotor_tex = new ResourceLocation(RefStrings.MODID, "textures/models/cwis_rotor.png"); - public static final ResourceLocation turret_ciws_head_tex = new ResourceLocation(RefStrings.MODID, "textures/models/cwis_head.png"); - public static final ResourceLocation turret_ciws_gun_tex = new ResourceLocation(RefStrings.MODID, "textures/models/cwis_gun.png"); - public static final ResourceLocation turret_cheapo_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turret_cheapo_base.png"); - public static final ResourceLocation turret_cheapo_rotor_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turret_cheapo_rotor.png"); - public static final ResourceLocation turret_cheapo_head_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turret_cheapo_head.png"); - public static final ResourceLocation turret_cheapo_gun_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turret_cheapo_gun.png"); - public static final ResourceLocation turret_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/base.png"); public static final ResourceLocation turret_base_friendly_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/base_friendly.png"); public static final ResourceLocation turret_carriage_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/carriage.png"); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderFireExt.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderFireExt.java index d4101f5af..012294910 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderFireExt.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderFireExt.java @@ -8,8 +8,8 @@ import com.hbm.items.weapon.ItemGunBase; import com.hbm.main.ResourceManager; import net.minecraft.client.Minecraft; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.IItemRenderer; public class ItemRenderFireExt implements IItemRenderer { @@ -43,14 +43,14 @@ public class ItemRenderFireExt implements IItemRenderer { int magType = ItemGunBase.getMagType(item); int config = ((ItemGunBase)ModItems.gun_fireext).mainConfig.config.get(magType); - Item ammo = BulletConfigSyncingUtil.pullConfig(config).ammo; - - if(ammo == ModItems.ammo_fireext_foam) - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.fireext_foam_tex); - else if(ammo == ModItems.ammo_fireext_sand) - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.fireext_sand_tex); - else - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.fireext_tex); + int ammo = BulletConfigSyncingUtil.pullConfig(config).ammo.meta; + ResourceLocation tex; + switch (ammo) { + case 0: tex = ResourceManager.fireext_foam_tex; break; + case 1: tex = ResourceManager.fireext_sand_tex; break; + default: tex = ResourceManager.fireext_tex; break; + } + Minecraft.getMinecraft().renderEngine.bindTexture(tex); switch(type) { diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java index b6ad4f7b4..0bcd8a7bf 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java @@ -13,6 +13,7 @@ import com.hbm.entity.projectile.EntityBulletBase; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.interfaces.IControlReceiver; +import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemTurretBiometry; import com.hbm.lib.Library; @@ -31,7 +32,6 @@ import net.minecraft.entity.item.EntityMinecart; import net.minecraft.entity.monster.IMob; import net.minecraft.entity.passive.IAnimals; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.Potion; @@ -315,7 +315,7 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple BulletConfiguration conf = BulletConfigSyncingUtil.pullConfig(c); - if(conf.ammo == slots[i].getItem()) + if(conf.ammo != null && conf.ammo.matchesRecipe(slots[i], true)) return conf; } } @@ -338,11 +338,11 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple worldObj.spawnEntityInWorld(proj); } - public void conusmeAmmo(Item ammo) { + public void conusmeAmmo(ComparableStack ammo) { for(int i = 1; i < 10; i++) { - if(slots[i] != null && slots[i].getItem() == ammo) { + if(slots[i] != null && ammo.matchesRecipe(slots[i], true)) { this.decrStackSize(i, 1); return; @@ -756,7 +756,7 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple BulletConfiguration config = BulletConfigSyncingUtil.pullConfig(i); if(config != null && config.ammo != null) { - ammoStacks.add(new ItemStack(config.ammo)); + ammoStacks.add(config.ammo.toStack()); } } @@ -781,10 +781,12 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple return this.isOn; } + @Override public void setPower(long i) { this.power = i; } - + + @Override public long getPower() { return this.power; } diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHIMARS.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHIMARS.java index 6e57f56b5..0b0718d44 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHIMARS.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHIMARS.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.List; import com.hbm.entity.projectile.EntityArtilleryRocket; +import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.container.ContainerTurretBase; import com.hbm.inventory.gui.GUITurretHIMARS; import com.hbm.items.ModItems; @@ -198,7 +199,7 @@ public class TileEntityTurretHIMARS extends TileEntityTurretBaseArtillery implem HIMARSRocket type = ItemAmmoHIMARS.itemTypes[available]; this.typeLoaded = available; this.ammo = type.amount; - this.conusmeAmmo(ModItems.ammo_himars); + this.conusmeAmmo(new ComparableStack(ModItems.ammo_himars, 1, available)); } } } diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretRichard.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretRichard.java index e40b9093b..04521c296 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretRichard.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretRichard.java @@ -6,6 +6,8 @@ import java.util.List; import com.hbm.entity.projectile.EntityBulletBase; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.items.ItemAmmoEnums.AmmoRocket; import com.hbm.items.ModItems; import net.minecraft.nbt.NBTTagCompound; @@ -128,7 +130,7 @@ public class TileEntityTurretRichard extends TileEntityTurretBaseNT { this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:turret.richard_fire", 2.0F, 1.0F); this.loaded--; - if(conf.ammo == ModItems.ammo_rocket_nuclear) + if(conf.ammo.equals(new ComparableStack(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.NUCLEAR)))) timer = -50; } else { diff --git a/src/main/java/com/hbm/util/LootGenerator.java b/src/main/java/com/hbm/util/LootGenerator.java index 519c4c428..fd95b1c4c 100644 --- a/src/main/java/com/hbm/util/LootGenerator.java +++ b/src/main/java/com/hbm/util/LootGenerator.java @@ -5,6 +5,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; import com.hbm.items.ModItems; +import com.hbm.items.ItemAmmoEnums.AmmoFatman; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -27,7 +28,7 @@ public class LootGenerator { if(loot != null && loot.items.isEmpty()) { if(world.rand.nextInt(5) == 0) - loot.addItem(new ItemStack(ModItems.ammo_nuke_low), -0.25, 0, -0.125); + loot.addItem(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.LOW), -0.25, 0, -0.125); else loot.addItem(new ItemStack(ModItems.ammo_rocket), -0.25, 0, -0.25); @@ -122,8 +123,8 @@ public class LootGenerator { if(world.rand.nextBoolean() || memes) { int type = world.rand.nextInt(11); - Item nuke = memes ? ModItems.ammo_nuke_pumpkin : type == 0 ? ModItems.ammo_nuke : type <= 5 ? ModItems.ammo_nuke_low : ModItems.ammo_nuke_safe; - loot.addItem(new ItemStack(nuke), -0.375 + i * 0.25, 0, -0.375 + j * 0.25); + AmmoFatman nuke = memes ? AmmoFatman.PUMPKIN : type == 0 ? AmmoFatman.STOCK : type <= 5 ? AmmoFatman.LOW : AmmoFatman.SAFE; + loot.addItem(ModItems.ammo_nuke.stackFromEnum(nuke), -0.375 + i * 0.25, 0, -0.375 + j * 0.25); } } } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index b2e15f7cc..a30e8c37b 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1759,7 +1759,7 @@ item.gun_moist_nugget.name=Mosin-Nagant item.gun_mp.name=Maschinengewehr des Pazifisten item.gun_mp40.name=Maschinenpistole item.gun_mp40_ammo.name=SMG-Patrone (LEGACY) -item.gun_mp_ammo.name=Kleine treibmittellose MG-Patrone +item.gun_pm_ammo.name=Kleine treibmittellose MG-Patrone item.gun_mymy.name=Nietes item.gun_osipr.name=Standartausrüstung für Sicherheitskräfte item.gun_osipr_ammo.name=Dunkler Energiepuls-Plug diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index f00beea77..08a806606 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -793,12 +793,6 @@ death.attack.tau=%1$s was riddeled by %2$s using negatively charged tauons. death.attack.tauBlast=%1$s charged the XVL1456 for too long and was blown into pieces. death.attack.teleporter=%1$s was teleported into nothingness. -desc.item.pileRod=§eUse on drilled graphite to insert$§eUse screwdriver to extract$ -desc.item.rtgDecay=Decays to: %s -desc.item.rtgHeat=Power Level: %s -desc.item.wasteCooling=Cool in a Spent Fuel Pool Drum -desc.item.zirnoxBreedingRod=§2[ZIRNOX Breeding Rod]$§ePlace next to fuel rods to breed$§eLasts %d ticks -desc.item.zirnoxRod=§a[ZIRNOX Fuel Rod]$§eGenerates %1$d heat per tick$§eLasts %2$d ticks desc.gui.assembler.warning=§cError:§r This machine requires an assembly template! desc.gui.chemplant.warning=§cError:§r This machine requires an chemistry template! desc.gui.gasCent.enrichment=§2Enrichment§r$Uranium enrichment requires cascades.$Two-centrifuge cascades will give$uranium fuel, four-centrifuge cascades$will give total separation. @@ -825,6 +819,131 @@ desc.gui.zirnox.coolant=§3Coolant§r$CO2 transfers heat from the core to the wa desc.gui.zirnox.pressure=§6Pressure§r$Pressure can be reduced by venting CO2.$However, too low a pressure, and cooling$efficiency and steam production will be reduced.$Look out for meltdowns! desc.gui.zirnox.warning1=§cError:§r Water is required for$the reactor to function properly! desc.gui.zirnox.warning2=§cError:§r CO2 is required for$the reactor to function properly! +desc.item.ammo.con_accuracy2=- Highly decreased accuracy +desc.item.ammo.con_damage=- Highly decreased damage +desc.item.ammo.con_heavy_wear=- Highly increased wear +desc.item.ammo.con_ling_fire=- No lingering fire +desc.item.ammo.con_nn=- Not even a nuke +desc.item.ammo.con_no_damage=- No damage +desc.item.ammo.con_no_explode1=- Non-explosive +desc.item.ammo.con_no_explode2=- No block damage +desc.item.ammo.con_no_explode3=- No splash damage +desc.item.ammo.con_no_fire=- Not incendiary +desc.item.ammo.con_no_mirv=- Not recommended for the Proto MIRV +desc.item.ammo.con_penetration=- Not penetrating +desc.item.ammo.con_radius=- Decreased blast radius +desc.item.ammo.con_range2=- Highly decreased range +desc.item.ammo.con_sing_projectile=- Single projectile +desc.item.ammo.con_speed=- Decreased projectile speed +desc.item.ammo.con_super_wear=- Very highly increased wear +desc.item.ammo.con_wear=- Increased wear +desc.item.ammo.neu_40mm=* It's a 40mm grenade that we squeezed to fit the barrel! +desc.item.ammo.neu_blank=* It's a blank +desc.item.ammo.neu_boat=* Boat +desc.item.ammo.neu_boxcar=* Boxcar +desc.item.ammo.neu_building=* Building +desc.item.ammo.neu_chlorophyte=* Chlorophyte +desc.item.ammo.neu_eraser=* For removing big mistakes +desc.item.ammo.neu_fun=* Fun for the whole family! +desc.item.ammo.neu_heavy_metal=* Heavy Metal +desc.item.ammo.neu_homing=* Homing +desc.item.ammo.neu_jolt=* Jolt +desc.item.ammo.neu_less_bouncy=* Less bouncy +desc.item.ammo.neu_maskman_flechette=* Fires a tracer which summons a storm of DU-flechettes +desc.item.ammo.neu_maskman_meteorite=* Fires a high-damage round that summons a small meteorite +desc.item.ammo.neu_more_bouncy=* Extra bouncy +desc.item.ammo.neu_no_bounce=* Not bouncy +desc.item.ammo.neu_no_con=* No drawbacks lole +desc.item.ammo.neu_starmetal=* Starmetal +desc.item.ammo.neu_tracer=* Tracer +desc.item.ammo.neu_uhh=* Uhhh +desc.item.ammo.neu_warcrime1=* Technically a warcrime +desc.item.ammo.neu_warcrime2=* Twice the warcrime in a single round! +desc.item.ammo.pro_accurate1=+ Increased accuracy +desc.item.ammo.pro_accurate2=+ Near-perfect accuracy +desc.item.ammo.pro_balefire=+ Balefire +desc.item.ammo.pro_bomb_count=+ Increased bomb count +desc.item.ammo.pro_caustic=+ Caustic +desc.item.ammo.pro_chainsaw=+ Chainsaw +desc.item.ammo.pro_chlorine=+ Chlorine gas +desc.item.ammo.pro_damage=+ Increased damage +desc.item.ammo.pro_damage_slight=+ Above average damage +desc.item.ammo.pro_emp=+ EMP +desc.item.ammo.pro_explosive=+ Explosive +desc.item.ammo.pro_fallout=+ Fallout +desc.item.ammo.pro_fit_357=+ Fits every .357 model +desc.item.ammo.pro_flames=+ Increased flame count +desc.item.ammo.pro_gravity=+ Decreased gravity +desc.item.ammo.pro_heavy_damage=+ Highly increased damage +desc.item.ammo.pro_incendiary=+ Incendiary +desc.item.ammo.pro_lunatic=+ Lunatic +desc.item.ammo.pro_marauder=+ Instantly removes annoying and unbalanced enemies +desc.item.ammo.pro_mining=+ Explosion drops all blocks +desc.item.ammo.pro_no_gravity=+ Not affected by gravity +desc.item.ammo.pro_nuclear=+ Nuclear +desc.item.ammo.pro_penetration=+ Penetrating +desc.item.ammo.pro_phosphorus=+ Induces phosphorus burns +desc.item.ammo.pro_phosphorus_splash=+ Phosphorus splash +desc.item.ammo.pro_poison_gas=+ Poison splash +desc.item.ammo.pro_radius=+ Increased blast radius +desc.item.ammo.pro_radius_high=+ Highly increased blast radius +desc.item.ammo.pro_range=+ Increased range +desc.item.ammo.pro_rocket=+ Rocket +desc.item.ammo.pro_rocket_propelled=+ Rocket Propelled +desc.item.ammo.pro_shrapnel=+ Shrapnel +desc.item.ammo.pro_speed=+ Increased projectile speed +desc.item.ammo.pro_stunning=+ Stunning +desc.item.ammo.pro_toxic=+ Toxic +desc.item.ammo.pro_wear=+ Decreased wear +desc.item.ammo.pro_withering=+ Withering +desc.item.armorMod.display=to display installed armor mods +desc.item.battery.charge=Charge: %s / %sHE +desc.item.battery.chargePerc=Charge: %s%% +desc.item.battery.chargeRate=Charge rate: %sHE/tick +desc.item.battery.dischargeRate=Discharge rate: %sHE/tick +desc.item.durability=Durability: %s +desc.item.grenade.fuse=Fuse: %s +desc.item.grenade.fuseImpact=Impact +desc.item.grenade.fuseInstant=Instant +desc.item.gun.ammo=Ammo %s +desc.item.gun.ammoBelt=Belt +desc.item.gun.ammoEnergy=Energy; %sHE per shot +desc.item.gun.ammoEnergyAlt=%sHE per alt shot +desc.item.gun.ammoMag=%s / %s +desc.item.gun.ammoType=Ammo Type: %s +desc.item.gun.ammoTypeAlt=Secondary Ammo: %s +desc.item.gun.damage=Damage: %s - %s +desc.item.gun.damageAlt=Damage: %s +desc.item.gun.lore=to view in-depth lore +desc.item.gun.loreFunc=to view in-depth functionality +desc.item.gun.manufacturer=Manufacturer: %s +desc.item.gun.name=Name: %s +desc.item.gun.penetration=Armor Penetration Value: %s +desc.item.kitArmor=Armor will be displaced by new set. +desc.item.kitHaz=Armor will be displaced by hazmat suit. +desc.item.kitPack=What a bargain! +desc.item.kitPool=Please empty inventory before opening! +desc.item.pileRod=§eUse on drilled graphite to insert$§eUse screwdriver to extract$ +desc.item.rtgDecay=Decays to: %s +desc.item.rtgHeat=Power Level: %s +desc.item.storage.capacity=Capacity %s%%s +desc.item.storage.proscons=to view pros cons list +desc.misc.357=.357 Magnum +desc.misc.556=.223 Remington +desc.misc.762=.308 Winchester +desc.misc.func=§n-- Function -- +desc.misc.lanthanum="Lanthanum" +desc.misc.lctrl=§8Hold <§e§oLCTRL§8§o> %s +desc.misc.lore=§n-- Lore -- +desc.misc.lshift=§8Hold <§e§oLSHIFT§8§o> %s +desc.misc.luna=§o20x155mm Lunatic +desc.misc.meltPoint=Melting point: §c%s +desc.misc.noPos=No position set! +desc.misc.pos=Set pos to: %s, %s, %s +desc.misc.posSet=Position set! +desc.item.wasteCooling=Cool in a Spent Fuel Pool Drum +desc.item.zirnoxBreedingRod=§2[ZIRNOX Breeding Rod]$§ePlace next to fuel rods to breed$§eLasts %d ticks +desc.item.zirnoxRod=§a[ZIRNOX Fuel Rod]$§eGenerates %1$d heat per tick$§eLasts %2$d ticks digamma.playerDigamma=Digamma exposure: digamma.playerHealth=Digamma influence: @@ -871,6 +990,129 @@ geiger.playerRes=Player resistance: geiger.title=GEIGER COUNTER geiger.title.dosimeter=DOSIMETER +gun.make.ARMALITE=Armalite +gun.make.AUTO_ORDINANCE=Auto-Ordnance Corporation +gun.make.BAE=BAE Systems plc +gun.make.BENELLI=Benelli Armi SpA +gun.make.BLACK_MESA=Black Mesa Research Facility +gun.make.CERIX=Cerix Magnus +gun.make.COLT=Colt's Manufacturing Company +gun.make.COMBINE=The Universal Union +gun.make.CUBE=Cube 2: Sauerbraten +gun.make.ENZINGER=Enzinger Union +gun.make.EQUESTRIA=Equestria Missile Systems +gun.make.FLIMFLAM=FlimFlam Industries +gun.make.F_STRONG=Fort Strong +gun.make.GLORIA=Gloria GmbH +gun.make.HASBRO=Hasbro +gun.make.H_AND_K=Heckler & Koch +gun.make.H_AND_R=Harrington & Richardson +gun.make.IF=Ironshod Firearms +gun.make.IMI=Israel Military Industries +gun.make.IMI_BIGMT=IMI / Big MT +gun.make.LANGFORD=Langford Research Laboratories +gun.make.LUNA=Lunar Defense Corp +gun.make.MAGNUM_R_IMI=Magnum Research / Israel Military Industries +gun.make.MANN=Open Mann Co. +gun.make.MAXIM=Hiram Maxim +gun.make.METRO=Metro Gunsmiths +gun.make.MWT=MWT Prototype Labs +gun.make.NAZI=Erfurter Maschinenfabrik Geipel +gun.make.NONE=- +gun.make.RAYTHEON=Raytheon Missile Systems +gun.make.ROCKWELL=Rockwell International Corporation +gun.make.ROCKWELL_U=Rockwell International Corporation? +gun.make.RYAN=Ryan Industries +gun.make.SAAB=Saab Bofors Dynamics +gun.make.SACO=Saco Defense / US Ordnance +gun.make.TULSKY=Tulsky Oruzheiny Zavod +gun.make.UAC=Union Aerospace Corporation +gun.make.UNKNOWN=??? +gun.make.WESTTEK=WestTek +gun.make.WGW=Wilhelm-Gustloff-Werke +gun.make.WINCHESTER=Winchester Repeating Arms Company +gun.make.WINCHESTER_BIGMT=Winchester Repeating Arms Company / Big MT + +gun.name.ar15_50=AR-15 .50 BMG Mod +gun.name.baeAR=Britannian Standard Issue Assault Rifle +gun.name.bel=Balefire Egg Launcher +gun.name.benelli=Benelli M4 Super 90 +gun.name.benelliDrum=Benelli M4 Super 90 (Drum Magazine Modification) +gun.name.bio=RI No. 2 Mark 1 +gun.name.bolter=Manticora Pattern Boltgun +gun.name.cPython=Colt Python +gun.name.cz53=CZ53 Personal Minigun +gun.name.cz57=CZ57 Avenger Minigun +gun.name.dart=Needle Gun +gun.name.deagle=IMI Desert Eagle +gun.name.emp=EMP Orb Projector +gun.name.extinguisher=PROTEX Fire Exinguisher 6kg +gun.name.ffiV=FFI Viper +gun.name.ffiVInox=FFI Viper Inox +gun.name.ffiVLead=FFI Viper Lead +gun.name.ffiVN1=FFI Viper N1 +gun.name.ffiVN2=FFI Viper N2 +gun.name.ffiVUltra=FFI Viper Ultra +gun.name.ffivBling=FFI Viper Bling +gun.name.ffivSatur=FFI Viper D-25A +gun.name.g36=Heckler & Koch Gewehr 36 +gun.name.gPistol=Granatpistole HK69 +gun.name.gustav=Carl Gustav Recoilless Rifle M1 +gun.name.ifHorseshoe=IF-18 Horseshoe +gun.name.ifPit=IF-18 Horseshoe Bottomless Pit +gun.name.ifScope=IF-18 Horseshoe Scoped +gun.name.ifStorm=IF-18 Horseshoe Silver Storm +gun.name.ifVanity=IF-18 Horseshoe Vanity +gun.name.karl=M1 Karl-Gerät +gun.name.ks23=KS-23 +gun.name.lacunae=Auntie Lacunae +gun.name.lasetDet=Hopeville Laser Detonator +gun.name.lunaAR=1986 Bishamonten type Assault Rifle +gun.name.lunaGun=1978 Rāhula type Standard Issue Sidearm (Revision 2) +gun.name.lunaHLR=1944 Chang'e type Light Machine Gun +gun.name.lunaShotty=1978 Guan Yu type Scattergun (Revision 1) +gun.name.lunaSMG=1956 Ānanda type Submachine Gun +gun.name.lunaSniper=1915 Hou Yi type Anti-Material Rifle +gun.name.lunaTWR=Time Warp Rifle +gun.name.m2=Browning machine gun, cal. .50, M2, HB +gun.name.m42=M-42 Tactical Nuclear Catapult +gun.name.m42MIRV=M-42 Experimental MIRV +gun.name.m60=Machine Gun, Caliber 7.62 mm, M60 +gun.name.maxim=Maxim gun +gun.name.maximDouble=Double Maxim gun +gun.name.mg42=Universal-Maschinengewehr Modell 42 - .50 Mod +gun.name.mp40=Maschinenpistole 40 +gun.name.nerf=NERF blaster of unknown design +gun.name.osipr=Overwatch Standard Issue Pulse Rifle +gun.name.panz=Raketenpanzerbüchse 54 +gun.name.quadro=OpenQuadro Guided Man-Portable Missile Launcher +gun.name.revolverCursed=Britannia Standard Issue Motorized Handgun +gun.name.sauer=Sauer Shotgun +gun.name.spas12=Franchi SPAS-12 +gun.name.spiw=H&R SPIW +gun.name.stinger=FIM-92 Stinger man-portable air-defense system +gun.name.stingerOneSky=The One Sky Stinger +gun.name.supershotty=Double-Barreled Combat Shotgun +gun.name.tau=XVL1456 Tau Cannon +gun.name.tommy9=M1A1 Submachine Gun 9mm Mod +gun.name.tommy=M1A1 Submachine Gun +gun.name.topaz=Heavy Duty Flamer +gun.name.uacCarbine=UAC-41 Carbine +gun.name.uacDeagle=UAC-H54 "Martian Raptor" Automag +gun.name.uacDMR=UAC-30 Designated Marksman Rifle +gun.name.uacLMG=UAC-49 Light Machine Gun +gun.name.uacPistol=UAC-B950 .45 Standard Issue Handgun +gun.name.uacSMG=UAC-17 Compact Sub-Machine Gun +gun.name.uboinik=Uboinik Revolving Shotgun +gun.name.uzi=IMI Uzi +gun.name.uziSatur=IMI Uzi D-25A +gun.name.win1887=Winchester Model 1887 +gun.name.win1887Inox=Winchester Model 1887 Inox +gun.name.win20Inox=Winchester Model 20 Inox +gun.name.win20Poly=Winchester Model 20 Polymer +gun.name.win20Satur=Winchester Model 20 D-25A +gun.name.zomg=EMC101 Prismatic Negative Energy Cannon + hadron.analysis=Analyzing... hadron.buttonOn=Analysis Chamber (if present) is ON hadron.buttonOff=Analysis Chamber is OFF @@ -2159,7 +2401,7 @@ item.gun_moist_nugget.name=Mosin-Nagant item.gun_mp.name=Pacifist's Machine Gun item.gun_mp40.name=Submachine Gun item.gun_mp40_ammo.name=Submachine Gun Round (LEGACY) -item.gun_mp_ammo.name=Small Propellantless Machine Gun Round +item.gun_pm_ammo.name=Small Propellantless Machine Gun Round item.gun_mymy.name=Nietes item.gun_osipr.name=Overwatch Standard Issue Pulse Rifle item.gun_osipr_ammo.name=Dark Energy Pulse Plug