diff --git a/src/main/java/com/hbm/blocks/BlockEnums.java b/src/main/java/com/hbm/blocks/BlockEnums.java index 15a618779..063d79fdf 100644 --- a/src/main/java/com/hbm/blocks/BlockEnums.java +++ b/src/main/java/com/hbm/blocks/BlockEnums.java @@ -49,6 +49,13 @@ public class BlockEnums { GOLD, SCHRABIDIUM } + + public static enum EnumAbsorberTier { + BASE, + RED, + GREEN, + PINK; + } /** DECO / STRUCTURE ENUMS */ //i apologize in advance @@ -80,4 +87,5 @@ public class BlockEnums { FLUORESCENT, HALOGEN } + } diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 7a4ef7b6f..02197a3b1 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1176,6 +1176,7 @@ public class ModBlocks { public static Block absorber_red; public static Block absorber_green; public static Block absorber_pink; + public static BlockAbsorber rad_absorber; public static Block decon; public static Block mud_block; @@ -2333,10 +2334,14 @@ public class ModBlocks { gas_explosive = new BlockGasExplosive().setBlockName("gas_explosive").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":gas_explosive"); vacuum = new BlockVacuum().setBlockName("vacuum").setResistance(1000000F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":vacuum"); - absorber = new BlockAbsorber(Material.iron, 2.5F).setBlockName("absorber").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":absorber"); - absorber_red = new BlockAbsorber(Material.iron, 10F).setBlockName("absorber_red").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":absorber_red"); - absorber_green = new BlockAbsorber(Material.iron, 100F).setBlockName("absorber_green").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":absorber_green"); - absorber_pink = new BlockAbsorber(Material.iron, 10000F).setBlockName("absorber_pink").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":absorber_pink"); + // OLD ABSORBERS + absorber = new BlockAbsorberOLD(Material.iron).setBlockName("absorber").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":absorber"); + absorber_red = new BlockAbsorberOLD(Material.iron).setBlockName("absorber_red").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":absorber_red"); + absorber_green = new BlockAbsorberOLD(Material.iron).setBlockName("absorber_green").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":absorber_green"); + absorber_pink = new BlockAbsorberOLD(Material.iron).setBlockName("absorber_pink").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":absorber_pink"); + + //NEW ABSORBER + rad_absorber = new BlockAbsorber(Material.iron).setBlockName("rad_absorber").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); decon = new BlockDecon(Material.iron).setBlockName("decon").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":decon_side"); if (Loader.isModLoaded("OpenComputers")) { @@ -3369,6 +3374,7 @@ public class ModBlocks { GameRegistry.registerBlock(absorber_red, absorber_red.getUnlocalizedName()); GameRegistry.registerBlock(absorber_green, absorber_green.getUnlocalizedName()); GameRegistry.registerBlock(absorber_pink, absorber_pink.getUnlocalizedName()); + GameRegistry.registerBlock(rad_absorber, ItemBlockBase.class, rad_absorber.getUnlocalizedName()); GameRegistry.registerBlock(decon, decon.getUnlocalizedName()); //Solar Tower Blocks diff --git a/src/main/java/com/hbm/blocks/generic/BlockAbsorber.java b/src/main/java/com/hbm/blocks/generic/BlockAbsorber.java index 0804cc52b..0a94c5ad8 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockAbsorber.java +++ b/src/main/java/com/hbm/blocks/generic/BlockAbsorber.java @@ -1,39 +1,143 @@ package com.hbm.blocks.generic; +import java.util.List; import java.util.Random; +import com.hbm.blocks.BlockEnumMulti; +import com.hbm.blocks.IBlockMulti; import com.hbm.handler.radiation.ChunkRadiationManager; +import com.hbm.lib.RefStrings; -import net.minecraft.block.Block; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.util.StatCollector; import net.minecraft.world.World; -public class BlockAbsorber extends Block { +public class BlockAbsorber extends BlockEnumMulti implements IBlockMulti { - float absorb = 0; + // Enum for tiers they are in order of meta data, 0, 1, 2, 3 for Base, Red, Green, Pink + public static enum EnumAbsorberTier { + + BASE(2.5F, "absorber"), + RED(10F, "absorber_red"), + GREEN(100F, "absorber_green"), + PINK(10000F, "absorber_pink"); + + public final float absorbAmount; + public final String textureName; - public BlockAbsorber(Material mat, float ab) { - super(mat); - this.setTickRandomly(true); - absorb = ab; - } + private EnumAbsorberTier(float absorb, String texture) { + this.absorbAmount = absorb; + this.textureName = texture; + } + } - @Override - public int tickRate(World world) { + private IIcon[] icons; - return 10; - } + public BlockAbsorber(Material mat) { + super(mat, EnumAbsorberTier.class, true, true); + this.setTickRandomly(true); + this.setBlockName("rad_absorber"); + } - @Override - public void updateTick(World world, int x, int y, int z, Random rand) { + //More Enum stuff I copied from the other enum blocks, I have no idea how this really works tbh - ChunkRadiationManager.proxy.decrementRad(world, x, y, z, absorb); - world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world)); - } + public EnumAbsorberTier getTier(int meta) { + return EnumAbsorberTier.values()[rectify(meta)]; + } - public void onBlockAdded(World world, int x, int y, int z) { - super.onBlockAdded(world, x, y, z); + @Override + public int getSubCount() { + return EnumAbsorberTier.values().length; + } - world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world)); - } + @Override + public int damageDropped(int meta) { + return meta; + } + + //HARDEST PART WORK GODDAMMIT WORK + + @Override + public String getUnlocalizedName(ItemStack stack) { + EnumAbsorberTier tier = getTier(stack.getItemDamage()); + String tierName = net.minecraft.util.StatCollector.translateToLocal("tile.rad_absorber." + tier.name().toLowerCase()); + return tierName; + + } + + //Creative tab && textures + + @Override + public void getSubBlocks(Item item, CreativeTabs tab, List list) { + for (int i = 0; i < EnumAbsorberTier.values().length; i++) { + list.add(new ItemStack(item, 1, i)); + } + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(net.minecraft.client.renderer.texture.IIconRegister reg) { + icons = new IIcon[EnumAbsorberTier.values().length]; + for (int i = 0; i < icons.length; i++) { + icons[i] = reg.registerIcon(RefStrings.MODID + ":" + EnumAbsorberTier.values()[i].textureName); + } + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + return icons[rectify(meta)]; + } + + //All that rad math shit that was on there already, did not touch this -Wolf + + @Override + public int tickRate(World world) { + return 10; + } + + @Override + public void updateTick(World world, int x, int y, int z, Random rand) { + EnumAbsorberTier tier = getTier(world.getBlockMetadata(x, y, z)); + ChunkRadiationManager.proxy.decrementRad(world, x, y, z, tier.absorbAmount); + world.scheduleBlockUpdate(x, y, z, this, tickRate(world)); + } + + @Override + public void onBlockAdded(World world, int x, int y, int z) { + super.onBlockAdded(world, x, y, z); + world.scheduleBlockUpdate(x, y, z, this, tickRate(world)); + } + + //Block wanted these or no work, probably a better way to do it but I dont know it. + + @Override + public BlockAbsorber setBlockName(String name) { + super.setBlockName(name); + return this; + } + + @Override + public BlockAbsorber setHardness(float hardness) { + super.setHardness(hardness); + return this; + } + + @Override + public BlockAbsorber setResistance(float resistance) { + super.setResistance(resistance); + return this; + } + + @Override + public BlockAbsorber setCreativeTab(CreativeTabs tab) { + super.setCreativeTab(tab); + return this; + } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockAbsorberOLD.java b/src/main/java/com/hbm/blocks/generic/BlockAbsorberOLD.java new file mode 100644 index 000000000..296c2e0d4 --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockAbsorberOLD.java @@ -0,0 +1,12 @@ +package com.hbm.blocks.generic; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; + +public class BlockAbsorberOLD extends Block { + + public BlockAbsorberOLD(Material mat) { + super(mat); + } +} + diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 18cc855fb..e2e189d01 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -1071,6 +1071,21 @@ public class ModEventHandler { event.getChunk().func_150807_a(x, y, z, Blocks.air, 0); } }*/ + + for(int x = 0; x < 16; x++) for(int y = 0; y < 255; y++) for(int z = 0; z < 16; z++) { + if(event.getChunk().getBlock(x, y, z) == ModBlocks.absorber) { + event.getChunk().func_150807_a(x, y, z, ModBlocks.rad_absorber, 0); + } + else if(event.getChunk().getBlock(x, y, z) == ModBlocks.absorber_red) { + event.getChunk().func_150807_a(x, y, z, ModBlocks.rad_absorber, 1); + } + else if(event.getChunk().getBlock(x, y, z) == ModBlocks.absorber_green) { + event.getChunk().func_150807_a(x, y, z, ModBlocks.rad_absorber, 2); + } + else if(event.getChunk().getBlock(x, y, z) == ModBlocks.absorber_pink) { + event.getChunk().func_150807_a(x, y, z, ModBlocks.rad_absorber, 3); + } + } } @SubscribeEvent diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 6e3394ca5..3fcba2731 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -3858,10 +3858,15 @@ stat.ntmBullets=Schüsse gefeuert stat.ntmLegendary=Legendäre Gegenstände hergestellt stat.ntmMines=Auf Minen getreten -tile.absorber.name=Strahlungs-Absorber -tile.absorber_green.name=Fortgeschrittener Strahlungs-Absorber -tile.absorber_pink.name=Elite Strahlungs-Absorber -tile.absorber_red.name=Verbesserter Strahlungs-Absorber +tile.absorber.name=Strahlungs-Absorber OLD +tile.absorber_green.name=Fortgeschrittener Strahlungs-Absorber OLD +tile.absorber_pink.name=Elite Strahlungs-Absorber OLD +tile.absorber_red.name=Verbesserter Strahlungs-Absorber OLD + +tile.rad_absorber.base.name=Strahlungs-Absorber +tile.rad_absorber.red.name=Fortgeschrittener Strahlungs-Absorber +tile.rad_absorber.green.name=Elite Strahlungs-Absorber +tile.rad_absorber.pink.name=Verbesserter Strahlungs-Absorber tile.acid_block.name=Säure tile.ams_base.name=AMS-Basis (Deko) tile.ams_emitter.name=AMS-Emitter (Deko) diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 32007905e..8ae095078 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -5069,10 +5069,15 @@ stat.ntmBullets=Rounds Fired stat.ntmLegendary=Legendary Items Created stat.ntmMines=Mines Stepped on -tile.absorber.name=Radiation Absorber -tile.absorber_green.name=Advanced Radiation Absorber -tile.absorber_pink.name=Elite Radiation Absorber -tile.absorber_red.name=Enhanced Radiation Absorber +tile.absorber.name=Radiation Absorber (LEGACY) +tile.absorber_green.name=Advanced Radiation Absorber (LEGACY) +tile.absorber_pink.name=Elite Radiation Absorber (LEGACY) +tile.absorber_red.name=Enhanced Radiation Absorber (LEGACY) + +tile.rad_absorber.base.name=Radiation Absorber +tile.rad_absorber.green.name=Advanced Radiation Absorber +tile.rad_absorber.pink.name=Elite Radiation Absorber +tile.rad_absorber.red.name=Enhanced Radiation Absorber tile.acid_block.name=Acid tile.ams_base.name=AMS Base (Deco) tile.ams_emitter.name=AMS Emitter (Deco) diff --git a/src/main/resources/assets/hbm/lang/it_IT.lang b/src/main/resources/assets/hbm/lang/it_IT.lang index 5461f533f..0c88a5416 100644 --- a/src/main/resources/assets/hbm/lang/it_IT.lang +++ b/src/main/resources/assets/hbm/lang/it_IT.lang @@ -4833,10 +4833,15 @@ shape.wiresDense=Dense Wires soundCategory.ntmMachines=NTM Machines -tile.absorber.name=Radiation Absorber -tile.absorber_green.name=Advanced Radiation Absorber -tile.absorber_pink.name=Elite Radiation Absorber -tile.absorber_red.name=Enhanced Radiation Absorber +tile.absorber.name=Radiation Absorber OLD +tile.absorber_green.name=Advanced Radiation Absorber OLD +tile.absorber_pink.name=Elite Radiation Absorber OLD +tile.absorber_red.name=Enhanced Radiation Absorber OLD + +tile.rad_absorber.base.name=Radiation Absorber +tile.rad_absorber.red.name=Enhanced Radiation Absorber +tile.rad_absorber.green.name=Advanced Radiation Absorber +tile.rad_absorber.pink.name=Elite Radiation Absorber tile.acid_block.name=Acid tile.ams_base.name=AMS Base (Deco) tile.ams_emitter.name=AMS Emitter (Deco) diff --git a/src/main/resources/assets/hbm/lang/pl_PL.lang b/src/main/resources/assets/hbm/lang/pl_PL.lang index 742614376..25df53a31 100644 --- a/src/main/resources/assets/hbm/lang/pl_PL.lang +++ b/src/main/resources/assets/hbm/lang/pl_PL.lang @@ -4308,10 +4308,15 @@ shape.wire=Wire soundCategory.ntmMachines=NTM Machines -tile.absorber.name=Radiation Absorber -tile.absorber_green.name=Advanced Radiation Absorber -tile.absorber_pink.name=Elite Radiation Absorber -tile.absorber_red.name=Enhanced Radiation Absorber +tile.absorber.name=Radiation Absorber OLD +tile.absorber_green.name=Advanced Radiation Absorber OLD +tile.absorber_pink.name=Elite Radiation Absorber OLD +tile.absorber_red.name=Enhanced Radiation Absorber OLD + +tile.rad_absorber.base.name=Radiation Absorber +tile.rad_absorber.red.name=Enhanced Radiation Absorber +tile.rad_absorber.green.name=Advanced Radiation Absorber +tile.rad_absorber.pink.name=Elite Radiation Absorber tile.acid_block.name=Acid tile.ams_base.name=AMS Base (Dekoracja) tile.ams_emitter.name=AMS Emitter (Dekoracja) diff --git a/src/main/resources/assets/hbm/lang/ru_RU.lang b/src/main/resources/assets/hbm/lang/ru_RU.lang index 55311d5be..d4bd8a17e 100644 --- a/src/main/resources/assets/hbm/lang/ru_RU.lang +++ b/src/main/resources/assets/hbm/lang/ru_RU.lang @@ -5334,10 +5334,15 @@ stat.ntmBullets=Сделано выстрелов stat.ntmLegendary=Создано легендарных предметов stat.ntmMines=Подрывов на минах -tile.absorber.name=Поглотитель радиации -tile.absorber_green.name=Усовершенствованный поглотитель радиации -tile.absorber_pink.name=Элитный поглотитель радиации -tile.absorber_red.name=Продвинутый поглотитель радиации +tile.absorber.name=Поглотитель радиации OLD +tile.absorber_green.name=Усовершенствованный поглотитель радиации OLD +tile.absorber_pink.name=Элитный поглотитель радиации OLD +tile.absorber_red.name=Продвинутый поглотитель радиации OLD + +tile.rad_absorber.base.name=Поглотитель радиации +tile.rad_absorber.red.name=Усовершенствованный поглотитель радиации +tile.rad_absorber.green.name=Элитный поглотитель радиации +tile.rad_absorber.pink.name=Продвинутый поглотитель радиации tile.acid_block.name=Кислота tile.ams_base.name=Основание АМС [Декор] tile.ams_emitter.name=Излучатель АМС [Декор] diff --git a/src/main/resources/assets/hbm/lang/uk_UA.lang b/src/main/resources/assets/hbm/lang/uk_UA.lang index 71239aef1..33140170e 100644 --- a/src/main/resources/assets/hbm/lang/uk_UA.lang +++ b/src/main/resources/assets/hbm/lang/uk_UA.lang @@ -4873,10 +4873,15 @@ stat.ntmBullets=Випущено набоїв stat.ntmLegendary=Створено легендарних предметів stat.ntmMines=Підривів на мінах -tile.absorber.name=Поглинач радіації -tile.absorber_green.name=Удосконалений поглинач радіації -tile.absorber_pink.name=Елітний поглинач радіації -tile.absorber_red.name=Покращений поглинач радіації +tile.absorber.name=Поглинач радіації OLD +tile.absorber_green.name=Удосконалений поглинач радіації OLD +tile.absorber_pink.name=Елітний поглинач радіації OLD +tile.absorber_red.name=Покращений поглинач радіації OLD + +tile.rad_absorber.base.name=Поглинач радіації +tile.rad_absorber.red.name=Удосконалений поглинач радіації +tile.rad_absorber.green.name=Елітний поглинач радіації +tile.rad_absorber.pink.name=Покращений поглинач радіації tile.acid_block.name=Кислота tile.ams_base.name=AMS Base (Deco) tile.ams_emitter.name=AMS Emitter (Deco) diff --git a/src/main/resources/assets/hbm/lang/zh_CN.lang b/src/main/resources/assets/hbm/lang/zh_CN.lang index fb1f9ea78..e59a7a9de 100644 --- a/src/main/resources/assets/hbm/lang/zh_CN.lang +++ b/src/main/resources/assets/hbm/lang/zh_CN.lang @@ -4516,10 +4516,16 @@ shape.wireFine=线 shape.wireDense=致密线 shape.wiresDense=致密线 soundCategory.ntmMachines=NTM机器 -tile.absorber.name=辐射吸收器 -tile.absorber_green.name=高级辐射吸收器 -tile.absorber_pink.name=精英辐射吸收器 -tile.absorber_red.name=增强型辐射吸收器 + +tile.absorber.name=辐射吸收器 OLD +tile.absorber_green.name=高级辐射吸收器 OLD +tile.absorber_pink.name=精英辐射吸收器 OLD +tile.absorber_red.name=增强型辐射吸收器 OLD + +tile.rad_absorber.base.name=辐射吸收器 +tile.rad_absorber.red.name=高级辐射吸收器 +tile.rad_absorber.green.name=精英辐射吸收器 +tile.rad_absorber.pink.name=增强型辐射吸收器 tile.acid_block.name=酸 tile.ams_base.name=AMS基座 [开发中] tile.ams_emitter.name=AMS发射极 [开发中]