RBMK attachable lids, glass variation
@ -153,6 +153,8 @@ public abstract class BlockDummyable extends BlockContainer {
|
|||||||
dir = ForgeDirection.getOrientation(4);
|
dir = ForgeDirection.getOrientation(4);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dir = getDirModified(dir);
|
||||||
|
|
||||||
if(!checkRequirement(world, x, y, z, dir, o)) {
|
if(!checkRequirement(world, x, y, z, dir, o)) {
|
||||||
|
|
||||||
if(!pl.capabilities.isCreativeMode) {
|
if(!pl.capabilities.isCreativeMode) {
|
||||||
@ -184,6 +186,10 @@ public abstract class BlockDummyable extends BlockContainer {
|
|||||||
super.onBlockPlacedBy(world, x, y, z, player, itemStack);
|
super.onBlockPlacedBy(world, x, y, z, player, itemStack);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected ForgeDirection getDirModified(ForgeDirection dir) {
|
||||||
|
return dir;
|
||||||
|
}
|
||||||
|
|
||||||
protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) {
|
protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) {
|
||||||
return MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, getDimensions(), x, y, z, dir);
|
return MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, getDimensions(), x, y, z, dir);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,14 +2,19 @@ package com.hbm.blocks.machine.rbmk;
|
|||||||
|
|
||||||
import com.hbm.blocks.BlockDummyable;
|
import com.hbm.blocks.BlockDummyable;
|
||||||
import com.hbm.handler.MultiblockHandlerXR;
|
import com.hbm.handler.MultiblockHandlerXR;
|
||||||
|
import com.hbm.items.ModItems;
|
||||||
|
import com.hbm.items.machine.ItemRBMKLid;
|
||||||
import com.hbm.main.MainRegistry;
|
import com.hbm.main.MainRegistry;
|
||||||
import com.hbm.tileentity.machine.rbmk.RBMKDials;
|
import com.hbm.tileentity.machine.rbmk.RBMKDials;
|
||||||
import com.hbm.tileentity.machine.rbmk.TileEntityRBMKBase;
|
import com.hbm.tileentity.machine.rbmk.TileEntityRBMKBase;
|
||||||
|
|
||||||
import cpw.mods.fml.client.registry.RenderingRegistry;
|
import cpw.mods.fml.client.registry.RenderingRegistry;
|
||||||
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||||
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.block.material.Material;
|
import net.minecraft.block.material.Material;
|
||||||
|
import net.minecraft.entity.item.EntityItem;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.AxisAlignedBB;
|
import net.minecraft.util.AxisAlignedBB;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
@ -37,12 +42,27 @@ public abstract class RBMKBase extends BlockDummyable {
|
|||||||
|
|
||||||
if(world.isRemote) {
|
if(world.isRemote) {
|
||||||
return true;
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
} else if(!player.isSneaking()) {
|
int[] pos = this.findCore(world, x, y, z);
|
||||||
int[] pos = this.findCore(world, x, y, z);
|
|
||||||
|
|
||||||
if(pos == null)
|
if(pos == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]);
|
||||||
|
|
||||||
|
if(!(te instanceof TileEntityRBMKBase))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
TileEntityRBMKBase rbmk = (TileEntityRBMKBase) te;
|
||||||
|
|
||||||
|
if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemRBMKLid) {
|
||||||
|
|
||||||
|
if(!rbmk.hasLid())
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!player.isSneaking()) {
|
||||||
|
|
||||||
FMLNetworkHandler.openGui(player, MainRegistry.instance, gui, world, pos[0], pos[1], pos[2]);
|
FMLNetworkHandler.openGui(player, MainRegistry.instance, gui, world, pos[0], pos[1], pos[2]);
|
||||||
return true;
|
return true;
|
||||||
@ -74,20 +94,48 @@ public abstract class RBMKBase extends BlockDummyable {
|
|||||||
return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY + height, z + this.maxZ);
|
return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY + height, z + this.maxZ);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* NORTH: no cover
|
||||||
|
* EAST: concrete cover
|
||||||
|
* SOUTH: lead glass cover
|
||||||
|
* WEST: UNUSED
|
||||||
|
*/
|
||||||
|
|
||||||
|
public static final ForgeDirection DIR_NO_LID = ForgeDirection.NORTH;
|
||||||
|
public static final ForgeDirection DIR_NORMAL_LID = ForgeDirection.EAST;
|
||||||
|
public static final ForgeDirection DIR_GLASS_LID = ForgeDirection.SOUTH;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) {
|
public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) {
|
||||||
return MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, getDimensions(world), x, y, z, dir);
|
MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, getDimensions(world), this, dir);
|
||||||
|
this.makeExtra(world, x, y + RBMKDials.getColumnHeight(world), z);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) {
|
protected ForgeDirection getDirModified(ForgeDirection dir) {
|
||||||
MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, getDimensions(world), this, dir);
|
return DIR_NO_LID;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int[] getDimensions(World world) {
|
public int[] getDimensions(World world) {
|
||||||
return new int[] {RBMKDials.getColumnHeight(world), 0, 0, 0, 0, 0};
|
return new int[] {RBMKDials.getColumnHeight(world), 0, 0, 0, 0, 0};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void breakBlock(World world, int x, int y, int z, Block b, int i) {
|
||||||
|
|
||||||
|
if(!world.isRemote) {
|
||||||
|
|
||||||
|
if(i == DIR_NORMAL_LID.ordinal() + offset) {
|
||||||
|
world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5 + RBMKDials.getColumnHeight(world), z + 0.5, new ItemStack(ModItems.rbmk_lid)));
|
||||||
|
}
|
||||||
|
if(i == DIR_GLASS_LID.ordinal() + offset) {
|
||||||
|
world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5 + RBMKDials.getColumnHeight(world), z + 0.5, new ItemStack(ModItems.rbmk_lid_glass)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
super.breakBlock(world, x, y, z, b, i);
|
||||||
|
}
|
||||||
|
|
||||||
public static int renderIDRods = RenderingRegistry.getNextAvailableRenderId();
|
public static int renderIDRods = RenderingRegistry.getNextAvailableRenderId();
|
||||||
public static int renderIDPassive = RenderingRegistry.getNextAvailableRenderId();
|
public static int renderIDPassive = RenderingRegistry.getNextAvailableRenderId();
|
||||||
public static int renderIDControl = RenderingRegistry.getNextAvailableRenderId();
|
public static int renderIDControl = RenderingRegistry.getNextAvailableRenderId();
|
||||||
|
|||||||
@ -33,10 +33,4 @@ public class RBMKBoiler extends RBMKBase {
|
|||||||
public int getRenderType(){
|
public int getRenderType(){
|
||||||
return this.renderIDControl;
|
return this.renderIDControl;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) {
|
|
||||||
super.fillSpace(world, x, y, z, dir, o);
|
|
||||||
this.makeExtra(world, x, y + RBMKDials.getColumnHeight(world), z);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,13 +2,11 @@ package com.hbm.blocks.machine.rbmk;
|
|||||||
|
|
||||||
import com.hbm.blocks.ModBlocks;
|
import com.hbm.blocks.ModBlocks;
|
||||||
import com.hbm.tileentity.TileEntityProxyCombo;
|
import com.hbm.tileentity.TileEntityProxyCombo;
|
||||||
import com.hbm.tileentity.machine.rbmk.RBMKDials;
|
|
||||||
import com.hbm.tileentity.machine.rbmk.TileEntityRBMKOutgasser;
|
import com.hbm.tileentity.machine.rbmk.TileEntityRBMKOutgasser;
|
||||||
|
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
|
||||||
|
|
||||||
public class RBMKOutgasser extends RBMKBase {
|
public class RBMKOutgasser extends RBMKBase {
|
||||||
|
|
||||||
@ -33,10 +31,4 @@ public class RBMKOutgasser extends RBMKBase {
|
|||||||
public int getRenderType(){
|
public int getRenderType(){
|
||||||
return this.renderIDPassive;
|
return this.renderIDPassive;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) {
|
|
||||||
super.fillSpace(world, x, y, z, dir, o);
|
|
||||||
this.makeExtra(world, x, y + RBMKDials.getColumnHeight(world), z);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,13 +2,11 @@ package com.hbm.blocks.machine.rbmk;
|
|||||||
|
|
||||||
import com.hbm.blocks.ModBlocks;
|
import com.hbm.blocks.ModBlocks;
|
||||||
import com.hbm.tileentity.TileEntityProxyInventory;
|
import com.hbm.tileentity.TileEntityProxyInventory;
|
||||||
import com.hbm.tileentity.machine.rbmk.RBMKDials;
|
|
||||||
import com.hbm.tileentity.machine.rbmk.TileEntityRBMKRod;
|
import com.hbm.tileentity.machine.rbmk.TileEntityRBMKRod;
|
||||||
|
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
|
||||||
|
|
||||||
public class RBMKRod extends RBMKBase {
|
public class RBMKRod extends RBMKBase {
|
||||||
|
|
||||||
@ -26,6 +24,7 @@ public class RBMKRod extends RBMKBase {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
|
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
|
||||||
|
|
||||||
return openInv(world, x, y, z, player, ModBlocks.guiID_rbmk_rod);
|
return openInv(world, x, y, z, player, ModBlocks.guiID_rbmk_rod);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -33,10 +32,4 @@ public class RBMKRod extends RBMKBase {
|
|||||||
public int getRenderType(){
|
public int getRenderType(){
|
||||||
return this.renderIDRods;
|
return this.renderIDRods;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) {
|
|
||||||
super.fillSpace(world, x, y, z, dir, o);
|
|
||||||
this.makeExtra(world, x, y + RBMKDials.getColumnHeight(world), z);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -927,6 +927,7 @@ public class ModItems {
|
|||||||
public static Item rod_quad_coolant;
|
public static Item rod_quad_coolant;
|
||||||
|
|
||||||
public static Item rbmk_lid;
|
public static Item rbmk_lid;
|
||||||
|
public static Item rbmk_lid_glass;
|
||||||
public static Item rbmk_fuel_empty;
|
public static Item rbmk_fuel_empty;
|
||||||
public static ItemRBMKRod rbmk_fuel_ueu;
|
public static ItemRBMKRod rbmk_fuel_ueu;
|
||||||
public static ItemRBMKRod rbmk_fuel_meu;
|
public static ItemRBMKRod rbmk_fuel_meu;
|
||||||
@ -3222,7 +3223,8 @@ 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_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");
|
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").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rbmk_lid");
|
rbmk_lid = new ItemRBMKLid().setUnlocalizedName("rbmk_lid").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rbmk_lid");
|
||||||
|
rbmk_lid_glass = new ItemRBMKLid().setUnlocalizedName("rbmk_lid_glass").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rbmk_lid_glass");
|
||||||
|
|
||||||
rbmk_pellet_ueu = (ItemRBMKPellet) new ItemRBMKPellet("Unenriched Uranium").addRadiation(ItemHazard.u * ItemHazard.billet).toItem().setUnlocalizedName("rbmk_pellet_ueu").setTextureName(RefStrings.MODID + ":rbmk_pellet_ueu");
|
rbmk_pellet_ueu = (ItemRBMKPellet) new ItemRBMKPellet("Unenriched Uranium").addRadiation(ItemHazard.u * ItemHazard.billet).toItem().setUnlocalizedName("rbmk_pellet_ueu").setTextureName(RefStrings.MODID + ":rbmk_pellet_ueu");
|
||||||
rbmk_pellet_meu = (ItemRBMKPellet) new ItemRBMKPellet("Medium Enriched Uranium-235").addRadiation(ItemHazard.uf * ItemHazard.billet).toItem().setUnlocalizedName("rbmk_pellet_meu").setTextureName(RefStrings.MODID + ":rbmk_pellet_meu");
|
rbmk_pellet_meu = (ItemRBMKPellet) new ItemRBMKPellet("Medium Enriched Uranium-235").addRadiation(ItemHazard.uf * ItemHazard.billet).toItem().setUnlocalizedName("rbmk_pellet_meu").setTextureName(RefStrings.MODID + ":rbmk_pellet_meu");
|
||||||
@ -6025,6 +6027,7 @@ public class ModItems {
|
|||||||
GameRegistry.registerItem(rod_quad_waste, rod_quad_waste.getUnlocalizedName());
|
GameRegistry.registerItem(rod_quad_waste, rod_quad_waste.getUnlocalizedName());
|
||||||
|
|
||||||
GameRegistry.registerItem(rbmk_lid, rbmk_lid.getUnlocalizedName());
|
GameRegistry.registerItem(rbmk_lid, rbmk_lid.getUnlocalizedName());
|
||||||
|
GameRegistry.registerItem(rbmk_lid_glass, rbmk_lid_glass.getUnlocalizedName());
|
||||||
GameRegistry.registerItem(rbmk_fuel_empty, rbmk_fuel_empty.getUnlocalizedName());
|
GameRegistry.registerItem(rbmk_fuel_empty, rbmk_fuel_empty.getUnlocalizedName());
|
||||||
GameRegistry.registerItem(rbmk_fuel_ueu, rbmk_fuel_ueu.getUnlocalizedName());
|
GameRegistry.registerItem(rbmk_fuel_ueu, rbmk_fuel_ueu.getUnlocalizedName());
|
||||||
GameRegistry.registerItem(rbmk_fuel_meu, rbmk_fuel_meu.getUnlocalizedName());
|
GameRegistry.registerItem(rbmk_fuel_meu, rbmk_fuel_meu.getUnlocalizedName());
|
||||||
@ -6053,8 +6056,6 @@ public class ModItems {
|
|||||||
GameRegistry.registerItem(rbmk_pellet_mox, rbmk_pellet_mox.getUnlocalizedName());
|
GameRegistry.registerItem(rbmk_pellet_mox, rbmk_pellet_mox.getUnlocalizedName());
|
||||||
GameRegistry.registerItem(rbmk_pellet_les, rbmk_pellet_les.getUnlocalizedName());
|
GameRegistry.registerItem(rbmk_pellet_les, rbmk_pellet_les.getUnlocalizedName());
|
||||||
GameRegistry.registerItem(rbmk_pellet_mes, rbmk_pellet_mes.getUnlocalizedName());
|
GameRegistry.registerItem(rbmk_pellet_mes, rbmk_pellet_mes.getUnlocalizedName());
|
||||||
GameRegistry.registerItem(rbmk_pellet_mes, rbmk_pellet_mes.getUnlocalizedName());
|
|
||||||
GameRegistry.registerItem(rbmk_pellet_mes, rbmk_pellet_mes.getUnlocalizedName());
|
|
||||||
GameRegistry.registerItem(rbmk_pellet_hes, rbmk_pellet_hes.getUnlocalizedName());
|
GameRegistry.registerItem(rbmk_pellet_hes, rbmk_pellet_hes.getUnlocalizedName());
|
||||||
GameRegistry.registerItem(rbmk_pellet_leaus, rbmk_pellet_leaus.getUnlocalizedName());
|
GameRegistry.registerItem(rbmk_pellet_leaus, rbmk_pellet_leaus.getUnlocalizedName());
|
||||||
GameRegistry.registerItem(rbmk_pellet_heaus, rbmk_pellet_heaus.getUnlocalizedName());
|
GameRegistry.registerItem(rbmk_pellet_heaus, rbmk_pellet_heaus.getUnlocalizedName());
|
||||||
|
|||||||
59
src/main/java/com/hbm/items/machine/ItemRBMKLid.java
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
package com.hbm.items.machine;
|
||||||
|
|
||||||
|
import com.hbm.blocks.ModBlocks;
|
||||||
|
import com.hbm.blocks.machine.rbmk.RBMKBase;
|
||||||
|
import com.hbm.items.ModItems;
|
||||||
|
import com.hbm.tileentity.machine.rbmk.TileEntityRBMKBase;
|
||||||
|
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.init.Blocks;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
|
public class ItemRBMKLid extends Item {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float fx, float fy, float fz) {
|
||||||
|
|
||||||
|
Block b = world.getBlock(x, y, z);
|
||||||
|
|
||||||
|
if(b instanceof RBMKBase) {
|
||||||
|
RBMKBase rbmk = (RBMKBase) b;
|
||||||
|
|
||||||
|
int[] pos = rbmk.findCore(world, x, y, z);
|
||||||
|
|
||||||
|
if(pos == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]);
|
||||||
|
|
||||||
|
if(!(te instanceof TileEntityRBMKBase))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
TileEntityRBMKBase tile = (TileEntityRBMKBase) te;
|
||||||
|
|
||||||
|
if(tile.hasLid())
|
||||||
|
return false;
|
||||||
|
|
||||||
|
int meta = RBMKBase.DIR_NORMAL_LID.ordinal();
|
||||||
|
|
||||||
|
if(this == ModItems.rbmk_lid_glass) {
|
||||||
|
meta = RBMKBase.DIR_GLASS_LID.ordinal();
|
||||||
|
world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, Blocks.glass.stepSound.func_150496_b(), (Blocks.glass.stepSound.getVolume() + 1.0F) / 2.0F, Blocks.glass.stepSound.getPitch() * 0.8F);
|
||||||
|
} else {
|
||||||
|
world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, ModBlocks.concrete_smooth.stepSound.func_150496_b(), (ModBlocks.concrete_smooth.stepSound.getVolume() + 1.0F) / 2.0F, ModBlocks.concrete_smooth.stepSound.getPitch() * 0.8F);
|
||||||
|
}
|
||||||
|
|
||||||
|
world.setBlockMetadataWithNotify(pos[0], pos[1], pos[2], meta + RBMKBase.offset, 3);
|
||||||
|
stack.stackSize--;
|
||||||
|
player.inventoryContainer.detectAndSendChanges();
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -212,6 +212,13 @@ public class ClientProxy extends ServerProxy {
|
|||||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKControlManual.class, new RenderRBMKControlRod(RefStrings.MODID + ":textures/blocks/rbmk/rbmk_control.png"));
|
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKControlManual.class, new RenderRBMKControlRod(RefStrings.MODID + ":textures/blocks/rbmk/rbmk_control.png"));
|
||||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKControlAuto.class, new RenderRBMKControlRod(RefStrings.MODID + ":textures/blocks/rbmk/rbmk_control_auto.png"));
|
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKControlAuto.class, new RenderRBMKControlRod(RefStrings.MODID + ":textures/blocks/rbmk/rbmk_control_auto.png"));
|
||||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKConsole.class, new RenderRBMKConsole());
|
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKConsole.class, new RenderRBMKConsole());
|
||||||
|
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKAbsorber.class, new RenderRBMKLid(RefStrings.MODID + ":textures/blocks/rbmk/rbmk_absorber"));
|
||||||
|
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKBlank.class, new RenderRBMKLid(RefStrings.MODID + ":textures/blocks/rbmk/rbmk_blank"));
|
||||||
|
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKBoiler.class, new RenderRBMKLid(RefStrings.MODID + ":textures/blocks/rbmk/rbmk_boiler"));
|
||||||
|
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKModerator.class, new RenderRBMKLid(RefStrings.MODID + ":textures/blocks/rbmk/rbmk_moderator"));
|
||||||
|
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKOutgasser.class, new RenderRBMKLid(RefStrings.MODID + ":textures/blocks/rbmk/rbmk_outgasser"));
|
||||||
|
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKReflector.class, new RenderRBMKLid(RefStrings.MODID + ":textures/blocks/rbmk/rbmk_reflector"));
|
||||||
|
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKRod.class, new RenderRBMKLid(RefStrings.MODID + ":textures/blocks/rbmk/rbmk_element"));
|
||||||
//ITER
|
//ITER
|
||||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityITER.class, new RenderITER());
|
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityITER.class, new RenderITER());
|
||||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachinePlasmaHeater.class, new RenderPlasmaHeater());
|
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachinePlasmaHeater.class, new RenderPlasmaHeater());
|
||||||
|
|||||||
@ -63,10 +63,12 @@ import net.minecraft.enchantment.EnchantmentHelper;
|
|||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
import net.minecraft.entity.EntityLivingBase;
|
import net.minecraft.entity.EntityLivingBase;
|
||||||
import net.minecraft.entity.item.EntityItem;
|
import net.minecraft.entity.item.EntityItem;
|
||||||
|
import net.minecraft.entity.monster.EntityCaveSpider;
|
||||||
import net.minecraft.entity.monster.EntityCreeper;
|
import net.minecraft.entity.monster.EntityCreeper;
|
||||||
import net.minecraft.entity.monster.EntitySkeleton;
|
import net.minecraft.entity.monster.EntitySkeleton;
|
||||||
import net.minecraft.entity.monster.EntitySpider;
|
import net.minecraft.entity.monster.EntitySpider;
|
||||||
import net.minecraft.entity.monster.EntityZombie;
|
import net.minecraft.entity.monster.EntityZombie;
|
||||||
|
import net.minecraft.entity.monster.IMob;
|
||||||
import net.minecraft.entity.passive.EntityAnimal;
|
import net.minecraft.entity.passive.EntityAnimal;
|
||||||
import net.minecraft.entity.passive.EntityCow;
|
import net.minecraft.entity.passive.EntityCow;
|
||||||
import net.minecraft.entity.passive.EntityMooshroom;
|
import net.minecraft.entity.passive.EntityMooshroom;
|
||||||
@ -90,6 +92,7 @@ import net.minecraft.util.EnumChatFormatting;
|
|||||||
import net.minecraft.util.FoodStats;
|
import net.minecraft.util.FoodStats;
|
||||||
import net.minecraft.util.Vec3;
|
import net.minecraft.util.Vec3;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
import net.minecraftforge.common.util.FakePlayer;
|
||||||
import net.minecraftforge.event.AnvilUpdateEvent;
|
import net.minecraftforge.event.AnvilUpdateEvent;
|
||||||
import net.minecraftforge.event.ServerChatEvent;
|
import net.minecraftforge.event.ServerChatEvent;
|
||||||
import net.minecraftforge.event.entity.EntityEvent;
|
import net.minecraftforge.event.entity.EntityEvent;
|
||||||
@ -219,25 +222,26 @@ public class ModEventHandler {
|
|||||||
|
|
||||||
if(!event.entityLiving.worldObj.isRemote) {
|
if(!event.entityLiving.worldObj.isRemote) {
|
||||||
|
|
||||||
if(event.source instanceof EntityDamageSource && ((EntityDamageSource)event.source).getEntity() instanceof EntityPlayer) {
|
if(event.source instanceof EntityDamageSource && ((EntityDamageSource)event.source).getEntity() instanceof EntityPlayer
|
||||||
|
&& !(((EntityDamageSource)event.source).getEntity() instanceof FakePlayer)) {
|
||||||
|
|
||||||
if(event.entityLiving instanceof EntitySpider && event.entityLiving.getRNG().nextInt(500) == 0) {
|
if(event.entityLiving instanceof EntitySpider && event.entityLiving.getRNG().nextInt(500) == 0) {
|
||||||
|
|
||||||
event.entityLiving.dropItem(ModItems.spider_milk, 1);
|
event.entityLiving.dropItem(ModItems.spider_milk, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(event.entityLiving instanceof EntityAnimal && event.entityLiving.getRNG().nextInt(500) == 0) {
|
if(event.entityLiving instanceof EntityCaveSpider && event.entityLiving.getRNG().nextInt(100) == 0) {
|
||||||
|
event.entityLiving.dropItem(ModItems.serum, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(event.entityLiving instanceof EntityAnimal && event.entityLiving.getRNG().nextInt(500) == 0) {
|
||||||
event.entityLiving.dropItem(ModItems.bandaid, 1);
|
event.entityLiving.dropItem(ModItems.bandaid, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(event.entityLiving instanceof EntitySpider && event.entityLiving.getRNG().nextInt(1000) == 0) {
|
if(event.entityLiving instanceof IMob && event.entityLiving.getRNG().nextInt(1000) == 0) {
|
||||||
|
|
||||||
event.entityLiving.dropItem(ModItems.heart_piece, 1);
|
event.entityLiving.dropItem(ModItems.heart_piece, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(event.entityLiving instanceof EntityCyberCrab && event.entityLiving.getRNG().nextInt(500) == 0) {
|
if(event.entityLiving instanceof EntityCyberCrab && event.entityLiving.getRNG().nextInt(500) == 0) {
|
||||||
|
|
||||||
event.entityLiving.dropItem(ModItems.wd40, 1);
|
event.entityLiving.dropItem(ModItems.wd40, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -11,7 +11,6 @@ import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
|
|||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.client.renderer.RenderBlocks;
|
import net.minecraft.client.renderer.RenderBlocks;
|
||||||
import net.minecraft.client.renderer.Tessellator;
|
import net.minecraft.client.renderer.Tessellator;
|
||||||
import net.minecraft.init.Blocks;
|
|
||||||
import net.minecraft.util.IIcon;
|
import net.minecraft.util.IIcon;
|
||||||
import net.minecraft.world.IBlockAccess;
|
import net.minecraft.world.IBlockAccess;
|
||||||
import net.minecraftforge.client.model.obj.WavefrontObject;
|
import net.minecraftforge.client.model.obj.WavefrontObject;
|
||||||
@ -67,12 +66,6 @@ public class RenderRBMKControl implements ISimpleBlockRenderingHandler {
|
|||||||
tessellator.addTranslation(x + 0.5F, y, z + 0.5F);
|
tessellator.addTranslation(x + 0.5F, y, z + 0.5F);
|
||||||
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rbmk_rods, "Column", iicon, tessellator, 0, true);
|
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rbmk_rods, "Column", iicon, tessellator, 0, true);
|
||||||
|
|
||||||
if(block == ModBlocks.rbmk_boiler && world.getBlock(x, y + 1, z) != block) {
|
|
||||||
//tessellator.addTranslation(0, 0.125F, 0);
|
|
||||||
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rbmk_rods, "Lid", iicon, tessellator, 0, true);
|
|
||||||
//tessellator.addTranslation(0, -0.125F, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F);
|
tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@ -10,7 +10,6 @@ import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
|
|||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.client.renderer.RenderBlocks;
|
import net.minecraft.client.renderer.RenderBlocks;
|
||||||
import net.minecraft.client.renderer.Tessellator;
|
import net.minecraft.client.renderer.Tessellator;
|
||||||
import net.minecraft.init.Blocks;
|
|
||||||
import net.minecraft.util.IIcon;
|
import net.minecraft.util.IIcon;
|
||||||
import net.minecraft.world.IBlockAccess;
|
import net.minecraft.world.IBlockAccess;
|
||||||
import net.minecraftforge.client.model.obj.WavefrontObject;
|
import net.minecraftforge.client.model.obj.WavefrontObject;
|
||||||
@ -58,9 +57,6 @@ public class RenderRBMKReflector implements ISimpleBlockRenderingHandler {
|
|||||||
tessellator.addTranslation(x + 0.5F, y, z + 0.5F);
|
tessellator.addTranslation(x + 0.5F, y, z + 0.5F);
|
||||||
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rbmk_reflector, "Column", iicon, tessellator, 0, true);
|
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rbmk_reflector, "Column", iicon, tessellator, 0, true);
|
||||||
|
|
||||||
if(world.getBlock(x, y + 1, z) != block)
|
|
||||||
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rbmk_element, "Lid", iicon, tessellator, 0, true);
|
|
||||||
|
|
||||||
tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F);
|
tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@ -10,7 +10,6 @@ import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
|
|||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.client.renderer.RenderBlocks;
|
import net.minecraft.client.renderer.RenderBlocks;
|
||||||
import net.minecraft.client.renderer.Tessellator;
|
import net.minecraft.client.renderer.Tessellator;
|
||||||
import net.minecraft.init.Blocks;
|
|
||||||
import net.minecraft.util.IIcon;
|
import net.minecraft.util.IIcon;
|
||||||
import net.minecraft.world.IBlockAccess;
|
import net.minecraft.world.IBlockAccess;
|
||||||
import net.minecraftforge.client.model.obj.WavefrontObject;
|
import net.minecraftforge.client.model.obj.WavefrontObject;
|
||||||
@ -59,9 +58,6 @@ public class RenderRBMKRod implements ISimpleBlockRenderingHandler {
|
|||||||
tessellator.addTranslation(x + 0.5F, y, z + 0.5F);
|
tessellator.addTranslation(x + 0.5F, y, z + 0.5F);
|
||||||
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rbmk_element, "Column", iicon, tessellator, 0, true);
|
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rbmk_element, "Column", iicon, tessellator, 0, true);
|
||||||
|
|
||||||
if(world.getBlock(x, y + 1, z) != block)
|
|
||||||
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.rbmk_element, "Lid", iicon, tessellator, 0, true);
|
|
||||||
|
|
||||||
tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F);
|
tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@ -46,7 +46,7 @@ public class RenderRBMKControlRod extends TileEntitySpecialRenderer {
|
|||||||
double level = control.lastLevel + (control.level - control.lastLevel) * i;
|
double level = control.lastLevel + (control.level - control.lastLevel) * i;
|
||||||
|
|
||||||
GL11.glTranslated(0, level, 0);
|
GL11.glTranslated(0, level, 0);
|
||||||
ResourceManager.rbmk_rods.renderPart("Lid");
|
ResourceManager.rbmk_element.renderPart("Lid");
|
||||||
|
|
||||||
GL11.glPopMatrix();
|
GL11.glPopMatrix();
|
||||||
}
|
}
|
||||||
|
|||||||
130
src/main/java/com/hbm/render/tileentity/RenderRBMKLid.java
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
package com.hbm.render.tileentity;
|
||||||
|
|
||||||
|
import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
|
import com.hbm.blocks.machine.rbmk.RBMKBase;
|
||||||
|
import com.hbm.lib.RefStrings;
|
||||||
|
import com.hbm.main.ResourceManager;
|
||||||
|
import com.hbm.tileentity.machine.rbmk.TileEntityRBMKBase;
|
||||||
|
import com.hbm.tileentity.machine.rbmk.TileEntityRBMKRod;
|
||||||
|
|
||||||
|
import net.minecraft.client.renderer.Tessellator;
|
||||||
|
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||||
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
import net.minecraft.util.ResourceLocation;
|
||||||
|
|
||||||
|
public class RenderRBMKLid extends TileEntitySpecialRenderer {
|
||||||
|
|
||||||
|
private ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/blocks/rbmk/rbmk_blank.png");
|
||||||
|
private ResourceLocation texture_glass = new ResourceLocation(RefStrings.MODID + ":textures/blocks/rbmk/rbmk_blank_glass.png");
|
||||||
|
private static final ResourceLocation texture_rods = new ResourceLocation(RefStrings.MODID + ":textures/blocks/rbmk/rbmk_element.png");
|
||||||
|
|
||||||
|
public RenderRBMKLid(String texture) {
|
||||||
|
this.texture = new ResourceLocation(texture + ".png");
|
||||||
|
//this.texture_glass = new ResourceLocation(texture + "_glass.png");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void renderTileEntityAt(TileEntity te, double x, double y, double z, float i) {
|
||||||
|
|
||||||
|
TileEntityRBMKBase control = (TileEntityRBMKBase)te;
|
||||||
|
boolean hasRod = false;
|
||||||
|
boolean cherenkov = false;
|
||||||
|
|
||||||
|
if(te instanceof TileEntityRBMKRod) {
|
||||||
|
|
||||||
|
TileEntityRBMKRod rod = (TileEntityRBMKRod) te;
|
||||||
|
|
||||||
|
if(rod.hasRod)
|
||||||
|
hasRod = true;
|
||||||
|
|
||||||
|
if(rod.fluxFast + rod.fluxSlow > 5)
|
||||||
|
cherenkov = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
GL11.glPushMatrix();
|
||||||
|
GL11.glTranslated(x + 0.5, y, z + 0.5);
|
||||||
|
|
||||||
|
int offset = 1;
|
||||||
|
|
||||||
|
for(int o = 1; o < 16; o++) {
|
||||||
|
|
||||||
|
if(te.getWorldObj().getBlock(te.xCoord, te.yCoord + o, te.zCoord) == te.getBlockType()) {
|
||||||
|
offset = o;
|
||||||
|
|
||||||
|
int meta = te.getWorldObj().getBlockMetadata(te.xCoord, te.yCoord + o, te.zCoord);
|
||||||
|
|
||||||
|
if(meta > 5 && meta < 12)
|
||||||
|
break;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
GL11.glEnable(GL11.GL_LIGHTING);
|
||||||
|
GL11.glEnable(GL11.GL_CULL_FACE);
|
||||||
|
|
||||||
|
if(control.hasLid()) {
|
||||||
|
GL11.glPushMatrix();
|
||||||
|
GL11.glTranslated(0, offset, 0);
|
||||||
|
|
||||||
|
int meta = control.getBlockMetadata() - RBMKBase.offset;
|
||||||
|
|
||||||
|
if(meta == RBMKBase.DIR_GLASS_LID.ordinal()) {
|
||||||
|
bindTexture(texture_glass);
|
||||||
|
} else {
|
||||||
|
bindTexture(texture);
|
||||||
|
cherenkov = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
ResourceManager.rbmk_element.renderPart("Lid");
|
||||||
|
GL11.glPopMatrix();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(hasRod) {
|
||||||
|
|
||||||
|
GL11.glPushMatrix();
|
||||||
|
bindTexture(texture_rods);
|
||||||
|
|
||||||
|
for(int j = 0; j <= offset; j++) {
|
||||||
|
|
||||||
|
ResourceManager.rbmk_element.renderPart("Rods");
|
||||||
|
GL11.glTranslated(0, 1, 0);
|
||||||
|
}
|
||||||
|
GL11.glPopMatrix();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(cherenkov) {
|
||||||
|
|
||||||
|
GL11.glTranslated(0, 0.75, 0);
|
||||||
|
|
||||||
|
GL11.glDisable(GL11.GL_CULL_FACE);
|
||||||
|
GL11.glDisable(GL11.GL_LIGHTING);
|
||||||
|
GL11.glEnable(GL11.GL_BLEND);
|
||||||
|
GL11.glDisable(GL11.GL_TEXTURE_2D);
|
||||||
|
GL11.glDisable(GL11.GL_ALPHA_TEST);
|
||||||
|
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE);
|
||||||
|
|
||||||
|
Tessellator tess = Tessellator.instance;
|
||||||
|
tess.startDrawingQuads();
|
||||||
|
tess.setColorRGBA_F(0.4F, 0.9F, 1.0F, 0.1F);
|
||||||
|
|
||||||
|
for(double j = 0; j <= offset; j += 0.25) {
|
||||||
|
tess.addVertex(-0.5, j, -0.5);
|
||||||
|
tess.addVertex(-0.5, j, 0.5);
|
||||||
|
tess.addVertex(0.5, j, 0.5);
|
||||||
|
tess.addVertex(0.5, j, -0.5);
|
||||||
|
}
|
||||||
|
tess.draw();
|
||||||
|
|
||||||
|
GL11.glEnable(GL11.GL_ALPHA_TEST);
|
||||||
|
GL11.glEnable(GL11.GL_TEXTURE_2D);
|
||||||
|
GL11.glDisable(GL11.GL_BLEND);
|
||||||
|
GL11.glEnable(GL11.GL_LIGHTING);
|
||||||
|
GL11.glEnable(GL11.GL_CULL_FACE);
|
||||||
|
}
|
||||||
|
|
||||||
|
GL11.glPopMatrix();
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -30,6 +30,7 @@ import net.minecraft.client.gui.ScaledResolution;
|
|||||||
import net.minecraft.init.Blocks;
|
import net.minecraft.init.Blocks;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
import net.minecraft.util.AxisAlignedBB;
|
||||||
import net.minecraft.util.MovingObjectPosition;
|
import net.minecraft.util.MovingObjectPosition;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.client.event.RenderGameOverlayEvent;
|
import net.minecraftforge.client.event.RenderGameOverlayEvent;
|
||||||
@ -45,7 +46,7 @@ public abstract class TileEntityRBMKBase extends TileEntity implements INBTPacke
|
|||||||
public double heat;
|
public double heat;
|
||||||
|
|
||||||
public boolean hasLid() {
|
public boolean hasLid() {
|
||||||
return true;
|
return this.getBlockMetadata() != RBMKBase.DIR_NO_LID.ordinal() + RBMKBase.offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -284,7 +285,7 @@ public abstract class TileEntityRBMKBase extends TileEntity implements INBTPacke
|
|||||||
worldObj.spawnEntityInWorld(debris);
|
worldObj.spawnEntityInWorld(debris);
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
if(this.hasLid())
|
if(this.getBlockMetadata() == RBMKBase.DIR_NORMAL_LID.ordinal() + RBMKBase.offset)
|
||||||
spawnDebris(DebrisType.LID);
|
spawnDebris(DebrisType.LID);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -397,4 +398,9 @@ public abstract class TileEntityRBMKBase extends TileEntity implements INBTPacke
|
|||||||
public NBTTagCompound getNBTForConsole() {
|
public NBTTagCompound getNBTForConsole() {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AxisAlignedBB getRenderBoundingBox() {
|
||||||
|
return AxisAlignedBB.getBoundingBox(xCoord, yCoord, zCoord, xCoord + 1, yCoord + 17, zCoord + 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,7 +7,6 @@ import cpw.mods.fml.relauncher.Side;
|
|||||||
import cpw.mods.fml.relauncher.SideOnly;
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
import net.minecraft.init.Blocks;
|
import net.minecraft.init.Blocks;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraft.util.AxisAlignedBB;
|
|
||||||
import net.minecraft.util.MathHelper;
|
import net.minecraft.util.MathHelper;
|
||||||
|
|
||||||
public abstract class TileEntityRBMKControl extends TileEntityRBMKSlottedBase {
|
public abstract class TileEntityRBMKControl extends TileEntityRBMKSlottedBase {
|
||||||
@ -72,11 +71,6 @@ public abstract class TileEntityRBMKControl extends TileEntityRBMKSlottedBase {
|
|||||||
nbt.setDouble("targetLevel", this.targetLevel);
|
nbt.setDouble("targetLevel", this.targetLevel);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public AxisAlignedBB getRenderBoundingBox() {
|
|
||||||
return AxisAlignedBB.getBoundingBox(xCoord, yCoord, zCoord, xCoord + 1, yCoord + 10, zCoord + 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
public double getMaxRenderDistanceSquared() {
|
public double getMaxRenderDistanceSquared() {
|
||||||
|
|||||||
@ -14,8 +14,9 @@ import net.minecraftforge.common.util.ForgeDirection;
|
|||||||
public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBMKFluxReceiver {
|
public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBMKFluxReceiver {
|
||||||
|
|
||||||
//amount of "neutron energy" buffered for the next tick to use for the reaction
|
//amount of "neutron energy" buffered for the next tick to use for the reaction
|
||||||
private double fluxFast;
|
public double fluxFast;
|
||||||
private double fluxSlow;
|
public double fluxSlow;
|
||||||
|
public boolean hasRod;
|
||||||
|
|
||||||
public TileEntityRBMKRod() {
|
public TileEntityRBMKRod() {
|
||||||
super(1);
|
super(1);
|
||||||
@ -65,10 +66,15 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM
|
|||||||
this.fluxSlow = 0;
|
this.fluxSlow = 0;
|
||||||
|
|
||||||
spreadFlux(rType, fluxOut);
|
spreadFlux(rType, fluxOut);
|
||||||
|
|
||||||
|
hasRod = true;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
this.fluxFast = 0;
|
this.fluxFast = 0;
|
||||||
this.fluxSlow = 0;
|
this.fluxSlow = 0;
|
||||||
|
|
||||||
|
hasRod = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -164,6 +170,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM
|
|||||||
|
|
||||||
this.fluxFast = nbt.getDouble("fluxFast");
|
this.fluxFast = nbt.getDouble("fluxFast");
|
||||||
this.fluxSlow = nbt.getDouble("fluxSlow");
|
this.fluxSlow = nbt.getDouble("fluxSlow");
|
||||||
|
this.hasRod = nbt.getBoolean("hasRod");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -172,6 +179,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM
|
|||||||
|
|
||||||
nbt.setDouble("fluxFast", this.fluxFast);
|
nbt.setDouble("fluxFast", this.fluxFast);
|
||||||
nbt.setDouble("fluxSlow", this.fluxSlow);
|
nbt.setDouble("fluxSlow", this.fluxSlow);
|
||||||
|
nbt.setBoolean("hasRod", this.hasRod);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void getDiagData(NBTTagCompound nbt) {
|
public void getDiagData(NBTTagCompound nbt) {
|
||||||
|
|||||||
BIN
src/main/resources/assets/hbm/textures/blocks/glass_lead.png
Normal file
|
After Width: | Height: | Size: 215 B |
|
After Width: | Height: | Size: 362 B |
|
After Width: | Height: | Size: 333 B |
|
After Width: | Height: | Size: 398 B |
|
After Width: | Height: | Size: 347 B |
|
After Width: | Height: | Size: 338 B |
|
After Width: | Height: | Size: 339 B |
|
After Width: | Height: | Size: 346 B |
BIN
src/main/resources/assets/hbm/textures/blocks/sand_lead.png
Normal file
|
After Width: | Height: | Size: 691 B |
BIN
src/main/resources/assets/hbm/textures/items/rbmk_lid_glass.png
Normal file
|
After Width: | Height: | Size: 402 B |