From fc3bccf6044071df68cff1f240a1e7889b797266 Mon Sep 17 00:00:00 2001 From: Bob Date: Tue, 20 Jul 2021 20:11:00 +0200 Subject: [PATCH] and whatever --- src/main/java/com/hbm/blocks/ModBlocks.java | 20 +++++++-- .../java/com/hbm/blocks/bomb/LaunchPad.java | 4 +- .../com/hbm/blocks/fluid/CoriumBlock.java | 39 ++++++++++++++---- .../com/hbm/blocks/machine/rbmk/RBMKBase.java | 10 +++++ .../hbm/blocks/machine/rbmk/RBMKControl.java | 7 ++++ .../blocks/machine/rbmk/RBMKOutgasser.java | 2 +- .../com/hbm/blocks/machine/rbmk/RBMKRod.java | 7 ++++ .../blocks/machine/rbmk/RBMKRodReaSim.java | 20 +++------ .../com/hbm/inventory/MachineRecipes.java | 3 ++ .../com/hbm/inventory/gui/GUIRBMKConsole.java | 3 +- src/main/java/com/hbm/items/ModItems.java | 9 ++-- .../com/hbm/items/special/ItemCustomLore.java | 8 ++-- src/main/java/com/hbm/main/ClientProxy.java | 21 +++++----- .../java/com/hbm/main/CraftingManager.java | 3 ++ .../java/com/hbm/main/ModEventHandler.java | 12 +++--- .../tileentity/RenderRBMKControlRod.java | 12 +++--- .../hbm/render/tileentity/RenderRBMKLid.java | 12 +++--- .../machine/rbmk/TileEntityRBMKBase.java | 4 ++ .../machine/rbmk/TileEntityRBMKConsole.java | 10 ++++- .../rbmk/TileEntityRBMKControlManual.java | 10 +++++ .../machine/rbmk/TileEntityRBMKOutgasser.java | 4 +- .../machine/rbmk/TileEntityRBMKRod.java | 15 +++++++ .../machine/rbmk/TileEntityRBMKRodReaSim.java | 11 +++++ src/main/resources/assets/hbm/lang/de_DE.lang | 9 ++++ src/main/resources/assets/hbm/lang/en_US.lang | 9 ++++ .../textures/blocks/block_corium_cobble.png | Bin 0 -> 756 bytes .../textures/blocks/rbmk/rbmk_control_mod.png | Bin 0 -> 930 bytes .../textures/blocks/rbmk/rbmk_element_mod.png | Bin 0 -> 919 bytes .../blocks/rbmk/rbmk_element_reasim_mod.png | Bin 0 -> 920 bytes .../gui/reactors/gui_rbmk_console.png | Bin 5728 -> 5798 bytes .../hbm/textures/items/particle_lutece.png | Bin 0 -> 1004 bytes .../textures/items/particle_lutece.png.mcmeta | 5 +++ 32 files changed, 199 insertions(+), 70 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/blocks/block_corium_cobble.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_control_mod.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_mod.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_reasim_mod.png create mode 100644 src/main/resources/assets/hbm/textures/items/particle_lutece.png create mode 100644 src/main/resources/assets/hbm/textures/items/particle_lutece.png.mcmeta diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 04c4d4ff6..0e0e979a9 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -165,6 +165,7 @@ public class ModBlocks { public static Block block_waste_painted; public static Block ancient_scrap; public static Block block_corium; + public static Block block_corium_cobble; public static Block block_scrap; public static Block block_electrical_scrap; public static Block block_beryllium; @@ -933,8 +934,11 @@ public class ModBlocks { public static final int guiID_fritz = 122; public static Block rbmk_rod; + public static Block rbmk_rod_mod; public static Block rbmk_rod_reasim; + public static Block rbmk_rod_reasim_mod; public static Block rbmk_control; + public static Block rbmk_control_mod; public static Block rbmk_control_auto; public static Block rbmk_blank; public static Block rbmk_boiler; @@ -1215,6 +1219,7 @@ public class ModBlocks { block_waste_painted = new BlockNuclearWaste().setDisplayEffect(ExtDisplayEffect.RADFOG).addRadiation(ItemHazard.wst * ItemHazard.block).toBlock().setBlockName("block_waste_painted").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_waste_painted"); ancient_scrap = new BlockOutgas(Material.iron, true, 1, true, true).addRadiation(150F).toBlock().setBlockName("ancient_scrap").setCreativeTab(MainRegistry.blockTab).setHardness(100.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":ancient_scrap"); block_corium = new BlockOutgas(Material.iron, true, 1, true, true).addRadiation(150F).toBlock().setBlockName("block_corium").setCreativeTab(MainRegistry.blockTab).setHardness(100.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":block_corium"); + block_corium_cobble = new BlockOutgas(Material.iron, true, 1, true, true).addRadiation(150F).toBlock().setBlockName("block_corium_cobble").setCreativeTab(MainRegistry.blockTab).setHardness(100.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":block_corium_cobble"); block_scrap = new BlockFalling(Material.sand).setBlockName("block_scrap").setCreativeTab(MainRegistry.blockTab).setHardness(2.5F).setResistance(5.0F).setStepSound(Block.soundTypeGravel).setBlockTextureName(RefStrings.MODID + ":block_scrap"); block_electrical_scrap = new BlockFalling(Material.iron).setBlockName("block_electrical_scrap").setCreativeTab(MainRegistry.blockTab).setHardness(2.5F).setResistance(5.0F).setStepSound(Block.soundTypeMetal).setBlockTextureName(RefStrings.MODID + ":electrical_scrap_alt2"); block_beryllium = new BlockGeneric(Material.iron).setBlockName("block_beryllium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_beryllium"); @@ -1747,9 +1752,12 @@ public class ModBlocks { turret_maxwell = new TurretMaxwell(Material.iron).setBlockName("turret_maxwell").setHardness(5.0F).setResistance(600.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); turret_fritz = new TurretFritz(Material.iron).setBlockName("turret_fritz").setHardness(5.0F).setResistance(600.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - rbmk_rod = new RBMKRod().setBlockName("rbmk_rod").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_element"); - rbmk_rod_reasim = new RBMKRodReaSim().setBlockName("rbmk_rod_reasim").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_element_reasim"); - rbmk_control = new RBMKControl().setBlockName("rbmk_control").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_control"); + rbmk_rod = new RBMKRod(false).setBlockName("rbmk_rod").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_element"); + rbmk_rod_mod = new RBMKRod(true).setBlockName("rbmk_rod_mod").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_element_mod"); + rbmk_rod_reasim = new RBMKRodReaSim(false).setBlockName("rbmk_rod_reasim").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_element_reasim"); + rbmk_rod_reasim_mod = new RBMKRodReaSim(true).setBlockName("rbmk_rod_reasim_mod").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_element_reasim_mod"); + rbmk_control = new RBMKControl(false).setBlockName("rbmk_control").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_control"); + rbmk_control_mod = new RBMKControl(true).setBlockName("rbmk_control_mod").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_control_mod"); rbmk_control_auto = new RBMKControlAuto().setBlockName("rbmk_control_auto").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_control_auto"); rbmk_blank = new RBMKBlank().setBlockName("rbmk_blank").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_blank"); rbmk_boiler = new RBMKBoiler().setBlockName("rbmk_boiler").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_boiler"); @@ -1892,7 +1900,7 @@ public class ModBlocks { FluidRegistry.registerFluid(schrabidic_fluid); schrabidic_block = new SchrabidicBlock(schrabidic_fluid, fluidschrabidic.setReplaceable(), ModDamageSource.radiation).setBlockName("schrabidic_block").setResistance(500F); - corium_fluid = new CoriumFluid().setDensity(6000).setViscosity(500).setLuminosity(10).setTemperature(600).setUnlocalizedName("corium_fluid"); + corium_fluid = new CoriumFluid().setDensity(600000).setViscosity(12000).setLuminosity(10).setTemperature(1500).setUnlocalizedName("corium_fluid"); FluidRegistry.registerFluid(corium_fluid); corium_block = new CoriumBlock(corium_fluid, fluidcorium).setBlockName("corium_block").setResistance(500F); @@ -2116,6 +2124,7 @@ public class ModBlocks { GameRegistry.registerBlock(block_waste_painted, ItemBlockHazard.class, block_waste_painted.getUnlocalizedName()); GameRegistry.registerBlock(ancient_scrap, ItemBlockHazard.class, ancient_scrap.getUnlocalizedName()); GameRegistry.registerBlock(block_corium, ItemBlockHazard.class, block_corium.getUnlocalizedName()); + GameRegistry.registerBlock(block_corium_cobble, ItemBlockHazard.class, block_corium_cobble.getUnlocalizedName()); GameRegistry.registerBlock(block_schraranium, ItemBlockSchrabidium.class, block_schraranium.getUnlocalizedName()); GameRegistry.registerBlock(block_schrabidium, ItemBlockSchrabidium.class, block_schrabidium.getUnlocalizedName()); GameRegistry.registerBlock(block_schrabidate, ItemBlockSchrabidium.class, block_schrabidate.getUnlocalizedName()); @@ -2511,8 +2520,11 @@ public class ModBlocks { GameRegistry.registerBlock(hadron_core, hadron_core.getUnlocalizedName()); GameRegistry.registerBlock(rbmk_rod, rbmk_rod.getUnlocalizedName()); + GameRegistry.registerBlock(rbmk_rod_mod, rbmk_rod_mod.getUnlocalizedName()); GameRegistry.registerBlock(rbmk_rod_reasim, rbmk_rod_reasim.getUnlocalizedName()); + GameRegistry.registerBlock(rbmk_rod_reasim_mod, rbmk_rod_reasim_mod.getUnlocalizedName()); GameRegistry.registerBlock(rbmk_control, rbmk_control.getUnlocalizedName()); + GameRegistry.registerBlock(rbmk_control_mod, rbmk_control_mod.getUnlocalizedName()); GameRegistry.registerBlock(rbmk_control_auto, rbmk_control_auto.getUnlocalizedName()); GameRegistry.registerBlock(rbmk_blank, rbmk_blank.getUnlocalizedName()); GameRegistry.registerBlock(rbmk_boiler, rbmk_boiler.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/bomb/LaunchPad.java b/src/main/java/com/hbm/blocks/bomb/LaunchPad.java index 4500b0d90..a2a388052 100644 --- a/src/main/java/com/hbm/blocks/bomb/LaunchPad.java +++ b/src/main/java/com/hbm/blocks/bomb/LaunchPad.java @@ -289,7 +289,7 @@ public class LaunchPad extends BlockContainer implements IBomb { MainRegistry.logger.log(Level.INFO, "[MISSILE] Tried to launch missile at " + x + " / " + y + " / " + z + " to " + xCoord + " / " + zCoord + "!"); } - if(entity.slots[0].getItem() == ModItems.missile_carrier && entity.power >= 75000) { + if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_carrier && entity.power >= 75000) { EntityCarrier missile = new EntityCarrier(world); missile.posX = x + 0.5F; missile.posY = y + 1F; @@ -306,7 +306,7 @@ public class LaunchPad extends BlockContainer implements IBomb { world.playSoundEffect(x, y, z, "hbm:entity.rocketTakeoff", 100.0F, 1.0F); } - if(entity.slots[0].getItem() == ModItems.missile_anti_ballistic && entity.power >= 75000) { + if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_anti_ballistic && entity.power >= 75000) { EntityMissileAntiBallistic missile = new EntityMissileAntiBallistic(world); missile.posX = x + 0.5F; missile.posY = y + 0.5F; diff --git a/src/main/java/com/hbm/blocks/fluid/CoriumBlock.java b/src/main/java/com/hbm/blocks/fluid/CoriumBlock.java index 878f8b092..d487f5b38 100644 --- a/src/main/java/com/hbm/blocks/fluid/CoriumBlock.java +++ b/src/main/java/com/hbm/blocks/fluid/CoriumBlock.java @@ -3,13 +3,19 @@ package com.hbm.blocks.fluid; import java.util.Random; import com.hbm.blocks.ModBlocks; +import com.hbm.lib.ModDamageSource; import com.hbm.lib.RefStrings; +import com.hbm.util.ContaminationUtil; +import com.hbm.util.ContaminationUtil.ContaminationType; +import com.hbm.util.ContaminationUtil.HazardType; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; @@ -49,11 +55,14 @@ public class CoriumBlock extends BlockFluidClassic { @Override public boolean canDisplace(IBlockAccess world, int x, int y, int z) { - - if(world.getBlock(x, y, z).getMaterial().isLiquid()) { - return false; - } - return super.canDisplace(world, x, y, z); + Block b = world.getBlock(x, y, z); + float res = (float) (Math.sqrt(b.getExplosionResistance(null)) * 3); + + if(res < 1) + return true; + Random rand = new Random(); + + return b.getMaterial().isLiquid() || rand.nextInt((int) res) == 0; } @Override @@ -62,12 +71,17 @@ public class CoriumBlock extends BlockFluidClassic { if(world.getBlock(x, y, z).getMaterial().isLiquid()) { return false; } - return super.displaceIfPossible(world, x, y, z); + return canDisplace(world, x, y, z); } @Override public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) { entity.setInWeb(); + entity.setFire(3); + entity.attackEntityFrom(ModDamageSource.radiation, 2F); + + if(entity instanceof EntityLivingBase) + ContaminationUtil.contaminate((EntityLivingBase)entity, HazardType.RADIATION, ContaminationType.CREATIVE, 1F); } //TODO: slow down solidification, prevent displacement @@ -77,8 +91,12 @@ public class CoriumBlock extends BlockFluidClassic { super.updateTick(world, x, y, z, rand); - if(!world.isRemote && rand.nextInt(10) == 0 && this.isSourceBlock(world, x, y, z)) { - world.setBlock(x, y, z, ModBlocks.block_corium); + if(!world.isRemote && rand.nextInt(10) == 0) { + + if(this.isSourceBlock(world, x, y, z)) + world.setBlock(x, y, z, ModBlocks.block_corium); + else + world.setBlock(x, y, z, ModBlocks.block_corium_cobble); } } @@ -87,4 +105,9 @@ public class CoriumBlock extends BlockFluidClassic { public int getRenderBlockPass() { return 0; } + + @Override + public boolean isReplaceable(IBlockAccess world, int x, int y, int z) { + return false; + } } diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKBase.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKBase.java index 7b35b6d7d..b48a37de5 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKBase.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKBase.java @@ -4,6 +4,7 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.handler.MultiblockHandlerXR; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemRBMKLid; +import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.rbmk.RBMKDials; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKBase; @@ -18,6 +19,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -25,6 +27,7 @@ public abstract class RBMKBase extends BlockDummyable implements IScrewable { public static boolean dropLids = true; public static boolean digamma = false; + public ResourceLocation coverTexture; protected RBMKBase() { super(Material.iron); @@ -32,6 +35,13 @@ public abstract class RBMKBase extends BlockDummyable implements IScrewable { this.setResistance(30F); } + @Override + public Block setBlockTextureName(String texture) { + this.textureName = texture; + this.coverTexture = new ResourceLocation(RefStrings.MODID + ":textures/blocks/" + (texture.split(":")[1]) + ".png"); + return this; + } + @Override public int[] getDimensions() { return new int[] {3, 0, 0, 0, 0, 0}; diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKControl.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKControl.java index 7698aa8b6..edd6cdd87 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKControl.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKControl.java @@ -9,6 +9,13 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; public class RBMKControl extends RBMKBase { + + public boolean moderated = false; + + public RBMKControl(boolean moderated) { + super(); + this.moderated = moderated; + } @Override public TileEntity createNewTileEntity(World world, int meta) { diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKOutgasser.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKOutgasser.java index 303fb345b..71bd37d82 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKOutgasser.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKOutgasser.java @@ -24,7 +24,7 @@ public class RBMKOutgasser extends RBMKBase { @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - return openInv(world, x, y, z, player, ModBlocks.guiID_rbmk_outgasser); + return false; //return openInv(world, x, y, z, player, ModBlocks.guiID_rbmk_outgasser); } @Override diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKRod.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKRod.java index 32a49c780..9e43a6e35 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKRod.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKRod.java @@ -10,6 +10,13 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; public class RBMKRod extends RBMKBase { + + public boolean moderated = false; + + public RBMKRod(boolean moderated) { + super(); + this.moderated = moderated; + } @Override public TileEntity createNewTileEntity(World world, int meta) { diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKRodReaSim.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKRodReaSim.java index 20d34ba7c..efd8e14f4 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKRodReaSim.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKRodReaSim.java @@ -1,15 +1,16 @@ package com.hbm.blocks.machine.rbmk; -import com.hbm.blocks.ModBlocks; -import com.hbm.handler.BossSpawnHandler; import com.hbm.tileentity.TileEntityProxyInventory; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKRodReaSim; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; -public class RBMKRodReaSim extends RBMKBase { +public class RBMKRodReaSim extends RBMKRod { + + public RBMKRodReaSim(boolean moderated) { + super(moderated); + } @Override public TileEntity createNewTileEntity(World world, int meta) { @@ -22,15 +23,4 @@ public class RBMKRodReaSim extends RBMKBase { return null; } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - BossSpawnHandler.markFBI(player); - return openInv(world, x, y, z, player, ModBlocks.guiID_rbmk_rod); - } - - @Override - public int getRenderType(){ - return this.renderIDRods; - } } diff --git a/src/main/java/com/hbm/inventory/MachineRecipes.java b/src/main/java/com/hbm/inventory/MachineRecipes.java index 08fde22bb..22463e9dd 100644 --- a/src/main/java/com/hbm/inventory/MachineRecipes.java +++ b/src/main/java/com/hbm/inventory/MachineRecipes.java @@ -404,6 +404,8 @@ public class MachineRecipes { return new ItemStack(ModItems.circuit_aluminium); if(input.getItem() == ModItems.circuit_bismuth_raw) return new ItemStack(ModItems.circuit_bismuth); + if(input.getItem() == ModItems.circuit_tantalium_raw) + return new ItemStack(ModItems.circuit_tantalium); } if(stamp.getItem() == ModItems.stamp_357) { @@ -516,6 +518,7 @@ public class MachineRecipes { recipes.put(new Object[] { i_stamps_circuit, new ItemStack(ModItems.circuit_raw) }, getPressResultNN(stamps_circuit.get(0), ModItems.circuit_raw)); recipes.put(new Object[] { i_stamps_circuit, new ItemStack(ModItems.circuit_bismuth_raw) }, getPressResultNN(stamps_circuit.get(0), ModItems.circuit_bismuth_raw)); + recipes.put(new Object[] { i_stamps_circuit, new ItemStack(ModItems.circuit_tantalium_raw) }, getPressResultNN(stamps_circuit.get(0), ModItems.circuit_tantalium_raw)); recipes.put(new Object[] { i_stamps_357, new ItemStack(ModItems.assembly_iron) }, getPressResultNN(i_stamps_357.get(0).getItem(), ModItems.assembly_iron)); recipes.put(new Object[] { i_stamps_357, new ItemStack(ModItems.assembly_steel) }, getPressResultNN(i_stamps_357.get(0).getItem(), ModItems.assembly_steel)); diff --git a/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java b/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java index 3938362ca..d85718f15 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java +++ b/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java @@ -250,8 +250,9 @@ public class GUIRBMKConsole extends GuiInfoContainer { int fr = 8 - (int)Math.ceil((col.data.getDouble("level") * 8)); drawTexturedModalRect(guiLeft + x + 4, guiTop + y + 1, 24, 183, 2, fr); break; - + case FUEL: + case FUEL_SIM: if(col.data.hasKey("c_heat")) { int fh = (int)Math.ceil((col.data.getDouble("c_heat") - 20) * 8 / col.data.getDouble("c_maxHeat")); drawTexturedModalRect(guiLeft + x + 1, guiTop + y + size - fh - 1, 11, 191 - fh, 2, fh); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 53b3491df..5bb22059a 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -740,6 +740,7 @@ public class ModItems { public static Item particle_dark; public static Item particle_sparkticle; public static Item particle_digamma; + public static Item particle_lutece; public static Item pellet_antimatter; public static Item singularity; @@ -2617,8 +2618,8 @@ public class ModItems { nugget_lead = new Item().setUnlocalizedName("nugget_lead").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_lead"); ingot_bismuth = new ItemCustomLore().setUnlocalizedName("ingot_bismuth").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_bismuth"); nugget_bismuth = new Item().setUnlocalizedName("nugget_bismuth").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_bismuth"); - ingot_tantalium = new Item().setUnlocalizedName("ingot_tantalium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_tantalium"); - nugget_tantalium = new Item().setUnlocalizedName("nugget_tantalium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_tantalium"); + ingot_tantalium = new ItemCustomLore().setUnlocalizedName("ingot_tantalium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_tantalium"); + nugget_tantalium = new ItemCustomLore().setUnlocalizedName("nugget_tantalium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_tantalium"); nugget_schrabidium = new ItemHazard(ItemHazard.sa326 * ItemHazard.nugget, false, true).setUnlocalizedName("nugget_schrabidium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_schrabidium"); nugget_beryllium = new Item().setUnlocalizedName("nugget_beryllium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_beryllium"); hazmat_cloth = new Item().setUnlocalizedName("hazmat_cloth").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":hazmat_cloth"); @@ -2657,7 +2658,7 @@ public class ModItems { crystal_lithium = new ItemHazard().addHydroReactivity().toItem().setUnlocalizedName("crystal_lithium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_lithium"); crystal_starmetal = new Item().setUnlocalizedName("crystal_starmetal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_starmetal"); crystal_trixite = new ItemHazard().addRadiation(ItemHazard.trx * ItemHazard.crystal).toItem().setUnlocalizedName("crystal_trixite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_trixite"); - gem_tantalium = new Item().setUnlocalizedName("gem_tantalium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":gem_tantalium"); + gem_tantalium = new ItemCustomLore().setUnlocalizedName("gem_tantalium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":gem_tantalium"); powder_lead = new Item().setUnlocalizedName("powder_lead").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_lead"); powder_neptunium = new ItemHazard(ItemHazard.np237 * ItemHazard.powder, true).setUnlocalizedName("powder_neptunium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_neptunium"); @@ -2989,6 +2990,7 @@ public class ModItems { particle_dark = new Item().setUnlocalizedName("particle_dark").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.particle_empty).setTextureName(RefStrings.MODID + ":particle_dark"); particle_sparkticle = new Item().setUnlocalizedName("particle_sparkticle").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.particle_empty).setTextureName(RefStrings.MODID + ":particle_sparkticle"); particle_digamma = new ItemDigamma(100F, 60).setUnlocalizedName("particle_digamma").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.particle_empty).setTextureName(RefStrings.MODID + ":particle_digamma"); + particle_lutece = new Item().setUnlocalizedName("particle_lutece").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.particle_empty).setTextureName(RefStrings.MODID + ":particle_lutece"); singularity = new ItemDrop().setUnlocalizedName("singularity").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.nuclear_waste).setTextureName(RefStrings.MODID + ":singularity"); singularity_counter_resonant = new ItemDrop().setUnlocalizedName("singularity_counter_resonant").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.nuclear_waste).setTextureName(RefStrings.MODID + ":singularity_alt"); @@ -5851,6 +5853,7 @@ public class ModItems { GameRegistry.registerItem(particle_dark, particle_dark.getUnlocalizedName()); GameRegistry.registerItem(particle_sparkticle, particle_sparkticle.getUnlocalizedName()); GameRegistry.registerItem(particle_digamma, particle_digamma.getUnlocalizedName()); + GameRegistry.registerItem(particle_lutece, particle_lutece.getUnlocalizedName()); //OMG how the hell is that even possible!? GameRegistry.registerItem(singularity, singularity.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/special/ItemCustomLore.java b/src/main/java/com/hbm/items/special/ItemCustomLore.java index afd3a3fad..656f451e9 100644 --- a/src/main/java/com/hbm/items/special/ItemCustomLore.java +++ b/src/main/java/com/hbm/items/special/ItemCustomLore.java @@ -407,14 +407,12 @@ public class ItemCustomLore extends Item { if(this == ModItems.ingot_lanthanium) { - list.add("Or 'Lanthanum' for stupid people."); + list.add("'Lanthanum'"); } - if(this == ModItems.ingot_bismuth) + if(this == ModItems.ingot_tantalium || this == ModItems.nugget_tantalium || this == ModItems.gem_tantalium) { - list.add("\"Bismuth acts as post-RBMK gate, similar to Technetium"); - list.add("with the difference that Technetium is also available"); - list.add("from PWRs.\" <- THAT is what I needed to hear."); + list.add("'Tantalum'"); } if(this == ModItems.undefined) { diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index cabaa07a7..66f62fd9a 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -50,7 +50,6 @@ import com.hbm.entity.projectile.*; import com.hbm.handler.HbmKeybinds; import com.hbm.handler.HbmKeybinds.EnumKeybind; import com.hbm.items.ModItems; -import com.hbm.lib.RefStrings; import com.hbm.particle.*; import com.hbm.render.anim.*; import com.hbm.render.anim.HbmAnimations.Animation; @@ -214,17 +213,17 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityITERStruct.class, new RenderITERMultiblock()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPlasmaStruct.class, new RenderPlasmaMultiblock()); //RBMK - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKControlManual.class, new RenderRBMKControlRod(RefStrings.MODID + ":textures/blocks/rbmk/rbmk_control.png")); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKControlAuto.class, new RenderRBMKControlRod(RefStrings.MODID + ":textures/blocks/rbmk/rbmk_control_auto.png")); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKControlManual.class, new RenderRBMKControlRod()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKControlAuto.class, new RenderRBMKControlRod()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKConsole.class, new RenderRBMKConsole()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKAbsorber.class, new RenderRBMKLid(RefStrings.MODID + ":textures/blocks/rbmk/rbmk_absorber")); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKBlank.class, new RenderRBMKLid(RefStrings.MODID + ":textures/blocks/rbmk/rbmk_blank")); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKBoiler.class, new RenderRBMKLid(RefStrings.MODID + ":textures/blocks/rbmk/rbmk_boiler")); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKModerator.class, new RenderRBMKLid(RefStrings.MODID + ":textures/blocks/rbmk/rbmk_moderator")); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKOutgasser.class, new RenderRBMKLid(RefStrings.MODID + ":textures/blocks/rbmk/rbmk_outgasser")); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKReflector.class, new RenderRBMKLid(RefStrings.MODID + ":textures/blocks/rbmk/rbmk_reflector")); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKRod.class, new RenderRBMKLid(RefStrings.MODID + ":textures/blocks/rbmk/rbmk_element")); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKRodReaSim.class, new RenderRBMKLid(RefStrings.MODID + ":textures/blocks/rbmk/rbmk_element_reasim")); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKAbsorber.class, new RenderRBMKLid()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKBlank.class, new RenderRBMKLid()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKBoiler.class, new RenderRBMKLid()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKModerator.class, new RenderRBMKLid()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKOutgasser.class, new RenderRBMKLid()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKReflector.class, new RenderRBMKLid()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKRod.class, new RenderRBMKLid()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKRodReaSim.class, new RenderRBMKLid()); //ITER ClientRegistry.bindTileEntitySpecialRenderer(TileEntityITER.class, new RenderITER()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachinePlasmaHeater.class, new RenderPlasmaHeater()); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 183369be3..7e59d8e3d 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -749,10 +749,13 @@ public class CraftingManager { GameRegistry.addRecipe(new ItemStack(ModBlocks.rbmk_absorber, 1), new Object[] { "GGG", "GRG", "GGG", 'G', ModItems.ingot_boron, 'R', ModBlocks.rbmk_blank }); GameRegistry.addRecipe(new ItemStack(ModBlocks.rbmk_reflector, 1), new Object[] { "GGG", "GRG", "GGG", 'G', ModItems.neutron_reflector, 'R', ModBlocks.rbmk_blank }); GameRegistry.addRecipe(new ItemStack(ModBlocks.rbmk_control, 1), new Object[] { " B ", "GRG", " B ", 'G', ModItems.ingot_graphite, 'B', ModItems.motor, 'R', ModBlocks.rbmk_absorber }); + GameRegistry.addRecipe(new ItemStack(ModBlocks.rbmk_control_mod, 1), new Object[] { "BGB", "GRG", "BGB", 'G', ModBlocks.block_graphite, 'R', ModBlocks.rbmk_control, 'B', ModItems.nugget_bismuth }); GameRegistry.addRecipe(new ItemStack(ModBlocks.rbmk_control_auto, 1), new Object[] { "C", "R", "C", 'C', ModItems.circuit_targeting_tier1, 'R', ModBlocks.rbmk_control }); GameRegistry.addRecipe(new ItemStack(ModBlocks.rbmk_boiler, 1), new Object[] { "CPC", "CRC", "CPC", 'C', ModItems.board_copper, 'P', ModItems.pipes_steel, 'R', ModBlocks.rbmk_blank }); GameRegistry.addRecipe(new ItemStack(ModBlocks.rbmk_rod, 1), new Object[] { "C", "R", "C", 'C', ModItems.hull_small_steel, 'R', ModBlocks.rbmk_blank }); + GameRegistry.addRecipe(new ItemStack(ModBlocks.rbmk_rod_mod, 1), new Object[] { "BGB", "GRG", "BGB", 'G', ModBlocks.block_graphite, 'R', ModBlocks.rbmk_rod, 'B', ModItems.nugget_bismuth }); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.rbmk_rod_reasim, 1), new Object[] { "ZCZ", "ZRZ", "ZCZ", 'C', ModItems.hull_small_steel, 'R', ModBlocks.rbmk_blank, 'Z', "ingotZirconium" })); + GameRegistry.addRecipe(new ItemStack(ModBlocks.rbmk_rod_reasim_mod, 1), new Object[] { "BGB", "GRG", "BGB", 'G', ModBlocks.block_graphite, 'R', ModBlocks.rbmk_rod_reasim, 'B', ModItems.ingot_tcalloy }); GameRegistry.addRecipe(new ItemStack(ModBlocks.rbmk_outgasser, 1), new Object[] { "GHG", "GRG", "GTG", 'G', ModBlocks.steel_grate, 'H', Blocks.hopper, 'T', ModItems.tank_steel, 'R', ModBlocks.rbmk_blank }); GameRegistry.addRecipe(new ItemStack(ModBlocks.rbmk_console, 1), new Object[] { "PPP", "PCP", "PPP", 'C', ModItems.circuit_targeting_tier3, 'P', Items.potato }); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.rbmk_loader, 1), new Object[] { "SCS", "CBC", "SCS", 'S', "plateSteel", 'C', "ingotCopper", 'B', ModItems.tank_steel })); diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index c05a80c42..9949d5b96 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -741,11 +741,13 @@ public class ModEventHandler { if(player.getCurrentArmor(2) == null && !player.onGround) { - if(player.fallDistance > 0) - player.fallDistance = 0; - - if(player.motionY < -0.4D) - player.motionY = -0.4D; + if(!player.isSneaking()) { + if(player.fallDistance > 0) + player.fallDistance = 0; + + if(player.motionY < -0.4D) + player.motionY = -0.4D; + } HbmPlayerProps props = HbmPlayerProps.getData(player); diff --git a/src/main/java/com/hbm/render/tileentity/RenderRBMKControlRod.java b/src/main/java/com/hbm/render/tileentity/RenderRBMKControlRod.java index 5984b1818..0420f0ecb 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderRBMKControlRod.java +++ b/src/main/java/com/hbm/render/tileentity/RenderRBMKControlRod.java @@ -2,6 +2,7 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; +import com.hbm.blocks.machine.rbmk.RBMKBase; import com.hbm.lib.RefStrings; import com.hbm.main.ResourceManager; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKControl; @@ -13,10 +14,6 @@ import net.minecraft.util.ResourceLocation; public class RenderRBMKControlRod extends TileEntitySpecialRenderer { private ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/blocks/rbmk/rbmk_control.png"); - - public RenderRBMKControlRod(String texture) { - this.texture = new ResourceLocation(texture); - } @Override public void renderTileEntityAt(TileEntity te, double x, double y, double z, float i) { @@ -40,8 +37,13 @@ public class RenderRBMKControlRod extends TileEntitySpecialRenderer { GL11.glEnable(GL11.GL_LIGHTING); GL11.glEnable(GL11.GL_CULL_FACE); + - bindTexture(texture); + if(control.getBlockType() instanceof RBMKBase) { + bindTexture(((RBMKBase)control.getBlockType()).coverTexture); + } else { + bindTexture(texture); + } double level = control.lastLevel + (control.level - control.lastLevel) * i; diff --git a/src/main/java/com/hbm/render/tileentity/RenderRBMKLid.java b/src/main/java/com/hbm/render/tileentity/RenderRBMKLid.java index 96db1f8a7..aa9d60546 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderRBMKLid.java +++ b/src/main/java/com/hbm/render/tileentity/RenderRBMKLid.java @@ -19,11 +19,6 @@ public class RenderRBMKLid extends TileEntitySpecialRenderer { private ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/blocks/rbmk/rbmk_blank.png"); private ResourceLocation texture_glass = new ResourceLocation(RefStrings.MODID + ":textures/blocks/rbmk/rbmk_blank_glass.png"); private static final ResourceLocation texture_rods = new ResourceLocation(RefStrings.MODID + ":textures/blocks/rbmk/rbmk_element.png"); - - public RenderRBMKLid(String texture) { - this.texture = new ResourceLocation(texture + ".png"); - //this.texture_glass = new ResourceLocation(texture + "_glass.png"); - } @Override public void renderTileEntityAt(TileEntity te, double x, double y, double z, float i) { @@ -75,7 +70,12 @@ public class RenderRBMKLid extends TileEntitySpecialRenderer { if(meta == RBMKBase.DIR_GLASS_LID.ordinal()) { bindTexture(texture_glass); } else { - bindTexture(texture); + + if(control.getBlockType() instanceof RBMKBase) { + bindTexture(((RBMKBase)control.getBlockType()).coverTexture); + } else { + bindTexture(texture); + } cherenkov = false; } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java index d2a868360..0f3d1d87c 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java @@ -413,6 +413,10 @@ public abstract class TileEntityRBMKBase extends TileEntity implements INBTPacke } } + public boolean isModerated() { + return false; + } + public abstract ColumnType getConsoleType(); public NBTTagCompound getNBTForConsole() { diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java index 655ebe4e8..c17b80123 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java @@ -65,6 +65,7 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon columns[index] = new RBMKColumn(rbmk.getConsoleType(), rbmk.getNBTForConsole()); columns[index].data.setDouble("heat", rbmk.heat); columns[index].data.setDouble("maxHeat", rbmk.maxHeat()); + if(rbmk.isModerated()) columns[index].data.setBoolean("moderated", true); //false is the default anyway and not setting it when we don't need to reduces cruft } else { columns[index] = null; @@ -205,8 +206,9 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon List stats = new ArrayList(); stats.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("rbmk.heat", ((int)((this.data.getDouble("heat") * 10D)) / 10D) + "°C")); switch(this.type) { - + case FUEL: + case FUEL_SIM: stats.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey("rbmk.rod.depletion", ((int)(((1D - this.data.getDouble("enrichment")) * 100000)) / 1000D) + "%")); stats.add(EnumChatFormatting.DARK_PURPLE + I18nUtil.resolveKey("rbmk.rod.xenon", ((int)(((this.data.getDouble("xenon")) * 1000D)) / 1000D) + "%")); stats.add(EnumChatFormatting.DARK_RED + I18nUtil.resolveKey("rbmk.rod.coreTemp", ((int)((this.data.getDouble("c_coreHeat") * 10D)) / 10D) + "°C")); @@ -231,6 +233,9 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon break; } + if(data.getBoolean("moderated")) + stats.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("rbmk.moderated")); + return stats; } } @@ -238,6 +243,7 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon public static enum ColumnType { BLANK(0), FUEL(10), + FUEL_SIM(90), CONTROL(20), CONTROL_AUTO(30), BOILER(40), @@ -245,7 +251,7 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon ABSORBER(60), REFLECTOR(70), OUTGASSER(80), - BREEDER(90); + BREEDER(100); public int offset; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlManual.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlManual.java index d6bf38c9e..13c13830a 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlManual.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlManual.java @@ -1,5 +1,6 @@ package com.hbm.tileentity.machine.rbmk; +import com.hbm.blocks.machine.rbmk.RBMKControl; import com.hbm.interfaces.IControlReceiver; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType; @@ -11,11 +12,20 @@ public class TileEntityRBMKControlManual extends TileEntityRBMKControl implement public RBMKColor color; public double startingLevel; + + public TileEntityRBMKControlManual() { + super(); + } @Override public String getName() { return "container.rbmkControl"; } + + @Override + public boolean isModerated() { + return ((RBMKControl)this.getBlockType()).moderated; + } @Override public void setTarget(double target) { diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java index 0c8fcf1be..8a96d3ec4 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java @@ -39,7 +39,7 @@ public class TileEntityRBMKOutgasser extends TileEntityRBMKSlottedBase implement @Override public void updateEntity() { - if(!worldObj.isRemote) { + /*if(!worldObj.isRemote) { gas.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); if(worldObj.getTotalWorldTime() % 10 == 0) @@ -48,7 +48,7 @@ public class TileEntityRBMKOutgasser extends TileEntityRBMKSlottedBase implement if(!canProcess()) { this.progress = 0; } - } + }*/ super.updateEntity(); } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java index 74119886e..710d0eb38 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java @@ -2,6 +2,7 @@ package com.hbm.tileentity.machine.rbmk; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.rbmk.RBMKBase; +import com.hbm.blocks.machine.rbmk.RBMKRod; import com.hbm.entity.projectile.EntityRBMKDebris.DebrisType; import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.items.ModItems; @@ -29,6 +30,11 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM public String getName() { return "container.rbmkRod"; } + + @Override + public boolean isModerated() { + return ((RBMKRod)this.getBlockType()).moderated; + } @SuppressWarnings("incomplete-switch") //shut the fuck up @Override @@ -144,6 +150,15 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM if(!base.hasLid()) ChunkRadiationManager.proxy.incrementRad(worldObj, xCoord, yCoord, zCoord, (float) (flux * 0.05F)); + + if(base.isModerated()) { + + if(this.stream != NType.SLOW) { + //flux *= 0.85D; + } else { + this.stream = NType.SLOW; + } + } } //burn baby burn diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRodReaSim.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRodReaSim.java index 991c918f6..63ec89e82 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRodReaSim.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRodReaSim.java @@ -1,8 +1,14 @@ package com.hbm.tileentity.machine.rbmk; +import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType; + import net.minecraft.util.Vec3; public class TileEntityRBMKRodReaSim extends TileEntityRBMKRod { + + public TileEntityRBMKRodReaSim() { + super(); + } @Override public String getName() { @@ -41,4 +47,9 @@ public class TileEntityRBMKRodReaSim extends TileEntityRBMKRod { } } } + + @Override + public ColumnType getConsoleType() { + return ColumnType.FUEL_SIM; + } } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index fad306ff0..a20dadd4d 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -112,6 +112,9 @@ chem.CC_NAPHTHA=Naphtha-Kohleverflüssigung chem.CC_OIL=Kohleverflüssigung chem.CIRCUIT_4=Überstaktete Schaltkreisherstellung chem.CIRCUIT_5=Leistungsstarke Schaltkreisherstellung +chem.COLTAN_CLEANING=Coltanreinigung +chem.COLTAN_CRYSTAL=Tantal-Kristallisierung +chem.COLTAN_PAIN=Pandemonium(III)tantalit-Herstellung chem.CONCRETE=Betonherstellung chem.CONCRETE_ASBESTOS=Asbestbetonherstellung chem.COOLANT=Kühlflüssigkeit mischen @@ -1842,6 +1845,7 @@ item.particle_empty.name=Leere Partikelkapsel item.particle_higgs.name=Higgs Bosonen Kapsel item.particle_hydrogen.name=Wasserstoffionenkapsel item.particle_lead.name=Bleiionenkapsel +item.particle_lutece.name=Lutece-Quasipartikel item.particle_muon.name=Myonenkapsel item.particle_sparkticle.name=Sparktikelkapsel item.particle_strange.name=Strange-Quark-Kapsel @@ -2511,6 +2515,7 @@ rbmk.control.yellow=§eGelbe Gruppe rbmk.control.green=§aGrüne Gruppe rbmk.control.blue=§1Blaue Gruppe rbmk.control.purple=§5Lila Gruppe +rbmk.moderated=Moderiert rbmk.rod.depletion=Erschöpfung: %s rbmk.rod.xenon=Xenonvergiftung: %s rbmk.rod.coreTemp=Kerntemperatur: %s @@ -2573,6 +2578,7 @@ tile.block_coltan.name=Coltanblock tile.block_combine_steel.name=CMB-Stahlblock tile.block_copper.name=Kupferblock tile.block_corium.name=Corium +tile.block_corium_cobble.name=Corebblestone tile.block_daffergon.name=Daffergonblock tile.block_desh.name=Verstärketer Deshblock tile.block_dineutronium.name=Dineutroniumblock @@ -3056,12 +3062,15 @@ tile.rbmk_boiler.name=RBMK Dampfkanal tile.rbmk_console.name=RBMK Konsole tile.rbmk_control.name=RBMK Steuerstäbe tile.rbmk_control_auto.name=RBMK Automatische Steuerstäbe +tile.rbmk_control_mod.name=RBMK Moderierte Steuerstäbe tile.rbmk_loader.name=RBMK-Dampfadapter tile.rbmk_moderator.name=RBMK Graphitmoderator tile.rbmk_outgasser.name=RBMK Bestrahlungskanal tile.rbmk_reflector.name=RBMK Wolframcarbid-Moderator tile.rbmk_rod.name=RBMK Brennstäbe +tile.rbmk_rod_mod.name=RBMK Moderierte Brennstäbe tile.rbmk_rod_reasim.name=RBMK Brennstäbe (ReaSim) +tile.rbmk_rod_reasim_mod.name=RBMK Moderierte Brennstäbe (ReaSim) tile.reactor_computer.name=Reaktorsteuerung tile.reactor_conductor.name=Reaktorboiler tile.reactor_control.name=Steuerstäbe diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 62055ab65..8d13c3461 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -180,6 +180,9 @@ chem.CC_NAPHTHA=Naphtha Coal Liquefaction chem.CC_OIL=Coal Liquefaction chem.CIRCUIT_4=Overclocked Circuit Production chem.CIRCUIT_5=High Performance Circuit Production +chem.COLTAN_CLEANING=Coltan Purifying +chem.COLTAN_CRYSTAL=Tantalium Crystallizing +chem.COLTAN_PAIN=Pandemonium(III)tantalite Production chem.CONCRETE=Concrete Production chem.CONCRETE_ASBESTOS=Asbestos Concrete Production chem.COOLANT=Coolant Mixing @@ -1910,6 +1913,7 @@ item.particle_empty.name=Empty Particle Capsule item.particle_higgs.name=Higgs Boson Capsule item.particle_hydrogen.name=Hydrogen Ion Capsule item.particle_lead.name=Lead Ion Capsule +item.particle_lutece.name=Lutece Quasiparticle item.particle_muon.name=Muon Capsule item.particle_sparkticle.name=Sparkticle Capsule item.particle_strange.name=Strange Quark Capsule @@ -2579,6 +2583,7 @@ rbmk.control.yellow=§eYellow Group rbmk.control.green=§aGreen Group rbmk.control.blue=§1Blue Group rbmk.control.purple=§5Purple Group +rbmk.moderated=Moderated rbmk.rod.depletion=Depletion: %s rbmk.rod.xenon=Xenon poison: %s rbmk.rod.coreTemp=Core temperature: %s @@ -2641,6 +2646,7 @@ tile.block_coltan.name=Block of Coltan tile.block_combine_steel.name=Block of CMB Steel tile.block_copper.name=Block of Copper tile.block_corium.name=Corium +tile.block_corium_cobble.name=Corebblestone tile.block_daffergon.name=Block of Daffergon tile.block_desh.name=Reinforced Block of Desh tile.block_dineutronium.name=Block of Dineutronium @@ -3140,12 +3146,15 @@ tile.rbmk_boiler.name=RBMK Steam Channel tile.rbmk_console.name=RBMK Console tile.rbmk_control.name=RBMK Control Rods tile.rbmk_control_auto.name=RBMK Automatic Control Rods +tile.rbmk_control_mod.name=RBMK Moderated Control Rods tile.rbmk_loader.name=RBMK Steam Connector tile.rbmk_moderator.name=RBMK Graphite Moderator tile.rbmk_outgasser.name=RBMK Irradiation Channel tile.rbmk_reflector.name=RBMK Tungsten Carbide Neutron Reflector tile.rbmk_rod.name=RBMK Fuel Rod +tile.rbmk_rod_mod.name=RBMK Moderated Fuel Rod tile.rbmk_rod_reasim.name=RBMK Fuel Rod (ReaSim) +tile.rbmk_rod_reasim_mod.name=RBMK Moderated Fuel Rod (ReaSim) tile.reactor_computer.name=Reactor Control tile.reactor_conductor.name=Reactor Boiler tile.reactor_control.name=Control Rods diff --git a/src/main/resources/assets/hbm/textures/blocks/block_corium_cobble.png b/src/main/resources/assets/hbm/textures/blocks/block_corium_cobble.png new file mode 100644 index 0000000000000000000000000000000000000000..b6c39c42994d6b1a56a9d502cb19297413be4492 GIT binary patch literal 756 zcmV%^msX zfc9-m=bQg!X%ecJC#({L5U|#wv_bSOa}3xt=kD8g7-Im?oo_Ho@a6L-gb)Bs2;Llj zAcTSPpWhiC|3C=AJkKQgit7BrYP}`KfFAsnrtiqI479-}1v*=!lwyjJ{oC&u$C0jW zpzqo24qVD-o*(~Y@GV*ka795EBF>~}ts!{IX24iSbuNj$Cv}EA&*^;2G6rJbp|wWd z98dIp&uV+a;qD%nW~6z+JkMO79~qhpsWZ&;%s7s;t><%|<_XnnFLX17VZ()wiL(3Ef zmSsV0Hk*&#^#W3&U51bXgvPqpfXlMr>yr9X68sfcY(N>T5?E`|>3UBbJZZ7R*Co>; z(8kcz6|rkMfBg$aCW2MpgH19z-;k~Me0Ta0Aq0Kj zaXG&r9v&VRfN>l#X@=B}G|P!-Vq4)a|Du#)b+|_xLkt0>HNHM`y_9J0J=R*X^%iLo z((LuNp?RUHUVjkUfDp9J6{Qqa`9$nHlv2oivqicbltD^K=UXn%k4Ten{O~jRddueU mhW1(`r9_FD)V{J>YyJa-z*Pw781ila0000ZzfL1b5XOJg-Q&5|1-HTy$P%)QAmnj)1_uPBX!kBT-5ZcN z;1zfz0t+Nt1V+y0?3te4z+1I#JYN4{OBxw>kGsCA>iX&e){svr?MuIOY~Wmk>@$i zIgL1kKnUSzAP&&9rX>&)M^#nPG!1#46JsQVfcKvN6X$6L_Xgm-C&s7|3K&>VuVlwL zw-w|uW&o|Hl%lR{9v&Vv>d|PV(baX$a=BdljWI?8IMf`h((9Zf#;DJ5I8-OY;ZW-= zpRy-q`xJl}qedkMN&2007-I+_kY$;cAic1kE`f7y?PeQeczk@+4j7F_+KTBTCRs^A z?Q6;dolb`kf@b0N_LdL=#u)DI?toRgiSTnHVfyrb-r_<3VB^x0j?>*jo-rwI3%F<2%#ux^JL8~4p%W^{xTwGj` zW!Y~5Vc=)m{pup6w_mv6cbI9@1L7h*fa zyG_&RIKH{LiLe@IvIg+<^t4xZY}Es&r>A=0csvHSbHwxW^V;{TtE;`DR{-<*ocVmN ziz(R*1_R9u{FG$UqHPlG5OV7rKYg^k2R{lu!K)>HtPS~Xf;INv1G#$sHe)2pg&-2#VE{^NE z)^V(n{7CzucfyoqNmW(6yu57a0q=dQ9(a9y-2iZ`sUGNdyZV2i3?g7nCx{+6IXTff zUtV6W9Vo4OeSO`^SRcpvh8{={0hrBZI}iD|cgT$R4li73WLhQp?*IS*07*qoM6N<$ Ef<-X0od5s; literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_mod.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_mod.png new file mode 100644 index 0000000000000000000000000000000000000000..24eb099506c3449f0509deaa22d681ebc57752a5 GIT binary patch literal 919 zcmV;I18Dq-P)Z&1&OF6otRKRhH3eAR+-nFwV;vl0|k+-l2P!MM7R+c6o|n z-XaU*fZbUnc+riJrK*~RsT(Q&o3?$xU?jQjxqnB;=I-t;(n6l+Y(rU=YuBEip8=Q^ zGrcC65JSX>0pQm^zs$BX9l+(~CH;OMYpve!-cwZ--g~UISZguH5JJFvPY8kee9rm# zIdxt0Q+@&vC2o$ii$K5Mr{C`*B6=f)06 zi~xuTF-8rVuBFUV_Qn``y&ldvj4_?(+Aw0Y5~&S4E0D_i^&mh4)pbn>fnKjij1ljB zXI|P_|Ni&)?x<}7d7cwv)C?0DfEYhZn5yHP>m1ND&Fc5^|4RN9k`95-Ry0k+{r$aW z{rLE(^U*X7%jHsk(=^TMyMS?KZ^_px0ITvk=ZG=tXFMMB?eA~I5cx6wf%jfZ-yXuW z5x_xJaIh+M$||)Y#<wxFLUka^GQ9U%g`1ljy!VI*x3{+dSZj3_thJP7iHLMsfNY7hjX;vu zRNl09X&ch+x6$5|Hi3g%kcP0=>uH9|<#O%eq=Mdi>bh3q35N`!Bmzy-XeMpFZ%=ue z{^fG11UmN*tw0EYs;U5V;;X9akh0biW2CNY)rU6uL*W44-rn@WuGcZFzmgY=#p=sn zN9e%U0Q*R^@$&Mr8iJQUirXcy%MZN2zf%;&RzGko1XemQo6X3wOh3sZ0O|+wJSWd{ zK0ZGFs7iYYhzO(6Xrmt}%W};RTwPsZj5!GjfzP$uC8_P{Pg-ya$Ro~3GNeC20(eVSxeorP7thLN$GX{gfMn7;YR0r}rS23E;=PF7f!f-fLJ1!!f6+IT3 zPTLO*hr>^kvBwXbgupR=;8;jmmeh64bUI!019_fr^aHQ2uO}m*exN7{{U4ZKL_o(U tBtLL=c6M4FX!`-^?)#=yJH_xN{0DI$jQdP(Dr^7%002ovPDHLkV1m0~w4VR~ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_reasim_mod.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_element_reasim_mod.png new file mode 100644 index 0000000000000000000000000000000000000000..1ee2c33da7fa94678589dc94575e35e62dcdae48 GIT binary patch literal 920 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
  • |*|RG_4+UV!`Ckk#*J^8AXur`I)FU)mrv!kvfT|;Ckt1*xR!n8wbVQ#1!Za zhuUM)=fCU)&_NdQe+;oadXTaI&mei# zn#?60D?9tiCGEo^=F&Oi6KIK=v7E3Ojv-YQmDq??rg}SPO=me~;C}G>Qa^Nj;;|6g zxwE;Gq$x_H)?5&TlxO<``5MtLW@dUR1!ZOJHq=TdgrT8fWdO|tdn+o>!Nvi)Yo;-{Qc1Jiy#^@!h6yvs_|>b^o!hT;I|R3iY5fQInbVI z!XyOIz)ImeLmmx>UKpb9i&9#L{HZqDw3X=>xV(%&^_QI3$@MOT(Bf3?Zzql4t9?Iy z5Gu-8^4!E=nkX2kFKpf1d4h2sOX5_xU&}&dqc{Z$5og&p!k@EbGAF+rx&xD{lN>JX zaCJ@m3-xg*E};v~BY7()Cx>!zhQ6^KMsJzA37L0#zPer(f&H_lA{EuuCyFLSMMZ<> zDKOA+>QHAKEoj1_t z2*eF!T7QBAPTt<{Y}}!lkcEZC_lXG((rcsQl9DzKcmo%nbwYq*eo)<5XVQPl$SD3M kN&)alVwVqx*8GSvIa&DuLo9?|Gy`z_n2AA!o@4a?0N_WH;Q#;t literal 5728 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