Jump to content

ItsAMysteriousYT

Members
  • Posts

    785
  • 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. 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
  10. Well i looked at the blockFurnace class and in the tileentityFurnace class. I searched for crafter and looked through all methods, but nothing...
  11. 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.
  12. 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?
  13. 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; } }
  14. @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
  15. Yea i do this already. Its MarkBlockForUpdate(Blockpos). But still it doesn't do it.
  16. 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.
  17. 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; } }
  18. Okay - so with the packet should i set a variable or how can i get the data into the Gui?
  19. 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()); }
  20. 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?
×
×
  • Create New...

Important Information

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