Jump to content

SeaBass

Members
  • Posts

    41
  • Joined

  • Last visited

Everything posted by SeaBass

  1. Thanks! I just tried running a server and it does crash. I'll be putting the proxy code back in now.
  2. I've been using a client proxy to register entity renderers in 1.5 and 1.6. I'm upgrading to 1.7 now, and I decided to try removing all the proxy code and just register the rendering directly in my main mod class. It all seems to work fine, so I'm wondering if I should even bother with the proxy stuff in 1.7?
  3. Hopefully this will answer 90% of the questions here: While an early version of Forge is available for Minecraft 1.7, it's not going to be very useful for most of the modders except for basic testing. The new version of Mod Coder Pack (MCP) isn't quite ready, so there's no mapping yet. This means that instead of variables and methods having useful, human-readable names, they'll be named things like func_70088_a(). This is something outside of Forge, so complaining to LexManos doesn't do much except make you look like a twat. However, you can help with MCP! Here's some links: Searge's twitter (useful for finding the latest version): https://twitter.com/SeargeDP Mod EDIT: Forge, as of 1.7, no longer uses the MCP toolkit, but we still use their mappings.
  4. All I had to do with mine is change: protected void preRenderCallback(EntityLiving par1EntityLiving, float par2) To: protected void preRenderCallback(EntityLivingBase par1EntityLiving, float par2)
  5. I believe setSize only sets the size of the hitbox, the part that's used for collision detection, and not how it's actually rendered. To change the render size, you probably need your own render class, and to set the size I would use the code from RenderCaveSpider. protected void preRenderCallback(EntityLivingBase par1EntityLivingBase, float par2) { this.scaleSpider((EntityCaveSpider)par1EntityLivingBase, par2); } protected void scaleSpider(EntityCaveSpider par1EntityCaveSpider, float par2) { GL11.glScalef(0.7F, 0.7F, 0.7F); } Post that into your entity rendering class, and replace every instance of EntityCaveSpider with EntityButterfly. The floats inside the glScalef method will determine the render size.
  6. Here's the code I use with an item, if this helps: public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) { if (par3EntityPlayer instanceof EntityPlayerMP) { WorldServer worldserver = (WorldServer)par2World; EntityPlayerMP var4 = (EntityPlayerMP)par3EntityPlayer; if (par3EntityPlayer.ridingEntity == null && par3EntityPlayer.riddenByEntity == null && par3EntityPlayer instanceof EntityPlayer && var4.dimension != Registration.dimID) { var4.mcServer.getConfigurationManager().transferPlayerToDimension(var4, Registration.dimID, new TutorialTeleporter(worldserver)); } if (par3EntityPlayer.ridingEntity == null && par3EntityPlayer.riddenByEntity == null && par3EntityPlayer instanceof EntityPlayer && var4.dimension == Registration.dimID) { var4.mcServer.getConfigurationManager().transferPlayerToDimension(var4, 0, new TutorialTeleporter(worldserver)); } } return par1ItemStack; }
  7. So how'd you do this without changing the method signature?
  8. I don't think the problem is with func_110147_ax(), I've played around with that quite a bit and never had any problems. AI appears to work somewhat differently now, I suspect your problem has to do with that.
  9. Did you create a new type of wood block for the tree? The leaves will decay if they don't detect the correct type of block nearby. If you don't want them to decay at all, remove everything in the removeLeaves or updateTick methods.
  10. \forge\mcp\src\minecraft\assets\[MODID]\textures\blocks
  11. This method appears to be what sets weapon damage now: public Multimap func_111205_h() { Multimap multimap = super.func_111205_h(); multimap.put(SharedMonsterAttributes.field_111264_e.func_111108_a(), new AttributeModifier(field_111210_e, "Weapon modifier", (double)this.weaponDamage, 0)); return multimap; }
  12. On second thought, I'm making things way more difficult than they need to be, just put something like this in the entity's class to update the speed of existing ones: @Override public void onLivingUpdate() { // // Movement Speed - default 0.699D - min 0.0D - max Double.MAX_VALUE this.func_110148_a(SharedMonsterAttributes.field_111263_d).func_111128_a(0.699D); super.onLivingUpdate(); }
  13. Looks like you have to go in and edit the NBT data to update existing entities, but exactly how you'd go about doing that I'm not sure. I'm currently using NBTExplorer to check out the structure and I see where the attributes are stored, but I'm not sure how to change them with a mod. I did find this mod, which seems to have all the NBT editing figured out: http://www.minecraftforum.net/topic/1558668-161forgesspsmp-in-game-nbtedit-edit-mob-spawners-attributes-in-game/
  14. Okay, looks like I was correct originally, I just never bothered to spawn new mobs so they'd get the new attributes. You can use the following function to set move speed, damage, health, etc. in the mobs entity class: protected void func_110147_ax() { super.func_110147_ax(); // Max Health - default 20.0D - min 0.0D - max Double.MAX_VALUE this.func_110148_a(SharedMonsterAttributes.field_111267_a).func_111128_a(20.0D); // Follow Range - default 32.0D - min 0.0D - max 2048.0D this.func_110148_a(SharedMonsterAttributes.field_111265_b).func_111128_a(32.0D); // Knockback Resistance - default 0.0D - min 0.0D - max 1.0D this.func_110148_a(SharedMonsterAttributes.field_111266_c).func_111128_a(0.0D); // Movement Speed - default 0.699D - min 0.0D - max Double.MAX_VALUE this.func_110148_a(SharedMonsterAttributes.field_111263_d).func_111128_a(0.699D); // Attack Damage - default 2.0D - min 0.0D - max Doubt.MAX_VALUE this.func_110148_a(SharedMonsterAttributes.field_111264_e).func_111128_a(2.0D); }
  15. Okay, I think I understand how attributes work a little better. Looks like they're set when the mob is first spawned, and unique to each instance of that mob. Changing the code for the mob will not affect the attributes of the mobs already spawned, which means the way I've been testing the changes to my code has been completely flawed. Gonna try again to see if I can get it to work.
  16. even if the modid is slenderChicken? Yes, the folder name itself must be lowercase.
  17. Is your item registration in preinit? I believe that's what causes the errors. There was a bug where you had to have it in preinit when forge was first released for 1.6, but that's not the case with the more recent versions.
  18. Still trying to figure this out, 1.6.1 seems to have changed how movement speed is set.
  19. You want to use this format for the file path: ResourceLocation("aerialcraft:textures/entity/CorruptedZombie.png") This will use the following location, so you'll need to move your files around: \forge\mcp\src\minecraft\assets\aerialcraft\textures\entity\CorruptedZombie.png
  20. I believe you need to create a coremod to alter vanilla items. Not exactly sure how to go about doing that though.
  21. It's using this method to look for the texture, and then throwing an error because the method returns null. @Override protected ResourceLocation func_110775_a(Entity entity) { return null; } At the beginning of the CorruptedZombieRenderer class you want something like this: private static final ResourceLocation textureLocation = new ResourceLocation("MODID:TEXTURE.png"); And then change func_110775_a to this: @Override protected ResourceLocation func_110775_a(Entity entity) { return textureLocation; }
  22. There's also this forum for tutorials: http://www.minecraftforum.net/forum/243-mapping-and-modding-tutorials/
  23. I'm not sure about rending a model over the whole thing, but to have it add blocks on activation, you want something like this in your block's class: public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer, int par6, float par7, float par8, float par9) { par1World.setBlock(par2, par3+1, par4, Registration.celestialBlock.blockID, 0, 2); return true; } This creates a single block directly above the activated block.
  24. A mob that worked fine in 1.5.2 is now moving extremely slow and I can't seem to figure out why. I trimmed my code down to only the very basics, and the mob works in game, but still moves extremely slow. public class Gobbo extends EntityMob { public Gobbo(World par1World) { super(par1World); this.setSize(1.0F, 2.0F); }} I found this part in EntitySpider that appears to set the movement speed: protected void func_110147_ax() { super.func_110147_ax(); this.func_110148_a(SharedMonsterAttributes.field_111267_a).func_111128_a(16.0D); this.func_110148_a(SharedMonsterAttributes.field_111263_d).func_111128_a(0.800000011920929D); } Here's that field in ShareMonsterAttributes: public static final Attribute field_111263_d = (new RangedAttribute("generic.movementSpeed", 0.699999988079071D, 0.0D, Double.MAX_VALUE)).func_111117_a("Movement Speed").func_111112_a(true); But setting it the same way it's done in EntitySpider doesn't seem to do anything.
  25. What are you texturing? An item, a block, a mob? There's tutorials here explaining the new ways icons and textures work: http://www.minecraftforum.net/forum/243-mapping-and-modding-tutorials/
×
×
  • Create New...

Important Information

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