Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

ItsAMysteriousYT

Members
  • Joined

  • Last visited

Everything posted by ItsAMysteriousYT

  1. Okay - i might sound really stupid now but how? Do i have to send the tileentity in the packet? As coordinates or something?
  2. There is an easier way made by forge. Its called ObfuscationReflectionHelper. In there use the methods getPrivateValue/setPrivatevalue etc
  3. This is my packet - am i doing it the correct way? package itsamysterious.mods.reallifemod.core.packets; import java.nio.ByteBuffer; import io.netty.buffer.ByteBuf; import net.minecraftforge.fml.common.network.ByteBufUtils; import net.minecraftforge.fml.common.network.simpleimpl.IMessage; public class ElectricDataPackage implements IMessage{ float voltage; public ElectricDataPackage() { } public ElectricDataPackage(float voltage){ this.voltage=voltage; } @Override public void fromBytes(ByteBuf buf) { voltage = buf.readFloat(); } @Override public void toBytes(ByteBuf buf) { buf.writeFloat(voltage); } } Now i don't know what excactly to do in the packethandler. I tried passing the value through a static variable in my custom overlayclass, but it didn't work. Thats what i tried: package itsamysterious.mods.reallifemod.core.packets; import java.awt.Color; import itsamysterious.mods.reallifemod.core.gui.lifesystem.RLMOverlay; import net.minecraft.client.Minecraft; import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler; import net.minecraftforge.fml.common.network.simpleimpl.MessageContext; public class VoltagePackethandler implements IMessageHandler<ElectricDataPackage, ElectricDataPackage>{ @Override public ElectricDataPackage onMessage(ElectricDataPackage message, MessageContext ctx) { RLMOverlay.voltage=message.voltage; return message; } }
  4. Also befor doing model.render((Entity)null...) do GL11.glDisable(GL11.GL_CULL_FACE).
  5. Okay... but how do i send the value to the gui? I think having a static variable in my GuiOverlay isn't the right way is it? Im feeling so stupid cuz i ask so much about packets, sorry
  6. The super secret setting will be gone again soon. They only exist in 1.7.10/1.8
  7. well youll never be able to render something independant of the world, cuz you have to set its world coordinates, but independant of blockpos - why? What you wanna do?
  8. Then how? How can i send the calue to the gui? Plz reply quick, only got five minutes left Guis working on internet and i wanna get the enrgy system work.
  9. Can i just make my Gui implement IMessageHandler?
  10. But my tileentity has no container and adding one just for this would be absolutly unnecessary. Tell me how i can use packets for that please
  11. Well i looked at the blockFurnace class and in the tileentityFurnace class. I searched for crafter and looked through all methods, but nothing...
  12. Okay this might sound weird, but how can i get the voltage from the packet? I would send it to ClientEvery tick, but i only know how to execute something with a packet, but i tried setting a value with it and it stayed zero but on the server it wasn't.
  13. Okay, for the disconnection of tiles, i need to send an update AFTER the 'to' variable is set to null. How should i do this?
  14. Uhm...use use player.mountEntity(this)
  15. I call it in the superclass like this: public void passOverVoltage(){ if(getTo()!=null){ getTo().onPowered(this.getVoltageValueAfterPowering()); System.out.println("Tried passing voltage to"+getTo().getClass().getSimpleName()+" Voltage is:"+getVoltage()); } } and this method is called within the update() method: if(getTo()!=null){ this.passOverVoltage(); this.voltage=0; if(storedPos!=null&&worldObj.getTileEntity(storedPos)==null||!(worldObj.getTileEntity(storedPos)instanceof TileEntity_Electric)){ to=null; storedPos=null; } }
  16. @Override public void update(){ super.update(); if(worldObj.isRemote)return; if(this.getVoltage()>0){ isActive=true; }else isActive=false; if(isActive){ worldObj.getBlockState(getPos()).getBlock().setLightLevel(10.0f); }else { worldObj.getBlockState(getPos()).getBlock().setLightLevel(0); } } @Override public void onPowered(float f) { super.onPowered(f); this.isActive=true; worldObj.markBlockForUpdate(getPos()); } I tried marking for update in the update method and the game crashed
  17. Yea i do this already. Its MarkBlockForUpdate(Blockpos). But still it doesn't do it.
  18. Okay. But how can i solve that lighting problem?
  19. The block just doesn't rotate. Doesn't matter from witch side i place it. Also that getLightValue method does not update immediatly when the block is getting powered.
  20. okayyyy...But what excactly am i sending in that packet then? Do i send the whole tileentity? If yes, how? Also this method still does not work public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack) { super.onBlockPlacedBy(worldIn, pos, state, placer, stack); TileEntity tileentity = worldIn.getTileEntity(pos); if (tileentity instanceof TileEntity_Electric){ TileEntity_Electrictile = (TileEntity_Electric)tileentity; tile.rotation = MathHelper.floor_double((double)(placer.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3; } }
  21. Okay - so with the packet should i set a variable or how can i get the data into the Gui?
  22. Also - for example my lantern does not turn on immediatly when getting powered, but often i have to reopen the world so it is lit up. Thats how i set the lightlevel of the block: @Override public void update(){ super.update(); if(worldObj.isRemote)return; if(this.getVoltage()>0){ isActive=true; }else isActive=false; if(isActive){ worldObj.getBlockState(getPos()).getBlock().setLightLevel(100.0f); }else { worldObj.getBlockState(getPos()).getBlock().setLightLevel(0); } } @Override public void onPowered(float f) { super.onPowered(f); this.isActive=true; worldObj.getBlockState(getPos()).getBlock().setLightLevel(10.0f); worldObj.markBlockForUpdate(getPos()); }
  23. Okay - now there is some other strange stuff. I can connect the blocks bugfree now, but for example i connect my Pinwheel to the transformer. In the pinwheel i set the energy to 440 every tick. My TileENtity_Electric automaticly passes over the enrgy to the connected block like this: public void passOverVoltage(){ if(getTo()!=null){ getTo().onPowered(this.getVoltageValueAfterPowering()); System.out.println("Tried passing voltage to"+getTo().getClass().getSimpleName()+" Voltage is:"+getVoltage()); } } BUT - when i hover over the transformer in minecraft, on the guioverlay the voltage still is 0.0, while in code with System.out.println it is 440. How can i fix that?

Important Information

By using this site, you agree to our Terms of Use.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.