SILEX access ports, coltan pain, better designators

This commit is contained in:
Bob 2021-07-13 13:11:29 +02:00
parent 8ee8d35126
commit c64f1a74be
32 changed files with 464 additions and 492 deletions

View File

@ -0,0 +1,30 @@
package api.hbm.item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.Vec3;
import net.minecraft.world.World;
public interface IDesignatorItem {
/**
* Whether the target is valid
* @param world for things like restricting dimensions or getting entities
* @param stack to check NBT and metadata
* @param x position of the launch pad
* @param y position of the launch pad
* @param z position of the launch pad
* @return
*/
public boolean isReady(World world, ItemStack stack, int x, int y, int z);
/**
* The target position if the designator is ready
* @param world
* @param stack
* @param x
* @param y
* @param z
* @return the target
*/
public Vec3 getCoords(World world, ItemStack stack, int x, int y, int z);
}

View File

@ -36,12 +36,14 @@ import com.hbm.items.ModItems;
import com.hbm.main.MainRegistry;
import com.hbm.tileentity.bomb.TileEntityLaunchPad;
import api.hbm.item.IDesignatorItem;
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
@ -56,7 +58,7 @@ public class LaunchPad extends BlockContainer implements IBomb {
public TileEntityLaunchPad tetn = new TileEntityLaunchPad();
public static boolean keepInventory = false;
private final static Random field_149933_a = new Random();
private final static Random field_149933_a = new Random();
public LaunchPad(Material p_i45386_1_) {
super(p_i45386_1_);
@ -66,75 +68,63 @@ public class LaunchPad extends BlockContainer implements IBomb {
public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) {
return new TileEntityLaunchPad();
}
@Override
public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_)
{
return Item.getItemFromBlock(ModBlocks.launch_pad);
}
public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) {
return Item.getItemFromBlock(ModBlocks.launch_pad);
}
@Override
public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_)
{
if (!keepInventory)
{
TileEntityLaunchPad tileentityfurnace = (TileEntityLaunchPad)p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_);
public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) {
if(!keepInventory) {
TileEntityLaunchPad tileentityfurnace = (TileEntityLaunchPad) p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_);
if (tileentityfurnace != null)
{
for (int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1)
{
ItemStack itemstack = tileentityfurnace.getStackInSlot(i1);
if(tileentityfurnace != null) {
for(int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) {
ItemStack itemstack = tileentityfurnace.getStackInSlot(i1);
if (itemstack != null)
{
float f = LaunchPad.field_149933_a.nextFloat() * 0.8F + 0.1F;
float f1 = LaunchPad.field_149933_a.nextFloat() * 0.8F + 0.1F;
float f2 = LaunchPad.field_149933_a.nextFloat() * 0.8F + 0.1F;
if(itemstack != null) {
float f = LaunchPad.field_149933_a.nextFloat() * 0.8F + 0.1F;
float f1 = LaunchPad.field_149933_a.nextFloat() * 0.8F + 0.1F;
float f2 = LaunchPad.field_149933_a.nextFloat() * 0.8F + 0.1F;
while (itemstack.stackSize > 0)
{
int j1 = LaunchPad.field_149933_a.nextInt(21) + 10;
while(itemstack.stackSize > 0) {
int j1 = LaunchPad.field_149933_a.nextInt(21) + 10;
if (j1 > itemstack.stackSize)
{
j1 = itemstack.stackSize;
}
if(j1 > itemstack.stackSize) {
j1 = itemstack.stackSize;
}
itemstack.stackSize -= j1;
EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage()));
itemstack.stackSize -= j1;
EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage()));
if (itemstack.hasTagCompound())
{
entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy());
}
if(itemstack.hasTagCompound()) {
entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy());
}
float f3 = 0.05F;
entityitem.motionX = (float)LaunchPad.field_149933_a.nextGaussian() * f3;
entityitem.motionY = (float)LaunchPad.field_149933_a.nextGaussian() * f3 + 0.2F;
entityitem.motionZ = (float)LaunchPad.field_149933_a.nextGaussian() * f3;
p_149749_1_.spawnEntityInWorld(entityitem);
}
}
}
float f3 = 0.05F;
entityitem.motionX = (float) LaunchPad.field_149933_a.nextGaussian() * f3;
entityitem.motionY = (float) LaunchPad.field_149933_a.nextGaussian() * f3 + 0.2F;
entityitem.motionZ = (float) LaunchPad.field_149933_a.nextGaussian() * f3;
p_149749_1_.spawnEntityInWorld(entityitem);
}
}
}
p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_);
}
}
p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_);
}
}
super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_);
}
super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_);
}
@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
if(world.isRemote)
{
if(world.isRemote) {
return true;
} else if(!player.isSneaking())
{
} else if(!player.isSneaking()) {
TileEntityLaunchPad entity = (TileEntityLaunchPad) world.getTileEntity(x, y, z);
if(entity != null)
{
if(entity != null) {
FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_launch_pad, world, x, y, z);
}
return true;
@ -142,362 +132,192 @@ public class LaunchPad extends BlockContainer implements IBomb {
return false;
}
}
@Override
public void onNeighborBlockChange(World p_149695_1_, int x, int y, int z, Block p_149695_5_)
{
if (p_149695_1_.isBlockIndirectlyGettingPowered(x, y, z) && !p_149695_1_.isRemote)
{
this.explode(p_149695_1_, x, y, z);
}
}
@Override
public int getRenderType(){
public void onNeighborBlockChange(World p_149695_1_, int x, int y, int z, Block p_149695_5_) {
if(p_149695_1_.isBlockIndirectlyGettingPowered(x, y, z) && !p_149695_1_.isRemote) {
this.explode(p_149695_1_, x, y, z);
}
}
@Override
public int getRenderType() {
return -1;
}
@Override
public boolean isOpaqueCube() {
return false;
}
@Override
public boolean renderAsNormalBlock() {
return false;
}
@Override
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) {
int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3;
if(i == 0)
{
if(i == 0) {
world.setBlockMetadataWithNotify(x, y, z, 5, 2);
}
if(i == 1)
{
if(i == 1) {
world.setBlockMetadataWithNotify(x, y, z, 3, 2);
}
if(i == 2)
{
if(i == 2) {
world.setBlockMetadataWithNotify(x, y, z, 4, 2);
}
if(i == 3)
{
if(i == 3) {
world.setBlockMetadataWithNotify(x, y, z, 2, 2);
}
}
/*@Override
public void setBlockBoundsBasedOnState(IBlockAccess p_149719_1_, int p_149719_2_, int p_149719_3_, int p_149719_4_)
{
float f = 0.0625F;
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F);
}
/*
* @Override public void setBlockBoundsBasedOnState(IBlockAccess
* p_149719_1_, int p_149719_2_, int p_149719_3_, int p_149719_4_) { float f
* = 0.0625F; this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F); }
*
* @Override public AxisAlignedBB getCollisionBoundingBoxFromPool(World
* world, int x, int y, int z) { float f = 0.0625F;
* this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 8*f, 1.0F); return
* AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ,
* x + this.maxX, y + this.maxY, z + this.maxZ); }
*/
@Override
public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) {
float f = 0.0625F;
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 8*f, 1.0F);
return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ);
}*/
@Override
@SideOnly(Side.CLIENT)
public Item getItem(World p_149694_1_, int p_149694_2_, int p_149694_3_, int p_149694_4_)
{
return Item.getItemFromBlock(ModBlocks.launch_pad);
}
@Override
public void explode(World p_149695_1_, int x, int y, int z)
{
TileEntityLaunchPad entity = (TileEntityLaunchPad) p_149695_1_.getTileEntity(x, y, z);
//
{
if(entity.slots[1] != null && (entity.slots[1].getItem() == ModItems.designator || entity.slots[1].getItem() == ModItems.designator_range || entity.slots[1].getItem() == ModItems.designator_manual) && entity.slots[1].stackTagCompound != null)
{
int xCoord = entity.slots[1].stackTagCompound.getInteger("xCoord");
int zCoord = entity.slots[1].stackTagCompound.getInteger("zCoord");
if(xCoord == entity.xCoord && zCoord == entity.zCoord)
{
xCoord += 1;
}
public Item getItem(World p_149694_1_, int p_149694_2_, int p_149694_3_, int p_149694_4_) {
return Item.getItemFromBlock(ModBlocks.launch_pad);
}
if(GeneralConfig.enableExtendedLogging)
MainRegistry.logger.log(Level.INFO, "[MISSILE] Tried to launch missile at " + x + " / " + y + " / " + z + " to " + xCoord + " / " + zCoord + "!");
if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_generic && entity.power >= 75000)
{
//EntityMissileGeneric missile = new EntityMissileGeneric(p_149695_1_, xCoord, zCoord, x + 0.5F, y + 2F, z + 0.5F);
EntityMissileGeneric missile = new EntityMissileGeneric(p_149695_1_, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
if (!p_149695_1_.isRemote)
p_149695_1_.spawnEntityInWorld(missile);
entity.power -= 75000;
entity.slots[0] = null;
p_149695_1_.playSoundEffect(x, y, z, "hbm:weapon.missileTakeOff", 2.0F, 1.0F);
}
if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_incendiary && entity.power >= 75000)
{
EntityMissileIncendiary missile = new EntityMissileIncendiary(p_149695_1_, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
if (!p_149695_1_.isRemote)
p_149695_1_.spawnEntityInWorld(missile);
entity.power -= 75000;
entity.slots[0] = null;
p_149695_1_.playSoundEffect(x, y, z, "hbm:weapon.missileTakeOff", 2.0F, 1.0F);
}
if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_cluster && entity.power >= 75000)
{
EntityMissileCluster missile = new EntityMissileCluster(p_149695_1_, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
if (!p_149695_1_.isRemote)
p_149695_1_.spawnEntityInWorld(missile);
entity.power -= 75000;
entity.slots[0] = null;
p_149695_1_.playSoundEffect(x, y, z, "hbm:weapon.missileTakeOff", 2.0F, 1.0F);
}
if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_buster && entity.power >= 75000)
{
EntityMissileBunkerBuster missile = new EntityMissileBunkerBuster(p_149695_1_, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
if (!p_149695_1_.isRemote)
p_149695_1_.spawnEntityInWorld(missile);
entity.power -= 75000;
entity.slots[0] = null;
p_149695_1_.playSoundEffect(x, y, z, "hbm:weapon.missileTakeOff", 2.0F, 1.0F);
}
if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_strong && entity.power >= 75000)
{
EntityMissileStrong missile = new EntityMissileStrong(p_149695_1_, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
if (!p_149695_1_.isRemote)
p_149695_1_.spawnEntityInWorld(missile);
entity.power -= 75000;
entity.slots[0] = null;
p_149695_1_.playSoundEffect(x, y, z, "hbm:weapon.missileTakeOff", 2.0F, 1.0F);
}
if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_incendiary_strong && entity.power >= 75000)
{
EntityMissileIncendiaryStrong missile = new EntityMissileIncendiaryStrong(p_149695_1_, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
if (!p_149695_1_.isRemote)
p_149695_1_.spawnEntityInWorld(missile);
entity.power -= 75000;
entity.slots[0] = null;
p_149695_1_.playSoundEffect(x, y, z, "hbm:weapon.missileTakeOff", 2.0F, 1.0F);
}
if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_cluster_strong && entity.power >= 75000)
{
EntityMissileClusterStrong missile = new EntityMissileClusterStrong(p_149695_1_, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
if (!p_149695_1_.isRemote)
p_149695_1_.spawnEntityInWorld(missile);
entity.power -= 75000;
entity.slots[0] = null;
p_149695_1_.playSoundEffect(x, y, z, "hbm:weapon.missileTakeOff", 2.0F, 1.0F);
}
if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_buster_strong && entity.power >= 75000)
{
EntityMissileBusterStrong missile = new EntityMissileBusterStrong(p_149695_1_, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
if (!p_149695_1_.isRemote)
p_149695_1_.spawnEntityInWorld(missile);
entity.power -= 75000;
entity.slots[0] = null;
p_149695_1_.playSoundEffect(x, y, z, "hbm:weapon.missileTakeOff", 2.0F, 1.0F);
}
if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_burst && entity.power >= 75000)
{
EntityMissileBurst missile = new EntityMissileBurst(p_149695_1_, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
if (!p_149695_1_.isRemote)
p_149695_1_.spawnEntityInWorld(missile);
entity.power -= 75000;
entity.slots[0] = null;
p_149695_1_.playSoundEffect(x, y, z, "hbm:weapon.missileTakeOff", 2.0F, 1.0F);
}
if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_inferno && entity.power >= 75000)
{
EntityMissileInferno missile = new EntityMissileInferno(p_149695_1_, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
if (!p_149695_1_.isRemote)
p_149695_1_.spawnEntityInWorld(missile);
entity.power -= 75000;
entity.slots[0] = null;
p_149695_1_.playSoundEffect(x, y, z, "hbm:weapon.missileTakeOff", 2.0F, 1.0F);
}
if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_rain && entity.power >= 75000)
{
EntityMissileRain missile = new EntityMissileRain(p_149695_1_, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
if (!p_149695_1_.isRemote)
p_149695_1_.spawnEntityInWorld(missile);
entity.power -= 75000;
entity.slots[0] = null;
p_149695_1_.playSoundEffect(x, y, z, "hbm:weapon.missileTakeOff", 2.0F, 1.0F);
}
if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_drill && entity.power >= 75000)
{
EntityMissileDrill missile = new EntityMissileDrill(p_149695_1_, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
if (!p_149695_1_.isRemote)
p_149695_1_.spawnEntityInWorld(missile);
entity.power -= 75000;
entity.slots[0] = null;
p_149695_1_.playSoundEffect(x, y, z, "hbm:weapon.missileTakeOff", 2.0F, 1.0F);
}
if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_nuclear && entity.power >= 75000)
{
EntityMissileNuclear missile = new EntityMissileNuclear(p_149695_1_, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
if (!p_149695_1_.isRemote)
p_149695_1_.spawnEntityInWorld(missile);
entity.power -= 75000;
entity.slots[0] = null;
p_149695_1_.playSoundEffect(x, y, z, "hbm:weapon.missileTakeOff", 2.0F, 1.0F);
}
if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_endo && entity.power >= 75000)
{
EntityMissileEndo missile = new EntityMissileEndo(p_149695_1_, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
if (!p_149695_1_.isRemote)
p_149695_1_.spawnEntityInWorld(missile);
entity.power -= 75000;
entity.slots[0] = null;
p_149695_1_.playSoundEffect(x, y, z, "hbm:weapon.missileTakeOff", 2.0F, 1.0F);
}
if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_exo && entity.power >= 75000)
{
EntityMissileExo missile = new EntityMissileExo(p_149695_1_, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
if (!p_149695_1_.isRemote)
p_149695_1_.spawnEntityInWorld(missile);
entity.power -= 75000;
entity.slots[0] = null;
p_149695_1_.playSoundEffect(x, y, z, "hbm:weapon.missileTakeOff", 2.0F, 1.0F);
}
if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_nuclear_cluster && entity.power >= 75000)
{
EntityMissileMirv missile = new EntityMissileMirv(p_149695_1_, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
if (!p_149695_1_.isRemote)
p_149695_1_.spawnEntityInWorld(missile);
entity.power -= 75000;
entity.slots[0] = null;
p_149695_1_.playSoundEffect(x, y, z, "hbm:weapon.missileTakeOff", 2.0F, 1.0F);
}
if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_doomsday && entity.power >= 75000)
{
EntityMissileDoomsday missile = new EntityMissileDoomsday(p_149695_1_, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
if (!p_149695_1_.isRemote)
p_149695_1_.spawnEntityInWorld(missile);
entity.power -= 75000;
entity.slots[0] = null;
p_149695_1_.playSoundEffect(x, y, z, "hbm:weapon.missileTakeOff", 2.0F, 1.0F);
}
if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_taint && entity.power >= 75000)
{
EntityMissileTaint missile = new EntityMissileTaint(p_149695_1_, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
if (!p_149695_1_.isRemote)
p_149695_1_.spawnEntityInWorld(missile);
entity.power -= 75000;
entity.slots[0] = null;
p_149695_1_.playSoundEffect(x, y, z, "hbm:weapon.missileTakeOff", 2.0F, 1.0F);
}
if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_micro && entity.power >= 75000)
{
EntityMissileMicro missile = new EntityMissileMicro(p_149695_1_, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
if (!p_149695_1_.isRemote)
p_149695_1_.spawnEntityInWorld(missile);
entity.power -= 75000;
entity.slots[0] = null;
p_149695_1_.playSoundEffect(x, y, z, "hbm:weapon.missileTakeOff", 2.0F, 1.0F);
}
if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_bhole && entity.power >= 75000)
{
EntityMissileBHole missile = new EntityMissileBHole(p_149695_1_, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
if (!p_149695_1_.isRemote)
p_149695_1_.spawnEntityInWorld(missile);
entity.power -= 75000;
entity.slots[0] = null;
p_149695_1_.playSoundEffect(x, y, z, "hbm:weapon.missileTakeOff", 2.0F, 1.0F);
}
if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_schrabidium && entity.power >= 75000)
{
EntityMissileSchrabidium missile = new EntityMissileSchrabidium(p_149695_1_, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
if (!p_149695_1_.isRemote)
p_149695_1_.spawnEntityInWorld(missile);
entity.power -= 75000;
entity.slots[0] = null;
p_149695_1_.playSoundEffect(x, y, z, "hbm:weapon.missileTakeOff", 2.0F, 1.0F);
}
if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_emp && entity.power >= 75000)
{
EntityMissileEMP missile = new EntityMissileEMP(p_149695_1_, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
if (!p_149695_1_.isRemote)
p_149695_1_.spawnEntityInWorld(missile);
entity.power -= 75000;
entity.slots[0] = null;
p_149695_1_.playSoundEffect(x, y, z, "hbm:weapon.missileTakeOff", 2.0F, 1.0F);
}
if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_emp_strong && entity.power >= 75000)
{
EntityMissileEMPStrong missile = new EntityMissileEMPStrong(p_149695_1_, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
if (!p_149695_1_.isRemote)
p_149695_1_.spawnEntityInWorld(missile);
entity.power -= 75000;
entity.slots[0] = null;
p_149695_1_.playSoundEffect(x, y, z, "hbm:weapon.missileTakeOff", 2.0F, 1.0F);
}
}
@Override
public void explode(World world, int x, int y, int z) {
if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_carrier && entity.power >= 75000)
{
EntityCarrier missile = new EntityCarrier(p_149695_1_);
missile.posX = x + 0.5F;
missile.posY = y + 1F;
missile.posZ = z + 0.5F;
if(entity.slots[1] != null)
missile.setPayload(entity.slots[1]);
entity.slots[1] = null;
if (!p_149695_1_.isRemote)
p_149695_1_.spawnEntityInWorld(missile);
entity.power -= 75000;
entity.slots[0] = null;
p_149695_1_.playSoundEffect(x, y, z, "hbm:entity.rocketTakeoff", 100.0F, 1.0F);
}
TileEntityLaunchPad entity = (TileEntityLaunchPad) world.getTileEntity(x, y, z);
if(entity.slots[0] == null || world.isRemote)
return;
if(entity.slots[1] != null && entity.slots[1].getItem() instanceof IDesignatorItem && entity.power >= 75000) {
int xCoord = entity.slots[1].stackTagCompound.getInteger("xCoord");
int zCoord = entity.slots[1].stackTagCompound.getInteger("zCoord");
if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_anti_ballistic && entity.power >= 75000)
{
EntityMissileAntiBallistic missile = new EntityMissileAntiBallistic(p_149695_1_);
missile.posX = x + 0.5F;
missile.posY = y + 0.5F;
missile.posZ = z + 0.5F;
if (!p_149695_1_.isRemote)
p_149695_1_.spawnEntityInWorld(missile);
entity.power -= 75000;
entity.slots[0] = null;
p_149695_1_.playSoundEffect(x, y, z, "hbm:weapon.missileTakeOff", 2.0F, 1.0F);
}
}
}
if(xCoord == entity.xCoord && zCoord == entity.zCoord) {
xCoord += 1;
}
Entity missile = null;
if(entity.slots[0].getItem() == ModItems.missile_generic) {
missile = new EntityMissileGeneric(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
}
if(entity.slots[0].getItem() == ModItems.missile_incendiary) {
missile = new EntityMissileIncendiary(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
}
if(entity.slots[0].getItem() == ModItems.missile_cluster) {
missile = new EntityMissileCluster(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
}
if(entity.slots[0].getItem() == ModItems.missile_buster) {
missile = new EntityMissileBunkerBuster(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
}
if(entity.slots[0].getItem() == ModItems.missile_strong) {
missile = new EntityMissileStrong(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
}
if(entity.slots[0].getItem() == ModItems.missile_incendiary_strong) {
missile = new EntityMissileIncendiaryStrong(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
}
if(entity.slots[0].getItem() == ModItems.missile_cluster_strong) {
missile = new EntityMissileClusterStrong(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
}
if(entity.slots[0].getItem() == ModItems.missile_buster_strong) {
missile = new EntityMissileBusterStrong(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
}
if(entity.slots[0].getItem() == ModItems.missile_burst) {
missile = new EntityMissileBurst(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
}
if(entity.slots[0].getItem() == ModItems.missile_inferno) {
missile = new EntityMissileInferno(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
}
if(entity.slots[0].getItem() == ModItems.missile_rain) {
missile = new EntityMissileRain(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
}
if(entity.slots[0].getItem() == ModItems.missile_drill) {
missile = new EntityMissileDrill(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
}
if(entity.slots[0].getItem() == ModItems.missile_nuclear) {
missile = new EntityMissileNuclear(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
}
if(entity.slots[0].getItem() == ModItems.missile_endo) {
missile = new EntityMissileEndo(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
}
if(entity.slots[0].getItem() == ModItems.missile_exo) {
missile = new EntityMissileExo(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
}
if(entity.slots[0].getItem() == ModItems.missile_nuclear_cluster) {
missile = new EntityMissileMirv(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
}
if(entity.slots[0].getItem() == ModItems.missile_doomsday) {
missile = new EntityMissileDoomsday(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
}
if(entity.slots[0].getItem() == ModItems.missile_taint) {
missile = new EntityMissileTaint(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
}
if(entity.slots[0].getItem() == ModItems.missile_micro) {
missile = new EntityMissileMicro(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
}
if(entity.slots[0].getItem() == ModItems.missile_bhole) {
missile = new EntityMissileBHole(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
}
if(entity.slots[0].getItem() == ModItems.missile_schrabidium) {
missile = new EntityMissileSchrabidium(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
}
if(entity.slots[0].getItem() == ModItems.missile_emp) {
missile = new EntityMissileEMP(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
}
if(entity.slots[0].getItem() == ModItems.missile_emp_strong) {
missile = new EntityMissileEMPStrong(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
}
world.spawnEntityInWorld(missile);
world.playSoundEffect(x, y, z, "hbm:weapon.missileTakeOff", 2.0F, 1.0F);
entity.power -= 75000;
entity.slots[0] = null;
if(GeneralConfig.enableExtendedLogging)
MainRegistry.logger.log(Level.INFO, "[MISSILE] Tried to launch missile at " + x + " / " + y + " / " + z + " to " + xCoord + " / " + zCoord + "!");
}
if(entity.slots[0].getItem() == ModItems.missile_carrier && entity.power >= 75000) {
EntityCarrier missile = new EntityCarrier(world);
missile.posX = x + 0.5F;
missile.posY = y + 1F;
missile.posZ = z + 0.5F;
if(entity.slots[1] != null)
missile.setPayload(entity.slots[1]);
world.spawnEntityInWorld(missile);
entity.power -= 75000;
entity.slots[0] = null;
entity.slots[1] = null;
world.playSoundEffect(x, y, z, "hbm:entity.rocketTakeoff", 100.0F, 1.0F);
}
if(entity.slots[0].getItem() == ModItems.missile_anti_ballistic && entity.power >= 75000) {
EntityMissileAntiBallistic missile = new EntityMissileAntiBallistic(world);
missile.posX = x + 0.5F;
missile.posY = y + 0.5F;
missile.posZ = z + 0.5F;
world.spawnEntityInWorld(missile);
entity.power -= 75000;
entity.slots[0] = null;
world.playSoundEffect(x, y, z, "hbm:weapon.missileTakeOff", 2.0F, 1.0F);
}
}
}

View File

@ -15,7 +15,6 @@ import net.minecraft.block.material.Material;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.ISidedInventory;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;

View File

@ -3,6 +3,7 @@ package com.hbm.blocks.machine;
import com.hbm.blocks.BlockDummyable;
import com.hbm.blocks.ModBlocks;
import com.hbm.main.MainRegistry;
import com.hbm.tileentity.TileEntityProxyCombo;
import com.hbm.tileentity.machine.TileEntitySILEX;
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
@ -10,6 +11,7 @@ import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class MachineSILEX extends BlockDummyable {
@ -22,6 +24,8 @@ public class MachineSILEX extends BlockDummyable {
if(meta >= 12)
return new TileEntitySILEX();
if(meta >= 6)
return new TileEntityProxyCombo(true, false, true);
return null;
}
@ -37,20 +41,34 @@ public class MachineSILEX extends BlockDummyable {
@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
if(world.isRemote)
{
if(world.isRemote) {
return true;
} else if(!player.isSneaking())
{
int[] pos = this.findCore(world, x, y, z);
} else if(!player.isSneaking()) {
int[] pos = this.findCore(world, x, y, z);
if(pos == null)
return false;
FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_silex, world, pos[0], pos[1], pos[2]);
return true;
} else {
return false;
}
}
protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) {
super.fillSpace(world, x, y, z, dir, o);
if(dir == ForgeDirection.NORTH || dir == ForgeDirection.SOUTH) {
this.makeExtra(world, x + dir.offsetX * o + 1, y + 1, z + dir.offsetZ * o);
this.makeExtra(world, x + dir.offsetX * o - 1, y + 1, z + dir.offsetZ * o);
}
if(dir == ForgeDirection.EAST || dir == ForgeDirection.WEST) {
this.makeExtra(world, x + dir.offsetX * o, y + 1, z + dir.offsetZ * o + 1);
this.makeExtra(world, x + dir.offsetX * o, y + 1, z + dir.offsetZ * o - 1);
}
}
}

View File

@ -76,6 +76,7 @@ public class FluidTypeHandler {
BALEFIRE (0x28e02e, 6, 1, 2, 4, 4, 3, EnumSymbol.RADIATION, "hbmfluid.balefire", 1500, FluidTrait.CORROSIVE),
MERCURY (0x808080, 7, 1, 2, 2, 0, 0, EnumSymbol.NONE, "hbmfluid.mercury"),
PAIN (0x938541, 15, 1, 2, 2, 0, 1, EnumSymbol.ACID, "hbmfluid.pain", 300, FluidTrait.CORROSIVE),
PLASMA_DT (0xF7AFDE, 8, 1, 2, 0, 4, 0, EnumSymbol.RADIATION, "hbmfluid.plasma_dt", 3250, FluidTrait.NO_CONTAINER),
PLASMA_HD (0xF0ADF4, 9, 1, 2, 0, 4, 0, EnumSymbol.RADIATION, "hbmfluid.plasma_hd", 2500, FluidTrait.NO_CONTAINER),

View File

@ -1478,6 +1478,7 @@ public class MachineRecipes {
fuels.add(new ItemStack(ModItems.blades_steel));
fuels.add(new ItemStack(ModItems.blades_titanium));
fuels.add(new ItemStack(ModItems.blades_schrabidium));
fuels.add(new ItemStack(ModItems.blades_desh));
return fuels;
}
@ -1754,6 +1755,14 @@ public class MachineRecipes {
case SCHRABIDATE:
list.add(new ItemStack(ModItems.powder_iron, 1));
break;
case COLTAN_CLEANING:
list.add(new ItemStack(ModItems.powder_coltan_ore, 2));
list.add(new ItemStack(ModItems.powder_coal, 1));
break;
case COLTAN_PAIN:
list.add(new ItemStack(ModItems.powder_coltan, 1));
list.add(new ItemStack(ModItems.fluorite, 1));
break;
default:
break;
}
@ -1973,6 +1982,18 @@ public class MachineRecipes {
case SCHRABIDATE:
input[0] = new FluidStack(250, FluidType.SCHRABIDIC);
break;
case COLTAN_CLEANING:
input[0] = new FluidStack(250, FluidType.ACID);
input[1] = new FluidStack(500, FluidType.HYDROGEN);
break;
case COLTAN_PAIN:
input[0] = new FluidStack(1000, FluidType.GAS);
input[1] = new FluidStack(500, FluidType.OXYGEN);
break;
case COLTAN_CRYSTAL:
input[0] = new FluidStack(1000, FluidType.PAIN);
input[1] = new FluidStack(500, FluidType.ACID);
break;
default:
break;
}
@ -2114,6 +2135,14 @@ public class MachineRecipes {
case SCHRABIDATE:
output[0] = new ItemStack(ModItems.powder_schrabidate, 1);
break;
case COLTAN_CLEANING:
output[0] = new ItemStack(ModItems.powder_coltan, 1);
output[1] = new ItemStack(ModItems.dust, 2);
break;
case COLTAN_CRYSTAL:
output[0] = new ItemStack(ModItems.gem_tantalium, 1);
output[1] = new ItemStack(ModItems.dust, 3);
break;
default:
break;
}
@ -2243,6 +2272,15 @@ public class MachineRecipes {
case SCHRABIDIC:
output[0] = new FluidStack(16000, FluidType.SCHRABIDIC);
break;
case COLTAN_CLEANING:
output[0] = new FluidStack(500, FluidType.WATER);
break;
case COLTAN_PAIN:
output[0] = new FluidStack(1000, FluidType.PAIN);
break;
case COLTAN_CRYSTAL:
output[0] = new FluidStack(250, FluidType.WATER);
break;
default:
break;
}

View File

@ -67,6 +67,7 @@ public class OreDictManager {
OreDictionary.registerOre("ingotBoron", ModItems.ingot_boron);
OreDictionary.registerOre("ingotTcAlloy", ModItems.ingot_tcalloy);
OreDictionary.registerOre("ingotGold198", ModItems.ingot_au198);
OreDictionary.registerOre("ingotColtan", ModItems.fragment_coltan);
OreDictionary.registerOre("nuggetLead", ModItems.nugget_lead);
OreDictionary.registerOre("nuggetBeryllium", ModItems.nugget_beryllium);
@ -158,6 +159,7 @@ public class OreDictManager {
OreDictionary.registerOre("dustBoron", ModItems.powder_boron);
OreDictionary.registerOre("dustTcAlloy", ModItems.powder_tcalloy);
OreDictionary.registerOre("dustGol198", ModItems.powder_au198);
OreDictionary.registerOre("dustColtan", ModItems.powder_coltan_ore);
OreDictionary.registerOre("dustNeptunium", ModItems.powder_neptunium);
OreDictionary.registerOre("dustIodine", ModItems.powder_iodine);
@ -207,6 +209,7 @@ public class OreDictManager {
OreDictionary.registerOre("oreAustralium", ModBlocks.ore_australium);
OreDictionary.registerOre("oreRareEarth", ModBlocks.ore_rare);
OreDictionary.registerOre("oreZirconium", ModBlocks.ore_depth_zirconium);
OreDictionary.registerOre("oreColtan", ModBlocks.ore_coltan);
OreDictionary.registerOre("oreIron", ModBlocks.ore_gneiss_iron);
OreDictionary.registerOre("oreGold", ModBlocks.ore_gneiss_gold);
@ -266,6 +269,7 @@ public class OreDictManager {
OreDictionary.registerOre("blockCobalt", ModBlocks.block_cobalt);
OreDictionary.registerOre("blockZirconium", ModBlocks.block_zirconium);
OreDictionary.registerOre("blockBoron", ModBlocks.block_boron);
OreDictionary.registerOre("blockColtan", ModBlocks.block_coltan);
OreDictionary.registerOre("blockThorium", ModBlocks.block_thorium);
OreDictionary.registerOre("blockThorium232", ModBlocks.block_thorium);

View File

@ -315,6 +315,8 @@ public class ModItems {
public static Item crystal_lithium;
public static Item crystal_starmetal;
public static Item crystal_trixite;
public static Item gem_tantalium;
public static Item powder_lead;
public static Item powder_neptunium;
@ -396,6 +398,9 @@ public class ModItems {
public static Item powder_actinium_tiny;
public static Item powder_boron_tiny;
public static Item powder_meteorite_tiny;
public static Item powder_coltan_ore;
public static Item powder_coltan;
public static Item powder_lanthanium;
public static Item powder_actinium;
@ -2647,6 +2652,7 @@ public class ModItems {
crystal_lithium = new ItemHazard().addHydroReactivity().toItem().setUnlocalizedName("crystal_lithium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_lithium");
crystal_starmetal = new Item().setUnlocalizedName("crystal_starmetal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_starmetal");
crystal_trixite = new ItemHazard().addRadiation(ItemHazard.trx * ItemHazard.crystal).toItem().setUnlocalizedName("crystal_trixite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_trixite");
gem_tantalium = new Item().setUnlocalizedName("gem_tantalium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":gem_tantalium");
powder_lead = new Item().setUnlocalizedName("powder_lead").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_lead");
powder_neptunium = new ItemHazard(ItemHazard.np237 * ItemHazard.powder, true).setUnlocalizedName("powder_neptunium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_neptunium");
@ -2734,6 +2740,8 @@ public class ModItems {
powder_magic = new Item().setUnlocalizedName("powder_magic").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_magic");
powder_cloud = new Item().setUnlocalizedName("powder_cloud").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_cloud");
powder_balefire = new ItemHazard(500F, true).setUnlocalizedName("powder_balefire").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_balefire");
powder_coltan_ore = new ItemHazard().addAsbestos().toItem().setUnlocalizedName("powder_coltan_ore").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_coltan_ore");
powder_coltan = new Item().setUnlocalizedName("powder_coltan").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_coltan");
fragment_neodymium = new Item().setUnlocalizedName("fragment_neodymium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fragment_neodymium");
fragment_cobalt = new Item().setUnlocalizedName("fragment_cobalt").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fragment_cobalt");
@ -5363,6 +5371,8 @@ public class ModItems {
GameRegistry.registerItem(powder_steel_tiny, powder_steel_tiny.getUnlocalizedName());
GameRegistry.registerItem(powder_tcalloy, powder_tcalloy.getUnlocalizedName());
GameRegistry.registerItem(powder_lead, powder_lead.getUnlocalizedName());
GameRegistry.registerItem(powder_coltan_ore, powder_coltan_ore.getUnlocalizedName());
GameRegistry.registerItem(powder_coltan, powder_coltan.getUnlocalizedName());
GameRegistry.registerItem(powder_yellowcake, powder_yellowcake.getUnlocalizedName());
GameRegistry.registerItem(powder_beryllium, powder_beryllium.getUnlocalizedName());
GameRegistry.registerItem(powder_dura_steel, powder_dura_steel.getUnlocalizedName());
@ -5456,6 +5466,7 @@ public class ModItems {
GameRegistry.registerItem(crystal_lithium, crystal_lithium.getUnlocalizedName());
GameRegistry.registerItem(crystal_starmetal, crystal_starmetal.getUnlocalizedName());
GameRegistry.registerItem(crystal_trixite, crystal_trixite.getUnlocalizedName());
GameRegistry.registerItem(gem_tantalium, gem_tantalium.getUnlocalizedName());
//Fragments
GameRegistry.registerItem(fragment_neodymium, fragment_neodymium.getUnlocalizedName());

View File

@ -91,7 +91,10 @@ public class ItemChemistryTemplate extends Item {
SATURN,
BALEFIRE,
SCHRABIDIC,
SCHRABIDATE;
SCHRABIDATE,
COLTAN_CLEANING,
COLTAN_PAIN,
COLTAN_CRYSTAL;
public static EnumChemistryTemplate getEnum(int i) {
if(i < EnumChemistryTemplate.values().length)
@ -271,6 +274,12 @@ public class ItemChemistryTemplate extends Item {
return 100;
case SCHRABIDATE:
return 600;
case COLTAN_CLEANING:
return 60;
case COLTAN_PAIN:
return 120;
case COLTAN_CRYSTAL:
return 80;
default:
return 100;
}

View File

@ -4,59 +4,58 @@ import java.util.List;
import com.hbm.blocks.bomb.LaunchPad;
import api.hbm.item.IDesignatorItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.Vec3;
import net.minecraft.world.World;
public class ItemDesingator extends Item {
public class ItemDesingator extends Item implements IDesignatorItem {
@Override
public void onCreated(ItemStack p_77622_1_, World p_77622_2_, EntityPlayer p_77622_3_) {
p_77622_1_.stackTagCompound = new NBTTagCompound();
p_77622_1_.stackTagCompound.setInteger("xCoord", 0);
p_77622_1_.stackTagCompound.setInteger("zCoord", 0);
}
@Override
public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool)
{
if(itemstack.stackTagCompound != null)
{
public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) {
if(itemstack.stackTagCompound != null) {
list.add("Target Coordinates:");
list.add("X: " + String.valueOf(itemstack.stackTagCompound.getInteger("xCoord")));
list.add("Z: " + String.valueOf(itemstack.stackTagCompound.getInteger("zCoord")));
list.add("X: " + itemstack.stackTagCompound.getInteger("xCoord"));
list.add("Z: " + itemstack.stackTagCompound.getInteger("zCoord"));
} else {
list.add("Please select a target.");
}
}
@Override
public boolean onItemUse(ItemStack p_77648_1_, EntityPlayer p_77648_2_, World p_77648_3_, int p_77648_4_, int p_77648_5_, int p_77648_6_, int p_77648_7_, float p_77648_8_, float p_77648_9_, float p_77648_10_)
{
if(!(p_77648_3_.getBlock(p_77648_4_, p_77648_5_, p_77648_6_) instanceof LaunchPad))
{
if(p_77648_1_.stackTagCompound != null)
{
p_77648_1_.stackTagCompound.setInteger("xCoord", p_77648_4_);
p_77648_1_.stackTagCompound.setInteger("zCoord", p_77648_6_);
} else {
p_77648_1_.stackTagCompound = new NBTTagCompound();
p_77648_1_.stackTagCompound.setInteger("xCoord", p_77648_4_);
p_77648_1_.stackTagCompound.setInteger("zCoord", p_77648_6_);
}
if(p_77648_3_.isRemote)
{
p_77648_2_.addChatMessage(new ChatComponentText("Position set!"));
public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) {
if(!(world.getBlock(x, y, z) instanceof LaunchPad)) {
if(stack.stackTagCompound == null)
stack.stackTagCompound = new NBTTagCompound();
stack.stackTagCompound.setInteger("xCoord", x);
stack.stackTagCompound.setInteger("zCoord", z);
if(world.isRemote) {
player.addChatMessage(new ChatComponentText("Position set!"));
}
p_77648_3_.playSoundAtEntity(p_77648_2_, "hbm:item.techBleep", 1.0F, 1.0F);
return true;
world.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F);
return true;
}
return false;
}
return false;
}
@Override
public boolean isReady(World world, ItemStack stack, int x, int y, int z) {
return stack.hasTagCompound();
}
@Override
public Vec3 getCoords(World world, ItemStack stack, int x, int y, int z) {
return Vec3.createVectorHelper(stack.stackTagCompound.getInteger("xCoord"), 0, stack.stackTagCompound.getInteger("zCoord"));
}
}

View File

@ -5,40 +5,42 @@ import java.util.List;
import com.hbm.items.ModItems;
import com.hbm.main.MainRegistry;
import api.hbm.item.IDesignatorItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.Vec3;
import net.minecraft.world.World;
public class ItemDesingatorManual extends Item {
public class ItemDesingatorManual extends Item implements IDesignatorItem {
@Override
public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) {
if(world.isRemote)
player.openGui(MainRegistry.instance, ModItems.guiID_item_designator, world, 0, 0, 0);
return stack;
}
@Override
public void onCreated(ItemStack p_77622_1_, World p_77622_2_, EntityPlayer p_77622_3_) {
p_77622_1_.stackTagCompound = new NBTTagCompound();
p_77622_1_.stackTagCompound.setInteger("xCoord", 0);
p_77622_1_.stackTagCompound.setInteger("zCoord", 0);
}
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool)
{
if(stack.stackTagCompound != null)
{
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) {
if(stack.stackTagCompound != null) {
list.add("Target Coordinates:");
list.add("X: " + String.valueOf(stack.stackTagCompound.getInteger("xCoord")));
list.add("Z: " + String.valueOf(stack.stackTagCompound.getInteger("zCoord")));
list.add("X: " + stack.stackTagCompound.getInteger("xCoord"));
list.add("Z: " + stack.stackTagCompound.getInteger("zCoord"));
} else {
list.add("Please select a target.");
}
}
@Override
public boolean isReady(World world, ItemStack stack, int x, int y, int z) {
return stack.hasTagCompound();
}
@Override
public Vec3 getCoords(World world, ItemStack stack, int x, int y, int z) {
return Vec3.createVectorHelper(stack.stackTagCompound.getInteger("xCoord"), 0, stack.stackTagCompound.getInteger("zCoord"));
}
}

View File

@ -5,62 +5,63 @@ import java.util.List;
import com.hbm.blocks.bomb.LaunchPad;
import com.hbm.lib.Library;
import api.hbm.item.IDesignatorItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.Vec3;
import net.minecraft.world.World;
public class ItemDesingatorRange extends Item {
public class ItemDesingatorRange extends Item implements IDesignatorItem {
@Override
public void onCreated(ItemStack p_77622_1_, World p_77622_2_, EntityPlayer p_77622_3_) {
p_77622_1_.stackTagCompound = new NBTTagCompound();
p_77622_1_.stackTagCompound.setInteger("xCoord", 0);
p_77622_1_.stackTagCompound.setInteger("zCoord", 0);
}
@Override
public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool)
{
if(itemstack.stackTagCompound != null)
{
public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) {
if(itemstack.stackTagCompound != null) {
list.add("Target Coordinates:");
list.add("X: " + String.valueOf(itemstack.stackTagCompound.getInteger("xCoord")));
list.add("Z: " + String.valueOf(itemstack.stackTagCompound.getInteger("zCoord")));
list.add("X: " + itemstack.stackTagCompound.getInteger("xCoord"));
list.add("Z: " + itemstack.stackTagCompound.getInteger("zCoord"));
} else {
list.add("Please select a target.");
}
}
@Override
public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player)
{
public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) {
MovingObjectPosition pos = Library.rayTrace(player, 300, 1);
int x = pos.blockX;
int y = pos.blockY;
int z = pos.blockZ;
if(!(world.getBlock(x, y, z) instanceof LaunchPad))
{
if(!(world.getBlock(x, y, z) instanceof LaunchPad)) {
if(stack.stackTagCompound == null)
stack.stackTagCompound = new NBTTagCompound();
stack.stackTagCompound.setInteger("xCoord", x);
stack.stackTagCompound.setInteger("zCoord", z);
if(world.isRemote)
{
player.addChatMessage(new ChatComponentText("Position set to X:" + x + ", Z:" + z));
if(world.isRemote) {
player.addChatMessage(new ChatComponentText("Position set to X:" + x + ", Z:" + z));
}
world.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F);
return stack;
world.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F);
return stack;
}
return stack;
}
return stack;
}
@Override
public boolean isReady(World world, ItemStack stack, int x, int y, int z) {
return stack.hasTagCompound();
}
@Override
public Vec3 getCoords(World world, ItemStack stack, int x, int y, int z) {
return Vec3.createVectorHelper(stack.stackTagCompound.getInteger("xCoord"), 0, stack.stackTagCompound.getInteger("zCoord"));
}
}

View File

@ -2,6 +2,7 @@ package com.hbm.items.weapon;
import com.hbm.handler.GunConfiguration;
import api.hbm.item.IDesignatorItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
@ -9,9 +10,10 @@ import net.minecraft.server.MinecraftServer;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.ChatStyle;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.Vec3;
import net.minecraft.world.World;
public class ItemGunDart extends ItemGunBase {
public class ItemGunDart extends ItemGunBase implements IDesignatorItem {
public ItemGunDart(GunConfiguration config) {
super(config);
@ -57,4 +59,16 @@ public class ItemGunDart extends ItemGunBase {
}
}
}
@Override
public boolean isReady(World world, ItemStack stack, int x, int y, int z) {
EntityPlayer target = readPlayer(stack);
return target != null && target.dimension == world.provider.dimensionId;
}
@Override
public Vec3 getCoords(World world, ItemStack stack, int x, int y, int z) {
EntityPlayer target = readPlayer(stack);
return Vec3.createVectorHelper(target.posX, target.posY, target.posZ);
}
}

View File

@ -908,7 +908,7 @@ public class Library {
{
if(consume.getMaxFluidFill(type) - consume.getFluidFill(type) >= part)
{
that.setFluidFill(that.getFluidFill(type)-part, type);
that.setFluidFill(that.getFluidFill(type) - part, type);
consume.setFluidFill(consume.getFluidFill(type) + part, type);
} else {
that.setFluidFill(that.getFluidFill(type) - (consume.getMaxFluidFill(type) - consume.getFluidFill(type)), type);

View File

@ -19,10 +19,10 @@ public class RenderSILEX extends TileEntitySpecialRenderer {
GL11.glEnable(GL11.GL_CULL_FACE);
switch(tileEntity.getBlockMetadata() - BlockDummyable.offset) {
case 4: GL11.glRotatef(90, 0F, 1F, 0F); break;
case 3: GL11.glRotatef(180, 0F, 1F, 0F); break;
case 5: GL11.glRotatef(270, 0F, 1F, 0F); break;
case 2: GL11.glRotatef(0, 0F, 1F, 0F); break;
case 4: GL11.glRotatef(180, 0F, 1F, 0F); break;
case 3: GL11.glRotatef(270, 0F, 1F, 0F); break;
case 5: GL11.glRotatef(0, 0F, 1F, 0F); break;
case 2: GL11.glRotatef(90, 0F, 1F, 0F); break;
}
GL11.glShadeModel(GL11.GL_SMOOTH);

View File

@ -22,6 +22,7 @@ import com.hbm.packet.AuxGaugePacket;
import com.hbm.packet.PacketDispatcher;
import com.hbm.packet.TEMissileMultipartPacket;
import api.hbm.item.IDesignatorItem;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@ -319,9 +320,8 @@ public class TileEntityCompactLauncher extends TileEntity implements ISidedInven
public boolean hasDesignator() {
if(slots[1] != null) {
return (slots[1].getItem() == ModItems.designator || slots[1].getItem() == ModItems.designator_range || slots[1].getItem() == ModItems.designator_manual) && slots[1].hasTagCompound();
if(slots[1] != null && slots[1].getItem() instanceof IDesignatorItem && ((IDesignatorItem)slots[1].getItem()).isReady(worldObj, slots[1], xCoord, yCoord, zCoord)) {
return true;
}
return false;

View File

@ -22,6 +22,7 @@ import com.hbm.packet.AuxGaugePacket;
import com.hbm.packet.PacketDispatcher;
import com.hbm.packet.TEMissileMultipartPacket;
import api.hbm.item.IDesignatorItem;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@ -300,9 +301,8 @@ public class TileEntityLaunchTable extends TileEntity implements ISidedInventory
public boolean hasDesignator() {
if(slots[1] != null) {
return (slots[1].getItem() == ModItems.designator || slots[1].getItem() == ModItems.designator_range || slots[1].getItem() == ModItems.designator_manual) && slots[1].hasTagCompound();
if(slots[1] != null && slots[1].getItem() instanceof IDesignatorItem && ((IDesignatorItem)slots[1].getItem()).isReady(worldObj, slots[1], xCoord, yCoord, zCoord)) {
return true;
}
return false;

View File

@ -216,6 +216,20 @@ public class TileEntitySILEX extends TileEntityMachineBase implements IFluidAcce
}
}
}
@Override
public int[] getAccessibleSlotsFromSide(int p_94128_1_) {
return new int[] { 0 };
}
@Override
public boolean isItemValidForSlot(int i, ItemStack itemStack) {
if(i == 0)
return SILEXRecipes.getOutput(itemStack) != null;
return false;
}
@Override
public void readFromNBT(NBTTagCompound nbt) {

View File

@ -16,6 +16,7 @@ import com.hbm.main.MainRegistry;
import com.hbm.sound.AudioWrapper;
import com.hbm.tileentity.TileEntityMachineBase;
import api.hbm.item.IDesignatorItem;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.inventory.ISidedInventory;
@ -268,10 +269,13 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS
//2: designator present
public int designator() {
if(mode == 0)
if(mode == 0) {
return 0;
if(slots[1] != null && (slots[1].getItem() == ModItems.designator || slots[1].getItem() == ModItems.designator_range || slots[1].getItem() == ModItems.designator_manual) && slots[1].hasTagCompound())
}
if(slots[1] != null && slots[1].getItem() instanceof IDesignatorItem && ((IDesignatorItem)slots[1].getItem()).isReady(worldObj, slots[1], xCoord, yCoord, zCoord)) {
return 2;
}
return 1;
}

View File

@ -404,6 +404,7 @@ hbmfluid.nitan=NITAN© 100 Oktan Supertreibstoff
hbmfluid.none=Nichts
hbmfluid.oil=Rohöl
hbmfluid.oxygen=Flüssiger Sauerstoff
hbmfluid.pain=Pandemonium(III)tantalit-Lösung
hbmfluid.petroil=Gemisch
hbmfluid.petroleum=Petroleumgas
hbmfluid.plasma_bf=Balefire-Plasma
@ -1179,6 +1180,7 @@ item.gas_mask_m65.name=M65-Z Gasmaske
item.gas_mask_mono.name=Kohlenstoffmonoxidmaske
item.gas_petroleum.name=Petroleumgastank
item.geiger_counter.name=Mobiler Geigerzähler
item.gem_tantalium.name=Tantal-Polykristall
item.generator_front.name=Generatorfront
item.generator_steel.name=Generator
item.glitch.name=Glitch
@ -1920,6 +1922,8 @@ item.powder_coal.name=Kohlestaub
item.powder_coal_tiny.name=Kleiner Haufen Kohlestaub
item.powder_cobalt.name=Kobaltstaub
item.powder_cobalt_tiny.name=Kleiner Haufen Cobaltstaub
item.powder_coltan.name=Gereinigtes Tantalit
item.powder_coltan_ore.name=Gebrochenes Coltan
item.powder_combine_steel.name=CMB-Stahlstaub
item.powder_copper.name=Kupferstaub
item.powder_cs137.name=Caesium-137-Staub

View File

@ -472,6 +472,7 @@ hbmfluid.nitan=NITAN© 100 Octane Super Fuel
hbmfluid.none=None
hbmfluid.oil=Crude Oil
hbmfluid.oxygen=Liquid Oxygen
hbmfluid.pain=Pandemonium(III)tantalite Solution
hbmfluid.petroil=Petroil
hbmfluid.petroleum=Petroleum Gas
hbmfluid.plasma_bf=Balefire Plasma
@ -1247,6 +1248,7 @@ item.gas_mask_m65.name=M65-Z Gas Mask
item.gas_mask_mono.name=Carbon Monoxide Mask
item.gas_petroleum.name=Petroleum Gas Tank
item.geiger_counter.name=Handheld Geiger Counter
item.gem_tantalium.name=Tantalium Polycrystal
item.generator_front.name=Generator Front
item.generator_steel.name=Generator Body
item.glitch.name=Glitch
@ -1988,6 +1990,8 @@ item.powder_coal.name=Coal Powder
item.powder_coal_tiny.name=Tiny Pile of Coal Powder
item.powder_cobalt.name=Cobalt Powder
item.powder_cobalt_tiny.name=Tiny Pile of Cobalt Powder
item.powder_coltan.name=Purified Tantalite
item.powder_coltan_ore.name=Crushed Coltan
item.powder_combine_steel.name=CMB Steel Powder
item.powder_copper.name=Copper Powder
item.powder_cs137.name=Caesium-137 Powder

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 319 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 472 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 410 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 350 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 338 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 354 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 309 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 396 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 914 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 230 B