more RBMK gui work, meltdown mechanics, debris blocks
@ -142,6 +142,7 @@ public class ModBlocks {
|
||||
public static Block block_waste;
|
||||
public static Block block_waste_painted;
|
||||
public static Block ancient_scrap;
|
||||
public static Block block_corium;
|
||||
public static Block block_scrap;
|
||||
public static Block block_electrical_scrap;
|
||||
public static Block block_beryllium;
|
||||
@ -169,6 +170,8 @@ public class ModBlocks {
|
||||
public static Block block_white_phosphorus;
|
||||
public static Block block_red_phosphorus;
|
||||
public static Block block_fallout;
|
||||
public static Block block_graphite;
|
||||
public static Block block_boron;
|
||||
public static Block block_lanthanium;
|
||||
public static Block block_actinium;
|
||||
public static Block block_tritium;
|
||||
@ -854,6 +857,7 @@ public class ModBlocks {
|
||||
public static final int guiID_rbmk_boiler = 114;
|
||||
public static final int guiID_rbmk_control = 115;
|
||||
public static final int guiID_rbmk_console = 116;
|
||||
public static Block pribris;
|
||||
|
||||
public static Block book_guide;
|
||||
|
||||
@ -908,6 +912,10 @@ public class ModBlocks {
|
||||
public static Fluid schrabidic_fluid;
|
||||
public static final Material fluidschrabidic = (new MaterialLiquid(MapColor.cyanColor));
|
||||
|
||||
public static Block corium_block;
|
||||
public static Fluid corium_fluid;
|
||||
public static final Material fluidcorium = (new MaterialLiquid(MapColor.brownColor));
|
||||
|
||||
public static Block dummy_block_igenerator;
|
||||
public static Block dummy_port_igenerator;
|
||||
public static Block dummy_block_centrifuge;
|
||||
@ -1075,12 +1083,13 @@ public class ModBlocks {
|
||||
block_waste = new BlockNuclearWaste().setDisplayEffect(ExtDisplayEffect.RADFOG).addRadiation(ItemHazard.wst * ItemHazard.block).toBlock().setBlockName("block_waste").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_waste");
|
||||
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_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");
|
||||
block_schraranium = new BlockHazard().setDisplayEffect(ExtDisplayEffect.SCHRAB).addRadiation(ItemHazard.sr * ItemHazard.block).toBlock().setBlockName("block_schraranium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_schraranium");
|
||||
block_schrabidium = new BlockHazard().setDisplayEffect(ExtDisplayEffect.SCHRAB).addRadiation(ItemHazard.sa326 * ItemHazard.block).toBlock().setBlockName("block_schrabidium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_schrabidium");
|
||||
block_schrabidate = new BlockHazard().setDisplayEffect(ExtDisplayEffect.SCHRAB).addRadiation(ItemHazard.sa326 * ItemHazard.block).toBlock().setBlockName("block_schrabidate").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_schrabidate");
|
||||
block_schraranium = new BlockHazard().setDisplayEffect(ExtDisplayEffect.SCHRAB).addRadiation(ItemHazard.sr * ItemHazard.block).addBlinding().toBlock().setBlockName("block_schraranium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_schraranium");
|
||||
block_schrabidium = new BlockHazard().setDisplayEffect(ExtDisplayEffect.SCHRAB).addRadiation(ItemHazard.sa326 * ItemHazard.block).addBlinding().toBlock().setBlockName("block_schrabidium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_schrabidium");
|
||||
block_schrabidate = new BlockHazard().setDisplayEffect(ExtDisplayEffect.SCHRAB).addRadiation(ItemHazard.sa326 * ItemHazard.block).addBlinding().toBlock().setBlockName("block_schrabidate").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_schrabidate");
|
||||
block_solinium = new BlockHazard().setDisplayEffect(ExtDisplayEffect.SCHRAB).addRadiation(ItemHazard.sa327 * ItemHazard.block).toBlock().setBlockName("block_solinium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_solinium");
|
||||
block_schrabidium_fuel = new BlockHazard().setDisplayEffect(ExtDisplayEffect.SCHRAB).addRadiation(ItemHazard.saf * ItemHazard.block).toBlock().setBlockName("block_schrabidium_fuel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_schrabidium_fuel");
|
||||
block_euphemium = new BlockGeneric(Material.iron).setBlockName("block_euphemium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(60000.0F).setBlockTextureName(RefStrings.MODID + ":block_euphemium");
|
||||
@ -1102,6 +1111,8 @@ public class ModBlocks {
|
||||
block_white_phosphorus = new BlockHazard(Material.rock).addFire(15).toBlock().setBlockName("block_white_phosphorus").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_white_phosphorus");
|
||||
block_red_phosphorus = new BlockHazardFalling().addFire(15).toBlock().setStepSound(Block.soundTypeSand).setBlockName("block_red_phosphorus").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_red_phosphorus");
|
||||
block_fallout = new BlockHazardFalling().addRadiation(ItemHazard.fo * ItemHazard.block).toBlock().setStepSound(Block.soundTypeGravel).setBlockName("block_fallout").setCreativeTab(MainRegistry.blockTab).setHardness(0.2F).setBlockTextureName(RefStrings.MODID + ":ash");
|
||||
block_graphite = new BlockFlammable(Material.iron, 30, 5).setBlockName("block_graphite").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_graphite");
|
||||
block_boron = new BlockGeneric(Material.iron).setBlockName("block_boron").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_boron");
|
||||
block_lanthanium = new BlockGeneric(Material.iron).setBlockName("block_lanthanium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_lanthanium");
|
||||
block_actinium = new BlockGeneric(Material.iron).setBlockName("block_actinium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_actinium");
|
||||
block_tritium = new BlockRotatablePillar(Material.glass, RefStrings.MODID + ":block_tritium_top").setBlockName("block_tritium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGlass).setHardness(3.0F).setResistance(2.0F).setBlockTextureName(RefStrings.MODID + ":block_tritium_side");
|
||||
@ -1567,6 +1578,7 @@ public class ModBlocks {
|
||||
rbmk_absorber = new RBMKAbsorber().setBlockName("rbmk_absorber").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_absorber");
|
||||
rbmk_moderator = new RBMKModerator().setBlockName("rbmk_moderator").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_moderator");
|
||||
rbmk_console = new RBMKConsole().setBlockName("rbmk_console").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_console");
|
||||
pribris = new RBMKDebris().setBlockName("pribris").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_debris");
|
||||
|
||||
book_guide = new Guide(Material.iron).setBlockName("book_guide").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.nukeTab);
|
||||
|
||||
@ -1681,6 +1693,10 @@ 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 SchrabidicFluid().setDensity(6000).setViscosity(500).setLuminosity(10).setTemperature(600).setUnlocalizedName("corium_fluid");
|
||||
FluidRegistry.registerFluid(corium_fluid);
|
||||
corium_block = new CoriumBlock(corium_fluid, fluidcorium).setBlockName("corium_block").setResistance(500F);
|
||||
|
||||
dummy_block_igenerator = new DummyBlockIGenerator(Material.iron).setBlockName("dummy_block_igenerator").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
dummy_port_igenerator = new DummyBlockIGenerator(Material.iron).setBlockName("dummy_port_igenerator").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
dummy_block_centrifuge = new DummyBlockCentrifuge(Material.iron).setBlockName("dummy_block_centrifuge").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
@ -1864,6 +1880,8 @@ public class ModBlocks {
|
||||
GameRegistry.registerBlock(block_scrap, block_scrap.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(block_electrical_scrap, block_electrical_scrap.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(block_fallout, ItemBlockHazard.class, block_fallout.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(block_graphite, block_graphite.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(block_boron, block_boron.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(block_insulator, block_insulator.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(block_fiberglass, block_fiberglass.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(block_asbestos, ItemBlockHazard.class, block_asbestos.getUnlocalizedName());
|
||||
@ -1871,6 +1889,7 @@ public class ModBlocks {
|
||||
GameRegistry.registerBlock(block_waste, ItemBlockHazard.class, block_waste.getUnlocalizedName());
|
||||
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_schraranium, ItemBlockSchrabidium.class, block_schraranium.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(block_schrabidium, ItemBlockSchrabidium.class, block_schrabidium.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(block_schrabidate, ItemBlockSchrabidium.class, block_schrabidate.getUnlocalizedName());
|
||||
@ -2220,6 +2239,7 @@ public class ModBlocks {
|
||||
GameRegistry.registerBlock(rbmk_absorber, rbmk_absorber.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(rbmk_moderator, rbmk_moderator.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(rbmk_console, rbmk_console.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(pribris, pribris.getUnlocalizedName());
|
||||
//GameRegistry.registerBlock(rbmk_console, rbmk_console.getUnlocalizedName());
|
||||
|
||||
GameRegistry.registerBlock(red_cable, red_cable.getUnlocalizedName());
|
||||
@ -2440,6 +2460,7 @@ public class ModBlocks {
|
||||
GameRegistry.registerBlock(acid_block, acid_block.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(toxic_block, toxic_block.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(schrabidic_block, schrabidic_block.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(corium_block, corium_block.getUnlocalizedName());
|
||||
|
||||
//Multiblock Dummy Blocks
|
||||
GameRegistry.registerBlock(dummy_block_igenerator, dummy_block_igenerator.getUnlocalizedName());
|
||||
|
||||
82
src/main/java/com/hbm/blocks/fluid/CoriumBlock.java
Normal file
@ -0,0 +1,82 @@
|
||||
package com.hbm.blocks.fluid;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.lib.RefStrings;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.fluids.BlockFluidClassic;
|
||||
import net.minecraftforge.fluids.Fluid;
|
||||
|
||||
public class CoriumBlock extends BlockFluidClassic {
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public static IIcon stillIcon;
|
||||
@SideOnly(Side.CLIENT)
|
||||
public static IIcon flowingIcon;
|
||||
public Random rand = new Random();
|
||||
|
||||
public CoriumBlock(Fluid fluid, Material material) {
|
||||
super(fluid, material);
|
||||
setQuantaPerBlock(5);
|
||||
setCreativeTab(null);
|
||||
displacements.put(this, false);
|
||||
this.tickRate = 30;
|
||||
|
||||
this.setTickRandomly(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public IIcon getIcon(int side, int meta) {
|
||||
return (side == 0 || side == 1) ? stillIcon : flowingIcon;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void registerBlockIcons(IIconRegister register) {
|
||||
stillIcon = register.registerIcon(RefStrings.MODID + ":corium_still");
|
||||
flowingIcon = register.registerIcon(RefStrings.MODID + ":corium_flowing");
|
||||
}
|
||||
|
||||
@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);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean displaceIfPossible(World world, int x, int y, int z) {
|
||||
|
||||
if(world.getBlock(x, y, z).getMaterial().isLiquid()) {
|
||||
return false;
|
||||
}
|
||||
return super.displaceIfPossible(world, x, y, z);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) {
|
||||
entity.setInWeb();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateTick(World world, int x, int y, int z, Random rand) {
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
26
src/main/java/com/hbm/blocks/generic/BlockFlammable.java
Normal file
@ -0,0 +1,26 @@
|
||||
package com.hbm.blocks.generic;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class BlockFlammable extends Block {
|
||||
|
||||
private int encouragement;
|
||||
private int flammability;
|
||||
|
||||
public BlockFlammable(Material mat, int en, int flam) {
|
||||
super(mat);
|
||||
this.encouragement = en;
|
||||
this.flammability = flam;
|
||||
}
|
||||
|
||||
public int getFlammability(IBlockAccess world, int x, int y, int z, ForgeDirection face) {
|
||||
return flammability;
|
||||
}
|
||||
|
||||
public int getFireSpreadSpeed(IBlockAccess world, int x, int y, int z, ForgeDirection face) {
|
||||
return encouragement;
|
||||
}
|
||||
}
|
||||
@ -9,7 +9,10 @@ public class RBMKAbsorber extends RBMKBase {
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World world, int meta) {
|
||||
return new TileEntityRBMKAbsorber();
|
||||
|
||||
if(meta >= this.offset)
|
||||
return new TileEntityRBMKAbsorber();
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -9,7 +9,10 @@ public class RBMKBlank extends RBMKBase {
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World world, int meta) {
|
||||
return new TileEntityRBMKBlank();
|
||||
|
||||
if(meta >= this.offset)
|
||||
return new TileEntityRBMKBlank();
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -16,7 +16,6 @@ public class RBMKBoiler extends RBMKBase {
|
||||
|
||||
if(meta >= this.offset)
|
||||
return new TileEntityRBMKBoiler();
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@ -2,10 +2,8 @@ package com.hbm.blocks.machine.rbmk;
|
||||
|
||||
import com.hbm.blocks.BlockDummyable;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.blocks.machine.BlockMachineBase;
|
||||
import com.hbm.handler.MultiblockHandlerXR;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.machine.TileEntityMachinePlasmaHeater;
|
||||
import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole;
|
||||
|
||||
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||
@ -24,7 +22,7 @@ public class RBMKConsole extends BlockDummyable {
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World world, int meta) {
|
||||
|
||||
if(meta >= 12)
|
||||
if(meta >= this.offset)
|
||||
return new TileEntityRBMKConsole();
|
||||
|
||||
return null;
|
||||
|
||||
@ -11,7 +11,10 @@ public class RBMKControl extends RBMKBase {
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World world, int meta) {
|
||||
return new TileEntityRBMKControl();
|
||||
|
||||
if(meta >= this.offset)
|
||||
return new TileEntityRBMKControl();
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -9,7 +9,10 @@ public class RBMKControlAuto extends RBMKBase {
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World world, int meta) {
|
||||
return new TileEntityRBMKControl();
|
||||
|
||||
if(meta >= this.offset)
|
||||
return new TileEntityRBMKControl();
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
52
src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebris.java
Normal file
@ -0,0 +1,52 @@
|
||||
package com.hbm.blocks.machine.rbmk;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.main.MainRegistry;
|
||||
|
||||
import cpw.mods.fml.client.registry.RenderingRegistry;
|
||||
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.init.Blocks;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class RBMKDebris extends Block {
|
||||
|
||||
public RBMKDebris() {
|
||||
super(Material.iron);
|
||||
}
|
||||
|
||||
public static int renderID = RenderingRegistry.getNextAvailableRenderId();
|
||||
|
||||
@Override
|
||||
public int getRenderType(){
|
||||
return this.renderID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean renderAsNormalBlock() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void randomDisplayTick(World world, int x, int y, int z, Random rand) {
|
||||
|
||||
if(world.getBlock(x, y + 1, z) == Blocks.air && rand.nextInt(100) == 0) {
|
||||
NBTTagCompound data = new NBTTagCompound();
|
||||
data.setString("type", "rbmkflame");
|
||||
data.setInteger("maxAge", 300);
|
||||
data.setDouble("posX", x + 0.5);
|
||||
data.setDouble("posY", y + 1.75);
|
||||
data.setDouble("posZ", z + 0.5);
|
||||
MainRegistry.proxy.effectNT(data);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -9,7 +9,10 @@ public class RBMKModerator extends RBMKBase {
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World world, int meta) {
|
||||
return new TileEntityRBMKModerator();
|
||||
|
||||
if(meta >= this.offset)
|
||||
return new TileEntityRBMKModerator();
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -9,7 +9,10 @@ public class RBMKReflector extends RBMKBase {
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World world, int meta) {
|
||||
return new TileEntityRBMKReflector();
|
||||
|
||||
if(meta >= this.offset)
|
||||
return new TileEntityRBMKReflector();
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -1,10 +1,8 @@
|
||||
package com.hbm.blocks.machine.rbmk;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.machine.rbmk.TileEntityRBMKRod;
|
||||
|
||||
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
@ -16,7 +16,7 @@ import net.minecraft.entity.player.InventoryPlayer;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
|
||||
public class GUIRBMKBoiler extends GuiContainer {
|
||||
public class GUIRBMKBoiler extends GuiInfoContainer {
|
||||
|
||||
private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/reactors/gui_rbmk_boiler.png");
|
||||
private TileEntityRBMKBoiler boiler;
|
||||
@ -28,6 +28,15 @@ public class GUIRBMKBoiler extends GuiContainer {
|
||||
this.xSize = 176;
|
||||
this.ySize = 186;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void drawScreen(int mouseX, int mouseY, float f) {
|
||||
super.drawScreen(mouseX, mouseY, f);
|
||||
|
||||
|
||||
boiler.feed.renderTankInfo(this, mouseX, mouseY, guiLeft + 126, guiTop + 24, 16, 56);
|
||||
boiler.steam.renderTankInfo(this, mouseX, mouseY, guiLeft + 89, guiTop + 39, 8, 28);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void mouseClicked(int x, int y, int i) {
|
||||
@ -56,6 +65,16 @@ public class GUIRBMKBoiler extends GuiContainer {
|
||||
Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
|
||||
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);
|
||||
|
||||
int i = boiler.feed.getFill() * 58 / boiler.feed.getMaxFill();
|
||||
drawTexturedModalRect(guiLeft + 126, guiTop + 82 - i, 176, 58 - i, 14, i);
|
||||
|
||||
int j = boiler.feed.getFill() * 22 / boiler.feed.getMaxFill();
|
||||
|
||||
if(j > 0) j++;
|
||||
if(j > 22) j++;
|
||||
|
||||
drawTexturedModalRect(guiLeft + 91, guiTop + 65 - j, 190, 24 - j, 4, j);
|
||||
|
||||
switch(boiler.steam.getTankType()) {
|
||||
case STEAM: drawTexturedModalRect(guiLeft + 36, guiTop + 24, 194, 0, 14, 58); break;
|
||||
case HOTSTEAM: drawTexturedModalRect(guiLeft + 36, guiTop + 24, 208, 0, 14, 58); break;
|
||||
|
||||
@ -897,6 +897,7 @@ public class ModItems {
|
||||
public static Item rod_dual_coolant;
|
||||
public static Item rod_quad_coolant;
|
||||
|
||||
public static Item rbmk_lid;
|
||||
public static Item rbmk_fuel_empty;
|
||||
public static Item rbmk_fuel_meu;
|
||||
public static Item rbmk_fuel_thmeu;
|
||||
@ -1558,6 +1559,7 @@ public class ModItems {
|
||||
|
||||
public static Item defuser;
|
||||
public static Item reacher;
|
||||
public static Item meltdown_tool;
|
||||
|
||||
public static Item flame_pony;
|
||||
public static Item flame_conspiracy;
|
||||
@ -3125,6 +3127,7 @@ public class ModItems {
|
||||
rod_dual_tritium = new ItemHazard(1F).setUnlocalizedName("rod_dual_tritium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_dual_empty).setTextureName(RefStrings.MODID + ":rod_dual_tritium");
|
||||
rod_quad_tritium = new ItemHazard(2F).setUnlocalizedName("rod_quad_tritium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_quad_empty).setTextureName(RefStrings.MODID + ":rod_quad_tritium");
|
||||
|
||||
rbmk_lid = new Item().setUnlocalizedName("rbmk_lid").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rbmk_lid");
|
||||
rbmk_fuel_empty = new Item().setUnlocalizedName("rbmk_fuel_empty").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rbmk_fuel_empty");
|
||||
rbmk_fuel_meu = new ItemRBMKRod("Medium Enriched Uranium")
|
||||
.setYield(100000000D)
|
||||
@ -3765,6 +3768,7 @@ public class ModItems {
|
||||
|
||||
defuser = new Item().setUnlocalizedName("defuser").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":defuser");
|
||||
reacher = new Item().setUnlocalizedName("reacher").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":reacher");
|
||||
meltdown_tool = new ItemDyatlov().setUnlocalizedName("meltdown_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":meltdown_tool");
|
||||
|
||||
flame_pony = new ItemCustomLore().setUnlocalizedName("flame_pony").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":flame_pony");
|
||||
flame_conspiracy = new ItemCustomLore().setUnlocalizedName("flame_conspiracy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":flame_conspiracy");
|
||||
@ -5802,6 +5806,7 @@ public class ModItems {
|
||||
GameRegistry.registerItem(rod_dual_waste, rod_dual_waste.getUnlocalizedName());
|
||||
GameRegistry.registerItem(rod_quad_waste, rod_quad_waste.getUnlocalizedName());
|
||||
|
||||
GameRegistry.registerItem(rbmk_lid, rbmk_lid.getUnlocalizedName());
|
||||
GameRegistry.registerItem(rbmk_fuel_empty, rbmk_fuel_empty.getUnlocalizedName());
|
||||
GameRegistry.registerItem(rbmk_fuel_meu, rbmk_fuel_meu.getUnlocalizedName());
|
||||
GameRegistry.registerItem(rbmk_fuel_thmeu, rbmk_fuel_thmeu.getUnlocalizedName());
|
||||
@ -6807,6 +6812,7 @@ public class ModItems {
|
||||
GameRegistry.registerItem(meteor_remote, meteor_remote.getUnlocalizedName());
|
||||
GameRegistry.registerItem(defuser, defuser.getUnlocalizedName());
|
||||
GameRegistry.registerItem(reacher, reacher.getUnlocalizedName());
|
||||
GameRegistry.registerItem(meltdown_tool, meltdown_tool.getUnlocalizedName());
|
||||
|
||||
GameRegistry.registerItem(hazmat_helmet, hazmat_helmet.getUnlocalizedName());
|
||||
GameRegistry.registerItem(hazmat_plate, hazmat_plate.getUnlocalizedName());
|
||||
|
||||
@ -90,12 +90,13 @@ public class ItemRBMKRod extends ItemHazard {
|
||||
|
||||
inFlux += selfRate;
|
||||
|
||||
inFlux *= (1D - getPoisonLevel(stack));
|
||||
|
||||
double xenon = getPoison(stack);
|
||||
xenon += xenonGenFunc(inFlux);
|
||||
xenon -= xenonBurnFunc(inFlux);
|
||||
|
||||
inFlux *= (1D - getPoisonLevel(stack));
|
||||
|
||||
xenon += xenonGenFunc(inFlux);
|
||||
|
||||
if(xenon < 0D) xenon = 0D;
|
||||
if(xenon > 100D) xenon = 100D;
|
||||
|
||||
@ -193,7 +194,7 @@ public class ItemRBMKRod extends ItemHazard {
|
||||
list.add(EnumChatFormatting.RED + I18nUtil.resolveKey("trait.rbmx.source"));
|
||||
}
|
||||
|
||||
list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey("trait.rbmx.depletion", ((int)(((yield - getYield(stack)) / yield) * 10000)) / 10000D + "%"));
|
||||
list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey("trait.rbmx.depletion", ((int)(((yield - getYield(stack)) / yield) * 1000)) / 1000D + "%"));
|
||||
list.add(EnumChatFormatting.DARK_PURPLE + I18nUtil.resolveKey("trait.rbmx.xenon", ((getPoison(stack) * 100D) / 100D) + "%"));
|
||||
list.add(EnumChatFormatting.BLUE + I18nUtil.resolveKey("trait.rbmx.splitsWith", I18nUtil.resolveKey(nType.unlocalized + ".x")));
|
||||
list.add(EnumChatFormatting.BLUE + I18nUtil.resolveKey("trait.rbmx.splitsInto", I18nUtil.resolveKey(rType.unlocalized + ".x")));
|
||||
@ -212,7 +213,7 @@ public class ItemRBMKRod extends ItemHazard {
|
||||
list.add(EnumChatFormatting.RED + I18nUtil.resolveKey("trait.rbmk.source"));
|
||||
}
|
||||
|
||||
list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey("trait.rbmk.depletion", ((int)(((yield - getYield(stack)) / yield) * 10000)) / 10000D + "%"));
|
||||
list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey("trait.rbmk.depletion", ((int)(((yield - getYield(stack)) / yield) * 1000D)) / 1000D + "%"));
|
||||
list.add(EnumChatFormatting.DARK_PURPLE + I18nUtil.resolveKey("trait.rbmk.xenon", ((getPoison(stack) * 100D) / 100D) + "%"));
|
||||
list.add(EnumChatFormatting.BLUE + I18nUtil.resolveKey("trait.rbmk.splitsWith", I18nUtil.resolveKey(nType.unlocalized)));
|
||||
list.add(EnumChatFormatting.BLUE + I18nUtil.resolveKey("trait.rbmk.splitsInto", I18nUtil.resolveKey(rType.unlocalized)));
|
||||
|
||||
38
src/main/java/com/hbm/items/tool/ItemDyatlov.java
Normal file
@ -0,0 +1,38 @@
|
||||
package com.hbm.items.tool;
|
||||
|
||||
import com.hbm.blocks.machine.rbmk.RBMKBase;
|
||||
import com.hbm.tileentity.machine.rbmk.TileEntityRBMKBase;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class ItemDyatlov extends Item {
|
||||
|
||||
public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int i, float f0, float f1, float f2) {
|
||||
|
||||
if(!world.isRemote) {
|
||||
|
||||
if(world.getBlock(x, y, z) instanceof RBMKBase) {
|
||||
|
||||
RBMKBase rbmk = (RBMKBase)world.getBlock(x, y, z);
|
||||
|
||||
int[] pos = rbmk.findCore(world, x, y, z);
|
||||
|
||||
if(pos != null) {
|
||||
|
||||
TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]);
|
||||
|
||||
if(te instanceof TileEntityRBMKBase) {
|
||||
|
||||
((TileEntityRBMKBase)te).meltdown();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@ -207,6 +207,7 @@ public class ClientProxy extends ServerProxy {
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityITERStruct.class, new RenderITERMultiblock());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPlasmaStruct.class, new RenderPlasmaMultiblock());
|
||||
//RBMK
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKControl.class, new RenderRBMKControlRod());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKConsole.class, new RenderRBMKConsole());
|
||||
//ITER
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityITER.class, new RenderITER());
|
||||
@ -540,6 +541,7 @@ public class ClientProxy extends ServerProxy {
|
||||
RenderingRegistry.registerBlockHandler(new RenderRBMKRod());
|
||||
RenderingRegistry.registerBlockHandler(new RenderRBMKReflector());
|
||||
RenderingRegistry.registerBlockHandler(new RenderRBMKControl());
|
||||
RenderingRegistry.registerBlockHandler(new RenderPribris());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -1235,6 +1237,12 @@ public class ClientProxy extends ServerProxy {
|
||||
Minecraft.getMinecraft().effectRenderer.addEffect(new ParticleRift(man, world, x, y, z));
|
||||
}
|
||||
|
||||
if("rbmkflame".equals(type)) {
|
||||
|
||||
int maxAge = data.getInteger("maxAge");
|
||||
Minecraft.getMinecraft().effectRenderer.addEffect(new ParticleRBMKFlame(man, world, x, y, z, maxAge));
|
||||
}
|
||||
|
||||
if("anim".equals(type)) {
|
||||
|
||||
if("crucible".equals(data.getString("mode")) && player.getHeldItem() != null) {
|
||||
|
||||
@ -995,6 +995,7 @@ public class ResourceManager {
|
||||
public static final IModelCustom rbmk_reflector = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/rbmk/rbmk_reflector.obj"));
|
||||
public static final IModelCustom rbmk_rods = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/rbmk/rbmk_rods.obj"));
|
||||
public static final IModelCustom rbmk_console = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/rbmk/rbmk_console.obj"));
|
||||
public static final IModelCustom rbmk_debris = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/rbmk/debris.obj"));
|
||||
public static final ResourceLocation rbmk_console_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/rbmk_control.png");
|
||||
|
||||
}
|
||||
|
||||
@ -113,10 +113,10 @@ public class ParticleMukeCloud extends EntityFX {
|
||||
float pY = (float) (this.prevPosY + (this.posY - this.prevPosY) * (double) interp - interpPosY);
|
||||
float pZ = (float) (this.prevPosZ + (this.posZ - this.prevPosZ) * (double) interp - interpPosZ);
|
||||
|
||||
tess.addVertexWithUV((double) (pX - x * this.particleScale - tx * this.particleScale), (double) (pY - y * this.particleScale), (double) (pZ - z * this.particleScale - tz * this.particleScale), uMax, vMax);
|
||||
tess.addVertexWithUV((double) (pX - x * this.particleScale + tx * this.particleScale), (double) (pY + y * this.particleScale), (double) (pZ - z * this.particleScale + tz * this.particleScale), uMax, vMin);
|
||||
tess.addVertexWithUV((double) (pX + x * this.particleScale + tx * this.particleScale), (double) (pY + y * this.particleScale), (double) (pZ + z * this.particleScale + tz * this.particleScale), uMin, vMin);
|
||||
tess.addVertexWithUV((double) (pX + x * this.particleScale - tx * this.particleScale), (double) (pY - y * this.particleScale), (double) (pZ + z * this.particleScale - tz * this.particleScale), uMin, vMax);
|
||||
tess.addVertexWithUV((double) (pX - x * this.particleScale - tx * this.particleScale), (double) (pY - 1 * this.particleScale), (double) (pZ - z * this.particleScale - tz * this.particleScale), uMax, vMax);
|
||||
tess.addVertexWithUV((double) (pX - x * this.particleScale + tx * this.particleScale), (double) (pY + 1 * this.particleScale), (double) (pZ - z * this.particleScale + tz * this.particleScale), uMax, vMin);
|
||||
tess.addVertexWithUV((double) (pX + x * this.particleScale + tx * this.particleScale), (double) (pY + 1 * this.particleScale), (double) (pZ + z * this.particleScale + tz * this.particleScale), uMin, vMin);
|
||||
tess.addVertexWithUV((double) (pX + x * this.particleScale - tx * this.particleScale), (double) (pY - 1 * this.particleScale), (double) (pZ + z * this.particleScale - tz * this.particleScale), uMin, vMax);
|
||||
|
||||
tess.draw();
|
||||
|
||||
|
||||
101
src/main/java/com/hbm/particle/ParticleRBMKFlame.java
Normal file
@ -0,0 +1,101 @@
|
||||
package com.hbm.particle;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.lib.RefStrings;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.particle.EntityFX;
|
||||
import net.minecraft.client.renderer.OpenGlHelper;
|
||||
import net.minecraft.client.renderer.RenderHelper;
|
||||
import net.minecraft.client.renderer.Tessellator;
|
||||
import net.minecraft.client.renderer.entity.RenderManager;
|
||||
import net.minecraft.client.renderer.texture.TextureManager;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public class ParticleRBMKFlame extends EntityFX {
|
||||
|
||||
private static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/particle/rbmk_fire.png");
|
||||
private TextureManager theRenderEngine;
|
||||
|
||||
public ParticleRBMKFlame(TextureManager texman, World world, double x, double y, double z, int maxAge) {
|
||||
super(world, x, y, z);
|
||||
this.theRenderEngine = texman;
|
||||
this.particleMaxAge = maxAge;
|
||||
}
|
||||
|
||||
public int getFXLayer() {
|
||||
return 3;
|
||||
}
|
||||
|
||||
public void renderParticle(Tessellator tess, float interp, float x, float y, float z, float tx, float tz) {
|
||||
|
||||
this.theRenderEngine.bindTexture(getTexture());
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
||||
GL11.glDisable(GL11.GL_LIGHTING);
|
||||
GL11.glEnable(GL11.GL_BLEND);
|
||||
GL11.glAlphaFunc(GL11.GL_GREATER, 0);
|
||||
GL11.glDepthMask(false);
|
||||
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE);
|
||||
RenderHelper.disableStandardItemLighting();
|
||||
|
||||
if(this.particleAge > this.particleMaxAge)
|
||||
this.particleAge = this.particleMaxAge;
|
||||
|
||||
int texIndex = this.particleAge * 5 % 14;
|
||||
float f0 = 1F / 14F;
|
||||
|
||||
float uMin = texIndex % 5 * f0;
|
||||
float uMax = uMin + f0;
|
||||
float vMin = 0;
|
||||
float vMax = 1;
|
||||
|
||||
tess.startDrawingQuads();
|
||||
|
||||
tess.setNormal(0.0F, 1.0F, 0.0F);
|
||||
tess.setBrightness(240);
|
||||
|
||||
this.particleAlpha = 1F;
|
||||
|
||||
if(this.particleAge < 20) {
|
||||
this.particleAlpha = this.particleAge / 20F;
|
||||
}
|
||||
|
||||
if(this.particleAge > this.particleMaxAge - 20) {
|
||||
this.particleAlpha = (this.particleMaxAge - this.particleAge) / 20F;
|
||||
}
|
||||
|
||||
this.particleScale = 1;
|
||||
|
||||
tess.setColorRGBA_F(1.0F, 1.0F, 1.0F, this.particleAlpha);
|
||||
|
||||
float pX = (float) (this.prevPosX + (this.posX - this.prevPosX) * (double) interp - interpPosX);
|
||||
float pY = (float) (this.prevPosY + (this.posY - this.prevPosY) * (double) interp - interpPosY);
|
||||
float pZ = (float) (this.prevPosZ + (this.posZ - this.prevPosZ) * (double) interp - interpPosZ);
|
||||
|
||||
GL11.glTranslatef(pX + x, pY + y, pZ + z);
|
||||
GL11.glRotatef(-RenderManager.instance.playerViewY, 0.0F, 1.0F, 0.0F);
|
||||
|
||||
tess.addVertexWithUV((double) (-this.particleScale - 1), (double) (-this.particleScale * 2), (double) (0), uMax, vMax);
|
||||
tess.addVertexWithUV((double) (-this.particleScale - 1), (double) (this.particleScale * 2), (double) 0, uMax, vMin);
|
||||
tess.addVertexWithUV((double) (this.particleScale - 1), (double) (this.particleScale * 2), (double) (0), uMin, vMin);
|
||||
tess.addVertexWithUV((double) (this.particleScale - 1), (double) (-this.particleScale * 2), (double) (0), uMin, vMax);
|
||||
|
||||
tess.draw();
|
||||
|
||||
GL11.glPolygonOffset(0.0F, 0.0F);
|
||||
GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F);
|
||||
GL11.glEnable(GL11.GL_LIGHTING);
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
protected ResourceLocation getTexture() {
|
||||
return texture;
|
||||
}
|
||||
}
|
||||
70
src/main/java/com/hbm/render/block/RenderPribris.java
Normal file
@ -0,0 +1,70 @@
|
||||
package com.hbm.render.block;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.blocks.machine.rbmk.RBMKDebris;
|
||||
import com.hbm.main.ResourceManager;
|
||||
import com.hbm.render.util.ObjUtil;
|
||||
|
||||
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.client.renderer.RenderBlocks;
|
||||
import net.minecraft.client.renderer.Tessellator;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraftforge.client.model.obj.WavefrontObject;
|
||||
|
||||
public class RenderPribris implements ISimpleBlockRenderingHandler {
|
||||
|
||||
@Override
|
||||
public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) {
|
||||
|
||||
GL11.glPushMatrix();
|
||||
Tessellator tessellator = Tessellator.instance;
|
||||
IIcon iicon = block.getIcon(0, 0);
|
||||
tessellator.setColorOpaque_F(1, 1, 1);
|
||||
|
||||
if (renderer.hasOverrideBlockTexture())
|
||||
{
|
||||
iicon = renderer.overrideBlockTexture;
|
||||
}
|
||||
|
||||
GL11.glTranslated(0, -0.5, 0);
|
||||
tessellator.startDrawingQuads();
|
||||
ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rbmk_debris, iicon, tessellator, 0, false);
|
||||
tessellator.draw();
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) {
|
||||
|
||||
Tessellator tessellator = Tessellator.instance;
|
||||
IIcon iicon = block.getIcon(0, world.getBlockMetadata(x, y, z));
|
||||
|
||||
tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z));
|
||||
tessellator.setColorOpaque_F(1, 1, 1);
|
||||
|
||||
if (renderer.hasOverrideBlockTexture())
|
||||
{
|
||||
iicon = renderer.overrideBlockTexture;
|
||||
}
|
||||
|
||||
tessellator.addTranslation(x + 0.5F, y, z + 0.5F);
|
||||
ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rbmk_debris, iicon, tessellator, 0, true);
|
||||
tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldRender3DInInventory(int modelId) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRenderId() {
|
||||
return RBMKDebris.renderID;
|
||||
}
|
||||
}
|
||||
@ -10,7 +10,6 @@ import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.client.renderer.RenderBlocks;
|
||||
import net.minecraft.client.renderer.Tessellator;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraftforge.client.model.obj.WavefrontObject;
|
||||
@ -29,7 +28,7 @@ public class RenderRBMKControl implements ISimpleBlockRenderingHandler {
|
||||
iicon = renderer.overrideBlockTexture;
|
||||
}
|
||||
|
||||
GL11.glTranslated(0, -0.675, 0);
|
||||
GL11.glTranslated(0, -0.75, 0);
|
||||
GL11.glScalef(0.35F, 0.35F, 0.35F);
|
||||
|
||||
for(int i = 0; i < 4; i++) {
|
||||
@ -40,8 +39,10 @@ public class RenderRBMKControl implements ISimpleBlockRenderingHandler {
|
||||
if(i < 3)
|
||||
GL11.glTranslated(0, 1, 0);
|
||||
}
|
||||
|
||||
|
||||
tessellator.startDrawingQuads();
|
||||
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rbmk_rods, "Lid", iicon, tessellator, 0, true);
|
||||
tessellator.draw();
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
@ -62,11 +63,11 @@ public class RenderRBMKControl implements ISimpleBlockRenderingHandler {
|
||||
tessellator.addTranslation(x + 0.5F, y, z + 0.5F);
|
||||
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rbmk_rods, "Column", iicon, tessellator, 0, true);
|
||||
|
||||
if(world.getBlock(x, y + 1, z) == Blocks.air) {
|
||||
/*if(world.getBlock(x, y + 1, z) == Blocks.air) {
|
||||
//tessellator.addTranslation(0, 0.125F, 0);
|
||||
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rbmk_rods, "Lid", iicon, tessellator, 0, true);
|
||||
//tessellator.addTranslation(0, -0.125F, 0);
|
||||
}
|
||||
}*/
|
||||
|
||||
//if(world.getBlock(x, y + 1, z) == Blocks.air)
|
||||
// ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rbmk_element, "Lid", ModBlocks.rbmk_rod.getIcon(0, 0), tessellator, 0, true);
|
||||
|
||||
@ -42,7 +42,7 @@ public class RenderTaintBlock implements ISimpleBlockRenderingHandler {
|
||||
double d4 = (double)iicon.getMinV();
|
||||
double d0 = (double)iicon.getMaxU();
|
||||
double d1 = (double)iicon.getMaxV();
|
||||
double d2 = 0.05000000074505806D;
|
||||
double d2 = 0.05D;
|
||||
renderer.blockAccess.getBlockMetadata(x, y, z);
|
||||
|
||||
if (side2)
|
||||
|
||||
@ -0,0 +1,37 @@
|
||||
package com.hbm.render.tileentity;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.main.ResourceManager;
|
||||
import com.hbm.tileentity.machine.rbmk.TileEntityRBMKControl;
|
||||
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
|
||||
public class RenderRBMKControlRod extends TileEntitySpecialRenderer {
|
||||
|
||||
private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/blocks/rbmk/rbmk_control.png");
|
||||
|
||||
@Override
|
||||
public void renderTileEntityAt(TileEntity te, double x, double y, double z, float i) {
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(x + 0.5, y + 3, z + 0.5);
|
||||
|
||||
GL11.glEnable(GL11.GL_LIGHTING);
|
||||
GL11.glEnable(GL11.GL_CULL_FACE);
|
||||
|
||||
TileEntityRBMKControl control = (TileEntityRBMKControl)te;
|
||||
|
||||
bindTexture(texture);
|
||||
|
||||
double level = control.lastLevel + (control.level - control.lastLevel) * i;
|
||||
|
||||
GL11.glTranslated(0, level, 0);
|
||||
ResourceManager.rbmk_rods.renderPart("Lid");
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
}
|
||||
@ -2,11 +2,13 @@ package com.hbm.tileentity.machine.rbmk;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.blocks.machine.rbmk.RBMKBase;
|
||||
import com.hbm.packet.NBTPacket;
|
||||
import com.hbm.packet.PacketDispatcher;
|
||||
@ -19,8 +21,10 @@ import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.Gui;
|
||||
import net.minecraft.client.gui.ScaledResolution;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.client.event.RenderGameOverlayEvent;
|
||||
@ -220,4 +224,90 @@ public abstract class TileEntityRBMKBase extends TileEntity implements INBTPacke
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(Gui.icons);
|
||||
}
|
||||
}
|
||||
|
||||
public void onOverheat() {
|
||||
|
||||
for(int i = 0; i < 4; i++) {
|
||||
worldObj.setBlock(xCoord, yCoord + i, zCoord, Blocks.lava);
|
||||
}
|
||||
}
|
||||
|
||||
public void onMelt(int reduce) {
|
||||
|
||||
reduce = MathHelper.clamp_int(reduce, 1, 3);
|
||||
|
||||
if(worldObj.rand.nextInt(3) == 0)
|
||||
reduce++;
|
||||
|
||||
for(int i = 3; i >= 0; i--) {
|
||||
|
||||
if(i <= 4 - reduce) {
|
||||
|
||||
if(reduce > 1 && i == 4 - reduce && worldObj.rand.nextInt(3) == 0)
|
||||
worldObj.setBlock(xCoord, yCoord + i, zCoord, ModBlocks.corium_block);
|
||||
else
|
||||
worldObj.setBlock(xCoord, yCoord + i, zCoord, ModBlocks.pribris);
|
||||
|
||||
} else {
|
||||
worldObj.setBlock(xCoord, yCoord + i, zCoord, Blocks.air);
|
||||
}
|
||||
worldObj.markBlockForUpdate(xCoord, yCoord + i, zCoord);
|
||||
}
|
||||
}
|
||||
|
||||
public static HashSet<TileEntityRBMKBase> columns = new HashSet();
|
||||
|
||||
public void meltdown() {
|
||||
|
||||
columns.clear();
|
||||
getFF(xCoord, yCoord, zCoord);
|
||||
|
||||
int minX = xCoord;
|
||||
int maxX = xCoord;
|
||||
int minZ = zCoord;
|
||||
int maxZ = zCoord;
|
||||
|
||||
//set meltdown bounds
|
||||
for(TileEntityRBMKBase rbmk : columns) {
|
||||
|
||||
if(rbmk.xCoord < minX)
|
||||
minX = rbmk.xCoord;
|
||||
if(rbmk.xCoord > maxX)
|
||||
maxX = rbmk.xCoord;
|
||||
if(rbmk.zCoord < minZ)
|
||||
minZ = rbmk.zCoord;
|
||||
if(rbmk.zCoord > maxZ)
|
||||
maxZ = rbmk.zCoord;
|
||||
}
|
||||
|
||||
for(TileEntityRBMKBase rbmk : columns) {
|
||||
|
||||
int distFromMinX = rbmk.xCoord - minX;
|
||||
int distFromMaxX = maxX - rbmk.xCoord;
|
||||
int distFromMinZ = rbmk.zCoord - minZ;
|
||||
int distFromMaxZ = maxZ - rbmk.zCoord;
|
||||
|
||||
int minDist = Math.min(distFromMinX, Math.min(distFromMaxX, Math.min(distFromMinZ, distFromMaxZ)));
|
||||
|
||||
rbmk.onMelt(minDist + 1);
|
||||
}
|
||||
}
|
||||
|
||||
private void getFF(int x, int y, int z) {
|
||||
|
||||
TileEntity te = worldObj.getTileEntity(x, y, z);
|
||||
|
||||
if(te instanceof TileEntityRBMKBase) {
|
||||
|
||||
TileEntityRBMKBase rbmk = (TileEntityRBMKBase) te;
|
||||
|
||||
if(!columns.contains(rbmk)) {
|
||||
columns.add(rbmk);
|
||||
getFF(x + 1, y, z);
|
||||
getFF(x - 1, y, z);
|
||||
getFF(x, y, z + 1);
|
||||
getFF(x, y, z - 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -147,6 +147,7 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I
|
||||
return Vec3.createVectorHelper(xCoord - player.posX, yCoord - player.posY, zCoord - player.posZ).lengthVector() < 20;
|
||||
}
|
||||
|
||||
@SuppressWarnings("incomplete-switch") //shut the up
|
||||
@Override
|
||||
public void receiveControl(NBTTagCompound data) {
|
||||
|
||||
|
||||
@ -2,12 +2,17 @@ package com.hbm.tileentity.machine.rbmk;
|
||||
|
||||
import com.hbm.interfaces.IControlReceiver;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.util.Vec3;
|
||||
|
||||
public class TileEntityRBMKControl extends TileEntityRBMKSlottedBase implements IControlReceiver {
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public double lastLevel;
|
||||
public double level;
|
||||
public static final double speed = 0.00277D; // it takes around 18 seconds for the thing to fully extend
|
||||
public double targetLevel;
|
||||
@ -30,7 +35,11 @@ public class TileEntityRBMKControl extends TileEntityRBMKSlottedBase implements
|
||||
@Override
|
||||
public void updateEntity() {
|
||||
|
||||
if(!worldObj.isRemote) {
|
||||
if(worldObj.isRemote) {
|
||||
|
||||
this.lastLevel = this.level;
|
||||
|
||||
} else {
|
||||
|
||||
if(level < targetLevel) {
|
||||
|
||||
@ -98,6 +107,17 @@ public class TileEntityRBMKControl extends TileEntityRBMKSlottedBase implements
|
||||
nbt.setInteger("color", color.ordinal());
|
||||
}
|
||||
|
||||
@Override
|
||||
public AxisAlignedBB getRenderBoundingBox() {
|
||||
return AxisAlignedBB.getBoundingBox(xCoord, yCoord, zCoord, xCoord + 1, yCoord + 10, zCoord + 1);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public double getMaxRenderDistanceSquared() {
|
||||
return 65536.0D;
|
||||
}
|
||||
|
||||
public static enum RBMKColor {
|
||||
RED,
|
||||
YELLOW,
|
||||
|
||||
@ -91,6 +91,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM
|
||||
for(ForgeDirection dir : fluxDirs) {
|
||||
|
||||
NType stream = type;
|
||||
double flux = fluxOut;
|
||||
|
||||
for(int i = 1; i <= range; i++) {
|
||||
|
||||
@ -99,10 +100,21 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM
|
||||
//burn baby burn
|
||||
if(te instanceof TileEntityRBMKRod) {
|
||||
TileEntityRBMKRod rod = (TileEntityRBMKRod)te;
|
||||
rod.receiveFlux(stream, fluxOut);
|
||||
rod.receiveFlux(stream, flux);
|
||||
break;
|
||||
}
|
||||
|
||||
//set neutrons to slow
|
||||
if(te instanceof TileEntityRBMKControl) {
|
||||
TileEntityRBMKControl control = (TileEntityRBMKControl)te;
|
||||
|
||||
if(control.level == 0.0D)
|
||||
break;
|
||||
|
||||
flux *= control.level;
|
||||
continue;
|
||||
}
|
||||
|
||||
//set neutrons to slow
|
||||
if(te instanceof TileEntityRBMKModerator) {
|
||||
stream = NType.SLOW;
|
||||
@ -111,7 +123,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM
|
||||
|
||||
//return the neutrons back to this with no further action required
|
||||
if(te instanceof TileEntityRBMKReflector) {
|
||||
this.receiveFlux(stream, fluxOut);
|
||||
this.receiveFlux(stream, flux);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@ -1457,6 +1457,7 @@ item.med_ipecac.name=Ipecac-Sirup
|
||||
item.med_ptsd.name=PTBS-Medikament
|
||||
item.med_schiziphrenia.name=Schizophrenie-Medikament
|
||||
item.medal_liquidator.name=Liquidatorenmedallie
|
||||
item.meltdown_tool.name=Djatlow Sofortiger Kernschmelzeinduzierer
|
||||
item.memespoon.name=§eLuftschlag
|
||||
item.memory.name=item.null.name
|
||||
item.mese_gavel.name=Mese-Richterhammer
|
||||
@ -1921,6 +1922,7 @@ item.rbmk_fuel_mox.name=MOX-RBMK-Kernbrennstoff
|
||||
item.rbmk_fuel_po210be.name=Po210Be-RBMK-Neutronenquelle
|
||||
item.rbmk_fuel_pu238be.name=Pu238Be-RBMK-Neutronenquelle
|
||||
item.rbmk_fuel_thmeu.name=ThMEU-RBMK-Kernbrennstoff
|
||||
item.rbmk_lid.name=RBMK-Abdeckplatte
|
||||
item.reactor_core.name=Brutreaktorkern
|
||||
item.reactor_sensor.name=Reaktor-Fernsensor
|
||||
item.record.glass.desc=? ? ?
|
||||
|
||||
@ -1457,6 +1457,7 @@ item.med_ipecac.name=Ipecac Syrup
|
||||
item.med_ptsd.name=PTSD Medication
|
||||
item.med_schiziphrenia.name=Schizophrenia Medication
|
||||
item.medal_liquidator.name=Liquidator Medal
|
||||
item.meltdown_tool.name=Dyatlov Instant Meltdown Applicator
|
||||
item.memespoon.name=§eMarket Gardener
|
||||
item.memory.name=item.null.name
|
||||
item.mese_gavel.name=Mese Gavel
|
||||
@ -1921,6 +1922,7 @@ item.rbmk_fuel_mox.name=MOX RBMK Fuel Rod
|
||||
item.rbmk_fuel_po210be.name=Po210Be RBMK Neutron Source
|
||||
item.rbmk_fuel_pu238be.name=Pu238Be RBMK Neutron Source
|
||||
item.rbmk_fuel_thmeu.name=ThMEU RBMK Fuel Rod
|
||||
item.rbmk_lid.name=RBMK Cover Panel
|
||||
item.reactor_core.name=Breeding Reactor Core
|
||||
item.reactor_sensor.name=Reactor Remote Sensor
|
||||
item.record.glass.desc=? ? ?
|
||||
|
||||
174
src/main/resources/assets/hbm/models/rbmk/debris.obj
Normal file
@ -0,0 +1,174 @@
|
||||
# Blender v2.79 (sub 0) OBJ File: 'debris.blend'
|
||||
# www.blender.org
|
||||
o Cube
|
||||
v 0.500000 0.000000 -0.500000
|
||||
v 0.500000 0.000000 0.500000
|
||||
v -0.500000 0.000000 0.500000
|
||||
v -0.500000 0.000000 -0.500000
|
||||
v 0.500000 1.000000 -0.500000
|
||||
v 0.500000 1.000000 0.500000
|
||||
v -0.500000 1.000000 0.500000
|
||||
v -0.500000 1.000000 -0.500000
|
||||
v 0.581912 -0.022128 -0.012755
|
||||
v -0.010436 -0.034891 -0.517703
|
||||
v 0.481928 0.507906 -0.488355
|
||||
v -0.010436 -0.034891 0.482297
|
||||
v 0.481928 0.507906 0.511645
|
||||
v -0.418088 -0.022128 -0.012755
|
||||
v -0.518072 0.507906 0.511645
|
||||
v -0.518072 0.507906 -0.488355
|
||||
v 0.581912 0.977872 -0.012754
|
||||
v -0.010436 0.965109 -0.517702
|
||||
v -0.010436 0.965109 0.482298
|
||||
v -0.418088 0.977872 -0.012755
|
||||
v 0.062320 0.478107 -0.430166
|
||||
v -0.593986 0.498937 0.027902
|
||||
v 0.062319 0.478107 0.569834
|
||||
v 0.406014 0.498937 0.027903
|
||||
v -0.000000 1.000000 0.000000
|
||||
v 0.000000 0.000000 -0.000000
|
||||
vt 0.500000 0.500000
|
||||
vt 0.500000 0.999900
|
||||
vt 0.000100 0.999900
|
||||
vt 0.500000 0.500000
|
||||
vt 0.000100 0.500000
|
||||
vt 0.000100 0.000100
|
||||
vt 0.500000 0.500000
|
||||
vt 0.500000 0.999900
|
||||
vt 0.000100 0.999900
|
||||
vt 0.500000 0.500000
|
||||
vt 0.500000 0.999900
|
||||
vt 0.000100 0.999900
|
||||
vt 0.500000 0.500000
|
||||
vt 0.500000 0.000100
|
||||
vt 0.999900 0.000100
|
||||
vt 0.500000 0.500000
|
||||
vt 0.000100 0.999900
|
||||
vt 0.000100 0.500000
|
||||
vt 0.500000 0.000100
|
||||
vt 0.000100 0.000100
|
||||
vt 0.999900 0.000100
|
||||
vt 0.999900 0.500000
|
||||
vt 0.999900 0.999900
|
||||
vt 0.500000 0.999900
|
||||
vt 0.999900 0.999900
|
||||
vt 0.000100 0.500000
|
||||
vt 0.500000 0.000100
|
||||
vt 0.000100 0.000100
|
||||
vt 0.999900 0.000100
|
||||
vt 0.999900 0.500000
|
||||
vt 0.999900 0.999900
|
||||
vt 0.500000 0.000100
|
||||
vt 0.000100 0.000100
|
||||
vt 0.999900 0.000100
|
||||
vt 0.999900 0.999900
|
||||
vt 0.999900 0.500000
|
||||
vt 0.999899 0.000100
|
||||
vt 0.500000 0.999900
|
||||
vt 0.000100 0.999900
|
||||
vt 0.500000 0.000100
|
||||
vt 0.000100 0.000100
|
||||
vt 0.999900 0.500000
|
||||
vt 0.999900 0.999900
|
||||
vt 0.000100 0.500000
|
||||
vt 0.999900 0.500000
|
||||
vt 0.500000 0.999900
|
||||
vt 0.500000 0.000100
|
||||
vt 0.000100 0.500000
|
||||
vn -0.0735 -0.9946 -0.0735
|
||||
vn -0.0512 0.9974 -0.0512
|
||||
vn 0.9306 -0.3279 0.1628
|
||||
vn 0.0486 0.1837 0.9818
|
||||
vn -0.9201 0.3524 0.1707
|
||||
vn 0.1011 0.0264 -0.9945
|
||||
vn -0.0486 -0.1837 -0.9818
|
||||
vn -0.1361 -0.0184 -0.9905
|
||||
vn -0.1386 0.0178 -0.9902
|
||||
vn -0.9344 -0.3265 0.1423
|
||||
vn -0.9871 -0.0387 0.1556
|
||||
vn -0.9872 0.0399 0.1542
|
||||
vn 0.0234 -0.1714 0.9849
|
||||
vn 0.1386 -0.0178 0.9902
|
||||
vn 0.1361 0.0184 0.9905
|
||||
vn 0.9417 0.3072 0.1372
|
||||
vn 0.9888 0.0318 0.1459
|
||||
vn 0.9889 -0.0329 0.1448
|
||||
vn 0.0372 0.9986 -0.0372
|
||||
vn -0.0658 0.9957 -0.0658
|
||||
vn 0.0685 0.9953 -0.0685
|
||||
vn -0.0685 -0.9953 0.0685
|
||||
vn -0.0388 -0.9985 -0.0388
|
||||
vn -0.0372 -0.9986 0.0372
|
||||
vn 0.9872 -0.0399 -0.1542
|
||||
vn 0.9344 0.3265 -0.1423
|
||||
vn 0.9201 -0.3524 -0.1707
|
||||
vn 0.9871 0.0387 -0.1556
|
||||
vn -0.0983 0.0272 0.9948
|
||||
vn -0.0458 0.1701 0.9844
|
||||
vn -0.0229 -0.1650 0.9860
|
||||
vn -0.1011 -0.0264 0.9945
|
||||
vn -0.9417 -0.3072 -0.1372
|
||||
vn -0.9888 -0.0318 -0.1459
|
||||
vn -0.9889 0.0329 -0.1448
|
||||
vn -0.9306 0.3279 -0.1628
|
||||
vn 0.0229 0.1650 -0.9860
|
||||
vn -0.0234 0.1714 -0.9849
|
||||
vn 0.0983 -0.0272 -0.9948
|
||||
vn 0.0458 -0.1701 -0.9844
|
||||
vn -0.0705 0.9950 0.0705
|
||||
vn 0.0735 0.9946 0.0735
|
||||
vn -0.0544 0.9970 0.0544
|
||||
vn 0.0388 0.9985 0.0388
|
||||
vn 0.0512 -0.9974 0.0512
|
||||
vn 0.0544 -0.9970 -0.0544
|
||||
vn 0.0705 -0.9950 -0.0705
|
||||
vn 0.0658 -0.9957 0.0658
|
||||
s off
|
||||
f 26/1/1 12/2/1 3/3/1
|
||||
f 25/4/2 20/5/2 7/6/2
|
||||
f 24/7/3 17/8/3 6/9/3
|
||||
f 23/10/4 19/11/4 7/12/4
|
||||
f 22/13/5 20/14/5 8/15/5
|
||||
f 21/16/6 4/17/6 16/18/6
|
||||
f 18/19/7 21/16/7 8/20/7
|
||||
f 5/21/8 11/22/8 21/16/8
|
||||
f 11/22/9 1/23/9 21/16/9
|
||||
f 14/24/10 22/13/10 4/25/10
|
||||
f 3/3/11 15/26/11 22/13/11
|
||||
f 15/26/12 7/6/12 22/13/12
|
||||
f 12/27/13 23/10/13 3/28/13
|
||||
f 2/29/14 13/30/14 23/10/14
|
||||
f 13/30/15 6/31/15 23/10/15
|
||||
f 9/32/16 24/7/16 2/33/16
|
||||
f 1/34/17 11/22/17 24/7/17
|
||||
f 11/22/18 5/35/18 24/7/18
|
||||
f 17/36/19 25/4/19 6/37/19
|
||||
f 5/35/20 18/38/20 25/4/20
|
||||
f 18/38/21 8/39/21 25/4/21
|
||||
f 10/40/22 26/1/22 4/41/22
|
||||
f 1/34/23 9/42/23 26/1/23
|
||||
f 9/42/24 2/43/24 26/1/24
|
||||
f 6/9/25 13/44/25 24/7/25
|
||||
f 24/7/26 9/32/26 1/34/26
|
||||
f 24/7/27 5/35/27 17/8/27
|
||||
f 2/33/28 24/7/28 13/44/28
|
||||
f 7/12/29 15/26/29 23/10/29
|
||||
f 23/10/30 6/31/30 19/11/30
|
||||
f 23/10/31 12/27/31 2/29/31
|
||||
f 3/28/32 23/10/32 15/26/32
|
||||
f 22/13/33 14/24/33 3/3/33
|
||||
f 4/25/34 22/13/34 16/45/34
|
||||
f 8/15/35 16/45/35 22/13/35
|
||||
f 22/13/36 7/6/36 20/14/36
|
||||
f 21/16/37 1/23/37 10/46/37
|
||||
f 4/17/38 21/16/38 10/46/38
|
||||
f 8/20/39 21/16/39 16/18/39
|
||||
f 21/16/40 18/19/40 5/21/40
|
||||
f 6/37/41 25/4/41 19/47/41
|
||||
f 7/6/42 19/47/42 25/4/42
|
||||
f 25/4/43 8/39/43 20/5/43
|
||||
f 25/4/44 17/36/44 5/35/44
|
||||
f 3/3/45 14/48/45 26/1/45
|
||||
f 4/41/46 26/1/46 14/48/46
|
||||
f 26/1/47 2/43/47 12/2/47
|
||||
f 26/1/48 10/40/48 1/34/48
|
||||
BIN
src/main/resources/assets/hbm/textures/blocks/block_corium.png
Normal file
|
After Width: | Height: | Size: 357 B |
BIN
src/main/resources/assets/hbm/textures/blocks/corium_flowing.png
Executable file
|
After Width: | Height: | Size: 5.4 KiB |
5
src/main/resources/assets/hbm/textures/blocks/corium_flowing.png.mcmeta
Executable file
@ -0,0 +1,5 @@
|
||||
{
|
||||
"animation": {
|
||||
"frametime": 3
|
||||
}
|
||||
}
|
||||
BIN
src/main/resources/assets/hbm/textures/blocks/corium_still.png
Executable file
|
After Width: | Height: | Size: 4.7 KiB |
45
src/main/resources/assets/hbm/textures/blocks/corium_still.png.mcmeta
Executable file
@ -0,0 +1,45 @@
|
||||
{
|
||||
"animation": {
|
||||
"frametime": 5,
|
||||
"frames": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4,
|
||||
5,
|
||||
6,
|
||||
7,
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
12,
|
||||
13,
|
||||
14,
|
||||
15,
|
||||
16,
|
||||
17,
|
||||
18,
|
||||
19,
|
||||
18,
|
||||
17,
|
||||
16,
|
||||
15,
|
||||
14,
|
||||
13,
|
||||
12,
|
||||
11,
|
||||
10,
|
||||
9,
|
||||
8,
|
||||
7,
|
||||
6,
|
||||
5,
|
||||
4,
|
||||
3,
|
||||
2,
|
||||
1
|
||||
]
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 651 B |
BIN
src/main/resources/assets/hbm/textures/items/coffee.png
Normal file
|
After Width: | Height: | Size: 277 B |
BIN
src/main/resources/assets/hbm/textures/items/coffee_radium.png
Normal file
|
After Width: | Height: | Size: 279 B |
BIN
src/main/resources/assets/hbm/textures/items/meltdown_tool.png
Normal file
|
After Width: | Height: | Size: 7.7 KiB |
BIN
src/main/resources/assets/hbm/textures/items/radpot.png
Normal file
|
After Width: | Height: | Size: 378 B |
BIN
src/main/resources/assets/hbm/textures/items/rbmk_lid.png
Normal file
|
After Width: | Height: | Size: 368 B |
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.3 KiB |
BIN
src/main/resources/assets/hbm/textures/particle/rbmk_fire.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 9.0 KiB |