Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Choonster

Moderators
  • Joined

  • Last visited

Everything posted by Choonster

  1. I don't know of any programs that do that, but Forge's blockstates format eliminates the need for a dedicated block/item model file. Just specify the base model (e.g. minecraft:cube_all ) and textures in the "defaults" block and provide a "normal" and "inventory" variant (assuming your block doesn't have any properties). Minecraft will already use the "normal" variant to render the block in the world and Forge allows item models to be loaded from variants of blockstates files (e.g. the "inventory" variant). You can see a basic example of this here. You can see a more complex example here, the model and texture are controlled by separate properties and each metadata value of the item uses the corresponding variant of the blockstates file (registered here).
  2. Models created for 1.8 will still work in 1.9+ (the format itself hasn't changed that much), you'll probably just need to fix the display transformations (i.e. the "display" block). MrCrayfish's Model Creator does a decent job, although it's a bit limited (it will only let you specify a single decimal point of precision for most dimensions/coordinates). You can also use a mainstream 3D modelling program (e.g. 3ds Max or Blender) and export the model in OBJ/B3D format, these can be used anywhere you'd use a JSON model.
  3. Ah, I was not familiar with that notation, so I simply thought it was a weird way of typing ModelManager.getModel(). Thus my question becomes, how would I obtain an instance of ModelManager? My intuition says to not simply create a new instance of ModelManager but use an existing one, but I have no idea where to look... Use your IDE to find where ModelManager is instantiated and where the instance is stored.
  4. Is your mcmod.info a valid JSON file? Are there any errors in the log telling you why it failed to load? Upload your mcmod.info and FML log (logs/fml-client-latest.log) to Gist and link them here.
  5. There is no Block#blockID field in 1.7.10 since IDs are automatically managed. Use World#getBlock and compare the Block instances directly with == . There is no initCreature method in any subclass of Entity . Were you looking for EntityLiving#onSpawnWithEgg ? Always annotate override methods with @Override so you get a compilation error if the method doesn't actually override a super method.
  6. The Modder Support section is for mod developers, but this thread would fit the General Discussion or Minecraft General sections (and I've requested it be moved to one of them). If you want help with the crashes, post in the Support and Bug Reports section. Make sure you read the EAQ before posting.
  7. Most Forge mods are universal, which means the same mod runs on (and is required on) both the client and server. The exceptions are things like HUDs/minimaps (usually client-only) or admin tools like permission management/backup (usually server-only). Single player still has a server running in the background, so most server-only mods will still work with it. Refer to the mod's description/installation instructions to see which sides it runs on.
  8. Override TileEntity#shouldRefresh to return oldState.getBlock() != newSate.getBlock() . This way the TileEntity will only be recreated when the Block changes. The commented out methods aren't outdated, they're for 1.9.4. If the client needs some data from the TileEntity to render your block, send it in the update (a.k.a description) packet. In 1.9, override TileEntity#getDescriptionPacket to write the data that needs syncing to a compound tag and then create and return an SPacketUpdateTileEntity with the position and NBT. Override TileEntity#onDataPacket to read from the packet's NBT. In 1.9.4, override TileEntity#getUpdateTag to write the data that needs syncing to a compound tag and return it. Override TileEntity#getUpdatePacket to create and return an SPacketUpdateTileEntity with the position and update tag. Override TileEntity#onDataPacket to read from the packet's NBT.
  9. The confirmation GUI is less detailed than the log message, it just tells you the total number of missing blocks and/or items and which ones are missing without telling you what each missing thing is. In this case, it's just one item ( minecraft:lit_furnace ) and no blocks missing. Forge saves a list of every block/item name and the corresponding numeric ID with the world. It will detect when a block/item no longer exists, even when it's not used anywhere. If you don't have any Lit Furnaces in item form, nothing will happen to your world. The Lit Furnace block still exists, so furnaces in the world won't be affected.
  10. Yes, you can add it as a dependency through Gradle or put it in the mods folder (but not both). Since you're using 1.7.10, it must be a dev/deobfuscated build of the mod; unless you're running the dev version of CodeChickenCore, which will deobfuscate mods at runtime. In 1.8+, ForgeGradle can deobfuscate dependencies on disk. In 1.8.9+, FML can deobfuscate mods at runtime; completely removing the need for dev builds.
  11. tiningot is an ItemStack and there's no ItemStack(ItemStack) constructor. Use tiningot directly instead of trying to create a new ItemStack from it. Creating a ShapedOreRecipe without a pattern or input will crash the game.
  12. GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Items.bucket), "I I", " I ", 'I', "ingotIron"))
  13. You need to create the ShapedOreRecipe with the result, pattern and inputs and then call GameRegistry.addRecipe(IRecipe) to add it.
  14. 1.9 removed the item form of the lit furnace because it's not meant to be used by players, only the furnace itself should switch to that block. This is just telling you that the item no longer exists, blocks in the world won't be affected.
  15. If it's any consolation, the method doesn't exist in 1.9+.
  16. If you look at the implementation of EntityPlayer#getInventory , you'll see that it actually returns the player's armour inventory rather than their main inventory. Use EntityPlayer#inventory or PlayerMainInvWrapper . In 1.9.4+, call ICapabilityProvider#getCapability on an EntityPlayer with CapabilityItemHandler.ITEM_HANDLER_CAPABILITY and a vertical EnumFacing to get an IItemHandler wrapper of their main inventory or a null EnumFacing to get an IItemHandler wrapper of their whole inventory (main, armour and off hand).
  17. I would recommend posting your code, you may have made a mistake somewhere without realising it.
  18. I installed the mods again with the universal builds but my minecraft crashes with a report Post the crash report.
  19. You downloaded the source code of the mods, hence the src classifier. Download the universal builds instead.
  20. EnumHelper.addArmorMaterial was briefly broken in 1.9.4, but it was fixed a while ago.
  21. IForgeRegistryEntry.Impl#setRegistryName(String) automatically prefixes the specified name with your mod ID, you don't need to add that manually.
  22. sorry what do you mean? You assign a new instance of Fluid to MODED_Blocks.acidFluid and never use your acidFluid class. This Fluid instance is never registered, causing the crash.
  23. To elaborate on what diesieben07 said: You have an acidFluid class that registers itself, but you create an instance of Fluid instead of this class.
  24. You can see how I create my mod's fluids here. I register their models here, which uses this blockstates file. If you're making a fluid tank of some sort, the previous fluid handler API has just been replaced by a capability-based system. See this commit for more details.

Important Information

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.