I think this works :P we will find out that Im an

idiot in like 30seconds
This commit is contained in:
WolfEclipses 2025-12-08 22:20:07 -05:00
parent d02b328c27
commit 96298a5c31
6 changed files with 1417 additions and 1277 deletions

View File

@ -50,6 +50,13 @@ public class BlockEnums {
SCHRABIDIUM SCHRABIDIUM
} }
public static enum EnumAbsorberTier {
BASE,
RED,
GREEN,
PINK;
}
/** DECO / STRUCTURE ENUMS */ /** DECO / STRUCTURE ENUMS */
//i apologize in advance //i apologize in advance
@ -80,4 +87,5 @@ public class BlockEnums {
FLUORESCENT, FLUORESCENT,
HALOGEN HALOGEN
} }
} }

View File

@ -1189,10 +1189,7 @@ public class ModBlocks {
public static Block gas_explosive; public static Block gas_explosive;
public static Block vacuum; public static Block vacuum;
public static Block absorber; public static BlockAbsorber rad_absorber;
public static Block absorber_red;
public static Block absorber_green;
public static Block absorber_pink;
public static Block decon; public static Block decon;
public static Block mud_block; public static Block mud_block;
@ -2362,10 +2359,7 @@ public class ModBlocks {
gas_explosive = new BlockGasExplosive().setBlockName("gas_explosive").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":gas_explosive"); 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"); 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"); rad_absorber = new BlockAbsorber(Material.iron).setBlockName("rad_absorber").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
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");
decon = new BlockDecon(Material.iron).setBlockName("decon").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":decon_side"); 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")) { if (Loader.isModLoaded("OpenComputers")) {
@ -3405,10 +3399,7 @@ public class ModBlocks {
GameRegistry.registerBlock(struct_icf_core, struct_icf_core.getUnlocalizedName()); GameRegistry.registerBlock(struct_icf_core, struct_icf_core.getUnlocalizedName());
//Absorbers //Absorbers
GameRegistry.registerBlock(absorber, absorber.getUnlocalizedName()); GameRegistry.registerBlock(rad_absorber, ItemBlockAbsorber.class, "rad_absorber");
GameRegistry.registerBlock(absorber_red, absorber_red.getUnlocalizedName());
GameRegistry.registerBlock(absorber_green, absorber_green.getUnlocalizedName());
GameRegistry.registerBlock(absorber_pink, absorber_pink.getUnlocalizedName());
GameRegistry.registerBlock(decon, decon.getUnlocalizedName()); GameRegistry.registerBlock(decon, decon.getUnlocalizedName());
//Solar Tower Blocks //Solar Tower Blocks

View File

@ -1,39 +1,148 @@
package com.hbm.blocks.generic; package com.hbm.blocks.generic;
import java.util.List;
import java.util.Random; import java.util.Random;
import com.hbm.blocks.BlockEnumMulti;
import com.hbm.blocks.IBlockMulti;
import com.hbm.handler.radiation.ChunkRadiationManager; 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.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; 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 {
public BlockAbsorber(Material mat, float ab) { BASE("Radiation Absorber", 2.5F, "absorber"),
super(mat); RED("Enhanced Radiation Absorber", 10F, "absorber_red"),
this.setTickRandomly(true); GREEN("Advanced Radiation Absorber", 100F, "absorber_green"),
absorb = ab; PINK("Elite Radiation Absorber", 10000F, "absorber_pink");
}
@Override public final String displayName;
public int tickRate(World world) { public final float absorbAmount;
public final String textureName;
return 10; private EnumAbsorberTier(String name, float absorb, String texture) {
} this.displayName = name;
this.absorbAmount = absorb;
this.textureName = texture;
}
}
@Override private IIcon[] icons;
public void updateTick(World world, int x, int y, int z, Random rand) {
ChunkRadiationManager.proxy.decrementRad(world, x, y, z, absorb); public BlockAbsorber(Material mat) {
world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world)); super(mat, EnumAbsorberTier.class, true, true);
} this.setTickRandomly(true);
this.setBlockName("rad_absorber");
}
public void onBlockAdded(World world, int x, int y, int z) { //More Enum stuff I copied from the other enum blocks, I have no idea how this really works tbh
super.onBlockAdded(world, x, y, z);
world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world)); public EnumAbsorberTier getTier(int meta) {
} return EnumAbsorberTier.values()[rectify(meta)];
}
@Override
public int getSubCount() {
return EnumAbsorberTier.values().length;
}
@Override
public int damageDropped(int meta) {
return meta;
}
//HARDEST PART WORK GODDAMMIT WORK
@Override
public String getUnlocalizedName(ItemStack stack) {
EnumAbsorberTier tier = getTier(stack.getItemDamage());
return "tile.rad_absorber." + tier.name().toLowerCase();
}
@Override
public String getOverrideDisplayName(ItemStack stack) {
return StatCollector.translateToLocal(getUnlocalizedName(stack) + ".name");
}
//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;
}
} }

View File

@ -0,0 +1,31 @@
package com.hbm.items.block;
import com.hbm.blocks.generic.BlockAbsorber;
import com.hbm.blocks.generic.BlockAbsorber.EnumAbsorberTier;
import net.minecraft.block.Block;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import net.minecraft.util.StatCollector;
public class ItemBlockAbsorber extends ItemBlock {
public ItemBlockAbsorber(Block block) {
super(block);
this.setMaxDamage(0);
this.setHasSubtypes(true);
}
@Override
public int getMetadata(int damage) {
return damage;
}
@Override
public String getItemStackDisplayName(ItemStack stack) {
BlockAbsorber block = (BlockAbsorber)this.field_150939_a;
EnumAbsorberTier tier = block.getTier(stack.getItemDamage());
return StatCollector.translateToLocal("tile.rad_absorber." + tier.name().toLowerCase() + ".name");
}
}

View File

@ -2,6 +2,7 @@ package com.hbm.main;
import com.hbm.blocks.BlockEnums.DecoCabinetEnum; import com.hbm.blocks.BlockEnums.DecoCabinetEnum;
import com.hbm.blocks.BlockEnums.LightstoneType; import com.hbm.blocks.BlockEnums.LightstoneType;
import com.hbm.blocks.BlockEnums.EnumAbsorberTier;
import com.hbm.blocks.ModBlocks; import com.hbm.blocks.ModBlocks;
import com.hbm.blocks.generic.BlockConcreteColoredExt.EnumConcreteType; import com.hbm.blocks.generic.BlockConcreteColoredExt.EnumConcreteType;
import com.hbm.blocks.generic.BlockGenericStairs; import com.hbm.blocks.generic.BlockGenericStairs;
@ -671,11 +672,11 @@ public class CraftingManager {
addRecipeAuto(new ItemStack(ModItems.ammo_bag, 1), new Object[] { "LLL", "MGM", "LLL", 'L', Items.leather, 'G', WEAPONSTEEL.plate(), 'M', WEAPONSTEEL.mechanism() }); addRecipeAuto(new ItemStack(ModItems.ammo_bag, 1), new Object[] { "LLL", "MGM", "LLL", 'L', Items.leather, 'G', WEAPONSTEEL.plate(), 'M', WEAPONSTEEL.mechanism() });
addRecipeAuto(new ItemStack(ModItems.ammo_bag, 1), new Object[] { "LLL", "MGM", "LLL", 'L', ANY_RUBBER.ingot(), 'G', WEAPONSTEEL.plate(), 'M', WEAPONSTEEL.mechanism() }); addRecipeAuto(new ItemStack(ModItems.ammo_bag, 1), new Object[] { "LLL", "MGM", "LLL", 'L', ANY_RUBBER.ingot(), 'G', WEAPONSTEEL.plate(), 'M', WEAPONSTEEL.mechanism() });
addRecipeAuto(new ItemStack(ModBlocks.absorber, 1), new Object[] { "ICI", "CPC", "ICI", 'I', CU.ingot(), 'C', COAL.dust(), 'P', PB.dust() }); addRecipeAuto(new ItemStack(ModBlocks.rad_absorber, 1, EnumAbsorberTier.BASE.ordinal()),new Object[] { "ICI", "CPC", "ICI", 'I', CU.ingot(), 'C', COAL.dust(), 'P', PB.dust() });
addRecipeAuto(new ItemStack(ModBlocks.absorber_red, 1), new Object[] { "ICI", "CPC", "ICI", 'I', TI.ingot(), 'C', COAL.dust(), 'P', ModBlocks.absorber }); addRecipeAuto(new ItemStack(ModBlocks.rad_absorber, 1, EnumAbsorberTier.RED.ordinal()),new Object[] { "ICI", "CPC", "ICI", 'I', TI.ingot(), 'C', COAL.dust(),'P', new ItemStack(ModBlocks.rad_absorber, 1, EnumAbsorberTier.BASE.ordinal()) });
addRecipeAuto(new ItemStack(ModBlocks.absorber_green, 1), new Object[] { "ICI", "CPC", "ICI", 'I', ANY_PLASTIC.ingot(), 'C', ModItems.powder_desh_mix, 'P', ModBlocks.absorber_red }); addRecipeAuto(new ItemStack(ModBlocks.rad_absorber, 1, EnumAbsorberTier.GREEN.ordinal()),new Object[] { "ICI", "CPC", "ICI", 'I', ANY_PLASTIC.ingot(), 'C', ModItems.powder_desh_mix,'P', new ItemStack(ModBlocks.rad_absorber, 1, EnumAbsorberTier.RED.ordinal()) });
addRecipeAuto(new ItemStack(ModBlocks.absorber_pink, 1), new Object[] { "ICI", "CPC", "ICI", 'I', BIGMT.ingot(), 'C', ModItems.powder_nitan_mix, 'P', ModBlocks.absorber_green }); addRecipeAuto(new ItemStack(ModBlocks.rad_absorber, 1, EnumAbsorberTier.PINK.ordinal()), new Object[] { "ICI", "CPC", "ICI", 'I', BIGMT.ingot(), 'C', ModItems.powder_nitan_mix,'P', new ItemStack(ModBlocks.rad_absorber, 1, EnumAbsorberTier.GREEN.ordinal()) });
addRecipeAuto(new ItemStack(ModBlocks.decon, 1), new Object[] { "BGB", "SAS", "BSB", 'B', BE.ingot(), 'G', Blocks.iron_bars, 'S', STEEL.ingot(), 'A', ModBlocks.absorber }); addRecipeAuto(new ItemStack(ModBlocks.decon, 1), new Object[] { "BGB", "SAS", "BSB", 'B', BE.ingot(), 'G', Blocks.iron_bars, 'S', STEEL.ingot(), 'A', new ItemStack(ModBlocks.rad_absorber)});
addRecipeAuto(new ItemStack(ModBlocks.machine_minirtg, 1), new Object[] { "LLL", "PPP", "TRT", 'L', PB.plate(), 'P', PU238.billet(), 'T', ModItems.thermo_element, 'R', ModItems.rtg_unit }); addRecipeAuto(new ItemStack(ModBlocks.machine_minirtg, 1), new Object[] { "LLL", "PPP", "TRT", 'L', PB.plate(), 'P', PU238.billet(), 'T', ModItems.thermo_element, 'R', ModItems.rtg_unit });
addRecipeAuto(new ItemStack(ModBlocks.machine_powerrtg, 1), new Object[] { "SRS", "PTP", "SRS", 'S', STAR.ingot(), 'R', ModItems.rtg_unit, 'P', PO210.billet(), 'T', TS.dust() }); addRecipeAuto(new ItemStack(ModBlocks.machine_powerrtg, 1), new Object[] { "SRS", "PTP", "SRS", 'S', STAR.ingot(), 'R', ModItems.rtg_unit, 'P', PO210.billet(), 'T', TS.dust() });

View File

@ -5048,10 +5048,10 @@ stat.ntmBullets=Rounds Fired
stat.ntmLegendary=Legendary Items Created stat.ntmLegendary=Legendary Items Created
stat.ntmMines=Mines Stepped on stat.ntmMines=Mines Stepped on
tile.absorber.name=Radiation Absorber tile.rad_absorber.base.name=Radiation Absorber
tile.absorber_green.name=Advanced Radiation Absorber tile.rad_absorber.red.name=Enhanced Radiation Absorber
tile.absorber_pink.name=Elite Radiation Absorber tile.rad_absorber.green.name=Advanced Radiation Absorber
tile.absorber_red.name=Enhanced Radiation Absorber tile.rad_absorber.pink.name=Elite Radiation Absorber
tile.acid_block.name=Acid tile.acid_block.name=Acid
tile.ams_base.name=AMS Base (Deco) tile.ams_base.name=AMS Base (Deco)
tile.ams_emitter.name=AMS Emitter (Deco) tile.ams_emitter.name=AMS Emitter (Deco)