Jump to content

khlorghaal

Members
  • Posts

    14
  • Joined

  • Last visited

Converted

  • Gender
    Undisclosed
  • Personal Text
    I am new!

khlorghaal's Achievements

Tree Puncher

Tree Puncher (2/8)

0

Reputation

  1. So as any member of the modding community is I'm well aware of the sites stealing ad revenue and even phishing donations. Even if those issues are tolerable, having them out PageRank official sites is maddening. I've been doing lots of google related research and came across this convenient form for marking copyright violating sites as spam. https://www.google.com/webmasters/tools/dmca-notice?rd=1 Do note that this is a very serious legal matter and you should read all relevant information before filing. Your copyright as per the version their site has must explicitly disallow commercial use. My brothers - Terminate with extreme prejudice.
  2. For a strictly client side GUI that shouldnt be necessary. Its probably not working because the vanilla sign GUI notices that it doesnt have a container.
  3. I could just make another NBT for all my items that do this and use an IItemRenderer to render the bar. I could display more than one bar or change it's color that way. But then I would have to make an inventory renderer for all of those items, which would suck, maybe not as bad if you can register more than one item renderer for an item. Even then I could just make all my item renders extend a single super that does it... I'll see how well I can get it to work later today.
  4. if(player.ticksExister % interval ==0) apply()
  5. When a held item is damaged using ItemStack.damageItem() or ItemStack.setItemDamage it does the animation that happens when you change your active item (ie mouse wheel scrolling), and it looks terrible when done continually. Which is huge a problem for me as many of my items make use of damage value for a continually changing variable that i wish to display to the player. Is there any way to stop this animation? I notice on completeing a dig with a tool it doesnt happen.
  6. Just a guess but it's probably because you're applying it every tick, try only applying it once a second or so.
  7. Is this just as simple as making a KeyHandler and sending a packet on keyPressed and keyReleased? Boats work by using this.riddenByEntity.motionA and translating to this.motionA, which is what I've been trying. But it's well known that boats are complete crap. I noticed that I'm having difficulty with things like jumping and moving fast. I'll randomly get teleported back, I assume the server thinks I'm trying to speedhack or something? So I'm thinking of hooking the movement keybinds (wasd) directly to Player.ridingEntity. Trouble is that I can't find where wasd is translated to movement in vanilla. So does someone know the class for handling wasd movement? Any other advice?
  8. I'm making a vehicle with health, so I'm using EntityLiving as super. Trouble is, EntityLivings spastically flip their heads around, and the rider's screen and head are flipped around with it. I'm pretty sure the code for head movement is in EntityLiving.onUpdate(), but if you override that your entity wont work properly. EntityLiving.updateRiderPosition() doesn't affect head movement. I've been stuck on this for a day. I need to know: How to stop an EntityLiving from moving its head || How to stop EntityLiving.riddenByEntity from being affected || How to make EntityPlayer.ridingEntity not affect it I can't figure out how to do any of these things without editing a base class.
  9. I think the issue is how I'm spawning it, does Forge not like this? EntityODP var6 = new EntityODP(par1World, (double)((float)par2 + 0.5F), (double)((float)par3 + 0.5F), (double)((float)par4 + 0.5F)); par1World.spawnEntityInWorld(var6); If so what's the preferred method? Also this is the most sensible thing im getting from the errors, it complains about this method @Override public Entity spawnEntityIntoClientWorld(Class<? extends Entity> cls, EntitySpawnPacket packet) { WorldClient wc = client.theWorld; try { [b]/*This line*/[/b] Entity entity = (Entity)(cls.getConstructor(World.class).newInstance(wc)); if (entity instanceof IThrowableEntity) { Entity thrower = client.thePlayer.entityId == packet.throwerId ? client.thePlayer : wc.getEntityByID(packet.throwerId); ((IThrowableEntity)entity).setThrower(thrower); } entity.serverPosX = packet.rawX; entity.serverPosY = packet.rawY; entity.serverPosZ = packet.rawZ; Entity parts[] = entity.getParts(); if (parts != null) { int i = packet.entityId - entity.entityId; for (int j = 0; j < parts.length; j++) { parts[j].entityId += i; } } entity.entityId = packet.entityId; entity.setPositionAndRotation2(packet.scaledX, packet.scaledY, packet.scaledZ, packet.scaledYaw, packet.scaledPitch, 1); if (entity instanceof EntityLiving) { ((EntityLiving)entity).rotationYawHead = packet.scaledHeadYaw; } if (packet.metadata != null) { entity.getDataWatcher().updateWatchedObjectsFromList((List)packet.metadata); } if (packet.throwerId > 0) { entity.setVelocity(packet.speedScaledX, packet.speedScaledY, packet.speedScaledZ); } if (entity instanceof IEntityAdditionalSpawnData) { ((IEntityAdditionalSpawnData)entity).readSpawnData(packet.dataStream); } wc.addEntityToWorld(packet.entityId, entity); return entity; } catch (Exception e) { FMLLog.log(Level.SEVERE, e, "A severe problem occurred during the spawning of an entity"); throw Throwables.propagate(e); } }
  10. also EntityRegistry.registerModEntity(EntityODP.class, "ODP", 0, T1A.instance, 10, 10, true); is the same as EntityRegistry.registerModEntity(EntityODP.class, "ODP", 0, this.instance, 10, 10, true); when included in the mod class, correct?
  11. Commenting out the line EntityRegistry.registerModEntity(EntityODP.class, "ODP", 0, T1A.instance, 10, 10, true); prevents my game from crashing, All my other code works or is copied from vanilla code. EntityRegistry.registerGlobalEntityID(EntityODP.class, "ODP", EntityRegistry.findGlobalUniqueEntityId()); does not cause a crash. I put it above registerModEntity Crash occurs when the entity is spawned, as I would expect. If i comment out registerModEntity (and registerGlobalEntityID) then my entity spawns normally according to EntityODP var6 = new EntityODP(par1World, (double)((float)par2 + 0.5F), (double)((float)par3 + 0.5F), (double)((float)par4 + 0.5F)); par1World.spawnEntityInWorld(var6); I know it spawns because I have it drop sulphur every second; normally when the entity spawns it plays a sound immediately after , but it doesn't when crashing. 2012-09-11 21:06:49 [iNFO] [sTDOUT] Skipping Entity with id ODP 2012-09-11 21:06:53 [sEVERE] [ForgeModLoader] A severe problem occurred during the spawning of an entity 2012-09-11 21:06:54 [iNFO] [sTDERR] java.lang.RuntimeException: java.lang.NoSuchMethodException: t1a.common.EntityODP.<init>(net.minecraft.src.World) 2012-09-11 21:06:54 [iNFO] [sTDERR] at com.google.common.base.Throwables.propagate(Throwables.java:160) 2012-09-11 21:06:54 [iNFO] [sTDERR] at cpw.mods.fml.client.FMLClientHandler.spawnEntityIntoClientWorld(FMLClientHandler.java:368) 2012-09-11 21:06:54 [iNFO] [sTDERR] at cpw.mods.fml.common.FMLCommonHandler.spawnEntityIntoClientWorld(FMLCommonHandler.java:331) 2012-09-11 21:06:54 [iNFO] [sTDERR] at cpw.mods.fml.common.network.EntitySpawnPacket.execute(EntitySpawnPacket.java:186) 2012-09-11 21:06:54 [iNFO] [sTDERR] at cpw.mods.fml.common.network.FMLNetworkHandler.handleFMLPacket(FMLNetworkHandler.java:89) 2012-09-11 21:06:54 [iNFO] [sTDERR] at cpw.mods.fml.common.network.FMLNetworkHandler.handlePacket250Packet(FMLNetworkHandler.java:59) 2012-09-11 21:06:54 [iNFO] [sTDERR] at net.minecraft.src.NetClientHandler.handleCustomPayload(NetClientHandler.java:1287) 2012-09-11 21:06:54 [iNFO] [sTDERR] at net.minecraft.src.Packet250CustomPayload.processPacket(Packet250CustomPayload.java:70) 2012-09-11 21:06:54 [iNFO] [sTDERR] at net.minecraft.src.MemoryConnection.processReadPackets(MemoryConnection.java:72) 2012-09-11 21:06:54 [iNFO] [sTDERR] at net.minecraft.src.NetClientHandler.processReadPackets(NetClientHandler.java:98) 2012-09-11 21:06:54 [iNFO] [sTDERR] at net.minecraft.src.WorldClient.tick(WorldClient.java:64) 2012-09-11 21:06:54 [iNFO] [sTDERR] at net.minecraft.client.Minecraft.runTick(Minecraft.java:1774) 2012-09-11 21:06:54 [iNFO] [sTDERR] at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:831) 2012-09-11 21:06:54 [iNFO] [sTDERR] at net.minecraft.client.Minecraft.run(Minecraft.java:761) 2012-09-11 21:06:54 [iNFO] [sTDERR] at java.lang.Thread.run(Thread.java:722) 2012-09-11 21:06:54 [iNFO] [sTDERR] Caused by: java.lang.NoSuchMethodException: t1a.common.EntityODP.<init>(net.minecraft.src.World) 2012-09-11 21:06:54 [iNFO] [sTDERR] at java.lang.Class.getConstructor0(Class.java:2721) 2012-09-11 21:06:54 [iNFO] [sTDERR] at java.lang.Class.getConstructor(Class.java:1674) 2012-09-11 21:06:54 [iNFO] [sTDERR] at cpw.mods.fml.client.FMLClientHandler.spawnEntityIntoClientWorld(FMLClientHandler.java:318) 2012-09-11 21:06:54 [iNFO] [sTDERR] ... 13 more 2012-09-11 21:07:04 [iNFO] [sTDOUT] Stopping! ClientProxy.java package t1a.client; import cpw.mods.fml.client.registry.RenderingRegistry; import t1a.common.CommonProxy; import t1a.common.EntityODP; import net.minecraftforge.client.MinecraftForgeClient; public class ClientProxy extends CommonProxy { @Override public void initRenders() { MinecraftForgeClient.preloadTexture("/t1a/t1a.png"); RenderingRegistry.registerEntityRenderingHandler(EntityODP.class, new RenderODP()); } } RenderODP.java (copy of RenderTNTPrimed) package t1a.client; import net.minecraft.src.*; import t1a.common.EntityODP; import org.lwjgl.opengl.GL11; public class RenderODP extends Render { private RenderBlocks blockRenderer = new RenderBlocks(); public RenderODP() { this.shadowSize = 0.5F; } public void func_76992_a(EntityODP par1EntityODP, double par2, double par4, double par6, float par8, float par9) { GL11.glPushMatrix(); GL11.glTranslatef((float)par2, (float)par4, (float)par6); float var10; if ((float)par1EntityODP.fuse - par9 + 1.0F < 10.0F) { var10 = 1.0F - ((float)par1EntityODP.fuse - par9 + 1.0F) / 10.0F; if (var10 < 0.0F) { var10 = 0.0F; } if (var10 > 1.0F) { var10 = 1.0F; } var10 *= var10; var10 *= var10; float var11 = 1.0F + var10 * 0.3F; GL11.glScalef(var11, var11, var11); } var10 = (1.0F - ((float)par1EntityODP.fuse - par9 + 1.0F) / 100.0F) * 0.8F; this.loadTexture("/terrain.png"); this.blockRenderer.renderBlockAsItem(Block.tnt, 0, par1EntityODP.getBrightness(par9)); if (par1EntityODP.fuse / 5 % 2 == 0) { GL11.glDisable(GL11.GL_TEXTURE_2D); GL11.glDisable(GL11.GL_LIGHTING); GL11.glEnable(GL11.GL_BLEND); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_DST_ALPHA); GL11.glColor4f(1.0F, 1.0F, 1.0F, var10); this.blockRenderer.renderBlockAsItem(Block.tnt, 0, 1.0F); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glDisable(GL11.GL_BLEND); GL11.glEnable(GL11.GL_LIGHTING); GL11.glEnable(GL11.GL_TEXTURE_2D); } GL11.glPopMatrix(); } /** * Actually renders the given argument. This is a synthetic bridge method, always casting down its argument and then * handing it off to a worker function which does the actual work. In all probabilty, the class Render is generic * (Render<T extends Entity) and this method has signature public void doRender(T entity, double d, double d1, * double d2, float f, float f1). But JAD is pre 1.5 so doesn't do that. */ public void doRender(Entity par1Entity, double par2, double par4, double par6, float par8, float par9) { this.func_76992_a((EntityODP)par1Entity, par2, par4, par6, par8, par9); } } EntityODP.java, this works perfectly until registerModEntity is used package t1a.common; import net.minecraft.src.*; import cpw.mods.fml.common.Side; import cpw.mods.fml.common.asm.SideOnly; public class EntityODP extends Entity { public int fuse = 80; public EntityODP(World par1World, double par2, double par4, double par6) { super(par1World); this.preventEntitySpawning = false; this.setSize(0.98F, 0.98F); this.yOffset = this.height / 2.0F; this.setPosition(par2, par4, par6); this.motionX = 0.0D; this.motionY = 0.20D; this.motionZ = 0.0D; this.prevPosX = par2; this.prevPosY = par4; this.prevPosZ = par6; //this.worldObj.createExplosion((Entity)null, this.posX, this.posY, this.posZ, 3f); } protected void entityInit() {} /** * returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to * prevent them from trampling crops */ protected boolean canTriggerWalking() { return false; } /** * Returns true if other Entities should be prevented from moving through this Entity. */ public boolean canBeCollidedWith() { return !this.isDead; } /** * Called to update the entity's position/logic. */ int count1 = 0; public void onUpdate() { this.prevPosX = this.posX; this.prevPosY = this.posY; this.prevPosZ = this.posZ; this.motionY -= 0.04D; this.moveEntity(this.motionX, this.motionY, this.motionZ); this.motionX *= 0.98D; this.motionY *= 0.98D; this.motionZ *= 0.98D; if (this.onGround) { this.motionX *= 0.699999988079071D; this.motionZ *= 0.699999988079071D; this.motionY *= -0.5D; } count1++; if(count1 == 20){ this.dropItem(Item.gunpowder.shiftedIndex, 1); count1=0;} } protected void readEntityFromNBT(NBTTagCompound var1) {/* TODO Auto-generated method stub*/} protected void writeEntityToNBT(NBTTagCompound var1) {/* TODO Auto-generated method stub*/} @SideOnly(Side.CLIENT) public float getShadowSize() { return 0.0F; } } I've been stuck on this for days and am disappointed I wasn't able to figure it out
×
×
  • Create New...

Important Information

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