use of blusunrize.immersiveengineering.common.blocks.stone.TileEntityAlloySmelter in project ImmersiveEngineering by BluSunrize.
the class MultiblockAlloySmelter method createStructure.
@Override
public boolean createStructure(World world, BlockPos pos, EnumFacing side, EntityPlayer player) {
EnumFacing f = EnumFacing.fromAngle(player.rotationYaw);
if (Utils.isBlockAt(world, pos.down(), IEContent.blockStoneDecoration, BlockTypes_StoneDecoration.ALLOYBRICK.getMeta()))
pos = pos.down();
if (!Utils.isBlockAt(world, pos.offset(f.rotateY()), IEContent.blockStoneDecoration, BlockTypes_StoneDecoration.ALLOYBRICK.getMeta()))
pos = pos.offset(f.rotateYCCW());
for (int h = 0; h <= 1; h++) for (int l = 0; l <= 1; l++) for (int w = 0; w <= 1; w++) {
BlockPos pos2 = pos.up(h).offset(f, l).offset(f.rotateY(), w);
if (!Utils.isBlockAt(world, pos2, IEContent.blockStoneDecoration, BlockTypes_StoneDecoration.ALLOYBRICK.getMeta()))
return false;
}
ItemStack hammer = player.getHeldItemMainhand().getItem().getToolClasses(player.getHeldItemMainhand()).contains(Lib.TOOL_HAMMER) ? player.getHeldItemMainhand() : player.getHeldItemOffhand();
if (MultiblockHandler.fireMultiblockFormationEventPost(player, this, pos, hammer).isCanceled())
return false;
IBlockState state = IEContent.blockStoneDevice.getStateFromMeta(BlockTypes_StoneDevices.ALLOY_SMELTER.getMeta());
state = state.withProperty(IEProperties.FACING_HORIZONTAL, f.getOpposite());
for (int h = 0; h <= 1; h++) for (int l = 0; l <= 1; l++) for (int w = 0; w <= 1; w++) {
BlockPos pos2 = pos.up(h).offset(f, l).offset(f.rotateY(), w);
world.setBlockState(pos2, state);
TileEntity curr = world.getTileEntity(pos2);
if (curr instanceof TileEntityAlloySmelter) {
TileEntityAlloySmelter currBlast = (TileEntityAlloySmelter) curr;
currBlast.offset = new int[] { pos2.getX() - pos.getX(), pos2.getY() - pos.getY(), pos2.getZ() - pos.getZ() };
currBlast.pos = (h + 1) * 9 + (l + 1) * 3 + (w + 1);
currBlast.formed = true;
currBlast.markDirty();
world.addBlockEvent(pos2, IEContent.blockStoneDevice, 255, 0);
}
}
return true;
}
use of blusunrize.immersiveengineering.common.blocks.stone.TileEntityAlloySmelter in project ImmersiveEngineering by BluSunrize.
the class CommonProxy method getServerGuiElement.
@Override
public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
if (ID >= Lib.GUIID_Base_Item) {
EntityEquipmentSlot slot = EntityEquipmentSlot.values()[ID / 100];
// Slot determined, get actual ID
ID %= 100;
ItemStack item = player.getItemStackFromSlot(slot);
if (!item.isEmpty() && item.getItem() instanceof IGuiItem && ((IGuiItem) item.getItem()).getGuiID(item) == ID) {
if (ID == Lib.GUIID_Revolver && item.getItem() instanceof IEItemInterfaces.IBulletContainer)
return new ContainerRevolver(player.inventory, world, slot, item);
if (ID == Lib.GUIID_Toolbox && item.getItem() instanceof ItemToolbox)
return new ContainerToolbox(player.inventory, world, slot, item);
if (ID == Lib.GUIID_MaintenanceKit && item.getItem() instanceof ItemMaintenanceKit)
return new ContainerMaintenanceKit(player.inventory, world, slot, item);
}
} else {
TileEntity te = world.getTileEntity(new BlockPos(x, y, z));
if (te instanceof IGuiTile) {
Object gui = null;
if (ID == Lib.GUIID_CokeOven && te instanceof TileEntityCokeOven)
gui = new ContainerCokeOven(player.inventory, (TileEntityCokeOven) te);
if (ID == Lib.GUIID_AlloySmelter && te instanceof TileEntityAlloySmelter)
gui = new ContainerAlloySmelter(player.inventory, (TileEntityAlloySmelter) te);
if (ID == Lib.GUIID_BlastFurnace && te instanceof TileEntityBlastFurnace)
gui = new ContainerBlastFurnace(player.inventory, (TileEntityBlastFurnace) te);
if (ID == Lib.GUIID_WoodenCrate && te instanceof TileEntityWoodenCrate)
gui = new ContainerCrate(player.inventory, (TileEntityWoodenCrate) te);
if (ID == Lib.GUIID_Workbench && te instanceof TileEntityModWorkbench)
gui = new ContainerModWorkbench(player.inventory, world, (TileEntityModWorkbench) te);
if (ID == Lib.GUIID_Sorter && te instanceof TileEntitySorter)
gui = new ContainerSorter(player.inventory, (TileEntitySorter) te);
if (ID == Lib.GUIID_Squeezer && te instanceof TileEntitySqueezer)
gui = new ContainerSqueezer(player.inventory, (TileEntitySqueezer) te);
if (ID == Lib.GUIID_Fermenter && te instanceof TileEntityFermenter)
gui = new ContainerFermenter(player.inventory, (TileEntityFermenter) te);
if (ID == Lib.GUIID_Refinery && te instanceof TileEntityRefinery)
gui = new ContainerRefinery(player.inventory, (TileEntityRefinery) te);
if (ID == Lib.GUIID_ArcFurnace && te instanceof TileEntityArcFurnace)
gui = new ContainerArcFurnace(player.inventory, (TileEntityArcFurnace) te);
if (ID == Lib.GUIID_Assembler && te instanceof TileEntityAssembler)
gui = new ContainerAssembler(player.inventory, (TileEntityAssembler) te);
if (ID == Lib.GUIID_AutoWorkbench && te instanceof TileEntityAutoWorkbench)
gui = new ContainerAutoWorkbench(player.inventory, (TileEntityAutoWorkbench) te);
if (ID == Lib.GUIID_Mixer && te instanceof TileEntityMixer)
gui = new ContainerMixer(player.inventory, (TileEntityMixer) te);
if (ID == Lib.GUIID_Turret && te instanceof TileEntityTurret)
gui = new ContainerTurret(player.inventory, (TileEntityTurret) te);
if (ID == Lib.GUIID_FluidSorter && te instanceof TileEntityFluidSorter)
gui = new ContainerFluidSorter(player.inventory, (TileEntityFluidSorter) te);
if (ID == Lib.GUIID_Belljar && te instanceof TileEntityBelljar)
gui = new ContainerBelljar(player.inventory, (TileEntityBelljar) te);
if (ID == Lib.GUIID_ToolboxBlock && te instanceof TileEntityToolbox)
gui = new ContainerToolboxBlock(player.inventory, (TileEntityToolbox) te);
if (gui != null)
((IGuiTile) te).onGuiOpened(player, false);
return gui;
}
}
return null;
}
Aggregations