Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Stjubit

Members
  • Posts

    63
  • Joined

  • Last visited

Everything posted by Stjubit

  1. Thank you, helped a lot Another question: I need to have all Blocks at every time. Is it better to store the coordinates of them in an external file or should i get all of them in the InitializationEvent with "Minecraft.getMinecraft().theWorld.loadedTileEntityList" and filter the BlockTileEntities out of the List? I would prefer the second way, but I would just like to know your opinion. PS: diesieben07 i saw that you're from Germany. I'm from Austria Thanks, Julian
  2. Hello, Is there any way you can place a few Blocks of the same class, which send out different Redstone signals? Example: I have a block-class "Redstone Sender" and i place a few of them into my world. Now i want to make one block to provide redstone power and the other blocks don't. The problem is, if I change the isProvidingWeakPower-method of a block i get out of "world.getBlock(x,y,z)", every Block in the world changes. I hope you understand my problem. With best regards, Julian
  3. Thank you sooooooooo much. I would like to give you more than a Thanks in this forum For everyone who has the same / will have the same problem like me, this is how i did it: Insert an empty method in your CommonProxy-class like this: public void updateWirelessReceiveGuiFrequency(int frequency) { } ...and overwrite the method in your ClientProxy like this: @Override public void updateWirelessReceiveGuiFrequency(int frequency) { super.updateWirelessReceiveGuiFrequency(frequency); GuiScreen guiScreen = Minecraft.getMinecraft().currentScreen; if(guiScreen instanceof WirelessReceiverGuiContainer) { ((WirelessReceiverGuiContainer) guiScreen).updateFrequency(frequency); } } ...and call this method from your onMessage-method: @Override public IMessage onMessage(WirelessReceiverGuiPacket message, MessageContext ctx) { ControlCraft.PROXY.updateWirelessReceiveGuiFrequency(message.frequency); return null; } ...send the packet after your Gui has been opened: ControlCraft.snw.sendTo(new WirelessReceiverGuiPacket(((WirelessReceiverTileEntity) te).getFrequency()), (EntityPlayerMP) ep); That's all! I know diesieben07, that this question has been asked a few times to you, but I want to know it. How have you learned something like this? I haven't seen any Tutorials about things like that. Thanks for your help, Julian
  4. So I need to create a new ClientPacket like this: snw.registerMessage(WirelessReceiverGuiPacket.WirelessReceiverGuiPacketHandler.class,WirelessReceiverGuiPacket.class,1,Side.CLIENT); ...and implement it like this (more or less): package at.stjubit.ControlCraft.packets; import at.stjubit.ControlCraft.utilities.Constants; import cpw.mods.fml.common.network.ByteBufUtils; import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; import io.netty.buffer.ByteBuf; /** * Created by kauju_000 on 16.07.2015. */ public class WirelessReceiverGuiPacket implements IMessage { int frequency; public WirelessReceiverGuiPacket() {} public WirelessReceiverGuiPacket(int frequency) { this.frequency = frequency; } @Override public void fromBytes(ByteBuf buf) { frequency = ByteBufUtils.readVarInt(buf, 4); } @Override public void toBytes(ByteBuf buf) { ByteBufUtils.writeVarInt(buf,frequency,4); } public static class WirelessReceiverGuiPacketHandler implements IMessageHandler<WirelessReceiverGuiPacket, IMessage> { @Override public IMessage onMessage(WirelessReceiverGuiPacket message, MessageContext ctx) { return null; } } } ...and open the GUI like this: ep.openGui(ControlCraft.INSTANCE,Constants.WIRELESS_RECEIVER_GUI_ID,world,x,y,z); ControlCraft.snw.sendTo(new WirelessReceiverGuiPacket(((WirelessReceiverTileEntity) te).getFrequency()), (EntityPlayerMP) ep); Next problem (of course): How can I get the GuiContainer to update the frequency in the onMessage()-method? I am stupid, sry..
  5. Thank you for your answer! This is how i made it for now: PacketHandler: The frequency is now changed to the frequency I got from the packet, but it would be strange if I wouldn't have got another problem The next time I open my WirelessReceiverGUI, the frequency is 0 again. Could it be, that the TileEntity is created every time I do right-click on my WirelessReceiverBlock? Because then, I would need to store my frequency-variable anywhere else. PS: I removed the initialization =0 in the TileEntity-class. Would be nice if you could help me again
  6. Very nice tutorial diesieben07! Now I have a question: How can I get the TileEntity the packet came from? I need to call a method named "setFrequency" to give it the new information. Julian
  7. Hello, it's me again with another problem So, i startet a new project which can save and edit a frequency in a GUI. Here is a screenshot of it, so that you know what i'm doing here: In the game, everything works perfect. I can increase/decrease the frequency and when i close the GUI and open it again, the frequency is still there, but when I go out of the world (not the game) and go in again, the frequency is 0, again. However, the frequency is not getting saved or not getting load correctly. Here is my Block-class: Here is my TileEntity-class: Here is my GuiContainer: Here is my GuiHandler: Finally, here is my Container: (I don't know if I need this class, but i implemented it) I registered my TileEntity in my CommonProxy-class as followed: (registerTileEntities() gets called in the FMLInitializationEvent-method) I hope that anybody takes the time to read through this. I would really appreciate this. Thanks, Julian
  8. Hello, thanks for your answer. I use Forge-Version 10.13.4.1448 for Minecraft 1.7.10 I just figured out, that when I overwrite the method "drawScreen()" in my GuiContainer-class and draw the GuiTextField in that method instead of drawing it in the "drawGuiContainerForegroundLayer"-method, the coordinates are right and everything is perfect. But why is 0/0 in the drawGuiContainerForegroundLayer-method on another place than 0/0 in the drawScreen-method? Thanks for your answer!
  9. Yeah, that's exactly what I thought, too, but if you would have read my Thread, you would know, that that's not the case. Please give a useful answer, or let it be. Why is 0/0 not in the left top of the Minecraft-Screen or in the left top of the GUI-Background? It's just anywhere?! With best regards, Julian
  10. Hello everyone, I really don't get it, how a GuiTextField is aligned in a GuiContainer. I have overwritten the drawGuiContainerBackgroundLayer to display my Background Image as followed: Background-Image: So the Background-Image is centered in Minecraft, as I wanted. Now the problem: When I initialize my GuiTextField like so: tfFrequency = new GuiTextField(fontRendererObj, 0,0,tfWidth,tfHeight); ...the TextField is anywhere. Here is a Screenshot as it looks In-Game: So the coordinates 0/0 are up there. Why? Where do the coordinates of a GuiTextField start? Thanks for every help and sorry for my bad english, Julian
  11. Hello, I think I have a very strange problem here: I want to decrease the stackSize of an Item called "ExplodeArrow" when i right click with an Item called "ExplodeGun" and this is how i did it for now: onItemRightClick(...) in ExplodeGun.java Now the problem: When i right click my ExplodeGun, the stackSize of my ExplodeArrow decreases, but it won't show up. Only if I restart my Minecraft, the decreased stackSize shows up. I hope that you know what i mean. The stackSize decreases, but you won't see it In-Game until you restart Minecraft. The very strange thing is, that when i edit my ItemStack (is) in the method like "is.stackSize++", it all works and the stackSize of the Arrow decreases In-Game, too. I hope you can help me, sorry for my bad english thanks to everyone, Julian
×
×
  • Create New...

Important Information

By using this site, you agree to our Privacy Policy.