Skip 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.

Draco18s

Members
  • Joined

  • Last visited

Everything posted by Draco18s

  1. If a system ever says it can't find a file, but you know it's there, always always always look for typos.
  2. Look close. Also ModelLoader.setCustomModelResourceLocation(item, meta, block.getRegistryName(), variant) is sufficient.
  3. No, that's controlled by the IBlockState implementation. The blockstate file is only used to determine the block's model for rendering. If Minecraft can't load the blockstate file, it will throw several errors, which are they themselves captured and add on another error. Hence multiple "Caused by..." lines. The originator in this case is the missing file. Show a screenshot of the directory in a File Explorer window.
  4. Caused by: java.io.FileNotFoundException: crl:blockstates/colored_redstone_lamp.json
  5. Thanks for the exact name Choonster, I couldn't remember and wasn't in a position to look it up.
  6. setNoPushMobility() prevents pistons from pushing it. If you want your custom material to push players around like water, you need to replicate the behavior found in the Entity classes (it's kind of split) into an entity tick event handler.
  7. You haven't set the block's material to Material.WATER. Without that you don't get any of the standard water behaviors, as they aren't controlled by the block or fluid, but by the Entity class.
  8. There's an event for this, MissingMappingEvent? Something like that. You don't change the registry name at runtime, you just give it the new name and then when the event is fired (which will be fired for any missing mapping) you can hook in go "oh, that name, that's X now" and Forge will update the old stuff to the new.
  9. You don't. You use a container, the container specifies the slots and the gui screen (the super class) uses the supplied container to draw them.
  10. Sure, I get that. I haven't done anything with dynamic text, so I can't offer any insights. For me and what I was trying to do, I actually wanted all of those models so that more could be supplied outside my own mod. One of my companion mods does this: https://github.com/Draco18s/ReasonableRealism/blob/master/src/main/resources/assets/harderfarming/models/item/mold_butcherknife.json Different mod (albeit using the same base library), that has a model and texture for that item without needing to do anything other than supply the recipe for that particular combination. The IRecipe is supplied by the library, but because it's just NBT data, it would be possible for another mod to create the item without using my library.
  11. For reference, here's an example of using ItemMeshDefinition: https://github.com/Draco18s/ReasonableRealism/blob/master/src/main/java/com/draco18s/industry/item/ItemCastingMold.java#L80 The item selects between different "states" based on a template item: it gets that template item's name, strips off some unnessessary bits (it uses them elsewhere, so they're still saved), and then looks for an item model based on that name. Those different models then supply a different texture.
  12. In one direction. As Choonster said, the server controls the state of the game and item NBT is considered "state information." So yes, NBT is updated automatically and the server's copy overwrites the client's.
  13. You're not doing anything to get that information into the server list. You're setting a name and address (twice, I might add). But that's it.
  14. Top of the file: version = "XXX" group= "YYY" archivesBaseName = "ZZZ"
  15. It's handled by the gradle compile process.
  16. https://www.khronos.org/opengl/wiki/Primitive#Quads
  17. 3D glow is just achieved by drawing lines using quads.
  18. https://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i-fix-it private ServerData pokeServerData; You never set this to anything.
  19. or super.drawGuiContainerBackgroundLayer(...)
  20. Those ones are used by Forge to determine the load order. Not putting that may lead to your mod loading before your dependency, which would be bad.
  21. Yes, both use the modid where I put the ellipses and would be equivalent to required-after. The mcmod.info file is not actually used by Forge for the most part, but is supposed to contain the same info as the @mod header so that websites like Curse can read the information.
  22. You can't exceed 1x1.5x1, that's effectively a hard limit imposed by Minecraft, any larger and you will get unexpected behavior.
  23. Only if you want to either: a) test in the development environment b) using an exposed API You need to add dependencies = "required-after:..." or dependencies = "after:..." depending on hard or soft dependencies ("after" just loads your mod later, "required-after" means that the other mod MUST be present or your mod can't load). Technically, nothing, but you should add a "dependencies": ["..."] for any hard dependencies If your not using an exposed API, nothing. Otherwise find and follow the directions in the dependencies block. The former uses if(Loader.isModLoaded(...)) to control logic (e.g. recipes) of itself. The latter uses API calls. For example: this. See above The @Optional annotation can allow you to move a hard-dependency to a soft-dependency. The only example I have is from 1.7.10 and I think the package changed.

Important Information

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

Account

Navigation

Search

Search

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.