Merge pull request #2607 from WolfEclipses/METADATA

Rad Absorbers Metadata (Done now)
This commit is contained in:
HbmMods 2026-01-12 10:19:08 +01:00 committed by GitHub
commit 2f8b0dde49
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
12 changed files with 234 additions and 53 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

@ -1176,6 +1176,7 @@ public class ModBlocks {
public static Block absorber_red; public static Block absorber_red;
public static Block absorber_green; public static Block absorber_green;
public static Block absorber_pink; public static Block absorber_pink;
public static BlockAbsorber rad_absorber;
public static Block decon; public static Block decon;
public static Block mud_block; 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"); 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"); // OLD ABSORBERS
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 = new BlockAbsorberOLD(Material.iron).setBlockName("absorber").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":absorber");
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_red = new BlockAbsorberOLD(Material.iron).setBlockName("absorber_red").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":absorber_red");
absorber_pink = new BlockAbsorber(Material.iron, 10000F).setBlockName("absorber_pink").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":absorber_pink"); 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"); 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")) {
@ -3369,6 +3374,7 @@ public class ModBlocks {
GameRegistry.registerBlock(absorber_red, absorber_red.getUnlocalizedName()); GameRegistry.registerBlock(absorber_red, absorber_red.getUnlocalizedName());
GameRegistry.registerBlock(absorber_green, absorber_green.getUnlocalizedName()); GameRegistry.registerBlock(absorber_green, absorber_green.getUnlocalizedName());
GameRegistry.registerBlock(absorber_pink, absorber_pink.getUnlocalizedName()); GameRegistry.registerBlock(absorber_pink, absorber_pink.getUnlocalizedName());
GameRegistry.registerBlock(rad_absorber, ItemBlockBase.class, rad_absorber.getUnlocalizedName());
GameRegistry.registerBlock(decon, decon.getUnlocalizedName()); GameRegistry.registerBlock(decon, decon.getUnlocalizedName());
//Solar Tower Blocks //Solar Tower Blocks

View File

@ -1,39 +1,143 @@
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(2.5F, "absorber"),
super(mat); RED(10F, "absorber_red"),
this.setTickRandomly(true); GREEN(100F, "absorber_green"),
absorb = ab; PINK(10000F, "absorber_pink");
}
@Override public final float absorbAmount;
public int tickRate(World world) { public final String textureName;
return 10; private EnumAbsorberTier(float absorb, String texture) {
} 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());
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;
}
} }

View File

@ -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);
}
}

View File

@ -1071,6 +1071,21 @@ public class ModEventHandler {
event.getChunk().func_150807_a(x, y, z, Blocks.air, 0); 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 @SubscribeEvent

View File

@ -3858,10 +3858,15 @@ stat.ntmBullets=Schüsse gefeuert
stat.ntmLegendary=Legendäre Gegenstände hergestellt stat.ntmLegendary=Legendäre Gegenstände hergestellt
stat.ntmMines=Auf Minen getreten stat.ntmMines=Auf Minen getreten
tile.absorber.name=Strahlungs-Absorber tile.absorber.name=Strahlungs-Absorber OLD
tile.absorber_green.name=Fortgeschrittener Strahlungs-Absorber tile.absorber_green.name=Fortgeschrittener Strahlungs-Absorber OLD
tile.absorber_pink.name=Elite Strahlungs-Absorber tile.absorber_pink.name=Elite Strahlungs-Absorber OLD
tile.absorber_red.name=Verbesserter Strahlungs-Absorber 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.acid_block.name=Säure
tile.ams_base.name=AMS-Basis (Deko) tile.ams_base.name=AMS-Basis (Deko)
tile.ams_emitter.name=AMS-Emitter (Deko) tile.ams_emitter.name=AMS-Emitter (Deko)

View File

@ -5069,10 +5069,15 @@ 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.absorber.name=Radiation Absorber (LEGACY)
tile.absorber_green.name=Advanced Radiation Absorber tile.absorber_green.name=Advanced Radiation Absorber (LEGACY)
tile.absorber_pink.name=Elite Radiation Absorber tile.absorber_pink.name=Elite Radiation Absorber (LEGACY)
tile.absorber_red.name=Enhanced Radiation Absorber 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.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)

View File

@ -4833,10 +4833,15 @@ shape.wiresDense=Dense Wires
soundCategory.ntmMachines=NTM Machines soundCategory.ntmMachines=NTM Machines
tile.absorber.name=Radiation Absorber tile.absorber.name=Radiation Absorber OLD
tile.absorber_green.name=Advanced Radiation Absorber tile.absorber_green.name=Advanced Radiation Absorber OLD
tile.absorber_pink.name=Elite Radiation Absorber tile.absorber_pink.name=Elite Radiation Absorber OLD
tile.absorber_red.name=Enhanced Radiation Absorber 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.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)

View File

@ -4308,10 +4308,15 @@ shape.wire=Wire
soundCategory.ntmMachines=NTM Machines soundCategory.ntmMachines=NTM Machines
tile.absorber.name=Radiation Absorber tile.absorber.name=Radiation Absorber OLD
tile.absorber_green.name=Advanced Radiation Absorber tile.absorber_green.name=Advanced Radiation Absorber OLD
tile.absorber_pink.name=Elite Radiation Absorber tile.absorber_pink.name=Elite Radiation Absorber OLD
tile.absorber_red.name=Enhanced Radiation Absorber 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.acid_block.name=Acid
tile.ams_base.name=AMS Base (Dekoracja) tile.ams_base.name=AMS Base (Dekoracja)
tile.ams_emitter.name=AMS Emitter (Dekoracja) tile.ams_emitter.name=AMS Emitter (Dekoracja)

View File

@ -5334,10 +5334,15 @@ stat.ntmBullets=Сделано выстрелов
stat.ntmLegendary=Создано легендарных предметов stat.ntmLegendary=Создано легендарных предметов
stat.ntmMines=Подрывов на минах stat.ntmMines=Подрывов на минах
tile.absorber.name=Поглотитель радиации tile.absorber.name=Поглотитель радиации OLD
tile.absorber_green.name=Усовершенствованный поглотитель радиации tile.absorber_green.name=Усовершенствованный поглотитель радиации OLD
tile.absorber_pink.name=Элитный поглотитель радиации tile.absorber_pink.name=Элитный поглотитель радиации OLD
tile.absorber_red.name=Продвинутый поглотитель радиации 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.acid_block.name=Кислота
tile.ams_base.name=Основание АМС [Декор] tile.ams_base.name=Основание АМС [Декор]
tile.ams_emitter.name=Излучатель АМС [Декор] tile.ams_emitter.name=Излучатель АМС [Декор]

View File

@ -4873,10 +4873,15 @@ stat.ntmBullets=Випущено набоїв
stat.ntmLegendary=Створено легендарних предметів stat.ntmLegendary=Створено легендарних предметів
stat.ntmMines=Підривів на мінах stat.ntmMines=Підривів на мінах
tile.absorber.name=Поглинач радіації tile.absorber.name=Поглинач радіації OLD
tile.absorber_green.name=Удосконалений поглинач радіації tile.absorber_green.name=Удосконалений поглинач радіації OLD
tile.absorber_pink.name=Елітний поглинач радіації tile.absorber_pink.name=Елітний поглинач радіації OLD
tile.absorber_red.name=Покращений поглинач радіації 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.acid_block.name=Кислота
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)

View File

@ -4516,10 +4516,16 @@ shape.wireFine=线
shape.wireDense=致密线 shape.wireDense=致密线
shape.wiresDense=致密线 shape.wiresDense=致密线
soundCategory.ntmMachines=NTM机器 soundCategory.ntmMachines=NTM机器
tile.absorber.name=辐射吸收器
tile.absorber_green.name=高级辐射吸收器 tile.absorber.name=辐射吸收器 OLD
tile.absorber_pink.name=精英辐射吸收器 tile.absorber_green.name=高级辐射吸收器 OLD
tile.absorber_red.name=增强型辐射吸收器 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.acid_block.name=酸
tile.ams_base.name=AMS基座 [开发中] tile.ams_base.name=AMS基座 [开发中]
tile.ams_emitter.name=AMS发射极 [开发中] tile.ams_emitter.name=AMS发射极 [开发中]