Jump to content

Choonster

Moderators
  • Posts

    5170
  • Joined

  • Last visited

  • Days Won

    77

Everything posted by Choonster

  1. Once you've chosen a position to generate your ore at, you can use World#getBiomeGenForCoords to check the biome at that position. If it's the right biome, generate your ore; otherwise do nothing.
  2. Did you try calling FMLClientHandler#connectToServer with a new ServerData object?
  3. So would it be : Block checkID = world.setBlockState(new BlockPos(i, j, k), IBlockState.getBlock, checkID); I simply cant figure it out. IBlockState#getBlock means that getBlock is an instance method of IBlockState . Call it on an instance of IBlockState to get its Block . Use World#getBlockState to get the IBlockState at the specified position. You can think of an IBlockState as a combination of a Block and its metadata value. Use GameRegistry.registerWorldGenerator to register an IWorldGenerator .
  4. Vanilla ores (and most Overworld mod ores) only generate in Stone, so you can use a different terrain block by overriding BiomeGenBase#genTerrainBlocks . You could also override BiomeGenBase#createBiomeDecorator to return a BiomeDecorator that overrides BiomeDecorator#generateOres to not generate any vanilla ores. This won't affect mod ores, though.
  5. The compound tag returned by Entity#getEntityData is persisted through saves, but it's not copied when the player respawns ( EntityPlayer#clonePlayer ). Only the data in the EntityPlayer.PERSISTED_NBT_TAG sub-compound of Entity#getEntityData is copied over when the player respawns.
  6. Call the super method from EntitySpectral#onLivingUpdate . If you override a method (especially one that updates stuff), you'll usually want to call the super method. You have a lot of overridden methods not calling their super methods.
  7. One of your ingredients is either null or not a Block / Item / ItemStack . Put a breakpoint on line 225 of CraftingManager (where the HashMap of ingredients is populated) with a condition of itemStack1 == null and see what the value p_92103_2_[i + 1] is.
  8. You're writing the NBT correctly, but this.entity will be null on the client, so you can't call Entity#deserializeNBT on it. You need to use EntityList.createEntityFromNBT instead, which creates the entity and then reads it from NBT. I just realised that Entity#writeToNBT doesn't save the entity's string ID, which is needed to recreate it from NBT. Use Entity#serializeNBT instead, which does save the ID.
  9. An IBlockState will never be equal to an int . Use IBlockState#getBlock to get the Block represented by an IBlockState . There's no method called World#setDefaultState . World#setBlockState is the method you want.
  10. I suspect that either Content.kingdom_key or Content.heart are null at the time of this method being called. Use the debugger to step through this method and figure out what's null . Make sure you initialise all of your items in preInit, then add recipes in init.
  11. You should probably call the super methods in your overrides of Entity#readEntityFromNBT and Entity#writeEntityToNBT , but I don't think that's the cause of the issue here. I suspect the issue is that the server has a reference to the original entity when the spectral entity is first spawned and when it's read from NBT, but the client doesn't know anything about it. If you want to sync data from the server to the client when an entity is spawned in the world, you can implement IEntityAdditionalSpawnData in your Entity class. I suggest you use this to send the NBT serialised entity from the server to the client, then deserialise it back into an entity on the client side.
  12. The crash report is the same as before, so it probably wasn't OptiFine screwing things up. I'm not too sure what's causing the error, you should probably report it to the author of ISM.
  13. You should be able to use EntityList#createEntityFromNBT to create an Entity from a compound tag that was previously written to by Entity#writeToNBT . The Entity#isDead field isn't persisted. It's also public, so you can just set it to false when the entity is first reanimated.
  14. The config directory will be in whatever directory Minecraft runs in, the same directory containing the mods directory. This may not be .minecraft. I don't fully understand what you're saying. What's not possible and why is it not possible?
  15. Try removing OptiFine. It may or may not fix the issue.
  16. Call the dead entity Render 's methods from the corresponding methods of your Render , e.g. override Render#doRender to fetch the dead entity's Render and call doRender on it, passing the dead entity as an argument. It may be difficult to create a "spectral" effect works with any entity, since you can't know how that entity will be rendered. I don't know anything about OpenGL, so I can't help you there.
  17. If you want to compile against them, either add them as dependencies in build.gradle (the easiest way to do things if the mod has a Maven/Ivy repository hosted somewhere) or create a libs directory next to build.gradle and put them in there. If you don't need to compile against them (e.g. you only need to do stuff via IMC), you can just put them in the mods directory like you would for normal Minecraft. Recent versions of Forge (1.8.9-11.15.0.1696 and newer) can load SRG named mods in the development environment, so you don't have to use dev/deobf versions.
  18. On the client there's only one World : Minecraft#theWorld .
  19. This is still the same error. You haven't disabled every Thaumcraft addon. Automagy, Thaumic Tinkerer, Magical Decorations and Tainted Magic are still enabled. If you disable these mods and the error persists, try looking for other mods that add crops.
  20. Some mod is sending Thaumcraft an IMC message with an ItemStack that has a null Item (i.e. the mod created an item stack, but didn't specify what it's a stack of). This is message is either telling Thaumcraft to allow golems to harvest a crop or to prevent the Lamp of Growth from growing a crop. Unfortunately the crash report doesn't say which mod sent the message, so you'll have to narrow down the cause yourself based on the information I provided above and report it to the mod's author. First try removing any Thaumcraft addon that adds crops.
  21. I still can't get this working properly. Lex/cpw (or anyone else), would you be able to provide a basic example of this system to demonstrate how it should be used? My latest code is here (using Forge 1.8.9-11.15.0.1718). Manually adding blockstate IDs to GameData.BLOCKSTATE_TO_ID (which I know shouldn't be done) using the vanilla block's ID correctly replaces existing blocks in the world with the new one, but breaks /setblock . When the block is first placed from its item, the block model isn't rendered at all until the block receives an update from a neighbour. If I don't add a substitution for the ItemBlock , the item uses the vanilla model. If I do, it adds a new item and both items have the missing model. I decided to try replacing a basic Item (the stick). The substitution mostly works (the item can be taken out of the creative menu and adds a chat message when right clicked), but the model is broken (it's displaying as the missing model) and crafting it crashes the game with an ArrayIndexOutOfBoundsException from ItemStack#onCrafting because the item doesn't have an ID.
  22. Forge 1.6.4-9.11.1.1345 should work. If you want support for old versions, you can try asking for help in Minecraft Forum's Modded Client Support section.
  23. The same way Minecraft saves your entity to NBT: call Entity#writeToNBT and store the compound tag in your own entity's compound tag.
  24. You really need to read up on the basics of Java, including how arrays work. What you posted won't even compile. You need two fields here: a String array containing the names of both icons (set in the field initialiser) and an IIcon array containing the icons (not set in the field initialiser). In your override of Item#registerIcons , do the following: Set the icon array field to a new array of the same length as the icon name array Iterate through the icon name array, calling IIconRegister#registerIcon for each icon name and storing the returned IIcon in the same index of the icon array In your override of Item#getIconIndex , return the appropriate IIcon from the icon array (i.e. the one at index 0 or 1). Since you only have two icons, you could also use two separate IIcon fields instead of an array.
  25. Slot numbers are 0-based, like most things in Minecraft/Java. 0 is the first slot, 1 is the second. Why are you using the lengths of two unrelated arrays as indexes to your icon array? Are you ever actually initialising the icon array?
×
×
  • Create New...

Important Information

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