April 2, 201412 yr Hey Guys! I created a EntityHanging. If I place it in the world and wait a bit, it moved 0.5 Blocks upwards. why? package com.bedrockminer.signcraft.entity; import com.bedrockminer.signcraft.item.ModItem; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityHanging; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.world.World; public class EntityChestTag extends EntityHanging { public EntityChestTag(World world) { super(world); } public EntityChestTag(World world, int x, int y, int z, int dir) { super(world, x, y, z, dir); this.setDirection(dir); } @Override public int getWidthPixels() { return 12; } @Override public int getHeightPixels() { return 8; } @Override public void onBroken(Entity player) { if (player instanceof EntityPlayer) { EntityPlayer entityplayer = (EntityPlayer)player; if (!entityplayer.capabilities.isCreativeMode) { this.entityDropItem(new ItemStack(ModItem.chestTag), 0.0F); } } } } Renderer: package com.bedrockminer.signcraft.client.renderer.entity; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.entity.Render; import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; public class RenderEntityChestTag extends Render { @Override public void doRender(Entity e, double x, double y, double z, float rotation, float var9) { double D = 1.0D / 16.0D; GL11.glPushMatrix(); GL11.glTranslated(x - 0.5D, y - 0.5D, z + D - 0.0001D); GL11.glRotatef(rotation, 0.0F, 1.0F, 0.0F); GL11.glEnable(GL12.GL_RESCALE_NORMAL); this.bindTexture(new ResourceLocation("minecraft", "textures/blocks/planks_oak.png")); Tessellator t = Tessellator.instance; t.startDrawingQuads(); t.setNormal(0, 0, -1); t.addVertexWithUV(2*D, 9*D, 0, 2*D, 7*D); t.addVertexWithUV(14*D, 9*D, 0, 14*D, 7*D); t.addVertexWithUV(14*D, D, 0, 14*D, 15*D); t.addVertexWithUV(2*D, D, 0, 2*D, 15*D); t.setNormal(1, 0, 0); t.addVertexWithUV(14*D, 9*D, 0, 9*D, 0); t.addVertexWithUV(14*D, 9*D, D, 9*D, D); t.addVertexWithUV(14*D, D, D, D, D); t.addVertexWithUV(14*D, D, 0, D, 0); t.setNormal(-1, 0, 0); t.addVertexWithUV(2*D, 9*D, D, 9*D, D); t.addVertexWithUV(2*D, 9*D, 0, 9*D, 0); t.addVertexWithUV(2*D, D, 0, D, 0); t.addVertexWithUV(2*D, D, D, D, D); t.draw(); GL11.glDisable(GL12.GL_RESCALE_NORMAL); GL11.glPopMatrix(); } @Override protected ResourceLocation getEntityTexture(Entity var1) { return null; } } Registration: EntityRegistry.registerModEntity(EntityChestTag.class, "chestTag", 0, Main.instance, 128, 1, true); RenderingRegistry.registerEntityRenderingHandler(EntityChestTag.class, new RenderEntityChestTag()); The renderer is of course only registered on client side. http://i.imgur.com/wNvtGZw.png[/img] MODS and MODDING TUTORIALS
April 2, 201412 yr Author Wooh, fast reply But unfortunately this didn't work. I did it like this: @Override public void writeSpawnData(ByteBuf out) { out.writeDouble(this.posX); out.writeDouble(this.posY); out.writeDouble(this.posZ); out.writeByte(this.hangingDirection); } @Override public void readSpawnData(ByteBuf in) { this.posX = in.readDouble(); this.posY = in.readDouble(); this.posZ = in.readDouble(); this.setDirection(in.readByte()); } http://i.imgur.com/wNvtGZw.png[/img] MODS and MODDING TUTORIALS
April 2, 201412 yr Author Several problems: First, I encountered that with IEntityAdditionalSpawnData the Entities take much longer to spawn: I place an entity and three seconds later it appears. Additionally, the console is spammed with: Spawning entity on client Entity spawned on client (This is written instant, the Entity appears three seconds later. No problem with the renderer, I removed it for testing) Second, if I register the Entity with your settings, they don't appear after a minute or on relogging. http://i.imgur.com/wNvtGZw.png[/img] MODS and MODDING TUTORIALS
April 2, 201412 yr Author Could the problem be, that I'm running Forge 1.7.2 (build 1024) and you maybe another version? I was wondering, which variables you used in your code example: xPosition, yPosition, zPosition. In my Entity class, there are only variables named posX, posY, posZ and they are not Integer but Double values. Which Forge version are you working with? http://i.imgur.com/wNvtGZw.png[/img] MODS and MODDING TUTORIALS
April 3, 201412 yr Author Be honest: Would you associate some variables called field_xxxxxx_a with a position variable if the entity has got another position variable itself? But apart from this it works now. thanks a lot! http://i.imgur.com/wNvtGZw.png[/img] MODS and MODDING TUTORIALS
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.