diff --git a/gradle.properties b/gradle.properties index b9eb6b50b..17db097d2 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4607 +mod_build_number=4613 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models, porting),\ diff --git a/src/main/java/com/hbm/blocks/BlockEnums.java b/src/main/java/com/hbm/blocks/BlockEnums.java index 5a8e89122..717ac2639 100644 --- a/src/main/java/com/hbm/blocks/BlockEnums.java +++ b/src/main/java/com/hbm/blocks/BlockEnums.java @@ -7,7 +7,8 @@ public class BlockEnums { ASBESTOS, HEMATITE, MALACHITE, - LIMESTONE + LIMESTONE, + BAUXITE } public static enum EnumBiomeType { diff --git a/src/main/java/com/hbm/config/WorldConfig.java b/src/main/java/com/hbm/config/WorldConfig.java index 9f560b536..62d951918 100644 --- a/src/main/java/com/hbm/config/WorldConfig.java +++ b/src/main/java/com/hbm/config/WorldConfig.java @@ -33,14 +33,20 @@ public class WorldConfig { public static int bedrockOilSpawn = 200; public static int meteoriteSpawn = 500; - public static int bedrockIronSpawn = 200; + public static int bedrockIronSpawn = 100; public static int bedrockCopperSpawn = 200; - public static int bedrockBoraxSpawn = 300; - public static int bedrockAsbestosSpawn = 300; - public static int bedrockNiobiumSpawn = 300; - public static int bedrockTitaniumSpawn = 400; - public static int bedrockTungstenSpawn = 300; - public static int bedrockGoldSpawn = 500; + public static int bedrockBoraxSpawn = 50; + public static int bedrockAsbestosSpawn = 50; + public static int bedrockNiobiumSpawn = 50; + public static int bedrockTitaniumSpawn = 100; + public static int bedrockTungstenSpawn = 100; + public static int bedrockGoldSpawn = 50; + public static int bedrockUraniumSpawn = 35; + public static int bedrockThoriumSpawn = 50; + public static int bedrockCoalSpawn = 200; + public static int bedrockNiterSpawn = 50; + public static int bedrockFluoriteSpawn = 50; + public static int bedrockRedstoneSpawn = 50; public static int ironClusterSpawn = 4; public static int titaniumClusterSpawn = 2; @@ -133,14 +139,20 @@ public class WorldConfig { bedrockOilSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.22_bedrockOilSpawnRate", "Spawns a bedrock oil node every nTH chunk", 200); meteoriteSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.23_meteoriteSpawnRate", "Spawns a fallen meteorite every nTH chunk", 200); - bedrockIronSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B00_bedrockIronSpawn", "Spawns a bedrock iron deposit every nTH chunk", 200); - bedrockCopperSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B01_bedrockCopperSpawn", "Spawns a bedrock copper deposit every nTH chunk", 200); - bedrockBoraxSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B02_bedrockBoraxSpawn", "Spawns a bedrock borax deposit every nTH chunk", 300); - bedrockAsbestosSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B03_bedrockAsbestosSpawn", "Spawns a bedrock asbestos deposit every nTH chunk", 300); - bedrockNiobiumSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B04_bedrockNiobiumSpawn", "Spawns a bedrock niobium deposit every nTH chunk", 300); - bedrockTitaniumSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B05_bedrockTitaniumSpawn", "Spawns a bedrock titanium deposit every nTH chunk", 500); - bedrockTungstenSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B06_bedrockTungstenSpawn", "Spawns a bedrock tungsten deposit every nTH chunk", 300); - bedrockGoldSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B07_bedrockGoldSpawn", "Spawns a bedrock gold deposit every nTH chunk", 500); + bedrockIronSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B00_bedrockIronWeight", "Spawn weight for iron bedrock ore", 100); + bedrockCopperSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B01_bedrockCopperWeight", "Spawn weight for copper bedrock ore", 200); + bedrockBoraxSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B02_bedrockBoraxWeight", "Spawn weight for borax bedrock ore", 50); + bedrockAsbestosSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B03_bedrockAsbestosWeight", "Spawn weight for asbestos bedrock ore", 50); + bedrockNiobiumSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B04_bedrockNiobiumWeight", "Spawn weight for niobium bedrock ore", 50); + bedrockTitaniumSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B05_bedrockTitaniumWeight", "Spawn weight for titanium bedrock ore", 100); + bedrockTungstenSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B06_bedrockTungstenWeight", "Spawn weight for tungsten bedrock ore", 100); + bedrockGoldSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B07_bedrockGoldWeight", "Spawn weight for gold bedrock ore", 50); + bedrockUraniumSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B08_bedrockUraniumWeight", "Spawn weight for uranium bedrock ore", 35); + bedrockThoriumSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B09_bedrockThoriumWeight", "Spawn weight for thorium bedrock ore", 50); + bedrockCoalSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B10_bedrockCoalWeight", "Spawn weight for coal bedrock ore", 200); + bedrockNiterSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B11_bedrockNiterWeight", "Spawn weight for niter bedrock ore", 50); + bedrockFluoriteSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B12_bedrockFluoriteWeight", "Spawn weight for fluorite bedrock ore", 50); + bedrockRedstoneSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B13_bedrockRedstoneWeight", "Spawn weight for redstone bedrock ore", 50); ironClusterSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.C00_ironClusterSpawn", "Amount of iron cluster veins per chunk", 4); titaniumClusterSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.C01_titaniumClusterSpawn", "Amount of titanium cluster veins per chunk", 2); diff --git a/src/main/java/com/hbm/crafting/MineralRecipes.java b/src/main/java/com/hbm/crafting/MineralRecipes.java index 0f440dbe3..039775e82 100644 --- a/src/main/java/com/hbm/crafting/MineralRecipes.java +++ b/src/main/java/com/hbm/crafting/MineralRecipes.java @@ -454,6 +454,10 @@ public class MineralRecipes { add9To1(DictFrame.fromOne(ModItems.ore_byproduct, EnumByproduct.B_SULFUR), new ItemStack(ModItems.sulfur)); add9To1(DictFrame.fromOne(ModItems.ore_byproduct, EnumByproduct.B_CALCIUM), new ItemStack(ModItems.powder_calcium)); add9To1(DictFrame.fromOne(ModItems.ore_byproduct, EnumByproduct.B_BISMUTH), new ItemStack(ModItems.powder_bismuth)); + add9To1(DictFrame.fromOne(ModItems.ore_byproduct, EnumByproduct.B_RADIUM), new ItemStack(ModItems.powder_ra226)); + add9To1(DictFrame.fromOne(ModItems.ore_byproduct, EnumByproduct.B_TECHNETIUM), new ItemStack(ModItems.billet_technetium)); + add9To1(DictFrame.fromOne(ModItems.ore_byproduct, EnumByproduct.B_POLONIUM), new ItemStack(ModItems.billet_polonium)); + add9To1(DictFrame.fromOne(ModItems.ore_byproduct, EnumByproduct.B_URANIUM), new ItemStack(ModItems.powder_uranium)); } //Bundled 1/9 recipes diff --git a/src/main/java/com/hbm/handler/guncfg/Gun20GaugeFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun20GaugeFactory.java index b99da2c21..80f96b057 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun20GaugeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun20GaugeFactory.java @@ -78,6 +78,8 @@ public class Gun20GaugeFactory { config.reloadSound = GunConfiguration.RSOUND_SHOTGUN; config.firingSound = "hbm:weapon.revolverShootAlt"; config.firingPitch = 0.75F; + config.hasSights = true; + config.zoomFOV = 0.75F; config.name = "win1887"; config.manufacturer = EnumGunManufacturer.WINCHESTER; @@ -95,6 +97,8 @@ public class Gun20GaugeFactory { config.reloadSound = GunConfiguration.RSOUND_SHOTGUN; config.firingSound = "hbm:weapon.revolverShootAlt"; config.firingPitch = 0.75F; + config.hasSights = true; + config.zoomFOV = 0.75F; config.name = "win1887Inox"; config.manufacturer = EnumGunManufacturer.WINCHESTER; diff --git a/src/main/java/com/hbm/inventory/SlotCraftingOutput.java b/src/main/java/com/hbm/inventory/SlotCraftingOutput.java index 7b8a1c86a..5095f2b7e 100644 --- a/src/main/java/com/hbm/inventory/SlotCraftingOutput.java +++ b/src/main/java/com/hbm/inventory/SlotCraftingOutput.java @@ -3,6 +3,7 @@ package com.hbm.inventory; import com.hbm.blocks.ModBlocks; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; +import com.hbm.util.AchievementHandler; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; @@ -27,40 +28,7 @@ public class SlotCraftingOutput extends Slot { //ugly but nothing to be done public static void checkAchievements(EntityPlayer player, ItemStack stack) { - Item item = stack.getItem(); - - if(item == Item.getItemFromBlock(ModBlocks.machine_chemplant)) - player.triggerAchievement(MainRegistry.achChemplant); - if(item == Item.getItemFromBlock(ModBlocks.concrete_smooth) || item == Item.getItemFromBlock(ModBlocks.concrete_asbestos)) - player.triggerAchievement(MainRegistry.achConcrete); - if(item == ModItems.ingot_polymer) - player.triggerAchievement(MainRegistry.achPolymer); - if(item == ModItems.ingot_desh) - player.triggerAchievement(MainRegistry.achDesh); - if(item == ModItems.gem_tantalium) - player.triggerAchievement(MainRegistry.achTantalum); - if(item == Item.getItemFromBlock(ModBlocks.machine_gascent)) - player.triggerAchievement(MainRegistry.achGasCent); - if(item == Item.getItemFromBlock(ModBlocks.machine_centrifuge)) - player.triggerAchievement(MainRegistry.achCentrifuge); - if(item == ModItems.ingot_schrabidium || item == ModItems.nugget_schrabidium) - player.triggerAchievement(MainRegistry.achSchrab); - if(item == Item.getItemFromBlock(ModBlocks.machine_crystallizer)) - player.triggerAchievement(MainRegistry.achAcidizer); - if(item == Item.getItemFromBlock(ModBlocks.machine_silex)) - player.triggerAchievement(MainRegistry.achSILEX); - if(item == ModItems.nugget_technetium) - player.triggerAchievement(MainRegistry.achTechnetium); - if(item == Item.getItemFromBlock(ModBlocks.watz_core)) - player.triggerAchievement(MainRegistry.achWatz); - if(item == ModItems.nugget_bismuth) - player.triggerAchievement(MainRegistry.achBismuth); - if(item == ModItems.nugget_am241 || item == ModItems.nugget_am242) - player.triggerAchievement(MainRegistry.achBreeding); - if(item == ModItems.missile_nuclear || item == ModItems.missile_nuclear_cluster || item == ModItems.missile_doomsday || item == ModItems.mp_warhead_10_nuclear || item == ModItems.mp_warhead_10_nuclear_large || item == ModItems.mp_warhead_15_nuclear || item == ModItems.mp_warhead_15_nuclear_shark || item == ModItems.mp_warhead_15_boxcar) - player.triggerAchievement(MainRegistry.achRedBalloons); - if(item == Item.getItemFromBlock(ModBlocks.struct_iter_core)) - player.triggerAchievement(MainRegistry.achFusion); + AchievementHandler.fire(player, stack); } @Override diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index b39ac64ad..b1b4a9ad4 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -133,6 +133,7 @@ public class Fluids { public static FluidType FISHOIL; public static FluidType SUNFLOWEROIL; public static FluidType NITROGLYCERIN; + public static FluidType REDMUD; private static final HashMap idMapping = new HashMap(); private static final HashMap nameMapping = new HashMap(); @@ -276,7 +277,8 @@ public class Fluids { ESTRADIOL = new FluidType("ESTRADIOL", 0xCDD5D8, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); FISHOIL = new FluidType("FISHOIL", 0x4B4A45, 0, 1, 0, EnumSymbol.NONE).addTraits(LIQUID); SUNFLOWEROIL = new FluidType("SUNFLOWEROIL", 0xCBAD45, 0, 1, 0, EnumSymbol.NONE).addTraits(LIQUID); - NITROGLYCERIN = new FluidType(112, "NITROGLYCERIN", 0x92ACA6, 0, 4, 0, EnumSymbol.NONE).addTraits(LIQUID); + NITROGLYCERIN = new FluidType("NITROGLYCERIN", 0x92ACA6, 0, 4, 0, EnumSymbol.NONE).addTraits(LIQUID); + REDMUD = new FluidType(113, "REDMUD", 0xD85638, 3, 0, 4, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, LEADCON, new FT_Corrosive(60), new FT_Flammable(1_000)); // ^ ^ ^ ^ ^ ^ ^ ^ //ADD NEW FLUIDS HERE @@ -384,6 +386,7 @@ public class Fluids { metaOrder.add(PAIN); metaOrder.add(DEATH); metaOrder.add(WATZ); + metaOrder.add(REDMUD); metaOrder.add(EGG); metaOrder.add(CHOLESTEROL); //solutions and working fluids @@ -415,6 +418,7 @@ public class Fluids { MUSTARDGAS.addTraits(new FT_Toxin().addEntry(new ToxinDirectDamage(ModDamageSource.cloud, 4F, 10, HazardClass.GAS_CORROSIVE, false)) .addEntry(new ToxinEffects(HazardClass.GAS_CORROSIVE, true).add(new PotionEffect(Potion.wither.id, 100, 1), new PotionEffect(Potion.confusion.id, 100, 0)))); ESTRADIOL.addTraits(new FT_Toxin().addEntry(new ToxinEffects(HazardClass.PARTICLE_FINE, false).add(new PotionEffect(HbmPotion.death.id, 60 * 60 * 20, 0)))); + REDMUD.addTraits(new FT_Toxin().addEntry(new ToxinEffects(HazardClass.GAS_CORROSIVE, false).add(new PotionEffect(Potion.wither.id, 30 * 20, 2)))); double eff_steam_boil = 1.0D; double eff_steam_heatex = 0.25D; diff --git a/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java b/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java index 01dfe8dd6..7dad7530d 100644 --- a/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java @@ -56,6 +56,7 @@ public class CokerRecipes extends SerializableRecipe { registerSFAuto(WOODOIL, 340_000L, new ItemStack(Items.coal, 1, 1), GAS_COKER); registerRecipe(WATZ, 4_000, new ItemStack(ModItems.ingot_mud, 4), null); + registerRecipe(REDMUD, 1_000, new ItemStack(Items.iron_ingot, 2), new FluidStack(MERCURY, 50)); registerRecipe(BITUMEN, 16_000, DictFrame.fromOne(ModItems.coke, EnumCokeType.PETROLEUM), new FluidStack(OIL_COKER, 1_600)); registerRecipe(LUBRICANT, 12_000, DictFrame.fromOne(ModItems.coke, EnumCokeType.PETROLEUM), new FluidStack(OIL_COKER, 1_200)); } diff --git a/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java b/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java index fa3b7ffaa..022068894 100644 --- a/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java @@ -9,6 +9,8 @@ import static com.hbm.inventory.OreDictManager.*; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; +import com.hbm.blocks.BlockEnums.EnumStoneType; +import com.hbm.blocks.ModBlocks; import com.hbm.inventory.FluidStack; import com.hbm.inventory.OreDictManager.DictFrame; import com.hbm.inventory.RecipesCommon.AStack; @@ -43,6 +45,7 @@ public class CombinationRecipes extends SerializableRecipe { recipes.put(CINNABAR.crystal(), new Pair(new ItemStack(ModItems.sulfur), new FluidStack(Fluids.MERCURY, 100))); recipes.put(new ComparableStack(Items.glowstone_dust), new Pair(new ItemStack(ModItems.sulfur), new FluidStack(Fluids.CHLORINE, 50))); + recipes.put(new ComparableStack(DictFrame.fromOne(ModBlocks.stone_resource, EnumStoneType.BAUXITE)), new Pair(new ItemStack(ModItems.ingot_aluminium, 2), new FluidStack(Fluids.REDMUD, 250))); recipes.put(KEY_LOG, new Pair(new ItemStack(Items.coal, 1 ,1), new FluidStack(Fluids.WOODOIL, 250))); recipes.put(KEY_SAPLING, new Pair(null, new FluidStack(Fluids.WOODOIL, 50))); diff --git a/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java b/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java index 38f618aea..2612ba3c3 100644 --- a/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java @@ -67,6 +67,7 @@ public class SolidificationRecipes extends SerializableRecipe { registerRecipe(SALIENT, 1280, new ItemStack(ModItems.bio_wafer, 8)); //4 (food val) * 2 (sat mod) * 2 (constant) * 10 (quanta) * 8 (batch size) registerRecipe(ENDERJUICE, 100, Items.ender_pearl); registerRecipe(WATZ, 1000, ModItems.ingot_mud); + registerRecipe(REDMUD, 1000, Items.iron_ingot); registerRecipe(OIL, SF_OIL, DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE)); registerRecipe(CRACKOIL, SF_CRACK, DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRACK)); diff --git a/src/main/java/com/hbm/items/ItemEnums.java b/src/main/java/com/hbm/items/ItemEnums.java index a15664ddb..c1424f43f 100644 --- a/src/main/java/com/hbm/items/ItemEnums.java +++ b/src/main/java/com/hbm/items/ItemEnums.java @@ -40,4 +40,16 @@ public class ItemEnums { ROPE, MUSTARDWILLOW } + + public static enum EnumAchievementType { + GOFISH, + ACID, + BALLS, + DIGAMMASEE, + DIGAMMAFEEL, + DIGAMMAKNOW, + DIGAMMAKAUAIMOHO, + DIGAMMAUPONTOP, + DIGAMMAFOROURRIGHT + } } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index c87bb3a60..791bcf915 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -2436,18 +2436,13 @@ public class ModItems { public static Item nothing; public static Item void_anim; + public static Item achievement_icon; public static Item bob_metalworks; public static Item bob_assembly; public static Item bob_chemistry; public static Item bob_oil; public static Item bob_nuclear; - public static Item digamma_see; - public static Item digamma_feel; - public static Item digamma_know; - public static Item digamma_kauai_moho; - public static Item digamma_up_on_top; - public static Item mysteryshovel; public static Item memory; @@ -5452,16 +5447,12 @@ public class ModItems { void_anim = new Item().setUnlocalizedName("void_anim").setTextureName(RefStrings.MODID + ":void_anim"); + achievement_icon = new ItemEnumMulti(ItemEnums.EnumAchievementType.class, true, true).setUnlocalizedName("achievement_icon"); bob_metalworks = new Item().setUnlocalizedName("bob_metalworks").setTextureName(RefStrings.MODID + ":bob_metalworks"); bob_assembly = new Item().setUnlocalizedName("bob_assembly").setTextureName(RefStrings.MODID + ":bob_assembly"); bob_chemistry = new Item().setUnlocalizedName("bob_chemistry").setTextureName(RefStrings.MODID + ":bob_chemistry"); bob_oil = new Item().setUnlocalizedName("bob_oil").setTextureName(RefStrings.MODID + ":bob_oil"); bob_nuclear = new Item().setUnlocalizedName("bob_nuclear").setTextureName(RefStrings.MODID + ":bob_nuclear"); - digamma_see = new Item().setUnlocalizedName("digamma_see").setTextureName(RefStrings.MODID + ":digamma_see"); - digamma_feel = new Item().setUnlocalizedName("digamma_feel").setTextureName(RefStrings.MODID + ":digamma_feel"); - digamma_know = new Item().setUnlocalizedName("digamma_know").setTextureName(RefStrings.MODID + ":digamma_know"); - digamma_kauai_moho = new Item().setUnlocalizedName("digamma_kauai_moho").setTextureName(RefStrings.MODID + ":digamma_kauai_moho"); - digamma_up_on_top = new Item().setUnlocalizedName("digamma_up_on_top").setTextureName(RefStrings.MODID + ":digamma_up_on_top"); mysteryshovel = new ItemMS().setUnlocalizedName("mysteryshovel").setFull3D().setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cursed_shovel"); memory = new ItemBattery(Long.MAX_VALUE / 100L, 100000000000000L, 100000000000000L).setUnlocalizedName("memory").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":mo8_anim"); @@ -8055,16 +8046,12 @@ public class ModItems { GameRegistry.registerItem(ln2_10, ln2_10.getUnlocalizedName()); GameRegistry.registerItem(nothing, nothing.getUnlocalizedName()); GameRegistry.registerItem(void_anim, void_anim.getUnlocalizedName()); + GameRegistry.registerItem(achievement_icon, achievement_icon.getUnlocalizedName()); GameRegistry.registerItem(bob_metalworks, bob_metalworks.getUnlocalizedName()); GameRegistry.registerItem(bob_assembly, bob_assembly.getUnlocalizedName()); GameRegistry.registerItem(bob_chemistry, bob_chemistry.getUnlocalizedName()); GameRegistry.registerItem(bob_oil, bob_oil.getUnlocalizedName()); GameRegistry.registerItem(bob_nuclear, bob_nuclear.getUnlocalizedName()); - GameRegistry.registerItem(digamma_see, digamma_see.getUnlocalizedName()); - GameRegistry.registerItem(digamma_feel, digamma_feel.getUnlocalizedName()); - GameRegistry.registerItem(digamma_know, digamma_know.getUnlocalizedName()); - GameRegistry.registerItem(digamma_kauai_moho, digamma_kauai_moho.getUnlocalizedName()); - GameRegistry.registerItem(digamma_up_on_top, digamma_up_on_top.getUnlocalizedName()); GameRegistry.registerItem(mysteryshovel, mysteryshovel.getUnlocalizedName()); GameRegistry.registerItem(memory, memory.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/special/ItemBedrockOre.java b/src/main/java/com/hbm/items/special/ItemBedrockOre.java index 55539aa79..6dc73e9fc 100644 --- a/src/main/java/com/hbm/items/special/ItemBedrockOre.java +++ b/src/main/java/com/hbm/items/special/ItemBedrockOre.java @@ -92,7 +92,9 @@ public class ItemBedrockOre extends ItemEnumMulti { NIOBIUM("Niobium", 0xAF58D8, B_IRON, B_IRON, B_IRON), //iron in columbite, often found along tantalite TITANIUM("Titanium", 0xF2EFE2, B_SILICON, B_CALCIUM, B_ALUMINIUM), //titanite is titanium + calcium + silicon with traces of iron and aluminium TUNGSTEN("Tungsten", 0x2C293C, B_LEAD, B_IRON, B_BISMUTH), //ferberite has iron, raspite has lead, russelite is bismuth tungsten - GOLD("Gold", 0xF9D738, B_LEAD, B_COPPER, B_BISMUTH); //occurs with copper, lead and rare bismuthide + GOLD("Gold", 0xF9D738, B_LEAD, B_COPPER, B_BISMUTH), //occurs with copper, lead and rare bismuthide + URANIUM("Uranium", 0x868D82, B_LEAD, B_RADIUM, B_POLONIUM), //uranium and its decay products + THORIUM("Thorium", 0x7D401D, B_SILICON, B_URANIUM, B_TECHNETIUM); //thorium occours with uraninite and decay products public String oreName; public int color; diff --git a/src/main/java/com/hbm/items/special/ItemByproduct.java b/src/main/java/com/hbm/items/special/ItemByproduct.java index 049c8f20e..6b513884f 100644 --- a/src/main/java/com/hbm/items/special/ItemByproduct.java +++ b/src/main/java/com/hbm/items/special/ItemByproduct.java @@ -31,7 +31,11 @@ public class ItemByproduct extends ItemEnumMulti { B_ALUMINIUM(0xE8F2F9), B_SULFUR(0xEAD377), B_CALCIUM(0xCFCFA6), - B_BISMUTH(0x8D8577); + B_BISMUTH(0x8D8577), + B_RADIUM(0xE9FAF6), + B_TECHNETIUM(0xCADFDF), + B_POLONIUM(0xCADFDF), + B_URANIUM(0x868D82); public int color; diff --git a/src/main/java/com/hbm/items/tool/ItemBoltgun.java b/src/main/java/com/hbm/items/tool/ItemBoltgun.java index a4ef287f3..34440b70a 100644 --- a/src/main/java/com/hbm/items/tool/ItemBoltgun.java +++ b/src/main/java/com/hbm/items/tool/ItemBoltgun.java @@ -63,6 +63,10 @@ public class ItemBoltgun extends Item implements IAnimatedItem { player.inventory.decrStackSize(i, 1); player.inventoryContainer.detectAndSendChanges(); EntityDamageUtil.attackEntityFromIgnoreIFrame(entity, DamageSource.causePlayerDamage(player).setDamageBypassesArmor(), 10F); + + if(!entity.isEntityAlive() && entity instanceof EntityPlayer) { + ((EntityPlayer) entity).triggerAchievement(MainRegistry.achGoFish); + } NBTTagCompound data = new NBTTagCompound(); data.setString("type", "vanillaExt"); diff --git a/src/main/java/com/hbm/items/tool/ItemToolAbility.java b/src/main/java/com/hbm/items/tool/ItemToolAbility.java index 85e0694d0..f0c4496ad 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolAbility.java +++ b/src/main/java/com/hbm/items/tool/ItemToolAbility.java @@ -11,6 +11,10 @@ import com.google.common.collect.Multimap; import com.google.common.collect.Sets; import com.hbm.handler.ToolAbility; import com.hbm.handler.ToolAbility.*; +import com.hbm.main.MainRegistry; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.PlayerInformPacket; +import com.hbm.util.ChatBuilder; import com.hbm.handler.WeaponAbility; import api.hbm.item.IDepthRockTool; @@ -22,14 +26,12 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.attributes.AttributeModifier; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.init.Blocks; import net.minecraft.item.EnumRarity; import net.minecraft.item.ItemStack; import net.minecraft.item.ItemTool; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.ChatComponentTranslation; -import net.minecraft.util.ChatStyle; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; @@ -239,18 +241,17 @@ public class ItemToolAbility extends ItemTool implements IItemAbility, IDepthRoc while(getCurrentAbility(stack) != null && !getCurrentAbility(stack).isAllowed()) { - player.addChatComponentMessage(new ChatComponentText("[Ability ").appendSibling(new ChatComponentTranslation(getCurrentAbility(stack).getName(), new Object[0])) - .appendSibling(new ChatComponentText(getCurrentAbility(stack).getExtension() + " is blacklisted!]")).setChatStyle(new ChatStyle().setColor(EnumChatFormatting.RED))); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("[Ability ").nextTranslation(getCurrentAbility(stack).getName()).next(getCurrentAbility(stack).getExtension() + " is blacklisted!]").colorAll(EnumChatFormatting.RED).flush(), MainRegistry.proxy.ID_TOOLABILITY), (EntityPlayerMP) player); + i++; setAbility(stack, i % this.breakAbility.size()); } if(getCurrentAbility(stack) != null) { - player.addChatComponentMessage(new ChatComponentText("[Enabled ").appendSibling(new ChatComponentTranslation(getCurrentAbility(stack).getName(), new Object[0])) - .appendSibling(new ChatComponentText(getCurrentAbility(stack).getExtension() + "]")).setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW))); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("[Enabled ").nextTranslation(getCurrentAbility(stack).getName()).next(getCurrentAbility(stack).getExtension() + "]").colorAll(EnumChatFormatting.YELLOW).flush(), MainRegistry.proxy.ID_TOOLABILITY), (EntityPlayerMP) player); } else { - player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GOLD + "[Tool ability deactivated]")); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("[Tool ability deactivated]").color(EnumChatFormatting.GOLD).flush(), MainRegistry.proxy.ID_TOOLABILITY), (EntityPlayerMP) player); } world.playSoundAtEntity(player, "random.orb", 0.25F, getCurrentAbility(stack) == null ? 0.75F : 1.25F); diff --git a/src/main/java/com/hbm/lib/HbmWorldGen.java b/src/main/java/com/hbm/lib/HbmWorldGen.java index 58f772881..dac6fed84 100644 --- a/src/main/java/com/hbm/lib/HbmWorldGen.java +++ b/src/main/java/com/hbm/lib/HbmWorldGen.java @@ -8,14 +8,12 @@ import com.hbm.blocks.generic.BlockMotherOfAllOres; import com.hbm.blocks.generic.BlockNTMFlower.EnumFlowerType; import com.hbm.config.GeneralConfig; import com.hbm.config.WorldConfig; -import com.hbm.inventory.FluidStack; -import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; -import com.hbm.items.special.ItemBedrockOre.EnumBedrockOre; import com.hbm.main.MainRegistry; import com.hbm.saveddata.TomSaveData; import com.hbm.tileentity.machine.storage.TileEntitySafe; import com.hbm.tileentity.machine.storage.TileEntitySoyuzCapsule; +import com.hbm.util.WeightedRandomGeneric; import com.hbm.world.dungeon.AncientTomb; import com.hbm.world.dungeon.Antenna; import com.hbm.world.dungeon.ArcticVault; @@ -32,6 +30,7 @@ import com.hbm.world.dungeon.Silo; import com.hbm.world.dungeon.Spaceship; import com.hbm.world.dungeon.Vertibird; import com.hbm.world.feature.BedrockOre; +import com.hbm.world.feature.BedrockOre.BedrockOreDefinition; import com.hbm.world.feature.DepthDeposit; import com.hbm.world.feature.Dud; import com.hbm.world.feature.Geyser; @@ -49,6 +48,7 @@ import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntityChest; import net.minecraft.tileentity.TileEntitySkull; +import net.minecraft.util.WeightedRandom; import net.minecraft.util.WeightedRandomChestContent; import net.minecraft.world.World; import net.minecraft.world.biome.BiomeGenBase; @@ -154,18 +154,16 @@ public class HbmWorldGen implements IWorldGenerator { DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.aluminiumClusterSpawn, 6, 15, 35, ModBlocks.cluster_aluminium); DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.copperClusterSpawn, 6, 15, 20, ModBlocks.cluster_copper); - //DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.hematiteSpawn, 10, 4, 80, ModBlocks.stone_resource, EnumStoneType.HEMATITE.ordinal()); DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.malachiteSpawn, 10, 6, 40, ModBlocks.stone_resource, EnumStoneType.MALACHITE.ordinal()); DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.limestoneSpawn, 12, 25, 30, ModBlocks.stone_resource, EnumStoneType.LIMESTONE.ordinal()); - DungeonToolbox.generateBedrockOreWithChance(world, rand, i, j, EnumBedrockOre.IRON, 1, WorldConfig.bedrockIronSpawn); - DungeonToolbox.generateBedrockOreWithChance(world, rand, i, j, EnumBedrockOre.COPPER, 1, WorldConfig.bedrockCopperSpawn); - DungeonToolbox.generateBedrockOreWithChance(world, rand, i, j, EnumBedrockOre.BORAX, new FluidStack(Fluids.SULFURIC_ACID, 500), 3, WorldConfig.bedrockBoraxSpawn); - DungeonToolbox.generateBedrockOreWithChance(world, rand, i, j, EnumBedrockOre.ASBESTOS, 2, WorldConfig.bedrockAsbestosSpawn); - DungeonToolbox.generateBedrockOreWithChance(world, rand, i, j, EnumBedrockOre.NIOBIUM, new FluidStack(Fluids.ACID, 1_000), 2, WorldConfig.bedrockNiobiumSpawn); - DungeonToolbox.generateBedrockOreWithChance(world, rand, i, j, EnumBedrockOre.TITANIUM, new FluidStack(Fluids.SULFURIC_ACID, 500), 2, WorldConfig.bedrockTitaniumSpawn); - DungeonToolbox.generateBedrockOreWithChance(world, rand, i, j, EnumBedrockOre.TUNGSTEN, new FluidStack(Fluids.ACID, 1_000), 2, WorldConfig.bedrockTungstenSpawn); - DungeonToolbox.generateBedrockOreWithChance(world, rand, i, j, EnumBedrockOre.GOLD, 1, WorldConfig.bedrockGoldSpawn); + if(rand.nextInt(3) == 0) { + WeightedRandomGeneric item = (WeightedRandomGeneric) WeightedRandom.getRandomItem(rand, BedrockOre.weightedOres); + BedrockOreDefinition def = item.get(); + int randPosX = i + rand.nextInt(2) + 8; + int randPosZ = j + rand.nextInt(2) + 8; + BedrockOre.generate(world, randPosX, randPosZ, def.stack, def.acid, def.color, def.tier); + } for(int k = 0; k < WorldConfig.randomSpawn; k++) { BlockMotherOfAllOres.shuffleOverride(rand); diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index f3cc40fb2..5416fa4d3 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4607)"; + public static final String VERSION = "1.0.27 BETA (4613)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index e58761275..99df0747c 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -61,6 +61,7 @@ import com.hbm.handler.imc.*; import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.hazard.HazardRegistry; import com.hbm.inventory.*; +import com.hbm.inventory.OreDictManager.DictFrame; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.recipes.*; import com.hbm.inventory.recipes.anvil.AnvilRecipes; @@ -69,6 +70,7 @@ import com.hbm.items.ModItems; import com.hbm.items.tool.ItemFertilizer; import com.hbm.items.weapon.ItemGenericGrenade; import com.hbm.items.ItemAmmoEnums.Ammo4Gauge; +import com.hbm.items.ItemEnums.EnumAchievementType; import com.hbm.lib.HbmWorld; import com.hbm.lib.Library; import com.hbm.lib.RefStrings; @@ -79,6 +81,7 @@ import com.hbm.tileentity.TileMappings; import com.hbm.tileentity.bomb.TileEntityNukeCustom; import com.hbm.tileentity.machine.*; import com.hbm.tileentity.machine.rbmk.RBMKDials; +import com.hbm.util.AchievementHandler; import com.hbm.util.ArmorUtil; import com.hbm.util.Compat; import com.hbm.util.StatHelper; @@ -187,6 +190,7 @@ public class MainRegistry { public static Achievement achSlimeball; public static Achievement achSulfuric; public static Achievement achWitchtaunter; + public static Achievement achGoFish; public static Achievement achNo9; public static Achievement achInferno; public static Achievement bobHidden; @@ -657,6 +661,7 @@ public class MainRegistry { achSacrifice = new Achievement("achievement.sacrifice", "sacrifice", -3, 1, ModItems.burnt_bark, null).initIndependentStat().setSpecial().registerStat(); achImpossible = new Achievement("achievement.impossible", "impossible", 18, 10, ModItems.nothing, null).initIndependentStat().setSpecial().registerStat(); achTOB = new Achievement("achievement.tasteofblood", "tasteofblood", 3, 10, new ItemStack(ModItems.fluid_icon, 1, Fluids.ASCHRAB.getID()), null).initIndependentStat().setSpecial().registerStat(); + achGoFish = new Achievement("achievement.goFish", "goFish", 5, 10, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.GOFISH), null).initIndependentStat().setSpecial().registerStat(); achFreytag = new Achievement("achievement.freytag", "freytag", 0, -4, ModItems.gun_mp40, null).initIndependentStat().setSpecial().registerStat(); achPotato = new Achievement("achievement.potato", "potato", -2, -2, ModItems.battery_potatos, null).initIndependentStat().setSpecial().registerStat(); achC44 = new Achievement("achievement.c44", "c44", 2, -4, ModItems.gun_revolver_pip, null).initIndependentStat().setSpecial().registerStat(); @@ -668,8 +673,8 @@ public class MainRegistry { achWitchtaunter = new Achievement("achievement.witchtaunter", "witchtaunter", -8, 7, ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.VAMPIRE), null).initIndependentStat().setSpecial().registerStat(); achNo9 = new Achievement("achievement.no9", "no9", -8, 12, ModItems.no9, null).initIndependentStat().registerStat(); - achSlimeball = new Achievement("achievement.slimeball", "slimeball", -10, 6, Items.slime_ball, null).initIndependentStat().registerStat(); - achSulfuric = new Achievement("achievement.sulfuric", "sulfuric", -10, 8, ModItems.bucket_sulfuric_acid, achSlimeball).initIndependentStat().setSpecial().registerStat(); + achSlimeball = new Achievement("achievement.slimeball", "slimeball", -10, 6, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.ACID), null).initIndependentStat().registerStat(); + achSulfuric = new Achievement("achievement.sulfuric", "sulfuric", -10, 8, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.BALLS), achSlimeball).initIndependentStat().setSpecial().registerStat(); achInferno = new Achievement("achievement.inferno", "inferno", -8, 10, ModItems.canister_napalm, null).initIndependentStat().setSpecial().registerStat(); bobHidden = new Achievement("achievement.hidden", "hidden", 15, -4, ModItems.gun_dampfmaschine, null).initIndependentStat().registerStat(); @@ -689,11 +694,11 @@ public class MainRegistry { achSomeWounds = new Achievement("achievement.someWounds", "someWounds", -2, 10, ModItems.injector_knife, null).initIndependentStat().registerStat(); - digammaSee = new Achievement("achievement.digammaSee", "digammaSee", -1, 8, ModItems.digamma_see, null).initIndependentStat().registerStat(); - digammaFeel = new Achievement("achievement.digammaFeel", "digammaFeel", 1, 8, ModItems.digamma_feel, digammaSee).initIndependentStat().registerStat(); - digammaKnow = new Achievement("achievement.digammaKnow", "digammaKnow", 3, 8, ModItems.digamma_know, digammaFeel).initIndependentStat().registerStat().setSpecial(); - digammaKauaiMoho = new Achievement("achievement.digammaKauaiMoho", "digammaKauaiMoho", 5, 8, ModItems.digamma_kauai_moho, digammaKnow).initIndependentStat().registerStat().setSpecial(); - digammaUpOnTop = new Achievement("achievement.digammaUpOnTop", "digammaUpOnTop", 7, 8, ModItems.digamma_up_on_top, digammaKauaiMoho).initIndependentStat().registerStat().setSpecial(); + digammaSee = new Achievement("achievement.digammaSee", "digammaSee", -1, 8, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.DIGAMMASEE), null).initIndependentStat().registerStat(); + digammaFeel = new Achievement("achievement.digammaFeel", "digammaFeel", 1, 8, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.DIGAMMAFEEL), digammaSee).initIndependentStat().registerStat(); + digammaKnow = new Achievement("achievement.digammaKnow", "digammaKnow", 3, 8, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.DIGAMMAKNOW), digammaFeel).initIndependentStat().registerStat().setSpecial(); + digammaKauaiMoho = new Achievement("achievement.digammaKauaiMoho", "digammaKauaiMoho", 5, 8, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.DIGAMMAKAUAIMOHO), digammaKnow).initIndependentStat().registerStat().setSpecial(); + digammaUpOnTop = new Achievement("achievement.digammaUpOnTop", "digammaUpOnTop", 7, 8, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.DIGAMMAUPONTOP), digammaKauaiMoho).initIndependentStat().registerStat().setSpecial(); //progression achieves achBurnerPress = new Achievement("achievement.burnerPress", "burnerPress", 0, 0, new ItemStack(ModBlocks.machine_press), null).initIndependentStat().registerStat(); @@ -732,6 +737,7 @@ public class MainRegistry { achSacrifice, achImpossible, achTOB, + achGoFish, achFreytag, achPotato, achC44, @@ -847,6 +853,7 @@ public class MainRegistry { FluidContainerRegistry.register(); TileEntityMachineReactorLarge.registerAll(); BlockToolConversion.registerRecipes(); + AchievementHandler.register(); proxy.registerMissileItems(); @@ -860,9 +867,11 @@ public class MainRegistry { new OreCave(ModBlocks.stone_resource, 0).setThreshold(1.5D).setRangeMult(20).setYLevel(30).setMaxRange(20).withFluid(ModBlocks.sulfuric_acid_block); //sulfur new OreCave(ModBlocks.stone_resource, 1).setThreshold(1.75D).setRangeMult(20).setYLevel(25).setMaxRange(20); //asbestos - new OreLayer3D(ModBlocks.stone_resource, EnumStoneType.HEMATITE.ordinal()); + new OreLayer3D(ModBlocks.stone_resource, EnumStoneType.HEMATITE.ordinal()).setScaleH(0.04D).setScaleV(0.25D).setThreshold(230); + new OreLayer3D(ModBlocks.stone_resource, EnumStoneType.BAUXITE.ordinal()).setScaleH(0.03D).setScaleV(0.15D).setThreshold(300); //new BiomeCave().setThreshold(1.5D).setRangeMult(20).setYLevel(40).setMaxRange(20); //new OreLayer(Blocks.coal_ore, 0.2F).setThreshold(4).setRangeMult(3).setYLevel(70); + BedrockOre.init(); Compat.handleRailcraftNonsense(); SuicideThreadDump.register(); @@ -1104,6 +1113,11 @@ public class MainRegistry { ignoreMappings.add("hbm:item.gun_revolver_lead_ammo"); ignoreMappings.add("hbm:item.gun_revolver_schrabidium_ammo"); ignoreMappings.add("hbm:item.tank_waste"); + ignoreMappings.add("hbm:item.digamma_see"); + ignoreMappings.add("hbm:item.digamma_feel"); + ignoreMappings.add("hbm:item.digamma_know"); + ignoreMappings.add("hbm:item.digamma_kauai_moho"); + ignoreMappings.add("hbm:item.digamma_up_on_top"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 949a92461..00d3a9f64 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -63,6 +63,7 @@ import com.hbm.packet.PlayerInformPacket; import com.hbm.potion.HbmPotion; import com.hbm.saveddata.AuxSavedData; import com.hbm.tileentity.network.RTTYSystem; +import com.hbm.util.AchievementHandler; import com.hbm.util.ArmorUtil; import com.hbm.util.ContaminationUtil; import com.hbm.util.EnchantmentUtil; @@ -1111,31 +1112,12 @@ public class ModEventHandler { @SubscribeEvent public void itemCrafted(PlayerEvent.ItemCraftedEvent e) { - - Item item = e.crafting.getItem(); - - if(item == ModItems.gun_mp40) { - e.player.addStat(MainRegistry.achFreytag, 1); - } - if(item == ModItems.piston_selenium || item == ModItems.gun_b92) { - e.player.addStat(MainRegistry.achSelenium, 1); - } - if(item == ModItems.battery_potatos) { - e.player.addStat(MainRegistry.achPotato, 1); - } - if(item == ModItems.gun_revolver_pip) { - e.player.addStat(MainRegistry.achC44, 1); - } - if(item == Item.getItemFromBlock(ModBlocks.machine_press)) { - e.player.triggerAchievement(MainRegistry.achBurnerPress); - } - if(item == ModItems.rbmk_fuel_empty) { - e.player.triggerAchievement(MainRegistry.achRBMK); - } + AchievementHandler.fire(e.player, e.crafting); } @SubscribeEvent public void itemSmelted(PlayerEvent.ItemSmeltedEvent e) { + AchievementHandler.fire(e.player, e.smelting); if(!e.player.worldObj.isRemote && e.smelting.getItem() == Items.iron_ingot && e.player.getRNG().nextInt(64) == 0) { diff --git a/src/main/java/com/hbm/main/ServerProxy.java b/src/main/java/com/hbm/main/ServerProxy.java index d296c9ab3..ac286d931 100644 --- a/src/main/java/com/hbm/main/ServerProxy.java +++ b/src/main/java/com/hbm/main/ServerProxy.java @@ -24,8 +24,9 @@ public class ServerProxy { public static final int ID_HUD = 5; public static final int ID_DETONATOR = 6; public static final int ID_FLUID_ID = 7; - public static final int ID_GUN_MODE = 8; - public static final int ID_GAS_HAZARD = 9; + public static final int ID_TOOLABILITY = 8; + public static final int ID_GUN_MODE = 9; + public static final int ID_GAS_HAZARD = 10; public void registerRenderInfo() { } public void registerTileEntitySpecialRenderer() { } diff --git a/src/main/java/com/hbm/packet/AnvilCraftPacket.java b/src/main/java/com/hbm/packet/AnvilCraftPacket.java index bc1719702..d8b1049a4 100644 --- a/src/main/java/com/hbm/packet/AnvilCraftPacket.java +++ b/src/main/java/com/hbm/packet/AnvilCraftPacket.java @@ -1,12 +1,9 @@ package com.hbm.packet; -import com.hbm.blocks.ModBlocks; import com.hbm.inventory.container.ContainerAnvil; import com.hbm.inventory.recipes.anvil.AnvilRecipes; import com.hbm.inventory.recipes.anvil.AnvilRecipes.AnvilConstructionRecipe; -import com.hbm.items.ItemAmmoEnums; -import com.hbm.items.ModItems; -import com.hbm.main.MainRegistry; +import com.hbm.util.AchievementHandler; import com.hbm.util.InventoryUtil; import cpw.mods.fml.common.network.simpleimpl.IMessage; @@ -14,7 +11,6 @@ import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; public class AnvilCraftPacket implements IMessage { @@ -65,15 +61,7 @@ public class AnvilCraftPacket implements IMessage { if(InventoryUtil.doesPlayerHaveAStacks(p, recipe.input, true)) { InventoryUtil.giveChanceStacksToPlayer(p, recipe.output); - - if(recipe.output.get(0).stack.getItem() == Item.getItemFromBlock(ModBlocks.machine_difurnace_off)) - p.triggerAchievement(MainRegistry.achBlastFurnace); - if(recipe.output.get(0).stack.getItem() == Item.getItemFromBlock(ModBlocks.machine_assembler)) - p.triggerAchievement(MainRegistry.achAssembly); - if(recipe.output.get(0).stack.getItem() == ModItems.billet_pu_mix) - p.triggerAchievement(MainRegistry.achChicagoPile); - if(recipe.output.get(0).stack.getItem() == ModItems.ammo_4gauge && recipe.output.get(0).stack.getItemDamage() == ItemAmmoEnums.Ammo4Gauge.VAMPIRE.ordinal()) - p.triggerAchievement(MainRegistry.achWitchtaunter); + AchievementHandler.fire(p, recipe.output.get(0).stack); } else { break; diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFMaresLeg.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFMaresLeg.java index b95260b35..f63f1d68e 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFMaresLeg.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFMaresLeg.java @@ -67,6 +67,9 @@ public class ItemRenderWeaponFFMaresLeg implements IItemRenderer { GL11.glTranslated(-0.71, 0.375, 0); GL11.glRotated(25, 1, 0, 0); GL11.glRotated(1, 0, 1, 0); + GL11.glRotated(-3, 0, 0, 1); + GL11.glRotated(0.2, 0, 1, 0); + GL11.glTranslated(-0.006, -0.005, 0.4); } double[] recoil = HbmAnimations.getRelevantTransformation("LEVER_RECOIL"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java index 419664383..f00709901 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java @@ -60,6 +60,7 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement fuelMaxCons.put(Fluids.GAS, 50D); // natgas doesn't burn well so it burns faster to compensate fuelMaxCons.put(Fluids.SYNGAS, 10D); // syngas just fucks fuelMaxCons.put(Fluids.OXYHYDROGEN, 100D); // oxyhydrogen is terrible so it needs to burn a ton for the bare minimum + fuelMaxCons.put(Fluids.REFORMGAS, 2.5D); // halved because it's too powerful // default to 5 if not in list } @@ -121,7 +122,7 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement ForgeDirection rot = dir.getRotation(ForgeDirection.UP); NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", this.power); //set first to get an unmodified view of how much power was generated before deductions from the net + data.setLong("power", Math.min(this.power, this.maxPower)); //set first to get an unmodified view of how much power was generated before deductions from the net //do net/battery deductions first... power = Library.chargeItemsFromTE(slots, 0, power, maxPower); @@ -141,9 +142,6 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement //steam this.sendFluid(tanks[3], worldObj, xCoord + dir.offsetZ * 6, yCoord + 1, zCoord - dir.offsetX * 6, rot.getOpposite()); - //if(audio != null) // audio shouldn't even exist serverside - // audio.updatePitch((float) (0.45 + 0.05 * rpm / 10)); - data.setInteger("rpm", this.rpm); data.setInteger("temp", this.temp); data.setInteger("state", this.state); diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java index 46770f2a6..b936d41b8 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java @@ -1,9 +1,12 @@ package com.hbm.tileentity.machine.storage; +import com.hbm.lib.Library; + import api.hbm.energy.IEnergyConductor; import api.hbm.energy.IEnergyConnector; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; @@ -17,7 +20,41 @@ public class TileEntityMachineFENSU extends TileEntityMachineBattery { @Override public void updateEntity() { - super.updateEntity(); + + if(!worldObj.isRemote) { + + long prevPower = this.power; + + power = Library.chargeItemsFromTE(slots, 1, power, getMaxPower()); + + ////////////////////////////////////////////////////////////////////// + this.transmitPowerFairly(); + ////////////////////////////////////////////////////////////////////// + + byte comp = this.getComparatorPower(); + if(comp != this.lastRedstone) + this.markDirty(); + this.lastRedstone = comp; + + power = Library.chargeTEFromItems(slots, 0, power, getMaxPower()); + + long avg = (power / 2 + prevPower / 2); + this.delta = avg - this.log[0]; + + for(int i = 1; i < this.log.length; i++) { + this.log[i - 1] = this.log[i]; + } + + this.log[19] = avg; + + NBTTagCompound nbt = new NBTTagCompound(); + nbt.setLong("power", avg); + nbt.setLong("delta", delta); + nbt.setShort("redLow", redLow); + nbt.setShort("redHigh", redHigh); + nbt.setByte("priority", (byte) this.priority.ordinal()); + this.networkPack(nbt, 20); + } if(worldObj.isRemote) { this.prevRotation = this.rotation; diff --git a/src/main/java/com/hbm/util/AchievementHandler.java b/src/main/java/com/hbm/util/AchievementHandler.java new file mode 100644 index 000000000..3d395a43e --- /dev/null +++ b/src/main/java/com/hbm/util/AchievementHandler.java @@ -0,0 +1,67 @@ +package com.hbm.util; + +import java.util.HashMap; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.items.ItemAmmoEnums; +import com.hbm.items.ModItems; +import com.hbm.main.MainRegistry; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.stats.Achievement; + +public class AchievementHandler { + + public static HashMap craftingAchievements = new HashMap(); + + public static void register() { + craftingAchievements.put(new ComparableStack(ModItems.gun_mp40), MainRegistry.achFreytag); + craftingAchievements.put(new ComparableStack(ModItems.piston_selenium), MainRegistry.achSelenium); + craftingAchievements.put(new ComparableStack(ModItems.gun_b92), MainRegistry.achSelenium); + craftingAchievements.put(new ComparableStack(ModItems.battery_potatos), MainRegistry.achPotato); + craftingAchievements.put(new ComparableStack(ModItems.gun_revolver_pip), MainRegistry.achC44); + craftingAchievements.put(new ComparableStack(ModBlocks.machine_press), MainRegistry.achBurnerPress); + craftingAchievements.put(new ComparableStack(ModItems.rbmk_fuel_empty), MainRegistry.achRBMK); + craftingAchievements.put(new ComparableStack(ModBlocks.machine_chemplant), MainRegistry.achChemplant); + craftingAchievements.put(new ComparableStack(ModBlocks.concrete_smooth), MainRegistry.achConcrete); + craftingAchievements.put(new ComparableStack(ModBlocks.concrete_asbestos), MainRegistry.achConcrete); + craftingAchievements.put(new ComparableStack(ModItems.ingot_polymer), MainRegistry.achPolymer); + craftingAchievements.put(new ComparableStack(ModItems.ingot_desh), MainRegistry.achDesh); + craftingAchievements.put(new ComparableStack(ModItems.gem_tantalium), MainRegistry.achTantalum); + craftingAchievements.put(new ComparableStack(ModBlocks.machine_gascent), MainRegistry.achGasCent); + craftingAchievements.put(new ComparableStack(ModBlocks.machine_centrifuge), MainRegistry.achCentrifuge); + craftingAchievements.put(new ComparableStack(ModItems.ingot_schrabidium), MainRegistry.achSchrab); + craftingAchievements.put(new ComparableStack(ModItems.nugget_schrabidium), MainRegistry.achSchrab); + craftingAchievements.put(new ComparableStack(ModBlocks.machine_crystallizer), MainRegistry.achAcidizer); + craftingAchievements.put(new ComparableStack(ModBlocks.machine_silex), MainRegistry.achSILEX); + craftingAchievements.put(new ComparableStack(ModItems.nugget_technetium), MainRegistry.achTechnetium); + craftingAchievements.put(new ComparableStack(ModBlocks.struct_watz_core), MainRegistry.achWatz); + craftingAchievements.put(new ComparableStack(ModItems.nugget_bismuth), MainRegistry.achBismuth); + craftingAchievements.put(new ComparableStack(ModItems.nugget_am241), MainRegistry.achBreeding); + craftingAchievements.put(new ComparableStack(ModItems.nugget_am242), MainRegistry.achBreeding); + craftingAchievements.put(new ComparableStack(ModItems.missile_nuclear), MainRegistry.achRedBalloons); + craftingAchievements.put(new ComparableStack(ModItems.missile_nuclear_cluster), MainRegistry.achRedBalloons); + craftingAchievements.put(new ComparableStack(ModItems.missile_doomsday), MainRegistry.achRedBalloons); + craftingAchievements.put(new ComparableStack(ModItems.mp_warhead_10_nuclear), MainRegistry.achRedBalloons); + craftingAchievements.put(new ComparableStack(ModItems.mp_warhead_10_nuclear_large), MainRegistry.achRedBalloons); + craftingAchievements.put(new ComparableStack(ModItems.mp_warhead_15_nuclear), MainRegistry.achRedBalloons); + craftingAchievements.put(new ComparableStack(ModItems.mp_warhead_15_nuclear_shark), MainRegistry.achRedBalloons); + craftingAchievements.put(new ComparableStack(ModItems.mp_warhead_15_boxcar), MainRegistry.achRedBalloons); + craftingAchievements.put(new ComparableStack(ModBlocks.struct_iter_core), MainRegistry.achFusion); + craftingAchievements.put(new ComparableStack(ModBlocks.machine_difurnace_off), MainRegistry.achBlastFurnace); + craftingAchievements.put(new ComparableStack(ModBlocks.machine_assembler), MainRegistry.achAssembly); + craftingAchievements.put(new ComparableStack(ModItems.billet_pu_mix), MainRegistry.achChicagoPile); + craftingAchievements.put(new ComparableStack(ModItems.ammo_4gauge, 1, ItemAmmoEnums.Ammo4Gauge.VAMPIRE.ordinal()), MainRegistry.achWitchtaunter); + } + + public static void fire(EntityPlayer player, ItemStack stack) { + if(player.worldObj.isRemote) return; + ComparableStack comp = new ComparableStack(stack).makeSingular(); + Achievement achievement = craftingAchievements.get(comp); + if(achievement != null) { + player.triggerAchievement(achievement); + } + } +} diff --git a/src/main/java/com/hbm/util/ChatBuilder.java b/src/main/java/com/hbm/util/ChatBuilder.java index 0140af364..9fc0c6169 100644 --- a/src/main/java/com/hbm/util/ChatBuilder.java +++ b/src/main/java/com/hbm/util/ChatBuilder.java @@ -1,10 +1,15 @@ package com.hbm.util; +import java.util.ArrayList; +import java.util.List; +import java.util.ListIterator; + import net.minecraft.util.ChatComponentStyle; import net.minecraft.util.ChatComponentText; import net.minecraft.util.ChatComponentTranslation; import net.minecraft.util.ChatStyle; import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.IChatComponent; public class ChatBuilder { @@ -46,6 +51,24 @@ public class ChatBuilder { return this; } + /** Will recursively go over all IChatComponents added to the root and then set the style */ + public ChatBuilder colorAll(EnumChatFormatting format) { + + List list = new ArrayList(); + list.add(text); + + ListIterator it = list.listIterator(); + + while(it.hasNext()) { + Object o = it.next(); + IChatComponent component = (IChatComponent) o; + component.getChatStyle().setColor(format); + for(Object s : component.getSiblings()) it.add(s); + } + + return this; + } + public ChatComponentText flush() { return this.text; } diff --git a/src/main/java/com/hbm/util/WeightedRandomGeneric.java b/src/main/java/com/hbm/util/WeightedRandomGeneric.java new file mode 100644 index 000000000..e72a7e6e8 --- /dev/null +++ b/src/main/java/com/hbm/util/WeightedRandomGeneric.java @@ -0,0 +1,17 @@ +package com.hbm.util; + +import net.minecraft.util.WeightedRandom; + +public class WeightedRandomGeneric extends WeightedRandom.Item { + + T item; + + public WeightedRandomGeneric(T o, int weight) { + super(weight); + item = o; + } + + public T get() { + return item; + } +} diff --git a/src/main/java/com/hbm/world/feature/BedrockOre.java b/src/main/java/com/hbm/world/feature/BedrockOre.java index 71cd87a12..6d054e206 100644 --- a/src/main/java/com/hbm/world/feature/BedrockOre.java +++ b/src/main/java/com/hbm/world/feature/BedrockOre.java @@ -1,15 +1,49 @@ package com.hbm.world.feature; +import java.util.ArrayList; +import java.util.List; + import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockBedrockOreTE.TileEntityBedrockOre; +import com.hbm.config.WorldConfig; import com.hbm.inventory.FluidStack; +import com.hbm.inventory.OreDictManager.DictFrame; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.items.ModItems; +import com.hbm.items.special.ItemBedrockOre.EnumBedrockOre; +import com.hbm.util.WeightedRandomGeneric; import net.minecraft.block.Block; import net.minecraft.init.Blocks; +import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraft.world.World; public class BedrockOre { + + public static List> weightedOres = new ArrayList(); + + public static void init() { + registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.IRON, 1), WorldConfig.bedrockIronSpawn); + registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.COPPER, 1), WorldConfig.bedrockCopperSpawn); + registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.BORAX, 3, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockBoraxSpawn); + registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.ASBESTOS, 2), WorldConfig.bedrockAsbestosSpawn); + registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.NIOBIUM, 2, new FluidStack(Fluids.ACID, 500)), WorldConfig.bedrockNiobiumSpawn); + registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.TITANIUM, 2, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockTitaniumSpawn); + registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.TUNGSTEN, 2, new FluidStack(Fluids.ACID, 500)), WorldConfig.bedrockTungstenSpawn); + registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.GOLD, 1), WorldConfig.bedrockGoldSpawn); + registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.URANIUM, 4, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockUraniumSpawn); + registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.THORIUM, 4, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockThoriumSpawn); + registerBedrockOre(new BedrockOreDefinition(new ItemStack(Items.coal, 4), 1, 0x202020), WorldConfig.bedrockCoalSpawn); + registerBedrockOre(new BedrockOreDefinition(new ItemStack(ModItems.niter, 4), 2, 0x808080, new FluidStack(Fluids.ACID, 500)), WorldConfig.bedrockNiterSpawn); + registerBedrockOre(new BedrockOreDefinition(new ItemStack(ModItems.fluorite, 4), 1, 0xd0d0d0), WorldConfig.bedrockFluoriteSpawn); + registerBedrockOre(new BedrockOreDefinition(new ItemStack(Items.redstone, 4), 1, 0xd01010), WorldConfig.bedrockRedstoneSpawn); + } + + public static void registerBedrockOre(BedrockOreDefinition def, int weight) { + WeightedRandomGeneric weighted = new WeightedRandomGeneric(def, weight); + weightedOres.add(weighted); + } public static void generate(World world, int x, int z, ItemStack stack, FluidStack acid, int color, int tier) { @@ -49,4 +83,33 @@ public class BedrockOre { } } } + + public static class BedrockOreDefinition { + public ItemStack stack; + public FluidStack acid; + public int tier; + public int color; + + public BedrockOreDefinition(ItemStack stack, int tier, int color) { + this(stack, tier, color, null); + } + + public BedrockOreDefinition(ItemStack stack, int tier, int color, FluidStack acid) { + this.stack = stack; + this.tier = tier; + this.color = color; + this.acid = acid; + } + + public BedrockOreDefinition(EnumBedrockOre type, int tier) { + this(type, tier, null); + } + + public BedrockOreDefinition(EnumBedrockOre type, int tier, FluidStack acid) { + this.stack = DictFrame.fromOne(ModItems.ore_bedrock, type); + this.color = type.color; + this.tier = tier; + this.acid = acid; + } + } } diff --git a/src/main/java/com/hbm/world/feature/OilSpot.java b/src/main/java/com/hbm/world/feature/OilSpot.java index bcd746638..7b02e5263 100644 --- a/src/main/java/com/hbm/world/feature/OilSpot.java +++ b/src/main/java/com/hbm/world/feature/OilSpot.java @@ -80,7 +80,7 @@ public class OilSpot { world.setBlock(rX, y, rZ, ModBlocks.stone_cracked); break; - } else if(ground.getMaterial() == Material.leaves) { + } else if(ground.getMaterial() == Material.leaves && (meta & 8) != 0 && (meta & 4) == 0) { world.setBlockToAir(rX, y, rZ); break; } diff --git a/src/main/java/com/hbm/world/feature/OreLayer3D.java b/src/main/java/com/hbm/world/feature/OreLayer3D.java index 67fecb388..aee3cf43d 100644 --- a/src/main/java/com/hbm/world/feature/OreLayer3D.java +++ b/src/main/java/com/hbm/world/feature/OreLayer3D.java @@ -16,6 +16,10 @@ public class OreLayer3D { NoiseGeneratorPerlin noiseY; NoiseGeneratorPerlin noiseZ; + double scaleH; + double scaleV; + double threshold; + Block block; int meta; int dim = 0; @@ -30,6 +34,21 @@ public class OreLayer3D { this.dim = dim; return this; } + + public OreLayer3D setScaleH(double scale) { + this.scaleH = scale; + return this; + } + + public OreLayer3D setScaleV(double scale) { + this.scaleV = scale; + return this; + } + + public OreLayer3D setThreshold(double threshold) { + this.threshold = threshold; + return this; + } @SubscribeEvent public void onDecorate(DecorateBiomeEvent.Pre event) { @@ -44,9 +63,6 @@ public class OreLayer3D { int cX = event.chunkX; int cZ = event.chunkZ; - - double scaleH = 0.04D; - double scaleV = 0.25D; for(int x = cX + 8; x < cX + 24; x++) { for(int z = cZ + 8; z < cZ + 24; z++) { @@ -55,7 +71,7 @@ public class OreLayer3D { double nY = this.noiseY.func_151601_a(x * scaleH, z * scaleH); double nZ = this.noiseZ.func_151601_a(x * scaleH, y * scaleV); - if(nX * nY * nZ > 220) { + if(nX * nY * nZ > threshold) { Block target = world.getBlock(x, y, z); if(target.isNormalCube() && target.getMaterial() == Material.rock) { diff --git a/src/main/java/com/hbm/world/generator/DungeonToolbox.java b/src/main/java/com/hbm/world/generator/DungeonToolbox.java index f8a739378..7e0a899f9 100644 --- a/src/main/java/com/hbm/world/generator/DungeonToolbox.java +++ b/src/main/java/com/hbm/world/generator/DungeonToolbox.java @@ -3,15 +3,10 @@ package com.hbm.world.generator; import java.util.List; import java.util.Random; -import com.hbm.inventory.FluidStack; import com.hbm.inventory.RecipesCommon.MetaBlock; -import com.hbm.items.ModItems; -import com.hbm.items.special.ItemBedrockOre.EnumBedrockOre; -import com.hbm.world.feature.BedrockOre; import net.minecraft.block.Block; import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraft.world.gen.feature.WorldGenFlowers; @@ -25,11 +20,8 @@ public class DungeonToolbox { return; for(int i = x; i < x + sx; i++) { - for(int j = y; j < y + sy; j++) { - for(int k = z; k < z + sz; k++) { - MetaBlock b = getRandom(blocks, world.rand); world.setBlock(i, j, k, b.block, b.meta, 2); } @@ -93,24 +85,6 @@ public class DungeonToolbox { (new WorldGenMinable(ore, meta, amount, target)).generate(world, rand, x, y, z); } } - - public static void generateBedrockOreWithChance(World world, Random rand, int chunkX, int chunkZ, EnumBedrockOre ore, int tier, int chance) { - if(chance > 0 && rand.nextInt(chance) == 0) generateBedrockOre(world, rand, chunkX, chunkZ, ore, null, tier); - } - - public static void generateBedrockOreWithChance(World world, Random rand, int chunkX, int chunkZ, EnumBedrockOre ore, FluidStack stack, int tier, int chance) { - if(chance > 0 && rand.nextInt(chance) == 0) generateBedrockOre(world, rand, chunkX, chunkZ, ore, stack, tier); - } - - public static void generateBedrockOre(World world, Random rand, int chunkX, int chunkZ, EnumBedrockOre ore, int tier) { - generateBedrockOre(world, rand, chunkX, chunkZ, ore, null, tier); - } - - public static void generateBedrockOre(World world, Random rand, int chunkX, int chunkZ, EnumBedrockOre ore, FluidStack stack, int tier) { - int randPosX = chunkX + rand.nextInt(16) + 8; - int randPosZ = chunkZ + rand.nextInt(16) + 8; - BedrockOre.generate(world, randPosX, randPosZ, new ItemStack(ModItems.ore_bedrock, 1, ore.ordinal()), stack, ore.color, tier); - } private static WorldGenFlowers genFlowers = new WorldGenFlowers(null); public static void generateFlowers(World world, Random rand, int chunkX, int chunkZ, Block flower, int meta) { diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 4e2684089..f17622a7a 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -18,22 +18,24 @@ achievement.c44.desc=Galvanisch verzinkt! ...das macht in der Übersetzung sowas achievement.c44=Kapitel 44 achievement.chemistry.desc=Bobmazon Level 3 (Betonziegel) achievement.chemistry=Chemie -achievement.digammaFeel.desc=the hollow within. -achievement.digammaFeel=The Terror of Feeling +achievement.digammaFeel.desc=Meine Augen bluten +achievement.digammaFeel=SEWAGE-INFUSED GARBAGE WORLD achievement.digammaKauaiMoho.desc=Alles ist schrecklich, hier ist etwas heiße Schoki. -achievement.digammaKauaiMoho=Sing, sing mir das Lied der Kauai Moho +achievement.digammaKauaiMoho=SING, SING ME THE SONG OF THE KAUAI MOHO achievement.digammaKnow.desc=what this world is about. -achievement.digammaKnow=The Terror of Knowing -achievement.digammaSee.desc=into the abyss. -achievement.digammaSee=The Terror of Seeing -achievement.digammaUpOnTop.desc=Bewundere meinen Sohn, er ist mein Klon. -achievement.digammaUpOnTop=Bewundere mich, bewundere mein Heim +achievement.digammaKnow=THE TERROR OF KNOWING +achievement.digammaSee.desc=Es ist Dunkel, bring eine Taschenlampe. +achievement.digammaSee=ENTER THE ABYSS +achievement.digammaUpOnTop.desc=Admire my son, he's my clone. +achievement.digammaUpOnTop=ADMIRE ME, ADMIRE MY HOME achievement.fiend.desc=Sei gemein. achievement.fiend2.desc=Sei gemeiner. achievement.fiend2=Unhold 2: Noch unholdiger achievement.fiend=Unhold achievement.freytag.desc=Leibgarde Herold achievement.freytag=Freytag +achievement.goFish.desc=Kreuzigung auf See +achievement.goFish=Go Fish achievement.hidden.desc=Töte einen Enderman mit einem fallenden Güterwagon wärend du brennst und mehr als 250 RADs hast. achievement.hidden=Versteckter Katalog achievement.horizonsBonus.desc=junge was ist denn mit dir verkehrt @@ -679,6 +681,7 @@ hbmfluid.plasma_xm=Xenon-Quecksilber-Plasma hbmfluid.puf6=Plutoniumhexafluorid hbmfluid.radiosolvent=Hochleistungs-Lösungsmittel hbmfluid.reclaimed=Wiederaufbetreitetes Industrieöl +hbmfluid.redmud=Rotschlamm hbmfluid.reformate=Reformat hbmfluid.reformgas=Reformatgas hbmfluid.salient=Saftiges Grün @@ -2473,6 +2476,8 @@ item.ore.iron=Eisen item.ore.niobium=Niob item.ore.titanium=Titan item.ore.tungsten=Wolfram +item.ore.thorium=Thorium +item.ore.uranium=Uran item.ore_bedrock.name=Bedrock-%serz item.ore_byproduct.b_aluminium.name=Kristallines Aluminiumfragment item.ore_byproduct.b_bismuth.name=Kristallines Bismutfragment @@ -2481,9 +2486,13 @@ item.ore_byproduct.b_copper.name=Kristallines Kupferfragment item.ore_byproduct.b_iron.name=Kristallines Eisenfragment item.ore_byproduct.b_lead.name=Kristallines Bleifragment item.ore_byproduct.b_lithium.name=Kristallines Lithiumfragment +item.ore_byproduct.b_polonium.name=Kristallines Poloniumfragment +item.ore_byproduct.b_radium.name=Kristallines Radiumfragment item.ore_byproduct.b_silicon.name=Kristallines Siliziumfragment item.ore_byproduct.b_sulfur.name=Kristallines Schwefelfragment +item.ore_byproduct.b_technetium.name=Kristallines Technetiumfragment item.ore_byproduct.b_titanium.name=Kristallines Titanfragment +item.ore_byproduct.b_uranium.name=Kristallines Uranfragment item.ore_centrifuged.name=Zentrifugiertes %serz item.ore_cleaned.name=Gereinigtes %serz item.ore_deepcleaned.name=Tiefengereinigtes %serz @@ -2491,7 +2500,7 @@ item.ore_enriched.name=Reiches %serz item.ore_nitrated.name=Nitriertes %serz item.ore_nitrocrystalline.name=Nitrokristallines %serz item.ore_purified.name=Pures %serz -item.ore_radcleaaned.name=Strahlengereinigtes %serz +item.ore_radcleaned.name=Strahlengereinigtes %serz item.ore_seared.name=Geätztes %serz item.ore_separated.name=Separiertes %serz item.overfuse.name=Singularitätsschraubenzieher @@ -4242,6 +4251,7 @@ tile.stone_depth_nether.name=Nether-Tiefenfels tile.stone_gneiss.name=Graphitschiefer tile.stone_porous.name=Poröser Stein tile.stone_resource.asbestos.name=Chrysotil +tile.stone_resource.bauxite.name=Bauxit tile.stone_resource.hematite.name=Hämatit tile.stone_resource.limestone.name=Kalkstein tile.stone_resource.malachite.name=Malachit diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 3758781ef..5a20f09a4 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -36,16 +36,16 @@ achievement.concrete.desc=A Bolshevik's favorite. achievement.concrete=Old Reliable achievement.desh.desc="Come on then, you lot. Places to go!" achievement.desh=Le Verrier -achievement.digammaFeel.desc=the hollow within. -achievement.digammaFeel=The Terror of Feeling +achievement.digammaFeel.desc=My eyes are bleeding +achievement.digammaFeel=SEWAGE-INFUSED GARBAGE WORLD achievement.digammaKauaiMoho.desc=Everything is awful, here's some hot choccy. -achievement.digammaKauaiMoho=Sing, sing me the song of the Kauai Moho +achievement.digammaKauaiMoho=SING, SING ME THE SONG OF THE KAUAI MOHO achievement.digammaKnow.desc=what this world is about. -achievement.digammaKnow=The Terror of Knowing -achievement.digammaSee.desc=into the abyss. -achievement.digammaSee=The Terror of Seeing +achievement.digammaKnow=THE TERROR OF KNOWING +achievement.digammaSee.desc=It's a bit dark, bring a flashlight. +achievement.digammaSee=ENTER THE ABYSS achievement.digammaUpOnTop.desc=Admire my son, he's my clone. -achievement.digammaUpOnTop=Admire Me, Admire my Home +achievement.digammaUpOnTop=ADMIRE ME, ADMIRE MY HOME achievement.fiend.desc=Be mean. achievement.fiend2.desc=Be meaner. achievement.fiend2=Delinquent 2: Delinquent Harder @@ -56,6 +56,8 @@ achievement.fusion.desc=A dance of deuterons, tritons, and energy. achievement.fusion=Fusion achievement.gasCent.desc=Unenriched Uranium hates him! achievement.gasCent=The Zippe Style +achievement.goFish.desc=Nautical Crucifixion +achievement.goFish=Go Fish achievement.hidden.desc=Kill a tainted creeper with a falling boxcar. achievement.hidden=Hidden Catalog achievement.horizonsBonus.desc=honest to god what the hell is wrong with you @@ -1251,6 +1253,7 @@ hbmfluid.plasma_xm=Xenon-Mercury Plasma hbmfluid.puf6=Plutonium Hexafluoride hbmfluid.radiosolvent=High-Performance Solvent hbmfluid.reclaimed=Reclaimed Industrial Oil +hbmfluid.redmud=Red Mud hbmfluid.reformate=Reformate hbmfluid.reformgas=Reformate Gas hbmfluid.salient=Salient Green @@ -3152,6 +3155,8 @@ item.ore.iron=Iron item.ore.niobium=Niobium item.ore.titanium=Titanium item.ore.tungsten=Tungsten +item.ore.thorium=Thorium +item.ore.uranium=Uranium item.ore_bedrock.name=%s Bedrock Ore item.ore_byproduct.b_aluminium.name=Crystalline Aluminium Fragment item.ore_byproduct.b_bismuth.name=Crystalline Bismuth Fragment @@ -3160,9 +3165,13 @@ item.ore_byproduct.b_copper.name=Crystalline Copper Fragment item.ore_byproduct.b_iron.name=Crystalline Iron Fragment item.ore_byproduct.b_lead.name=Crystalline Lead Fragment item.ore_byproduct.b_lithium.name=Crystalline Lithium Fragment +item.ore_byproduct.b_polonium.name=Crystalline Polonium Fragment +item.ore_byproduct.b_radium.name=Crystalline Radium Fragment item.ore_byproduct.b_silicon.name=Crystalline Silicon Fragment item.ore_byproduct.b_sulfur.name=Crystalline Sulfur Fragment +item.ore_byproduct.b_technetium.name=Crystalline Technetium Fragment item.ore_byproduct.b_titanium.name=Crystalline Titanium Fragment +item.ore_byproduct.b_uranium.name=Crystalline Uranium Fragment item.ore_centrifuged.name=Centrifuged %s Ore item.ore_cleaned.name=Cleaned %s Ore item.ore_deepcleaned.name=Deep Cleaned %s Ore @@ -3170,7 +3179,7 @@ item.ore_enriched.name=Enriched %s Ore item.ore_nitrated.name=Nitrated %s Ore item.ore_nitrocrystalline.name=Nitrocrystalline %s Ore item.ore_purified.name=Purified %s Ore -item.ore_raadcleaned.name=Radiation-Cleaned %s Ore +item.ore_radcleaned.name=Radiation-Cleaned %s Ore item.ore_seared.name=Seared %s Ore item.ore_separated.name=Separated %s Ore item.overfuse.name=Singularity Screwdriver @@ -5062,6 +5071,7 @@ tile.stone_depth_nether.name=Nether Depth Rock tile.stone_gneiss.name=Graphitic Schist tile.stone_porous.name=Porous Stone tile.stone_resource.asbestos.name=Chrysotile +tile.stone_resource.bauxite.name=Bauxite tile.stone_resource.hematite.name=Hematite tile.stone_resource.limestone.name=Limestone tile.stone_resource.malachite.name=Malachite diff --git a/src/main/resources/assets/hbm/textures/blocks/stone_resource.bauxite.png b/src/main/resources/assets/hbm/textures/blocks/stone_resource.bauxite.png new file mode 100644 index 000000000..d2b38295d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/stone_resource.bauxite.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/redmud.png b/src/main/resources/assets/hbm/textures/gui/fluids/redmud.png new file mode 100644 index 000000000..05e3c75c0 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/fluids/redmud.png differ diff --git a/src/main/resources/assets/hbm/textures/items/achievement_icon.acid.png b/src/main/resources/assets/hbm/textures/items/achievement_icon.acid.png new file mode 100644 index 000000000..e83e786e3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/achievement_icon.acid.png differ diff --git a/src/main/resources/assets/hbm/textures/items/achievement_icon.balls.png b/src/main/resources/assets/hbm/textures/items/achievement_icon.balls.png new file mode 100644 index 000000000..569a248c0 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/achievement_icon.balls.png differ diff --git a/src/main/resources/assets/hbm/textures/items/digamma_feel.png b/src/main/resources/assets/hbm/textures/items/achievement_icon.digammafeel.png similarity index 100% rename from src/main/resources/assets/hbm/textures/items/digamma_feel.png rename to src/main/resources/assets/hbm/textures/items/achievement_icon.digammafeel.png diff --git a/src/main/resources/assets/hbm/textures/items/achievement_icon.digammaforourright.png b/src/main/resources/assets/hbm/textures/items/achievement_icon.digammaforourright.png new file mode 100644 index 000000000..bccb7255a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/achievement_icon.digammaforourright.png differ diff --git a/src/main/resources/assets/hbm/textures/items/digamma_kauai_moho.png b/src/main/resources/assets/hbm/textures/items/achievement_icon.digammakauaimoho.png similarity index 100% rename from src/main/resources/assets/hbm/textures/items/digamma_kauai_moho.png rename to src/main/resources/assets/hbm/textures/items/achievement_icon.digammakauaimoho.png diff --git a/src/main/resources/assets/hbm/textures/items/digamma_know.png b/src/main/resources/assets/hbm/textures/items/achievement_icon.digammaknow.png similarity index 100% rename from src/main/resources/assets/hbm/textures/items/digamma_know.png rename to src/main/resources/assets/hbm/textures/items/achievement_icon.digammaknow.png diff --git a/src/main/resources/assets/hbm/textures/items/digamma_see.png b/src/main/resources/assets/hbm/textures/items/achievement_icon.digammasee.png similarity index 100% rename from src/main/resources/assets/hbm/textures/items/digamma_see.png rename to src/main/resources/assets/hbm/textures/items/achievement_icon.digammasee.png diff --git a/src/main/resources/assets/hbm/textures/items/digamma_unity.png b/src/main/resources/assets/hbm/textures/items/achievement_icon.digammaunity.png similarity index 100% rename from src/main/resources/assets/hbm/textures/items/digamma_unity.png rename to src/main/resources/assets/hbm/textures/items/achievement_icon.digammaunity.png diff --git a/src/main/resources/assets/hbm/textures/items/digamma_up_on_top.png b/src/main/resources/assets/hbm/textures/items/achievement_icon.digammaupontop.png similarity index 100% rename from src/main/resources/assets/hbm/textures/items/digamma_up_on_top.png rename to src/main/resources/assets/hbm/textures/items/achievement_icon.digammaupontop.png diff --git a/src/main/resources/assets/hbm/textures/items/achievement_icon.gofish.png b/src/main/resources/assets/hbm/textures/items/achievement_icon.gofish.png new file mode 100644 index 000000000..f6622381a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/achievement_icon.gofish.png differ diff --git a/src/main/resources/assets/hbm/textures/items/digamma_128kbps.png b/src/main/resources/assets/hbm/textures/items/digamma_128kbps.png deleted file mode 100644 index 67fa5529e..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/digamma_128kbps.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/digamma_event_horizon.png b/src/main/resources/assets/hbm/textures/items/digamma_event_horizon.png deleted file mode 100644 index 11a7ae960..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/digamma_event_horizon.png and /dev/null differ