added soyuz capsule, soyuz cargo functionality and new .357 textures
BIN
assets/hbm/textures/gui/gui_soyuz_capsule.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 232 B After Width: | Height: | Size: 221 B |
|
Before Width: | Height: | Size: 247 B After Width: | Height: | Size: 378 B |
|
Before Width: | Height: | Size: 189 B After Width: | Height: | Size: 326 B |
|
Before Width: | Height: | Size: 236 B After Width: | Height: | Size: 316 B |
|
Before Width: | Height: | Size: 246 B After Width: | Height: | Size: 364 B |
|
Before Width: | Height: | Size: 269 B After Width: | Height: | Size: 278 B |
|
Before Width: | Height: | Size: 244 B After Width: | Height: | Size: 314 B |
|
Before Width: | Height: | Size: 239 B After Width: | Height: | Size: 349 B |
@ -282,6 +282,9 @@ public class ModBlocks {
|
||||
|
||||
public static Block sat_dock;
|
||||
public static final int guiID_dock = 80;
|
||||
|
||||
public static Block soyuz_capsule;
|
||||
public static final int guiID_capsule = 93;
|
||||
|
||||
public static Block crate_iron;
|
||||
public static final int guiID_crate_iron = 46;
|
||||
@ -1159,6 +1162,7 @@ public class ModBlocks {
|
||||
sat_resonator = new DecoBlock(Material.iron).setBlockName("sat_resonator").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":sat_resonator");
|
||||
|
||||
sat_dock = new MachineSatDock(Material.iron).setBlockName("sat_dock").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":sat_dock");
|
||||
soyuz_capsule = new SoyuzCapsule(Material.iron).setBlockName("soyuz_capsule").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":soyuz_capsule");
|
||||
|
||||
turret_light = new TurretLight(Material.iron).setBlockName("turret_light").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":turret_light");
|
||||
turret_heavy = new TurretHeavy(Material.iron).setBlockName("turret_heavy").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":turret_heavy");
|
||||
@ -1800,6 +1804,7 @@ public class ModBlocks {
|
||||
GameRegistry.registerBlock(launch_table, launch_table.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(soyuz_launcher, soyuz_launcher.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(sat_dock, sat_dock.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(soyuz_capsule, soyuz_capsule.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_radar, machine_radar.getUnlocalizedName());
|
||||
|
||||
//Guide
|
||||
|
||||
@ -123,11 +123,11 @@ public class GeigerCounter extends BlockContainer {
|
||||
{
|
||||
world.playSoundAtEntity(player, "hbm:item.techBoop", 1.0F, 1.0F);
|
||||
|
||||
int eRad = (int)player.getEntityData().getFloat("hfr_radiation");
|
||||
double eRad = ((int)(player.getEntityData().getFloat("hfr_radiation") * 10)) / 10D;
|
||||
|
||||
RadiationSavedData data = RadiationSavedData.getData(player.worldObj);
|
||||
Chunk chunk = world.getChunkFromBlockCoords((int)player.posX, (int)player.posZ);
|
||||
int rads = (int)Math.ceil(data.getRadNumFromCoord(chunk.xPosition, chunk.zPosition));
|
||||
double rads = ((int)(data.getRadNumFromCoord(chunk.xPosition, chunk.zPosition) * 10)) / 10D;
|
||||
|
||||
player.addChatMessage(new ChatComponentText("Current chunk radiation: " + rads + " RAD/s"));
|
||||
player.addChatMessage(new ChatComponentText("Player contamination: " + eRad + " RAD"));
|
||||
|
||||
108
com/hbm/blocks/machine/SoyuzCapsule.java
Normal file
@ -0,0 +1,108 @@
|
||||
package com.hbm.blocks.machine;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.machine.TileEntitySoyuzCapsule;
|
||||
|
||||
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockContainer;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.inventory.IInventory;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class SoyuzCapsule extends BlockContainer {
|
||||
|
||||
public SoyuzCapsule(Material p_i45386_1_) {
|
||||
super(p_i45386_1_);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) {
|
||||
return new TileEntitySoyuzCapsule();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRenderType(){
|
||||
return -1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean renderAsNormalBlock() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@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)
|
||||
{
|
||||
return true;
|
||||
} else if(!player.isSneaking())
|
||||
{
|
||||
|
||||
FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_capsule, world, x, y, z);
|
||||
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void breakBlock(World world, int x, int y, int z, Block block, int meta)
|
||||
{
|
||||
IInventory tileentityfurnace = (IInventory) world.getTileEntity(x, y, z);
|
||||
Random rand = world.rand;
|
||||
|
||||
if (tileentityfurnace != null) {
|
||||
for (int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) {
|
||||
ItemStack itemstack = tileentityfurnace.getStackInSlot(i1);
|
||||
|
||||
if (itemstack != null) {
|
||||
float f = rand.nextFloat() * 0.8F + 0.1F;
|
||||
float f1 = rand.nextFloat() * 0.8F + 0.1F;
|
||||
float f2 = rand.nextFloat() * 0.8F + 0.1F;
|
||||
|
||||
while (itemstack.stackSize > 0) {
|
||||
int j1 = rand.nextInt(21) + 10;
|
||||
|
||||
if (j1 > itemstack.stackSize) {
|
||||
j1 = itemstack.stackSize;
|
||||
}
|
||||
|
||||
itemstack.stackSize -= j1;
|
||||
EntityItem entityitem = new EntityItem(world, x + f, y + f1, z + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage()));
|
||||
|
||||
if (itemstack.hasTagCompound()) {
|
||||
entityitem.getEntityItem()
|
||||
.setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy());
|
||||
}
|
||||
|
||||
float f3 = 0.05F;
|
||||
entityitem.motionX = (float) rand.nextGaussian() * f3;
|
||||
entityitem.motionY = (float) rand.nextGaussian() * f3 + 0.2F;
|
||||
entityitem.motionZ = (float) rand.nextGaussian() * f3;
|
||||
world.spawnEntityInWorld(entityitem);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
world.func_147453_f(x, y, z, block);
|
||||
}
|
||||
|
||||
super.breakBlock(world, x, y, z, block, meta);
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,10 +1,10 @@
|
||||
package com.hbm.entity.missile;
|
||||
|
||||
import com.hbm.explosion.ExplosionLarge;
|
||||
import com.hbm.packet.AuxParticlePacket;
|
||||
import com.hbm.packet.PacketDispatcher;
|
||||
import com.hbm.main.MainRegistry;
|
||||
|
||||
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
@ -40,17 +40,22 @@ public class EntityBobmazon extends Entity {
|
||||
|
||||
for(int i = 0; i < 4; i++) {
|
||||
|
||||
if(!this.worldObj.isRemote && i % 2 == 0)
|
||||
PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacket(posX, posY + 1, posZ, 2), new TargetPoint(worldObj.provider.dimensionId, posX, posY + 1, posZ, 300));
|
||||
|
||||
if(worldObj.getBlock((int)(posX - 0.5), (int)(posY + 1), (int)(posZ - 0.5)).getMaterial() != Material.air && !worldObj.isRemote && dataWatcher.getWatchableObjectInt(16) != 1) {
|
||||
this.setDead();
|
||||
ExplosionLarge.spawnParticles(worldObj, posX, posY, posZ, 50);
|
||||
ExplosionLarge.spawnParticles(worldObj, posX, posY + 1, posZ, 50);
|
||||
|
||||
this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "hbm:entity.oldExplosion", 10.0F, 0.5F + this.rand.nextFloat() * 0.1F);
|
||||
|
||||
if(payload != null)
|
||||
worldObj.spawnEntityInWorld(new EntityItem(worldObj, posX, posY + 2, posZ, payload));
|
||||
if(payload != null) {
|
||||
EntityItem pack = new EntityItem(worldObj, posX, posY + 2, posZ, payload);
|
||||
pack.motionX = 0;
|
||||
pack.motionZ = 0;
|
||||
if(!worldObj.spawnEntityInWorld(pack))
|
||||
System.out.println("BBBBBBBBBBB");
|
||||
} else {
|
||||
System.out.println("AAAAAAAAAAAA");
|
||||
}
|
||||
|
||||
this.setDead();
|
||||
|
||||
break;
|
||||
}
|
||||
@ -59,12 +64,43 @@ public class EntityBobmazon extends Entity {
|
||||
this.posY += this.motionY;
|
||||
this.posZ += this.motionZ;
|
||||
}
|
||||
|
||||
if(worldObj.isRemote) {
|
||||
|
||||
|
||||
NBTTagCompound data = new NBTTagCompound();
|
||||
data.setString("type", "exhaust");
|
||||
data.setString("mode", "meteor");
|
||||
data.setInteger("count", 1);
|
||||
data.setDouble("width", 0);
|
||||
data.setDouble("posX", posX);
|
||||
data.setDouble("posY", posY + 1);
|
||||
data.setDouble("posZ", posZ);
|
||||
|
||||
MainRegistry.proxy.effectNT(data);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void readEntityFromNBT(NBTTagCompound nbt) { }
|
||||
protected void readEntityFromNBT(NBTTagCompound nbt) {
|
||||
|
||||
NBTTagCompound nbt1 = (NBTTagCompound)nbt.getTag("payload");
|
||||
this.payload = ItemStack.loadItemStackFromNBT(nbt1);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void writeEntityToNBT(NBTTagCompound nbt) { }
|
||||
protected void writeEntityToNBT(NBTTagCompound nbt) {
|
||||
|
||||
NBTTagCompound nbt1 = new NBTTagCompound();
|
||||
payload.writeToNBT(nbt1);
|
||||
nbt.setTag("payload", nbt1);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public boolean isInRangeToRenderDist(double distance)
|
||||
{
|
||||
return distance < 500000;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -11,11 +11,14 @@ import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.nbt.NBTTagList;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.chunk.IChunkProvider;
|
||||
|
||||
public class EntitySoyuz extends Entity {
|
||||
|
||||
double acceleration = 0.00D;
|
||||
public int mode;
|
||||
public int targetX;
|
||||
public int targetZ;
|
||||
|
||||
private ItemStack[] payload;
|
||||
|
||||
@ -76,6 +79,23 @@ public class EntitySoyuz extends Entity {
|
||||
|
||||
}
|
||||
|
||||
if(mode == 1) {
|
||||
|
||||
EntitySoyuzCapsule capsule = new EntitySoyuzCapsule(worldObj);
|
||||
capsule.payload = this.payload;
|
||||
capsule.soyuz = this.getSkin();
|
||||
capsule.setPosition(targetX + 0.5, 600, targetZ + 0.5);
|
||||
System.out.println(capsule.posX + " " + capsule.posZ);
|
||||
|
||||
IChunkProvider provider = worldObj.getChunkProvider();
|
||||
provider.loadChunk(targetX >> 4, targetZ >> 4);
|
||||
|
||||
if(worldObj.spawnEntityInWorld(capsule))
|
||||
System.out.println("Success!");
|
||||
else
|
||||
System.out.println("Crap.");
|
||||
}
|
||||
|
||||
this.setDead();
|
||||
}
|
||||
|
||||
@ -114,6 +134,11 @@ public class EntitySoyuz extends Entity {
|
||||
public void readEntityFromNBT(NBTTagCompound nbt) {
|
||||
|
||||
NBTTagList list = nbt.getTagList("items", 10);
|
||||
|
||||
this.setSkin(nbt.getInteger("skin"));
|
||||
targetX = nbt.getInteger("targetX");
|
||||
targetZ = nbt.getInteger("targetZ");
|
||||
mode = nbt.getInteger("mode");
|
||||
|
||||
for (int i = 0; i < list.tagCount(); i++) {
|
||||
NBTTagCompound nbt1 = list.getCompoundTagAt(i);
|
||||
@ -129,6 +154,11 @@ public class EntitySoyuz extends Entity {
|
||||
|
||||
NBTTagList list = new NBTTagList();
|
||||
|
||||
nbt.setInteger("skin", this.getSkin());
|
||||
nbt.setInteger("targetX", targetX);
|
||||
nbt.setInteger("targetZ", targetZ);
|
||||
nbt.setInteger("mode", mode);
|
||||
|
||||
for (int i = 0; i < payload.length; i++) {
|
||||
if (payload[i] != null) {
|
||||
NBTTagCompound nbt1 = new NBTTagCompound();
|
||||
|
||||
107
com/hbm/entity/missile/EntitySoyuzCapsule.java
Normal file
@ -0,0 +1,107 @@
|
||||
package com.hbm.entity.missile;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.tileentity.machine.TileEntitySoyuzCapsule;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.entity.projectile.EntityThrowable;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.nbt.NBTTagList;
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class EntitySoyuzCapsule extends EntityThrowable {
|
||||
|
||||
public int soyuz;
|
||||
public ItemStack[] payload = new ItemStack[18];
|
||||
|
||||
public EntitySoyuzCapsule(World p_i1582_1_) {
|
||||
super(p_i1582_1_);
|
||||
this.ignoreFrustumCheck = true;
|
||||
this.isImmuneToFire = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUpdate() {
|
||||
|
||||
this.lastTickPosX = this.prevPosX = posX;
|
||||
this.lastTickPosY = this.prevPosY = posY;
|
||||
this.lastTickPosZ = this.prevPosZ = posZ;
|
||||
this.setPosition(posX + this.motionX, posY + this.motionY, posZ + this.motionZ);
|
||||
|
||||
if(this.motionY > -0.2)
|
||||
this.motionY -= 0.02;
|
||||
|
||||
if(posY > 600)
|
||||
posY = 600;
|
||||
|
||||
if(this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.air) {
|
||||
|
||||
this.setDead();
|
||||
|
||||
if(!worldObj.isRemote) {
|
||||
worldObj.setBlock((int)(this.posX), (int)(this.posY + 1), (int)(this.posZ), ModBlocks.soyuz_capsule);
|
||||
|
||||
TileEntitySoyuzCapsule capsule = (TileEntitySoyuzCapsule)worldObj.getTileEntity((int)(this.posX), (int)(this.posY + 1), (int)(this.posZ));
|
||||
if(capsule != null) {
|
||||
|
||||
for(int i = 0; i < payload.length; i++) {
|
||||
capsule.setInventorySlotContents(i, payload[i]);
|
||||
}
|
||||
}
|
||||
|
||||
capsule.setInventorySlotContents(18, new ItemStack(ModItems.missile_soyuz, 1, soyuz));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onImpact(MovingObjectPosition p_70184_1_) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public boolean isInRangeToRenderDist(double distance)
|
||||
{
|
||||
return distance < 500000;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readEntityFromNBT(NBTTagCompound nbt) {
|
||||
|
||||
NBTTagList list = nbt.getTagList("items", 10);
|
||||
|
||||
soyuz = nbt.getInteger("soyuz");
|
||||
|
||||
for (int i = 0; i < list.tagCount(); i++) {
|
||||
NBTTagCompound nbt1 = list.getCompoundTagAt(i);
|
||||
byte b0 = nbt1.getByte("slot");
|
||||
if (b0 >= 0 && b0 < payload.length) {
|
||||
payload[b0] = ItemStack.loadItemStackFromNBT(nbt1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeEntityToNBT(NBTTagCompound nbt) {
|
||||
|
||||
NBTTagList list = new NBTTagList();
|
||||
|
||||
nbt.setInteger("soyuz", soyuz);
|
||||
|
||||
for (int i = 0; i < payload.length; i++) {
|
||||
if (payload[i] != null) {
|
||||
NBTTagCompound nbt1 = new NBTTagCompound();
|
||||
nbt1.setByte("slot", (byte) i);
|
||||
payload[i].writeToNBT(nbt1);
|
||||
list.appendTag(nbt1);
|
||||
}
|
||||
}
|
||||
nbt.setTag("items", list);
|
||||
}
|
||||
}
|
||||
@ -831,6 +831,15 @@ public class GUIHandler implements IGuiHandler {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
case ModBlocks.guiID_capsule:
|
||||
{
|
||||
if(entity instanceof TileEntitySoyuzCapsule)
|
||||
{
|
||||
return new ContainerSoyuzCapsule(player.inventory, (TileEntitySoyuzCapsule) entity);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
//NON-TE CONTAINERS
|
||||
@ -1661,6 +1670,15 @@ public class GUIHandler implements IGuiHandler {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
case ModBlocks.guiID_capsule:
|
||||
{
|
||||
if(entity instanceof TileEntitySoyuzCapsule)
|
||||
{
|
||||
return new GUISoyuzCapsule(player.inventory, (TileEntitySoyuzCapsule) entity);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
//CLIENTONLY GUIS
|
||||
|
||||
@ -48,4 +48,4 @@ public class ContainerCoreEmitter extends Container {
|
||||
|
||||
return var3;
|
||||
}
|
||||
}
|
||||
}
|
||||
81
com/hbm/inventory/container/ContainerSoyuzCapsule.java
Normal file
@ -0,0 +1,81 @@
|
||||
package com.hbm.inventory.container;
|
||||
|
||||
import com.hbm.tileentity.machine.TileEntitySoyuzCapsule;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraft.inventory.Slot;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public class ContainerSoyuzCapsule extends Container {
|
||||
|
||||
private TileEntitySoyuzCapsule diFurnace;
|
||||
|
||||
public ContainerSoyuzCapsule(InventoryPlayer invPlayer, TileEntitySoyuzCapsule tedf) {
|
||||
diFurnace = tedf;
|
||||
|
||||
for(int i = 0; i < 3; i++)
|
||||
{
|
||||
for(int j = 0; j < 6; j++)
|
||||
{
|
||||
this.addSlotToContainer(new Slot(tedf, j + i * 6, 8 + j * 18 + 18 * 2, 17 + i * 18));
|
||||
}
|
||||
}
|
||||
|
||||
this.addSlotToContainer(new Slot(tedf, 18, 8, 35));
|
||||
|
||||
for(int i = 0; i < 3; i++)
|
||||
{
|
||||
for(int j = 0; j < 9; j++)
|
||||
{
|
||||
this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18));
|
||||
}
|
||||
}
|
||||
|
||||
for(int i = 0; i < 9; i++)
|
||||
{
|
||||
this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2)
|
||||
{
|
||||
ItemStack var3 = null;
|
||||
Slot var4 = (Slot) this.inventorySlots.get(par2);
|
||||
|
||||
if (var4 != null && var4.getHasStack())
|
||||
{
|
||||
ItemStack var5 = var4.getStack();
|
||||
var3 = var5.copy();
|
||||
|
||||
if (par2 <= diFurnace.getSizeInventory() - 1) {
|
||||
if (!this.mergeItemStack(var5, diFurnace.getSizeInventory(), this.inventorySlots.size(), true))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
else if (!this.mergeItemStack(var5, 0, diFurnace.getSizeInventory(), false))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
if (var5.stackSize == 0)
|
||||
{
|
||||
var4.putStack((ItemStack) null);
|
||||
}
|
||||
else
|
||||
{
|
||||
var4.onSlotChanged();
|
||||
}
|
||||
}
|
||||
|
||||
return var3;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canInteractWith(EntityPlayer player) {
|
||||
return diFurnace.isUseableByPlayer(player);
|
||||
}
|
||||
}
|
||||
@ -77,7 +77,7 @@ public class GUICoreEmitter extends GuiInfoContainer {
|
||||
|
||||
@Override
|
||||
protected void drawGuiContainerForegroundLayer( int i, int j) {
|
||||
String name = this.emitter.hasCustomInventoryName() ? this.emitter.getInventoryName() : I18n.format(this.emitter.getInventoryName());
|
||||
String name = I18n.format(this.emitter.getInventoryName());
|
||||
this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752);
|
||||
|
||||
this.fontRendererObj.drawString("Output: " + Library.getShortNumber(emitter.prev) + "Spk", 50, 30, 0xFF7F7F);
|
||||
|
||||
42
com/hbm/inventory/gui/GUISoyuzCapsule.java
Normal file
@ -0,0 +1,42 @@
|
||||
package com.hbm.inventory.gui;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.inventory.container.ContainerSoyuzCapsule;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.tileentity.machine.TileEntitySoyuzCapsule;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.inventory.GuiContainer;
|
||||
import net.minecraft.client.resources.I18n;
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
|
||||
public class GUISoyuzCapsule extends GuiContainer {
|
||||
|
||||
private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_soyuz_capsule.png");
|
||||
private TileEntitySoyuzCapsule diFurnace;
|
||||
|
||||
public GUISoyuzCapsule(InventoryPlayer invPlayer, TileEntitySoyuzCapsule tedf) {
|
||||
super(new ContainerSoyuzCapsule(invPlayer, tedf));
|
||||
diFurnace = tedf;
|
||||
|
||||
this.xSize = 176;
|
||||
this.ySize = 168;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void drawGuiContainerForegroundLayer(int i, int j) {
|
||||
String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName());
|
||||
|
||||
this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752);
|
||||
this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) {
|
||||
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
||||
Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
|
||||
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);
|
||||
}
|
||||
}
|
||||
@ -91,6 +91,7 @@ public class ItemGeigerCounter extends Item {
|
||||
public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int i, float f0, float f1, float f2)
|
||||
{
|
||||
if(world.getBlock(x, y, z) == ModBlocks.block_red_copper) {
|
||||
world.func_147480_a(x, y, z, false);
|
||||
player.inventory.consumeInventoryItem(ModItems.geiger_counter);
|
||||
player.inventory.addItemStackToInventory(new ItemStack(ModItems.survey_scanner));
|
||||
return true;
|
||||
@ -105,11 +106,11 @@ public class ItemGeigerCounter extends Item {
|
||||
if(!world.isRemote) {
|
||||
world.playSoundAtEntity(player, "hbm:item.techBoop", 1.0F, 1.0F);
|
||||
|
||||
int eRad = (int)player.getEntityData().getFloat("hfr_radiation");
|
||||
double eRad = ((int)(player.getEntityData().getFloat("hfr_radiation") * 10)) / 10D;
|
||||
|
||||
RadiationSavedData data = RadiationSavedData.getData(player.worldObj);
|
||||
Chunk chunk = world.getChunkFromBlockCoords((int)player.posX, (int)player.posZ);
|
||||
int rads = (int)Math.ceil(data.getRadNumFromCoord(chunk.xPosition, chunk.zPosition));
|
||||
double rads = ((int)(data.getRadNumFromCoord(chunk.xPosition, chunk.zPosition) * 10)) / 10D;
|
||||
|
||||
player.addChatMessage(new ChatComponentText("Current chunk radiation: " + rads + " RAD/s"));
|
||||
player.addChatMessage(new ChatComponentText("Player contamination: " + eRad + " RAD"));
|
||||
|
||||
@ -102,6 +102,7 @@ import com.hbm.render.entity.rocket.RenderMissileStrong;
|
||||
import com.hbm.render.entity.rocket.RenderMissileTaint;
|
||||
import com.hbm.render.entity.rocket.RenderMissileThermo;
|
||||
import com.hbm.render.entity.rocket.RenderSoyuz;
|
||||
import com.hbm.render.entity.rocket.RenderSoyuzCapsule;
|
||||
import com.hbm.render.item.*;
|
||||
import com.hbm.render.loader.HmfModelLoader;
|
||||
import com.hbm.render.tileentity.*;
|
||||
@ -405,6 +406,7 @@ public class ClientProxy extends ServerProxy
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCompactLauncher.class, new RenderCompactLauncher());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLaunchTable.class, new RenderLaunchTable());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySoyuzLauncher.class, new RenderSoyuzLauncher());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySoyuzCapsule.class, new RenderCapsule());
|
||||
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCable.class, new RenderCable());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityOilDuct.class, new RenderOilDuct());
|
||||
@ -459,6 +461,7 @@ public class ClientProxy extends ServerProxy
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityCarrier.class, new RenderCarrierMissile());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityBooster.class, new RenderBoosterMissile());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntitySoyuz.class, new RenderSoyuz());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntitySoyuzCapsule.class, new RenderSoyuzCapsule());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityBomber.class, new RenderBomber());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityBurningFOEQ.class, new RenderFOEQ());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityFallingNuke.class, new RenderFallingNuke());
|
||||
|
||||
@ -542,6 +542,7 @@ public class MainRegistry
|
||||
GameRegistry.registerTileEntity(TileEntityTesla.class, "tileentity_tesla_coil");
|
||||
GameRegistry.registerTileEntity(TileEntityBarrel.class, "tileentity_fluid_barrel");
|
||||
GameRegistry.registerTileEntity(TileEntityCyberCrab.class, "tileentity_crabs");
|
||||
GameRegistry.registerTileEntity(TileEntitySoyuzCapsule.class, "tileentity_soyuz_capsule");
|
||||
|
||||
EntityRegistry.registerModEntity(EntityRocket.class, "entity_rocket", 0, this, 250, 1, true);
|
||||
EntityRegistry.registerModEntity(EntityNukeExplosion.class, "entity_nuke_explosion", 1, this, 250, 1, true);
|
||||
@ -688,6 +689,7 @@ public class MainRegistry
|
||||
EntityRegistry.registerModEntity(EntityTomBlast.class, "entity_tom_bust", 142, this, 1000, 1, true);
|
||||
EntityRegistry.registerModEntity(EntityBuilding.class, "entity_falling_building", 143, this, 1000, 1, true);
|
||||
EntityRegistry.registerModEntity(EntitySoyuz.class, "entity_soyuz", 144, this, 1000, 1, true);
|
||||
EntityRegistry.registerModEntity(EntitySoyuzCapsule.class, "entity_soyuz_capsule", 145, this, 1000, 1, true);
|
||||
|
||||
EntityRegistry.registerGlobalEntityID(EntityNuclearCreeper.class, "entity_mob_nuclear_creeper", EntityRegistry.findGlobalUniqueEntityId(), 0x204131, 0x75CE00);
|
||||
EntityRegistry.registerGlobalEntityID(EntityTaintedCreeper.class, "entity_mob_tainted_creeper", EntityRegistry.findGlobalUniqueEntityId(), 0x813b9b, 0xd71fdd);
|
||||
|
||||
@ -283,8 +283,11 @@ public class ModEventHandler
|
||||
if(eRad < 200 || entity instanceof EntityNuclearCreeper || entity instanceof EntityMooshroom || entity instanceof EntityZombie || entity instanceof EntitySkeleton)
|
||||
continue;
|
||||
|
||||
if(eRad > 2500)
|
||||
entity.getEntityData().setFloat("hfr_radiation", 2500);
|
||||
|
||||
if(eRad >= 1000) {
|
||||
if(entity.attackEntityFrom(ModDamageSource.radiation, 1000))
|
||||
if(entity.attackEntityFrom(ModDamageSource.radiation, entity.getMaxHealth() * 100))
|
||||
entity.getEntityData().setFloat("hfr_radiation", 0);
|
||||
} else if(eRad >= 800) {
|
||||
if(event.world.rand.nextInt(300) == 0)
|
||||
|
||||
@ -97,7 +97,7 @@ public class ItemBobmazonPacket implements IMessage {
|
||||
bob.posX = p.posX + rand.nextGaussian() * 10;
|
||||
bob.posY = 300;
|
||||
bob.posZ = p.posZ + rand.nextGaussian() * 10;
|
||||
bob.payload = stack;
|
||||
bob.payload = stack.copy();
|
||||
|
||||
world.spawnEntityInWorld(bob);
|
||||
} else {
|
||||
|
||||
@ -3,6 +3,7 @@ package com.hbm.packet;
|
||||
import java.io.IOException;
|
||||
|
||||
import com.hbm.tileentity.TileEntityMachineBase;
|
||||
import com.hbm.tileentity.TileEntityTickingBase;
|
||||
|
||||
import cpw.mods.fml.common.network.simpleimpl.IMessage;
|
||||
import cpw.mods.fml.common.network.simpleimpl.IMessageHandler;
|
||||
@ -74,17 +75,16 @@ public class NBTPacket implements IMessage {
|
||||
|
||||
TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z);
|
||||
|
||||
if(!(te instanceof TileEntityMachineBase))
|
||||
return null;
|
||||
|
||||
TileEntityMachineBase base = (TileEntityMachineBase)te;
|
||||
|
||||
try {
|
||||
|
||||
NBTTagCompound nbt = m.buffer.readNBTTagCompoundFromBuffer();
|
||||
|
||||
if(nbt != null)
|
||||
base.networkUnpack(nbt);
|
||||
if(nbt != null) {
|
||||
if(te instanceof TileEntityMachineBase)
|
||||
((TileEntityMachineBase) te).networkUnpack(nbt);
|
||||
if(te instanceof TileEntityTickingBase)
|
||||
((TileEntityTickingBase) te).networkUnpack(nbt);
|
||||
}
|
||||
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
|
||||
44
com/hbm/render/entity/rocket/RenderSoyuzCapsule.java
Normal file
@ -0,0 +1,44 @@
|
||||
package com.hbm.render.entity.rocket;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.main.ResourceManager;
|
||||
|
||||
import net.minecraft.client.renderer.entity.Render;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
|
||||
public class RenderSoyuzCapsule extends Render {
|
||||
|
||||
@Override
|
||||
public void doRender(Entity entity, double x, double y, double z, float i, float j) {
|
||||
|
||||
GL11.glPushMatrix();
|
||||
|
||||
GL11.glTranslated(x, y, z);
|
||||
|
||||
double time = (entity.worldObj.getTotalWorldTime());
|
||||
double sine = Math.sin(time * 0.05) * 5;
|
||||
double sin3 = Math.sin(time * 0.05 + Math.PI * 0.5) * 5;
|
||||
int height = 7;
|
||||
GL11.glTranslated(0.0F, height, 0.0F);
|
||||
GL11.glRotated(sine, 0, 0, 1);
|
||||
GL11.glRotated(sin3, 1, 0, 0);
|
||||
GL11.glTranslated(0.0F, -height, 0.0F);
|
||||
|
||||
GL11.glEnable(GL11.GL_CULL_FACE);
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
bindTexture(ResourceManager.soyuz_lander_tex);
|
||||
ResourceManager.soyuz_lander.renderPart("Capsule");
|
||||
bindTexture(ResourceManager.soyuz_chute_tex);
|
||||
ResourceManager.soyuz_lander.renderPart("Chute");
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ResourceLocation getEntityTexture(Entity p_110775_1_) {
|
||||
return ResourceManager.soyuz_lander_tex;
|
||||
}
|
||||
}
|
||||
32
com/hbm/render/tileentity/RenderCapsule.java
Normal file
@ -0,0 +1,32 @@
|
||||
package com.hbm.render.tileentity;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.main.ResourceManager;
|
||||
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
|
||||
public class RenderCapsule extends TileEntitySpecialRenderer {
|
||||
|
||||
@Override
|
||||
public void renderTileEntityAt(TileEntity te, double x, double y, double z, float i) {
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(x + 0.5, y, z + 0.5);
|
||||
GL11.glEnable(GL11.GL_LIGHTING);
|
||||
|
||||
GL11.glTranslatef(0.0F, -0.25F, 0.0F);
|
||||
GL11.glRotatef(-25, 0, 1, 0);
|
||||
GL11.glRotatef(15, 0, 0, 1);
|
||||
|
||||
GL11.glEnable(GL11.GL_CULL_FACE);
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
bindTexture(ResourceManager.soyuz_lander_tex);
|
||||
ResourceManager.soyuz_lander.renderPart("Capsule");
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
}
|
||||
@ -4,7 +4,6 @@ import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.main.ResourceManager;
|
||||
import com.hbm.render.util.SoyuzPronter;
|
||||
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
|
||||
167
com/hbm/tileentity/TileEntityInventoryBase.java
Normal file
@ -0,0 +1,167 @@
|
||||
package com.hbm.tileentity;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.inventory.ISidedInventory;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.nbt.NBTTagList;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
|
||||
public abstract class TileEntityInventoryBase extends TileEntity implements ISidedInventory {
|
||||
|
||||
public ItemStack slots[];
|
||||
|
||||
private String customName;
|
||||
|
||||
public TileEntityInventoryBase(int scount) {
|
||||
slots = new ItemStack[scount];
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSizeInventory() {
|
||||
return slots.length;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getStackInSlot(int i) {
|
||||
return slots[i];
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getStackInSlotOnClosing(int i) {
|
||||
if(slots[i] != null)
|
||||
{
|
||||
ItemStack itemStack = slots[i];
|
||||
slots[i] = null;
|
||||
return itemStack;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setInventorySlotContents(int i, ItemStack itemStack) {
|
||||
slots[i] = itemStack;
|
||||
if(itemStack != null && itemStack.stackSize > getInventoryStackLimit())
|
||||
{
|
||||
itemStack.stackSize = getInventoryStackLimit();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getInventoryName() {
|
||||
return this.hasCustomInventoryName() ? this.customName : getName();
|
||||
}
|
||||
|
||||
public abstract String getName();
|
||||
|
||||
@Override
|
||||
public boolean hasCustomInventoryName() {
|
||||
return this.customName != null && this.customName.length() > 0;
|
||||
}
|
||||
|
||||
public void setCustomName(String name) {
|
||||
this.customName = name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getInventoryStackLimit() {
|
||||
return 64;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isUseableByPlayer(EntityPlayer player) {
|
||||
if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this)
|
||||
{
|
||||
return false;
|
||||
}else{
|
||||
return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=128;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void openInventory() {}
|
||||
@Override
|
||||
public void closeInventory() {}
|
||||
|
||||
@Override
|
||||
public boolean isItemValidForSlot(int i, ItemStack itemStack) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack decrStackSize(int i, int j) {
|
||||
if(slots[i] != null)
|
||||
{
|
||||
if(slots[i].stackSize <= j)
|
||||
{
|
||||
ItemStack itemStack = slots[i];
|
||||
slots[i] = null;
|
||||
return itemStack;
|
||||
}
|
||||
ItemStack itemStack1 = slots[i].splitStack(j);
|
||||
if (slots[i].stackSize == 0)
|
||||
{
|
||||
slots[i] = null;
|
||||
}
|
||||
|
||||
return itemStack1;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canInsertItem(int i, ItemStack itemStack, int j) {
|
||||
return this.isItemValidForSlot(i, itemStack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canExtractItem(int i, ItemStack itemStack, int j) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int[] getAccessibleSlotsFromSide(int p_94128_1_) {
|
||||
return new int[] { 0 };
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canUpdate() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readFromNBT(NBTTagCompound nbt) {
|
||||
super.readFromNBT(nbt);
|
||||
NBTTagList list = nbt.getTagList("items", 10);
|
||||
|
||||
for(int i = 0; i < list.tagCount(); i++)
|
||||
{
|
||||
NBTTagCompound nbt1 = list.getCompoundTagAt(i);
|
||||
byte b0 = nbt1.getByte("slot");
|
||||
if(b0 >= 0 && b0 < slots.length)
|
||||
{
|
||||
slots[b0] = ItemStack.loadItemStackFromNBT(nbt1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToNBT(NBTTagCompound nbt) {
|
||||
super.writeToNBT(nbt);
|
||||
NBTTagList list = new NBTTagList();
|
||||
|
||||
for(int i = 0; i < slots.length; i++)
|
||||
{
|
||||
if(slots[i] != null)
|
||||
{
|
||||
NBTTagCompound nbt1 = new NBTTagCompound();
|
||||
nbt1.setByte("slot", (byte)i);
|
||||
slots[i].writeToNBT(nbt1);
|
||||
list.appendTag(nbt1);
|
||||
}
|
||||
}
|
||||
nbt.setTag("items", list);
|
||||
}
|
||||
}
|
||||
35
com/hbm/tileentity/TileEntityTickingBase.java
Normal file
@ -0,0 +1,35 @@
|
||||
package com.hbm.tileentity;
|
||||
|
||||
import com.hbm.packet.NBTPacket;
|
||||
import com.hbm.packet.PacketDispatcher;
|
||||
|
||||
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.fluids.FluidTank;
|
||||
|
||||
public abstract class TileEntityTickingBase extends TileEntity {
|
||||
|
||||
public TileEntityTickingBase() { }
|
||||
|
||||
public abstract String getInventoryName();
|
||||
|
||||
public int getGaugeScaled(int i, FluidTank tank) {
|
||||
return tank.getFluidAmount() * i / tank.getCapacity();
|
||||
}
|
||||
|
||||
//abstracting this method forces child classes to implement it
|
||||
//so i don't have to remember the fucking method name
|
||||
//was it update? onUpdate? updateTile? did it have any args?
|
||||
//shit i don't know man
|
||||
@Override
|
||||
public abstract void updateEntity();
|
||||
|
||||
public void networkPack(NBTTagCompound nbt, int range) {
|
||||
|
||||
if(!worldObj.isRemote)
|
||||
PacketDispatcher.wrapper.sendToAllAround(new NBTPacket(nbt, xCoord, yCoord, zCoord), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range));
|
||||
}
|
||||
|
||||
public void networkUnpack(NBTTagCompound nbt) { }
|
||||
}
|
||||
16
com/hbm/tileentity/machine/TileEntitySoyuzCapsule.java
Normal file
@ -0,0 +1,16 @@
|
||||
package com.hbm.tileentity.machine;
|
||||
|
||||
import com.hbm.tileentity.TileEntityInventoryBase;
|
||||
|
||||
public class TileEntitySoyuzCapsule extends TileEntityInventoryBase {
|
||||
|
||||
public TileEntitySoyuzCapsule() {
|
||||
super(19);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "container.soyuzCapsule";
|
||||
}
|
||||
|
||||
}
|
||||
@ -117,15 +117,6 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS
|
||||
|
||||
if(!entities.isEmpty()) {
|
||||
|
||||
//for(int i = 0; i < 35; i++) {
|
||||
|
||||
//Vec3 vec = Vec3.createVectorHelper(worldObj.rand.nextGaussian() * 0.5 + 1, 0, 0);
|
||||
//vec.rotateAroundY(worldObj.rand.nextFloat() * (float) (Math.PI * 2));
|
||||
|
||||
//MainRegistry.proxy.spawnParticle(xCoord + 0.5, yCoord + 0.25 + worldObj.rand.nextFloat() * 3, zCoord + 0.5, "launchsmoke", new float[] {(float) vec.xCoord, 0, (float) vec.zCoord});
|
||||
|
||||
//}
|
||||
|
||||
NBTTagCompound data = new NBTTagCompound();
|
||||
data.setString("type", "smoke");
|
||||
data.setString("mode", "shockRand");
|
||||
@ -170,6 +161,7 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS
|
||||
|
||||
EntitySoyuz soyuz = new EntitySoyuz(worldObj);
|
||||
soyuz.setSkin(this.getType());
|
||||
soyuz.mode = this.mode;
|
||||
soyuz.setLocationAndAngles(xCoord + 0.5, yCoord + 5, zCoord + 0.5, 0, 0);
|
||||
worldObj.spawnEntityInWorld(soyuz);
|
||||
|
||||
@ -189,7 +181,9 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS
|
||||
payload.add(slots[i]);
|
||||
slots[i] = null;
|
||||
}
|
||||
|
||||
|
||||
soyuz.targetX = slots[1].stackTagCompound.getInteger("xCoord");
|
||||
soyuz.targetZ = slots[1].stackTagCompound.getInteger("zCoord");
|
||||
soyuz.setPayload(payload);
|
||||
}
|
||||
|
||||
|
||||