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. Vanilla's implementation is in various places in ModelBakery (look for uses of ModelBakery.MODEL_GENERATED), but Forge replaces this with ItemLayerModel.
  2. This isn't possible in 1.8. Update to 1.11.2+ (ideally 1.12.2) and subscribe to ClientChatEvent.
  3. To specify NBT for an ingredient, use an ingredient of type minecraft:item_nbt and specify the NBT data in the "nbt" property. To specify NBT for a result, simply specify the NBT data in the "nbt" property. You can see an example of a recipe that results in a spawner here.
  4. So that Baby Zombies drop roughly 2.5x more experience from the super call in EntityZombie#getExperiencePoints. If you mean assets/<mod_id>/loot_tables/..., then yes.
  5. Though it should be noted that this affects the loot table globally rather than for just a single entity.
  6. You can set the EntityLiving#deathLootTable field using reflection to change an entity's loot table. You can also subscribe to LivingDropsEvent to change the item dropped by an entity. You can set the EntityLiving#experienceValue field using reflection to change the amount of experience dropped by an entity, though some entities set this field after the initial spawn (e.g. Baby Zombies do this on death). You can also subscribe to LivingExperienceDropEvent to change the amount of experience dropped by an entity.
  7. I didn't know that, because you haven't said anything about that before now. Why do you have two copies of the Forge JAR? You only need one. Add quotation mark characters (") directly before and after the JAR file name.
  8. You should be using Java 8, not Java 7. Unless you need Java 9 for non-Minecraft things, you should uninstall that as well. You can either specify the full path to java.exe in the command or remove the other versions of Java form the PATH environment variable and add Java 8.
  9. Either rename the JAR to remove the " (2)" from the name or wrap the name in quotation marks in the batch script. Once you've done that, either run the command or the batch script.
  10. Change minecraft_server.1.10.2.jar to the name of the Forge JAR file.
  11. You're using Java 9, which isn't supported by Forge. You need to use Java 8 instead.
  12. You're launching minecraft_server.1.10.2.jar, which is the Vanilla server. You need to launch the Forge JAR instead.
  13. There are, added in this PR specifically for situations like Chisel and CTM. tterag1098 (the primary maintainer of Chisel) said here that they'd switch to this system for CTM as soon as possible, but it appears that this has been forgotten. I've reported this to Chisel here.
  14. That doesn't answer my question completely. It's possible that the resource pack replaces the minecraft:stone blockstates file or the minecraft:block/stone and minecraft:block/stone_mirrored models with models that use a different texture name rather than replacing the minecraft:blocks/stone texture.
  15. This is because Chisel doesn't actually declare CTM as a dependency, it runs some client-only code in preInit to detect whether CTM is present and display the Missing Mods screen if it isn't. I believe it does this because CTM is only required on the client and not on the server.
  16. Does the resource pack definitely provide the minecraft:blocks/stone texture?
  17. I believe so, yes. I'm not sure if it makes much difference, Minecraft uses Grass everywhere and the game still manages to run. You can also use a multi-layer model (forge:multi-layer) that renders a model with the opaque base texture in the SOLID layer and another model with the transparent overlay texture in the CUTOUT_MIPPED layer; but this is probably overkill for a simple model like this. This requires overriding Block#canRenderInLayer to return true for the layers that the block can render in.
  18. Use ItemStack#isEmpty to check if an ItemStack is empty.
  19. Minecraft renders blocks with transparency disabled by default, you need to tell it to render your block in a different layer to use transparent textures. Do this by overriding Block#getBlockLayer to return CUTOUT, CUTOUT_MIPPED, or TRANSLUCENT as appropriate. The Grey Ghost explains the difference between the layers here. Grass (BlockGrass) uses a model like this with CUTOUT_MIPPED.
  20. MathHelper.wrapDegrees looks like the method you want. I discovered this by opening the MathHelper class and looking for a method that appeared to clamp an angle. I probably could have used MCPBot to find the new name of the method as well.
  21. Use GameRules#getString, GameRules#getBoolean or GameRules#getInt to get a String, boolean or int value respectively from a GameRrule. You should get the GameRules instance from the player's World, not the World for dimension 0 (which is what MinecraftServer#getEntityWorld returns).
  22. The Ender Pearl item does something like this, look at how it's implemented.
  23. It's a plain text file, you can just remove the line with the "parent" property.
  24. Using an IStateMapper to change the property order will mean that you can't use Forge's blockstates format to its full extent, you'll need to use fully-specified variants like in the basic Vanilla format. You can also use an IStateMapper to create property strings in the regular format when registering your models, like I do here, here and here.
  25. The forge:ore_dict ingredient doesn't accept a data property, because it doesn't make sense to specify the metadata of an arbitrary list of items. To allow a hammer with any damage value to be matched by the hammer ore name, you need to register the hammer to the Ore Dictionary using OreDictionary.WILDCARD_VALUE (32767) as the metadata value. As an alternative to using the ore dictionary, you can use a compound ingredient anywhere you'd use a regular ingredient. Simply use an array of ingredient objects in the JSON instead of a single ingredient object. This will create an ingredient that matches any of the items matched by its child ingredients. If you need to use this compound ingredient in multiple places, you can specify in _constants.json like this and reference it in a recipe like this.

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.