Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
Если вы мне, то я про раилкрафт знаю да и туда я сначала и посмотрел и решил сделать свою систему.FanKar написал(а):
Да я тебе. И да, я не про Railcraft говорил, а про то как это в OpenBlocks делается. А как я понимаю (Да в принципе по-другому и не должно быть), то твой танк такой же как и в OB.Asd1995sse написал(а):Если вы мне, то я про раилкрафт знаю да и туда я сначала и посмотрел и решил сделать свою систему.
Ладно, но как мне в из в гуи получить переменные?timaxa007 написал(а):Отправкой пакета с сервера по просьбе клиента.
[merge_posts_bbcode]Добавлено: 08.10.2015 21:21:37[/merge_posts_bbcode]
Вот что у меня получилось, конечно без Gui, но всё-же:Код:public class BlockTest extends Block implements ITileEntityProvider { public BlockTest(String tag) { super(Material.wood); setCreativeTab(CreativeTabs.tabBlock); } public void onBlockHarvested(World world, int x, int y, int z, int meta, EntityPlayer player) { } @Override public TileEntity createNewTileEntity(World world, int meta) { return new TileEntityTest(); } public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { if (player.isSneaking()) return false; TileEntityTest tile = (TileEntityTest)world.getTileEntity(x, y, z); if (tile != null) { ItemStack is = player.getCurrentEquippedItem(); if (is != null) { if (is.getItem() == Items.water_bucket) { if (tile.tank.getFluid() != null && tile.tank.getFluid().getFluid().equals(FluidRegistry.WATER)) tile.tank.setFluid(new FluidStack(FluidRegistry.WATER, tile.tank.getFluid().amount + 1000)); else if (tile.tank.getFluid() == null) tile.tank.setFluid(new FluidStack(FluidRegistry.WATER, 1000)); } if (is.getItem() == Items.lava_bucket) { if (tile.tank.getFluid() != null && tile.tank.getFluid().getFluid().equals(FluidRegistry.LAVA)) tile.tank.setFluid(new FluidStack(FluidRegistry.LAVA, tile.tank.getFluid().amount + 1000)); else if (tile.tank.getFluid() == null) tile.tank.setFluid(new FluidStack(FluidRegistry.LAVA, 1000)); } } else { if (tile.tank.getInfo() != null && tile.tank.getInfo().fluid != null) if (world.isRemote) player.addChatMessage(new ChatComponentText("Fluid: " + tile.tank.getInfo().fluid.getLocalizedName() + ", Capacity:" + tile.tank.getInfo().fluid.amount + "")); } return true; } return onBlockActivated(world, x, y, z, player, side, hitX, hitY, hitZ); } }Код:public class TileEntityTest extends TileEntity { public FluidTank tank; private int capacity; public TileEntityTest() { capacity = 5000; tank = new FluidTank(capacity); } @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); tank.readFromNBT(nbt); } @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); tank.writeToNBT(nbt); } public Packet getDescriptionPacket() { NBTTagCompound nbt = new NBTTagCompound(); writeToNBT(nbt); return new S35PacketUpdateTileEntity(xCoord, yCoord, zCoord, 0, nbt); } public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity packet) { readFromNBT(packet.func_148857_g()); } }
Да, но где взять xyz в gui?CoomingSoon написал(а):Через xyz получить тайл,скастить и тд
эвентом?CoomingSoon написал(а):При открытии
Понял) А теперь самое смешное:timaxa007 написал(а):Asd1995sse, нет в GuiHandler'е. Для гуи и контейнера, передавай аргументы координатов или передавай аргумент TileEntity и из него бери его координаты.