mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
157 lines
4.9 KiB
Java
157 lines
4.9 KiB
Java
package com.hbm.tileentity.machine;
|
|
|
|
import com.hbm.blocks.ModBlocks;
|
|
import com.hbm.blocks.machine.SoyuzLauncher;
|
|
|
|
import cpw.mods.fml.relauncher.Side;
|
|
import cpw.mods.fml.relauncher.SideOnly;
|
|
import net.minecraft.init.Blocks;
|
|
import net.minecraft.tileentity.TileEntity;
|
|
import net.minecraft.util.AxisAlignedBB;
|
|
import net.minecraftforge.common.util.ForgeDirection;
|
|
|
|
public class TileEntitySoyuzStruct extends TileEntity {
|
|
|
|
int age;
|
|
|
|
@Override
|
|
public void updateEntity() {
|
|
|
|
if(worldObj.isRemote)
|
|
return;
|
|
|
|
age++;
|
|
|
|
if(age < 20)
|
|
return;
|
|
|
|
age = 0;
|
|
|
|
/// CHECK PAD ///
|
|
for(int i = -6; i <= 6; i++)
|
|
for(int j = 3; j <= 4; j++)
|
|
for(int k = -6; k <= 6; k++)
|
|
if(worldObj.getBlock(xCoord + i, yCoord + j, zCoord + k) != ModBlocks.struct_launcher)
|
|
return;
|
|
|
|
for(int i = -1; i <= 1; i++)
|
|
for(int j = 3; j <= 4; j++)
|
|
for(int k = -8; k <= -7; k++)
|
|
if(worldObj.getBlock(xCoord + i, yCoord + j, zCoord + k) != ModBlocks.struct_launcher)
|
|
return;
|
|
|
|
for(int i = -2; i <= 2; i++)
|
|
for(int j = 3; j <= 4; j++)
|
|
for(int k = 7; k <= 9; k++)
|
|
if(worldObj.getBlock(xCoord + i, yCoord + j, zCoord + k) != ModBlocks.struct_launcher)
|
|
return;
|
|
|
|
for(int i = -2; i <= 2; i++)
|
|
for(int k = 5; k <= 9; k++)
|
|
if(worldObj.getBlock(xCoord + i, yCoord + 51, zCoord + k) != ModBlocks.struct_launcher)
|
|
return;
|
|
|
|
for(int i = -1; i <= 1; i++)
|
|
for(int k = -8; k <= -6; k++)
|
|
if(worldObj.getBlock(xCoord + i, yCoord + 38, zCoord + k) != ModBlocks.struct_launcher)
|
|
return;
|
|
|
|
/// CHECK LEGS ///
|
|
for(int i = 3; i <= 6; i++)
|
|
for(int j = 0; j <= 2; j++)
|
|
for(int k = 3; k <= 6; k++)
|
|
if(worldObj.getBlock(xCoord + i, yCoord + j, zCoord + k) != ModBlocks.concrete &&
|
|
worldObj.getBlock(xCoord + i, yCoord + j, zCoord + k) != ModBlocks.concrete_smooth)
|
|
return;
|
|
|
|
for(int i = -6; i <= -3; i++)
|
|
for(int j = 0; j <= 2; j++)
|
|
for(int k = 3; k <= 6; k++)
|
|
if(worldObj.getBlock(xCoord + i, yCoord + j, zCoord + k) != ModBlocks.concrete &&
|
|
worldObj.getBlock(xCoord + i, yCoord + j, zCoord + k) != ModBlocks.concrete_smooth)
|
|
return;
|
|
|
|
for(int i = -6; i <= -3; i++)
|
|
for(int j = 0; j <= 2; j++)
|
|
for(int k = -6; k <= -3; k++)
|
|
if(worldObj.getBlock(xCoord + i, yCoord + j, zCoord + k) != ModBlocks.concrete &&
|
|
worldObj.getBlock(xCoord + i, yCoord + j, zCoord + k) != ModBlocks.concrete_smooth)
|
|
return;
|
|
|
|
for(int i = 3; i <= 6; i++)
|
|
for(int j = 0; j <= 2; j++)
|
|
for(int k = -6; k <= -3; k++)
|
|
if(worldObj.getBlock(xCoord + i, yCoord + j, zCoord + k) != ModBlocks.concrete &&
|
|
worldObj.getBlock(xCoord + i, yCoord + j, zCoord + k) != ModBlocks.concrete_smooth)
|
|
return;
|
|
|
|
for(int i = -1; i <= 1; i++)
|
|
for(int j = 0; j <= 2; j++)
|
|
for(int k = -8; k <= -6; k++)
|
|
if(worldObj.getBlock(xCoord + i, yCoord + j, zCoord + k) != ModBlocks.concrete &&
|
|
worldObj.getBlock(xCoord + i, yCoord + j, zCoord + k) != ModBlocks.concrete_smooth)
|
|
return;
|
|
|
|
for(int i = -2; i <= 2; i++)
|
|
for(int j = 0; j <= 2; j++)
|
|
for(int k = 5; k <= 9; k++)
|
|
if(worldObj.getBlock(xCoord + i, yCoord + j, zCoord + k) != ModBlocks.concrete &&
|
|
worldObj.getBlock(xCoord + i, yCoord + j, zCoord + k) != ModBlocks.concrete_smooth)
|
|
return;
|
|
|
|
/// CHECK SCAFFOLDING ///
|
|
for(int i = -1; i <= 1; i++)
|
|
for(int j = 5; j <= 50; j++)
|
|
for(int k = 6; k <= 8; k++)
|
|
if(worldObj.getBlock(xCoord + i, yCoord + j, zCoord + k) != ModBlocks.struct_scaffold)
|
|
return;
|
|
|
|
for(int j = 5; j <= 37; j++)
|
|
if(worldObj.getBlock(xCoord, yCoord + j, zCoord - 7) != ModBlocks.struct_scaffold)
|
|
return;
|
|
/// CHECKS COMPLETE ///
|
|
|
|
/// DELETE SCAFFOLDING ///
|
|
|
|
for(int i = -2; i <= 2; i++)
|
|
for(int k = 5; k <= 9; k++)
|
|
worldObj.setBlock(xCoord + i, yCoord + 51, zCoord + k, Blocks.air);
|
|
|
|
for(int i = -1; i <= 1; i++)
|
|
for(int k = -8; k <= -6; k++)
|
|
worldObj.setBlock(xCoord + i, yCoord + 38, zCoord + k, Blocks.air);
|
|
|
|
for(int i = -2; i <= 2; i++)
|
|
for(int j = 0; j <= 2; j++)
|
|
for(int k = 5; k <= 9; k++)
|
|
worldObj.setBlock(xCoord + i, yCoord + j, zCoord + k, Blocks.air);
|
|
|
|
for(int i = -1; i <= 1; i++)
|
|
for(int j = 5; j <= 50; j++)
|
|
for(int k = 6; k <= 8; k++)
|
|
worldObj.setBlock(xCoord + i, yCoord + j, zCoord + k, Blocks.air);
|
|
|
|
for(int j = 5; j <= 37; j++)
|
|
worldObj.setBlock(xCoord, yCoord + j, zCoord - 7, Blocks.air);
|
|
|
|
/// GENERATE LAUNCHER ///
|
|
|
|
ForgeDirection dir = ForgeDirection.EAST;
|
|
|
|
worldObj.setBlock(xCoord, yCoord, zCoord, Blocks.air);
|
|
worldObj.setBlock(xCoord , yCoord + SoyuzLauncher.height, zCoord, ModBlocks.soyuz_launcher, dir.ordinal() + SoyuzLauncher.offset, 3);
|
|
((SoyuzLauncher)ModBlocks.soyuz_launcher).fillSpace(worldObj, xCoord, yCoord, zCoord, dir, 0);
|
|
}
|
|
|
|
@Override
|
|
public AxisAlignedBB getRenderBoundingBox() {
|
|
return TileEntity.INFINITE_EXTENT_AABB;
|
|
}
|
|
|
|
@Override
|
|
@SideOnly(Side.CLIENT)
|
|
public double getMaxRenderDistanceSquared() {
|
|
return 65536.0D;
|
|
}
|
|
}
|