generated from tilera/1710mod
99 lines
3.5 KiB
Java
99 lines
3.5 KiB
Java
package atomicscience.fenlie;
|
|
|
|
import atomicscience.AtomicScience;
|
|
import atomicscience.api.IFissileMaterial;
|
|
import atomicscience.fenlie.TFissionReactor;
|
|
import atomicscience.jiqi.BBase;
|
|
import atomicscience.render.RH;
|
|
import cpw.mods.fml.relauncher.Side;
|
|
import cpw.mods.fml.relauncher.SideOnly;
|
|
import java.util.Random;
|
|
import net.minecraft.block.Block;
|
|
import net.minecraft.entity.item.EntityItem;
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
import net.minecraft.item.ItemStack;
|
|
import net.minecraft.tileentity.TileEntity;
|
|
import net.minecraft.world.World;
|
|
|
|
public class BFissionReactor extends BBase {
|
|
|
|
public BFissionReactor() { super("fissionReactor"); }
|
|
|
|
@Override
|
|
public void onBlockAdded(World par1World, int x, int y, int z) {
|
|
super.onBlockAdded(par1World, x, y, z);
|
|
TFissionReactor tileEntity =
|
|
(TFissionReactor)par1World.getTileEntity(x, y, z);
|
|
tileEntity.updatePositionStatus();
|
|
}
|
|
|
|
@Override
|
|
public void onNeighborBlockChange(World par1World, int x, int y, int z,
|
|
Block block) {
|
|
TFissionReactor tileEntity =
|
|
(TFissionReactor)par1World.getTileEntity(x, y, z);
|
|
tileEntity.updatePositionStatus();
|
|
}
|
|
|
|
@Override
|
|
public boolean onMachineActivated(World world, int x, int y, int z,
|
|
EntityPlayer entityPlayer, int side,
|
|
float hitX, float hitY, float hitZ) {
|
|
if (!world.isRemote) {
|
|
TFissionReactor tileEntity =
|
|
(TFissionReactor)world.getTileEntity(x, y, z);
|
|
tileEntity = tileEntity.zhaoZuiDi();
|
|
if (!entityPlayer.isSneaking()) {
|
|
if (entityPlayer.inventory.getCurrentItem() != null &&
|
|
entityPlayer.inventory.getCurrentItem().getItem() ==
|
|
AtomicScience.itWenDuBiao) {
|
|
return false;
|
|
}
|
|
|
|
if (tileEntity.getStackInSlot(0) != null) {
|
|
EntityItem itemStack1 =
|
|
new EntityItem(world, entityPlayer.posX, entityPlayer.posY,
|
|
entityPlayer.posZ, tileEntity.getStackInSlot(0));
|
|
Random random = new Random();
|
|
float var13 = 0.05F;
|
|
itemStack1.motionX = (double)((float)random.nextGaussian() * var13);
|
|
itemStack1.motionY =
|
|
(double)((float)random.nextGaussian() * var13 + 0.2F);
|
|
itemStack1.motionZ = (double)((float)random.nextGaussian() * var13);
|
|
itemStack1.delayBeforeCanPickup = 0;
|
|
world.spawnEntityInWorld(itemStack1);
|
|
tileEntity.setInventorySlotContents(0, (ItemStack)null);
|
|
return true;
|
|
}
|
|
|
|
if (entityPlayer.inventory.getCurrentItem() != null &&
|
|
entityPlayer.inventory.getCurrentItem().getItem() instanceof
|
|
IFissileMaterial) {
|
|
ItemStack itemStack = entityPlayer.inventory.getCurrentItem().copy();
|
|
itemStack.stackSize = 1;
|
|
tileEntity.setInventorySlotContents(0, itemStack);
|
|
entityPlayer.inventory.decrStackSize(
|
|
entityPlayer.inventory.currentItem, 1);
|
|
return true;
|
|
}
|
|
}
|
|
|
|
entityPlayer.openGui(AtomicScience.instance, 0, world, tileEntity.xCoord,
|
|
tileEntity.yCoord, tileEntity.zCoord);
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
@SideOnly(Side.CLIENT)
|
|
public int getRenderType() {
|
|
return RH.BLOCK_RENDER_ID;
|
|
}
|
|
|
|
public TileEntity createNewTileEntity(World var1) { return new TFissionReactor(); }
|
|
|
|
public boolean renderAsNormalBlock() { return false; }
|
|
|
|
public boolean isOpaqueCube() { return false; }
|
|
}
|