From af123ec386225482f71213c00d7ffd54babf9fe9 Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 13 Sep 2021 15:56:18 +0200 Subject: [PATCH] 528: compromise edition, UV lamp model, condenser, bedrock ore --- src/main/java/com/hbm/blocks/ModBlocks.java | 10 + .../hbm/blocks/generic/BlockBedrockOre.java | 51 +++ .../java/com/hbm/blocks/generic/BlockOre.java | 2 + .../hbm/blocks/machine/MachineChungus.java | 2 +- .../hbm/blocks/machine/MachineCondenser.java | 20 ++ .../java/com/hbm/config/GeneralConfig.java | 26 +- .../com/hbm/handler/FluidTypeHandler.java | 3 +- .../java/com/hbm/handler/HazmatRegistry.java | 8 +- .../com/hbm/inventory/MachineRecipes.java | 2 +- src/main/java/com/hbm/items/ModItems.java | 8 +- .../java/com/hbm/items/tool/ItemTooling.java | 16 +- src/main/java/com/hbm/lib/HbmWorldGen.java | 17 +- .../java/com/hbm/tileentity/TileMappings.java | 1 + .../tileentity/machine/TileEntityChungus.java | 2 +- .../machine/TileEntityCondenser.java | 140 ++++++++ .../TileEntityMachineLargeTurbine.java | 2 +- .../machine/TileEntityMachineTurbine.java | 2 +- .../tileentity/machine/rbmk/RBMKDials.java | 2 +- .../assets/hbm/models/machines/uv_lamp.obj | 314 ++++++++++++++++++ .../assets/hbm/textures/blocks/condenser.png | Bin 0 -> 378 bytes .../textures/blocks/ore_bedrock_coltan.png | Bin 0 -> 653 bytes .../assets/hbm/textures/gui/fluids2.png | Bin 27031 -> 27718 bytes .../hbm/textures/models/machines/uv_lamp.png | Bin 0 -> 226 bytes 23 files changed, 607 insertions(+), 21 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/generic/BlockBedrockOre.java create mode 100644 src/main/java/com/hbm/blocks/machine/MachineCondenser.java create mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java create mode 100644 src/main/resources/assets/hbm/models/machines/uv_lamp.obj create mode 100644 src/main/resources/assets/hbm/textures/blocks/condenser.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/ore_bedrock_coltan.png create mode 100644 src/main/resources/assets/hbm/textures/models/machines/uv_lamp.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index fa11e2615..d163610c5 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -77,6 +77,8 @@ public class ModBlocks { public static Block ore_cobalt; public static Block ore_cinnebar; public static Block ore_coltan; + + public static Block ore_bedrock_coltan; public static Block ore_nether_coal; public static Block ore_nether_smoldering; @@ -861,6 +863,7 @@ public class ModBlocks { public static final int guiID_machine_large_turbine = 100; public static Block machine_chungus; + public static Block machine_condenser; public static Block machine_tower_large; public static Block machine_deaerator; @@ -1287,6 +1290,8 @@ public class ModBlocks { ore_cobalt = new BlockOre(Material.rock).setBlockName("ore_cobalt").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_cobalt"); ore_cinnebar = new BlockOre(Material.rock).setBlockName("ore_cinnebar").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_cinnebar"); ore_coltan = new BlockOre(Material.rock).setBlockName("ore_coltan").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_coltan"); + + ore_bedrock_coltan = new BlockBedrockOre().setBlockName("ore_bedrock_coltan").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_bedrock_coltan"); ore_oil = new BlockOre(Material.rock).setBlockName("ore_oil").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_oil"); ore_oil_empty = new BlockGeneric(Material.rock).setBlockName("ore_oil_empty").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_oil_empty"); @@ -1965,6 +1970,7 @@ public class ModBlocks { machine_turbine = new MachineTurbine(Material.iron).setBlockName("machine_turbine").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_turbine"); machine_large_turbine = new MachineLargeTurbine(Material.iron).setBlockName("machine_large_turbine").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_large_turbine"); machine_chungus = new MachineChungus(Material.iron).setBlockName("machine_chungus").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_chungus"); + machine_condenser = new MachineCondenser(Material.iron).setBlockName("machine_condenser").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":condenser"); machine_tower_large = new MachineTowerLarge(Material.iron).setBlockName("machine_tower_large").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_tower_large"); anvil_iron = new NTMAnvil(Material.iron, 1).setBlockName("anvil_iron").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_iron"); @@ -2167,6 +2173,9 @@ public class ModBlocks { GameRegistry.registerBlock(cluster_titanium, ItemBlockCluster.class, cluster_titanium.getUnlocalizedName()); GameRegistry.registerBlock(cluster_aluminium, ItemBlockCluster.class, cluster_aluminium.getUnlocalizedName()); + //Bedrock ores + GameRegistry.registerBlock(ore_bedrock_coltan, ore_bedrock_coltan.getUnlocalizedName()); + //Nice Meme GameRegistry.registerBlock(ore_coal_oil, ore_coal_oil.getUnlocalizedName()); GameRegistry.registerBlock(ore_coal_oil_burning, ore_coal_oil_burning.getUnlocalizedName()); @@ -2800,6 +2809,7 @@ public class ModBlocks { GameRegistry.registerBlock(machine_turbine, machine_turbine.getUnlocalizedName()); GameRegistry.registerBlock(machine_large_turbine, machine_large_turbine.getUnlocalizedName()); GameRegistry.registerBlock(machine_chungus, machine_chungus.getUnlocalizedName()); + GameRegistry.registerBlock(machine_condenser, machine_condenser.getUnlocalizedName()); GameRegistry.registerBlock(machine_tower_large, machine_tower_large.getUnlocalizedName()); GameRegistry.registerBlock(machine_deaerator, machine_deaerator.getUnlocalizedName()); GameRegistry.registerBlock(machine_waste_drum, machine_waste_drum.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/generic/BlockBedrockOre.java b/src/main/java/com/hbm/blocks/generic/BlockBedrockOre.java new file mode 100644 index 000000000..898f4d317 --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockBedrockOre.java @@ -0,0 +1,51 @@ +package com.hbm.blocks.generic; + +import com.hbm.blocks.ModBlocks; +import com.hbm.items.ModItems; + +import api.hbm.block.IDrillInteraction; +import api.hbm.block.IMiningDrill; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class BlockBedrockOre extends Block implements IDrillInteraction { + + public BlockBedrockOre() { + super(Material.rock); + } + + @Override + public boolean canBreak(World world, int x, int y, int z, int meta, IMiningDrill drill) { + return false; + } + + @Override + public ItemStack extractResource(World world, int x, int y, int z, int meta, IMiningDrill drill) { + + if(drill.getDrillRating() > 70) + return null; + + Item drop = this.getDrop(); + + if(drop == null) + return null; + + return world.rand.nextInt(50) == 0 ? new ItemStack(drop) : null; + } + + @Override + public float getRelativeHardness(World world, int x, int y, int z, int meta, IMiningDrill drill) { + return 30; + } + + private Item getDrop() { + + if(this == ModBlocks.ore_bedrock_coltan) + return ModItems.fragment_coltan; + + return null; + } +} diff --git a/src/main/java/com/hbm/blocks/generic/BlockOre.java b/src/main/java/com/hbm/blocks/generic/BlockOre.java index 5d78cbfed..58a129395 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockOre.java +++ b/src/main/java/com/hbm/blocks/generic/BlockOre.java @@ -4,6 +4,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.handler.radiation.ChunkRadiationManager; +import com.hbm.interfaces.Spaghetti; import com.hbm.items.ModItems; import com.hbm.potion.HbmPotion; import cpw.mods.fml.relauncher.Side; @@ -39,6 +40,7 @@ public class BlockOre extends Block { this.rad = rad; } + @Spaghetti("*throws up*") @Override public Item getItemDropped(int i, Random rand, int j) { if(this == ModBlocks.ore_fluorite || this == ModBlocks.basalt_fluorite) { diff --git a/src/main/java/com/hbm/blocks/machine/MachineChungus.java b/src/main/java/com/hbm/blocks/machine/MachineChungus.java index 0d45d9d0c..59e9a0728 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineChungus.java +++ b/src/main/java/com/hbm/blocks/machine/MachineChungus.java @@ -80,7 +80,7 @@ public class MachineChungus extends BlockDummyable { default: case ULTRAHOTSTEAM: entity.tanks[0].setTankType(FluidType.STEAM); - entity.tanks[1].setTankType(FluidType.WATER); + entity.tanks[1].setTankType(FluidType.SPENTSTEAM); entity.tanks[0].setFill(Math.min(entity.tanks[0].getFill() * 1000, entity.tanks[0].getMaxFill())); entity.tanks[1].setFill(0); break; diff --git a/src/main/java/com/hbm/blocks/machine/MachineCondenser.java b/src/main/java/com/hbm/blocks/machine/MachineCondenser.java new file mode 100644 index 000000000..c174e28e2 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineCondenser.java @@ -0,0 +1,20 @@ +package com.hbm.blocks.machine; + +import com.hbm.tileentity.machine.TileEntityCondenser; + +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class MachineCondenser extends BlockContainer { + + public MachineCondenser(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityCondenser(); + } +} diff --git a/src/main/java/com/hbm/config/GeneralConfig.java b/src/main/java/com/hbm/config/GeneralConfig.java index 158cfd0f7..c24240889 100644 --- a/src/main/java/com/hbm/config/GeneralConfig.java +++ b/src/main/java/com/hbm/config/GeneralConfig.java @@ -29,8 +29,15 @@ public class GeneralConfig { public static boolean enableCrosshairs = true; public static boolean enableBabyMode = false; public static boolean enableReflectorCompat = false; - + public static boolean enable528 = false; + public static boolean enable528ReasimBoilers = true; + public static boolean enable528ColtanDeposit = true; + public static boolean enable528ColtanSpawn = false; + public static boolean enable528BedrockDeposit = true; + public static boolean enable528BedrockSpawn = false; + public static int coltanRate = 2; + public static int bedrockRate = 50; public static void loadFromConfig(Configuration config) { @@ -60,9 +67,22 @@ public class GeneralConfig { enableCrosshairs = config.get(CATEGORY_GENERAL, "1.22_enableCrosshairs", true).getBoolean(true); enableBabyMode = config.get(CATEGORY_GENERAL, "1.23_enableBabyMode", false).getBoolean(false); enableReflectorCompat = config.get(CATEGORY_GENERAL, "1.24_enableReflectorCompat", false).getBoolean(false); - + final String CATEGORY_528 = "528"; - enable528 = config.get(CATEGORY_528, "enable528Mode", false).getBoolean(false); + + config.addCustomCategoryComment(CATEGORY_528, "CAUTION\n" + + "528 Mode: Please proceed with caution!\n" + + "528-Modus: Lassen Sie Vorsicht walten!\n" + + "способ-528: действовать с осторожностью!"); + + enable528 = CommonConfig.createConfigBool(config, CATEGORY_528, "enable528Mode", "The central toggle for 528 mode.", false); + enable528ReasimBoilers = CommonConfig.createConfigBool(config, CATEGORY_528, "X528_forceReasimBoilers", "Keeps the RBMK dial for ReaSim boilers on, preventing use of non-ReaSim boiler columns and forcing the use of steam in-/outlets", true); + enable528ColtanDeposit = CommonConfig.createConfigBool(config, CATEGORY_528, "X528_enableColtanDepsoit", "Enables the coltan deposit. A large amount of coltan will spawn around a single random location in the world.", true); + enable528ColtanSpawn = CommonConfig.createConfigBool(config, CATEGORY_528, "X528_enableColtanSpawning", "Enables coltan ore as a random spawn in the world. Unlike the deposit option, coltan will not just spawn in one central location.", false); + enable528BedrockDeposit = CommonConfig.createConfigBool(config, CATEGORY_528, "X528_enableBedrockDepsoit", "Enables bedrock coltan ores in the coltan deposit. These ores can be drilled to extract infinite coltan, albeit slowly.", true); + enable528BedrockSpawn = CommonConfig.createConfigBool(config, CATEGORY_528, "X528_enableBedrockSpawning", "Enables the bedrock coltan ores as a rare spawn. These will be rarely found anywhere in the world.", false); + coltanRate = CommonConfig.createConfigInt(config, CATEGORY_528, "X528_oreColtanFrequency", "Determines how many coltan ore veins are to be expected in a chunk. These values do not affect the frequency in deposits, and only apply if random coltan spanwing is enabled.", 2); + bedrockRate = CommonConfig.createConfigInt(config, CATEGORY_528, "X528_bedrockColtanFrequency", "Determines how often (1 in X) bedrock coltan ores spawn. Applies for both the bedrock ores in the coltan deposit (if applicable) and the random bedrock ores (if applicable)", 50); if(enable528) enableBabyMode = false; } diff --git a/src/main/java/com/hbm/handler/FluidTypeHandler.java b/src/main/java/com/hbm/handler/FluidTypeHandler.java index 19c4676d8..08bb52320 100644 --- a/src/main/java/com/hbm/handler/FluidTypeHandler.java +++ b/src/main/java/com/hbm/handler/FluidTypeHandler.java @@ -81,8 +81,9 @@ public class FluidTypeHandler { WASTEFLUID (0x544400, 0, 2, 2, 2, 0, 1, EnumSymbol.RADIATION, "hbmfluid.wastefluid", FluidTrait.NO_CONTAINER), WASTEGAS (0xB8B8B8, 1, 2, 2, 2, 0, 1, EnumSymbol.RADIATION, "hbmfluid.wastegas", FluidTrait.NO_CONTAINER), - + GASOLINE (0x445772, 2, 2, 2, 1, 2, 0, EnumSymbol.NONE, "hbmfluid.gasoline"), + SPENTSTEAM (0x445772, 3, 2, 2, 2, 0, 0, EnumSymbol.NONE, "hbmfluid.spentsteam", FluidTrait.NO_CONTAINER), PLASMA_DT (0xF7AFDE, 8, 1, 2, 0, 4, 0, EnumSymbol.RADIATION, "hbmfluid.plasma_dt", 3250, FluidTrait.NO_CONTAINER, FluidTrait.NO_ID), PLASMA_HD (0xF0ADF4, 9, 1, 2, 0, 4, 0, EnumSymbol.RADIATION, "hbmfluid.plasma_hd", 2500, FluidTrait.NO_CONTAINER, FluidTrait.NO_ID), diff --git a/src/main/java/com/hbm/handler/HazmatRegistry.java b/src/main/java/com/hbm/handler/HazmatRegistry.java index a808b624e..1193f63dc 100644 --- a/src/main/java/com/hbm/handler/HazmatRegistry.java +++ b/src/main/java/com/hbm/handler/HazmatRegistry.java @@ -32,10 +32,10 @@ public class HazmatRegistry { double alloy = 0.07D; // 15% double cobalt = 0.125D; // 25% - double hazYellow = 0.3D; // 50% - double hazRed = 0.7D; // 80% - double hazGray = 1.3D; // 95% - double paa = 1.3D; // 95% + double hazYellow = 0.6D; // 50% + double hazRed = 1.0D; // 90% + double hazGray = 2D; // 99% + double paa = 1.7D; // 97% double liquidator = 2D; // 99% double t45 = 1D; // 90% diff --git a/src/main/java/com/hbm/inventory/MachineRecipes.java b/src/main/java/com/hbm/inventory/MachineRecipes.java index 838aeb634..dbf676627 100644 --- a/src/main/java/com/hbm/inventory/MachineRecipes.java +++ b/src/main/java/com/hbm/inventory/MachineRecipes.java @@ -250,7 +250,7 @@ public class MachineRecipes { public static Object[] getTurbineOutput(FluidType type) { switch(type) { - case STEAM: return new Object[] { FluidType.WATER, 5, 500, 50 }; + case STEAM: return new Object[] { FluidType.SPENTSTEAM, 5, 500, 50 }; case HOTSTEAM: return new Object[] { FluidType.STEAM, 50, 5, 100 }; case SUPERHOTSTEAM: return new Object[] { FluidType.HOTSTEAM, 50, 5, 150 }; case ULTRAHOTSTEAM: return new Object[] { FluidType.SUPERHOTSTEAM, 50, 5, 250 }; diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index a36996a54..47739e8b4 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -4352,8 +4352,8 @@ public class ModItems { battery_potato = new ItemBattery(1000, 0, 100).setUnlocalizedName("battery_potato").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_potato"); battery_potatos = new ItemPotatos(500000, 0, 100).setUnlocalizedName("battery_potatos").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_potatos"); - battery_su = new ItemBattery(500000, 0, 1000).setUnlocalizedName("battery_su").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_su"); - battery_su_l = new ItemBattery(100000, 0, 1000).setUnlocalizedName("battery_su_l").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_su_l"); + battery_su = new ItemBattery(50000, 0, 1000).setUnlocalizedName("battery_su").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_su"); + battery_su_l = new ItemBattery(150000, 0, 1000).setUnlocalizedName("battery_su_l").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_su_l"); battery_steam = new ItemBattery(60000, 300, 6000).setUnlocalizedName("battery_steam").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_steam"); battery_steam_large = new ItemBattery(100000, 500, 10000).setUnlocalizedName("battery_steam_large").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_steam_large"); hev_battery = new ItemFusionCore(150000).setUnlocalizedName("hev_battery").setMaxStackSize(4).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":hev_battery"); @@ -4363,8 +4363,8 @@ public class ModItems { fuse = new ItemCustomLore().setUnlocalizedName("fuse").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fuse"); redcoil_capacitor = new ItemCapacitor(10).setUnlocalizedName("redcoil_capacitor").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":redcoil_capacitor"); titanium_filter = new ItemCapacitor(6 * 60 * 60 * 20).setUnlocalizedName("titanium_filter").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":titanium_filter"); - screwdriver = new ItemTooling(ToolType.SCREWDRIVER).setUnlocalizedName("screwdriver").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":screwdriver"); - hand_drill = new ItemTooling(ToolType.HAND_DRILL).setUnlocalizedName("hand_drill").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":hand_drill"); + screwdriver = new ItemTooling(ToolType.SCREWDRIVER, 100).setUnlocalizedName("screwdriver").setTextureName(RefStrings.MODID + ":screwdriver"); + hand_drill = new ItemTooling(ToolType.HAND_DRILL, 100).setUnlocalizedName("hand_drill").setTextureName(RefStrings.MODID + ":hand_drill"); overfuse = new ItemCustomLore().setUnlocalizedName("overfuse").setMaxStackSize(1).setFull3D().setTextureName(RefStrings.MODID + ":overfuse"); arc_electrode = new ItemCustomLore().setUnlocalizedName("arc_electrode").setMaxDamage(250).setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setFull3D().setTextureName(RefStrings.MODID + ":arc_electrode"); arc_electrode_burnt = new Item().setUnlocalizedName("arc_electrode_burnt").setMaxStackSize(1).setFull3D().setTextureName(RefStrings.MODID + ":arc_electrode_burnt"); diff --git a/src/main/java/com/hbm/items/tool/ItemTooling.java b/src/main/java/com/hbm/items/tool/ItemTooling.java index 6520cec18..e0438232f 100644 --- a/src/main/java/com/hbm/items/tool/ItemTooling.java +++ b/src/main/java/com/hbm/items/tool/ItemTooling.java @@ -1,5 +1,7 @@ package com.hbm.items.tool; +import com.hbm.main.MainRegistry; + import api.hbm.block.IToolable; import api.hbm.block.IToolable.ToolType; import net.minecraft.block.Block; @@ -12,8 +14,12 @@ public class ItemTooling extends Item { ToolType type; - public ItemTooling(ToolType type) { + public ItemTooling(ToolType type, int durability) { this.type = type; + this.setMaxStackSize(1); + this.setFull3D(); + this.setCreativeTab(MainRegistry.controlTab); + this.setMaxDamage(durability); } @Override @@ -22,7 +28,13 @@ public class ItemTooling extends Item { Block b = world.getBlock(x, y, z); if(b instanceof IToolable) { - return ((IToolable)b).onScrew(world, player, x, y, z, side, fX, fY, fZ, this.type); + if(((IToolable)b).onScrew(world, player, x, y, z, side, fX, fY, fZ, this.type)) { + + if(this.getMaxDamage() > 0) + stack.damageItem(1, player); + + return true; + } } return false; diff --git a/src/main/java/com/hbm/lib/HbmWorldGen.java b/src/main/java/com/hbm/lib/HbmWorldGen.java index 3ad76fcee..47687d53b 100644 --- a/src/main/java/com/hbm/lib/HbmWorldGen.java +++ b/src/main/java/com/hbm/lib/HbmWorldGen.java @@ -109,12 +109,28 @@ public class HbmWorldGen implements IWorldGenerator { DepthDeposit.generateConditionOverworld(world, i, 0, 3, j, 5, 0.6D, ModBlocks.cluster_depth_tungsten, rand, 32); DepthDeposit.generateConditionOverworld(world, i, 0, 3, j, 5, 0.8D, ModBlocks.ore_depth_cinnebar, rand, 16); DepthDeposit.generateConditionOverworld(world, i, 0, 3, j, 5, 0.8D, ModBlocks.ore_depth_zirconium, rand, 16); + + if(GeneralConfig.enable528ColtanSpawn) { + DungeonToolbox.generateOre(world, rand, i, j, GeneralConfig.coltanRate, 4, 15, 40, ModBlocks.ore_coltan); + } Random colRand = new Random(world.getSeed() + 5); int colX = (int) (colRand.nextGaussian() * 1500); int colZ = (int) (colRand.nextGaussian() * 1500); int colRange = 750; + if((GeneralConfig.enable528BedrockSpawn || GeneralConfig.enable528BedrockDeposit) && rand.nextInt(GeneralConfig.bedrockRate) == 0) { + int x = i + rand.nextInt(16); + int z = j + rand.nextInt(16); + int y = rand.nextInt(4) + 1; + + if(GeneralConfig.enable528BedrockSpawn || (GeneralConfig.enable528BedrockDeposit && x <= colX + colRange && x >= colX - colRange && z <= colZ + colRange && z >= colZ - colRange)) { + if(world.getBlock(x, y, z).isReplaceableOreGen(world, x, y, z, Blocks.stone)) { + world.setBlock(x, y, z, ModBlocks.ore_bedrock_coltan); + } + } + } + for (int k = 0; k < 2; k++) { for(int r = 1; r <= 5; r++) { @@ -126,7 +142,6 @@ public class HbmWorldGen implements IWorldGenerator { if(randPosX <= colX + range && randPosX >= colX - range && randPosZ <= colZ + range && randPosZ >= colZ - range) { (new WorldGenMinable(ModBlocks.ore_coltan, 4)).generate(world, rand, randPosX, randPosY, randPosZ); - //(new WorldGenMinable(ModBlocks.stone_porous, 16)).generate(world, rand, randPosX, randPosY, randPosZ); } } } diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 9649cac9f..b75df23a1 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -230,6 +230,7 @@ public class TileMappings { private static void putMachines() { //TODO: bring some order into this garbage dump + map.put(TileEntityCondenser.class, "tileentity_condenser"); map.put(TileEntityTowerLarge.class, "tileentity_cooling_tower_larger"); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java index 01e8d2ca9..64717761f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java @@ -42,7 +42,7 @@ public class TileEntityChungus extends TileEntity implements IFluidAcceptor, IFl tanks = new FluidTank[2]; tanks[0] = new FluidTank(FluidType.STEAM, 1000000000, 0); - tanks[1] = new FluidTank(FluidType.WATER, 1000000000, 1); + tanks[1] = new FluidTank(FluidType.SPENTSTEAM, 1000000000, 1); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java new file mode 100644 index 000000000..3a2b9f345 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java @@ -0,0 +1,140 @@ +package com.hbm.tileentity.machine; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.handler.FluidTypeHandler.FluidType; +import com.hbm.interfaces.IFluidAcceptor; +import com.hbm.interfaces.IFluidSource; +import com.hbm.inventory.FluidTank; +import com.hbm.lib.Library; + +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityCondenser extends TileEntity implements IFluidAcceptor, IFluidSource { + + public int age = 0; + public FluidTank[] tanks; + public List list = new ArrayList(); + + public TileEntityCondenser() { + tanks = new FluidTank[2]; + tanks[0] = new FluidTank(FluidType.SPENTSTEAM, 100, 0); + tanks[1] = new FluidTank(FluidType.WATER, 100, 1); + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + age++; + if(age >= 2) { + age = 0; + } + + int convert = Math.min(tanks[0].getFill(), tanks[1].getMaxFill() - tanks[1].getFill()); + tanks[0].setFill(tanks[0].getFill() - convert); + tanks[1].setFill(tanks[1].getFill() + convert); + + fillFluidInit(tanks[1].getTankType()); + } + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + tanks[0].readFromNBT(nbt, "water"); + tanks[1].readFromNBT(nbt, "steam"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + tanks[0].writeToNBT(nbt, "water"); + tanks[1].writeToNBT(nbt, "steam"); + } + + @Override + public void fillFluidInit(FluidType type) { + + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) + fillFluid(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, getTact(), type); + } + + @Override + public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { + Library.transmitFluid(x, y, z, newTact, this, worldObj, type); + } + + @Override + public boolean getTact() { + if(age == 0) + { + return true; + } + + return false; + } + + @Override + public void setFluidFill(int i, FluidType type) { + if(type.name().equals(tanks[0].getTankType().name())) + tanks[0].setFill(i); + else if(type.name().equals(tanks[1].getTankType().name())) + tanks[1].setFill(i); + } + + @Override + public int getFluidFill(FluidType type) { + if(type.name().equals(tanks[0].getTankType().name())) + return tanks[0].getFill(); + else if(type.name().equals(tanks[1].getTankType().name())) + return tanks[1].getFill(); + + return 0; + } + + @Override + public int getMaxFluidFill(FluidType type) { + if(type.name().equals(tanks[0].getTankType().name())) + return tanks[0].getMaxFill(); + + return 0; + } + + @Override + public void setFillstate(int fill, int index) { + if(index < 2 && tanks[index] != null) + tanks[index].setFill(fill); + } + + @Override + public void setType(FluidType type, int index) { + if(index < 2 && tanks[index] != null) + tanks[index].setTankType(type); + } + + @Override + public List getTanks() { + List list = new ArrayList(); + list.add(tanks[0]); + list.add(tanks[1]); + + return list; + } + + @Override + public List getFluidList(FluidType type) { + return list; + } + + @Override + public void clearFluidList(FluidType type) { + list.clear(); + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java index d154c3066..cdbb0d649 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java @@ -40,7 +40,7 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme tanks = new FluidTank[2]; tanks[0] = new FluidTank(FluidType.STEAM, 512000, 0); - tanks[1] = new FluidTank(FluidType.WATER, 10240000, 1); + tanks[1] = new FluidTank(FluidType.SPENTSTEAM, 10240000, 1); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java index 8fe82d151..698a6d8bb 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java @@ -45,7 +45,7 @@ public class TileEntityMachineTurbine extends TileEntity implements ISidedInvent slots = new ItemStack[7]; tanks = new FluidTank[2]; tanks[0] = new FluidTank(FluidType.STEAM, 64000, 0); - tanks[1] = new FluidTank(FluidType.WATER, 128000, 1); + tanks[1] = new FluidTank(FluidType.SPENTSTEAM, 128000, 1); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/RBMKDials.java b/src/main/java/com/hbm/tileentity/machine/rbmk/RBMKDials.java index e92703e72..d254e00d0 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/RBMKDials.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/RBMKDials.java @@ -194,7 +194,7 @@ public class RBMKDials { * @return */ public static boolean getReasimBoilers(World world) { - return world.getGameRules().getGameRuleBooleanValue(KEY_REASIM_BOILERS) || GeneralConfig.enable528; + return world.getGameRules().getGameRuleBooleanValue(KEY_REASIM_BOILERS) || (GeneralConfig.enable528 && GeneralConfig.enable528ReasimBoilers); } /** diff --git a/src/main/resources/assets/hbm/models/machines/uv_lamp.obj b/src/main/resources/assets/hbm/models/machines/uv_lamp.obj new file mode 100644 index 000000000..3147ef564 --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/uv_lamp.obj @@ -0,0 +1,314 @@ +# Blender v2.79 (sub 0) OBJ File: 'uv_lamp.blend' +# www.blender.org +o On +v -0.093750 0.125000 0.187500 +v 0.093750 0.125000 0.187500 +v -0.093750 0.125000 -0.187500 +v 0.093750 0.125000 -0.187500 +v 0.187500 0.125000 0.093750 +v 0.187500 0.125000 -0.093750 +v -0.187500 0.125000 0.093750 +v -0.187500 0.125000 -0.093750 +v -0.093750 1.875000 0.187500 +v 0.093750 1.875000 0.187500 +v -0.093750 1.875000 -0.187500 +v 0.093750 1.875000 -0.187500 +v 0.187500 1.875000 0.093750 +v 0.187500 1.875000 -0.093750 +v -0.187500 1.875000 0.093750 +v -0.187500 1.875000 -0.093750 +vt 0.771429 0.848485 +vt 0.685714 0.000000 +vt 0.771429 0.000000 +vt 0.685714 0.848485 +vt 0.657143 0.000000 +vt 0.685714 0.000000 +vt 0.771429 0.848485 +vt 0.771429 0.000000 +vt 0.657143 0.848485 +vt 0.657143 0.000000 +vt 0.771429 0.848485 +vt 0.685714 0.000000 +vt 0.771429 0.000000 +vt 0.771429 0.848485 +vt 0.685714 0.000000 +vt 0.771429 0.000000 +vt 0.685714 0.848485 +vt 0.657143 0.000000 +vt 0.657143 0.848485 +vt 0.657143 0.000000 +vt 0.685714 0.848485 +vt 0.657143 0.848485 +vt 0.685714 0.848485 +vt 0.657143 0.848485 +vn 0.0000 0.0000 1.0000 +vn 0.7071 0.0000 0.7071 +vn 1.0000 0.0000 0.0000 +vn -0.7071 0.0000 0.7071 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 -0.7071 +s off +f 10/1/1 1/2/1 2/3/1 +f 13/4/2 2/5/2 5/6/2 +f 14/7/3 5/6/3 6/8/3 +f 1/2/4 15/9/4 7/10/4 +f 11/11/5 4/12/5 3/13/5 +f 15/14/6 8/15/6 7/16/6 +f 16/17/7 3/18/7 8/15/7 +f 4/12/8 14/19/8 6/20/8 +f 10/1/1 9/21/1 1/2/1 +f 13/4/2 10/22/2 2/5/2 +f 14/7/3 13/4/3 5/6/3 +f 1/2/4 9/21/4 15/9/4 +f 11/11/5 12/23/5 4/12/5 +f 15/14/6 16/17/6 8/15/6 +f 16/17/7 11/24/7 3/18/7 +f 4/12/8 12/23/8 14/19/8 +o Off +v -0.093750 0.125000 0.187500 +v 0.093750 0.125000 0.187500 +v -0.093750 0.125000 -0.187500 +v 0.093750 0.125000 -0.187500 +v 0.187500 0.125000 0.093750 +v 0.187500 0.125000 -0.093750 +v -0.187500 0.125000 0.093750 +v -0.187500 0.125000 -0.093750 +v -0.093750 1.875000 0.187500 +v 0.093750 1.875000 0.187500 +v -0.093750 1.875000 -0.187500 +v 0.093750 1.875000 -0.187500 +v 0.187500 1.875000 0.093750 +v 0.187500 1.875000 -0.093750 +v -0.187500 1.875000 0.093750 +v -0.187500 1.875000 -0.093750 +vt 0.657143 0.848485 +vt 0.571429 -0.000000 +vt 0.657143 -0.000000 +vt 0.571429 0.848485 +vt 0.542857 -0.000000 +vt 0.571429 -0.000000 +vt 0.657143 0.848485 +vt 0.657143 -0.000000 +vt 0.542857 0.848485 +vt 0.542857 -0.000000 +vt 0.657143 0.848485 +vt 0.571429 -0.000000 +vt 0.657143 -0.000000 +vt 0.657143 0.848485 +vt 0.571429 -0.000000 +vt 0.657143 -0.000000 +vt 0.571429 0.848485 +vt 0.542857 -0.000000 +vt 0.542857 0.848485 +vt 0.542857 -0.000000 +vt 0.571429 0.848485 +vt 0.542857 0.848485 +vt 0.571429 0.848485 +vt 0.542857 0.848485 +vn 0.0000 0.0000 1.0000 +vn 0.7071 0.0000 0.7071 +vn 1.0000 0.0000 0.0000 +vn -0.7071 0.0000 0.7071 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 -0.7071 +s off +f 26/25/9 17/26/9 18/27/9 +f 29/28/10 18/29/10 21/30/10 +f 30/31/11 21/30/11 22/32/11 +f 17/26/12 31/33/12 23/34/12 +f 27/35/13 20/36/13 19/37/13 +f 31/38/14 24/39/14 23/40/14 +f 32/41/15 19/42/15 24/39/15 +f 20/36/16 30/43/16 22/44/16 +f 26/25/9 25/45/9 17/26/9 +f 29/28/10 26/46/10 18/29/10 +f 30/31/11 29/28/11 21/30/11 +f 17/26/12 25/45/12 31/33/12 +f 27/35/13 28/47/13 20/36/13 +f 31/38/14 32/41/14 24/39/14 +f 32/41/15 27/48/15 19/42/15 +f 20/36/16 28/47/16 30/43/16 +o UV +v -0.500000 0.000000 0.500000 +v 0.500000 0.000000 0.500000 +v -0.500000 0.000000 -0.500000 +v 0.500000 0.000000 -0.500000 +v -0.500000 0.062500 0.500000 +v 0.500000 0.062500 0.500000 +v -0.500000 0.062500 -0.500000 +v 0.500000 0.062500 -0.500000 +v -0.250000 0.062500 0.250000 +v 0.250000 0.062500 0.250000 +v -0.250000 0.062500 -0.250000 +v 0.250000 0.062500 -0.250000 +v -0.250000 0.125000 0.250000 +v 0.250000 0.125000 0.250000 +v -0.250000 0.125000 -0.250000 +v 0.250000 0.125000 -0.250000 +v -0.093750 0.125000 0.093750 +v 0.093750 0.125000 0.093750 +v -0.093750 0.125000 -0.093750 +v 0.093750 0.125000 -0.093750 +v -0.093750 1.875000 0.093750 +v 0.093750 1.875000 0.093750 +v -0.093750 1.875000 -0.093750 +v 0.093750 1.875000 -0.093750 +v -0.250000 1.875000 0.250000 +v 0.250000 1.875000 0.250000 +v -0.250000 1.875000 -0.250000 +v 0.250000 1.875000 -0.250000 +v -0.250000 1.937500 0.250000 +v 0.250000 1.937500 0.250000 +v -0.250000 1.937500 -0.250000 +v 0.250000 1.937500 -0.250000 +v -0.187500 2.000000 -0.187500 +v -0.187500 2.000000 0.187500 +v 0.187500 2.000000 0.187500 +v 0.187500 2.000000 -0.187500 +vt 0.457143 -0.000000 +vt -0.000000 0.484848 +vt -0.000000 -0.000000 +vt -0.000000 0.515152 +vt 0.457143 1.000000 +vt -0.000000 1.000000 +vt 0.457143 0.484848 +vt -0.000000 0.515152 +vt 0.457143 0.484848 +vt 0.457143 0.515152 +vt -0.000000 0.515152 +vt 0.457143 0.484848 +vt 0.457143 0.515152 +vt 0.457143 0.484848 +vt -0.000000 0.515152 +vt -0.000000 0.484848 +vt 0.771429 0.515152 +vt 1.000000 0.757576 +vt 0.771429 0.757576 +vt 0.771429 0.515152 +vt 1.000000 0.484848 +vt 1.000000 0.515152 +vt 1.000000 0.484848 +vt 0.771429 0.515152 +vt 0.771429 0.484848 +vt 1.000000 0.484848 +vt 0.771429 0.484848 +vt 0.771429 0.515152 +vt 1.000000 0.484848 +vt 1.000000 0.515152 +vt 0.542857 0.848485 +vt 0.457143 -0.000000 +vt 0.542857 -0.000000 +vt 0.542857 0.848485 +vt 0.457143 -0.000000 +vt 0.542857 -0.000000 +vt 0.542857 0.848485 +vt 0.457143 -0.000000 +vt 0.542857 -0.000000 +vt 0.542857 0.848485 +vt 0.457143 -0.000000 +vt 0.542857 -0.000000 +vt 1.000000 -0.000000 +vt 0.771429 0.242424 +vt 0.771429 0.000000 +vt 1.000000 0.272727 +vt 0.800000 0.303030 +vt 0.771429 0.272727 +vt 1.000000 0.242424 +vt 0.771429 0.272727 +vt 0.771429 0.242424 +vt 1.000000 0.242424 +vt 0.771429 0.272727 +vt 0.771429 0.242424 +vt 1.000000 0.242424 +vt 0.771429 0.272727 +vt 1.000000 0.242424 +vt 0.771429 0.242424 +vt 0.800000 0.303030 +vt 0.971429 0.484848 +vt 0.800000 0.484848 +vt 1.000000 0.272727 +vt 0.800000 0.303030 +vt 1.000000 0.272727 +vt 0.800000 0.303030 +vt 1.000000 0.272727 +vt 0.457143 0.515152 +vt -0.000000 0.484848 +vt -0.000000 0.484848 +vt 0.457143 0.515152 +vt 1.000000 0.515152 +vt 0.771429 0.484848 +vt 1.000000 0.515152 +vt 0.771429 0.484848 +vt 0.457143 0.848485 +vt 0.457143 0.848485 +vt 0.457143 0.848485 +vt 0.457143 0.848485 +vt 0.971429 0.303030 +vt 0.971429 0.303030 +vt 0.971429 0.303030 +vt 0.971429 0.303030 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn -0.7071 0.7071 0.0000 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.7071 0.7071 +vn 0.7071 0.7071 0.0000 +s off +f 35/49/17 34/50/17 33/51/17 +f 38/52/18 39/53/18 37/54/18 +f 36/55/19 38/52/19 34/50/19 +f 33/56/20 39/57/20 35/58/20 +f 35/59/21 40/60/21 36/61/21 +f 34/62/22 37/63/22 33/64/22 +f 46/65/18 47/66/18 45/67/18 +f 43/68/21 48/69/21 44/70/21 +f 42/71/22 45/72/22 41/73/22 +f 44/74/19 46/65/19 42/75/19 +f 41/76/20 47/77/20 43/78/20 +f 53/79/20 51/80/20 49/81/20 +f 54/82/22 49/83/22 50/84/22 +f 56/85/19 50/86/19 52/87/19 +f 55/88/21 52/89/21 51/90/21 +f 59/91/17 58/92/17 57/93/17 +f 61/94/23 65/95/23 63/96/23 +f 59/97/21 64/98/21 60/99/21 +f 58/100/22 61/101/22 57/102/22 +f 60/103/19 62/104/19 58/92/19 +f 57/105/20 63/96/20 59/106/20 +f 67/107/18 65/108/18 66/109/18 +f 63/110/24 68/111/24 64/98/24 +f 62/112/25 66/113/25 61/101/25 +f 64/114/26 67/107/26 62/104/26 +f 35/49/17 36/55/17 34/50/17 +f 38/52/18 40/115/18 39/53/18 +f 36/55/19 40/115/19 38/52/19 +f 33/56/20 37/116/20 39/57/20 +f 35/59/21 39/117/21 40/60/21 +f 34/62/22 38/118/22 37/63/22 +f 46/65/18 48/119/18 47/66/18 +f 43/68/21 47/120/21 48/69/21 +f 42/71/22 46/121/22 45/72/22 +f 44/74/19 48/119/19 46/65/19 +f 41/76/20 45/122/20 47/77/20 +f 53/79/20 55/123/20 51/80/20 +f 54/82/22 53/124/22 49/83/22 +f 56/85/19 54/125/19 50/86/19 +f 55/88/21 56/126/21 52/89/21 +f 59/91/17 60/103/17 58/92/17 +f 61/94/23 66/127/23 65/95/23 +f 59/97/21 63/110/21 64/98/21 +f 58/100/22 62/112/22 61/101/22 +f 60/103/19 64/114/19 62/104/19 +f 57/105/20 61/94/20 63/96/20 +f 67/107/18 68/128/18 65/108/18 +f 63/110/24 65/129/24 68/111/24 +f 62/112/25 67/130/25 66/113/25 +f 64/114/26 68/128/26 67/107/26 diff --git a/src/main/resources/assets/hbm/textures/blocks/condenser.png b/src/main/resources/assets/hbm/textures/blocks/condenser.png new file mode 100644 index 0000000000000000000000000000000000000000..935ed98cb6b5c26f6d2b46f5df35bda78968d0ff GIT binary patch literal 378 zcmV-=0fqjFP)+s}l%9$OQqRF@*;EKsf-4{{P?eI{Z-JcWqMA)_sF-F7~ky1iRsqpQznEC91<@XohUgNRN9_IPYE`>_6O3k2Z*1~gf{|MfX*b>|%Z Y0E$jcO`fk8`~Uy|07*qoM6N<$f|Ko}6951J literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_bedrock_coltan.png b/src/main/resources/assets/hbm/textures/blocks/ore_bedrock_coltan.png new file mode 100644 index 0000000000000000000000000000000000000000..1e76707745119d5ac3e0b7984c09a7d4d2ef3cf7 GIT binary patch literal 653 zcmV;80&@L{P))s>zJmA zrfKB!dB)@M9N_Zu60Mly_V$)mt3@`OrBbPo6!(07{}%rIMhL-hI7HJlKCQiCwN?i} zG@H#(*L8#t*tSifP#`Jpm!y{08(5Y_5CnX!z9FT)!*QI)5dcn4Pi1pbOi73-38e;r zWmy=80f4Hi*tU&f7?`GsD3wZK5Cl?kdA-48G69e*{eB-!(*PvN%F8r&cXx}uTl+Ep3y4^0<*Vj+fHHXKqAYo6x; z5CddHH#awIZtvna4uipfN~JTjTeIpF#79AfSFQpKHi|7`jC0WehaU2Z8z;#_79v=RwdNkAXyvI#EIyz#1 zf1h5j$Hm130JGVQ#T|K0*;0(rwM9lHlp3DrQLoog6a@g^_pvNXUZW_LN)iCz>gtMi nyN#-<_`c6@IOKnVs2Sid=`0W3l9mTj00000NkvXXu0mjfCgdcH literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/fluids2.png b/src/main/resources/assets/hbm/textures/gui/fluids2.png index 641b409133e151f6b1a70ac98d009955dca649f8..4cb3ffb239ee3f867a61f5aefb0c24304c23bcc8 100755 GIT binary patch delta 12978 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

|^6^|ZBAB4-Y(wm0i=N$;{}hM; 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 delta 12299 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 diff --git a/src/main/resources/assets/hbm/textures/models/machines/uv_lamp.png b/src/main/resources/assets/hbm/textures/models/machines/uv_lamp.png new file mode 100644 index 0000000000000000000000000000000000000000..73af545d4857c4dd860f245e57c1447216bce5b2 GIT binary patch literal 226 zcmeAS@N?(olHy`uVBq!ia0vp^%0R5h!3HFQ1%*HYEX7WqAsj$Z!;#VfqB#IE)UI>*|RUK`ZhcxAXR_$PhIy?&HA7mv1q&gJ+H&I>;i=4-Y&Zi`8bu{DNhxyE%dLvPo) TaLKPgM>2T2`njxgN@xNA=j~O^ literal 0 HcmV?d00001