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

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

View File

@ -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

View File

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

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);
}
}*/
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

View File

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

View File

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

View File

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

View File

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

View File

@ -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=Излучатель АМС [Декор]

View File

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

View File

@ -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发射极 [开发中]