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.

Draco18s

Members
  • Joined

  • Last visited

Everything posted by Draco18s

  1. Btw, your try...catch block can be simplified by using a multicatch. Try {...} catch(IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { ... } I also don't like the "just copy this class" but for what you're doing (single keyword triggers with no subkeys (e.g. "saw_bird" not "saw_n_birds","count: 10") and how complicated and how similar ICriterion triggers are, I suppose it's fine. I would, however, point out the test() and trigger() portions of the code so that readers know what to look for when they want to do something more complicated.
  2. There aren't "new variants"
  3. item.setUnlocalizedName(item.getRegistryName()). Magic. There's nothing wrong with in-lining it, although I do agree about keeping things clean.
  4. Please do not use@SuppressWarnings("deprecation") Deprecated means "do not call" not "do not override." It is safe to override these methods, however if you want to know whether or not a given block has these features, you should call IBlockState.<whatever> instead.
  5. All "feeding" the animal does is call setInLove()
  6. Post your block class.
  7. Both of these are possible through the use of Container Items. Look at the milk bucket.
  8. Sure @LexManos, here's one. It's not recipes, its advancements, but still, it's something JSON cannot do currently (requires reflection hacking to register new ICriterionTriggers):
  9. Your post made no sense. None.
  10. You do know about getEntitiesWithinAABB(EntityItem.class, AABB) don't you?
  11. Why the fuck are you comparing unlocalized name strings? Jesus christ, itemStackIn.getItem() == MainMod.SyringeEmpty You do know what ActionResult<ItemStack> means, yes? It means that the item stack that is a part of the ActionResult return is the item that gets put into the player's active inventory slot... As for your asked question, you're doing something really, seriously wrong. I need to see more code, probably your BasicItem class and both syringes in completion.
  12. Do what crops do. Random update ticks.
  13. You can create your own triggers: https://github.com/Draco18s/ReasonableRealism/tree/1.12.1/src/main/java/com/draco18s/hardlib/api/advancement You still need to register them: https://github.com/Draco18s/ReasonableRealism/blob/1.12.1/src/main/java/com/draco18s/hardlib/HardLib.java#L46 But it will take reflection: https://github.com/Draco18s/ReasonableRealism/blob/1.12.1/src/main/java/com/draco18s/hardlib/EasyRegistry.java#L210
  14. Must only be removed recipes then (e.g. I removed 3 wheat for bread and replaced it with 3 flour for bread, wheat requiring to be milled into flour). Still a warning worth giving. Pretty much. Any object given a domain other than the domain being processed will log that warning. The substitution system has always done this.
  15. 1) Don't know, probably 2) Yes, but that just means it isn't shown in the recipe book unless game settings are changed to make unknown recipes uncraftable 3) Don't know 4) They should be convertible, even if you have to write custom conditions for them. I haven't really messed with it at all 5) Relevant, but if you remove / replace recipes you need to provide a new advancement to unlock them and the original advancement cannot be killed and will throw an error when it is deserialized. This error cannot be prevented, as it happens during the deserialization process.
  16. Ok, so your wands need the values, which I'd even said: But the rest of your items don't. You also don't need to supply "ground" (etc.) overrides if they're the same, you can just omit them.
  17. Read point #2: Use item/generated not builtin/generated. Look at this. LOOK AT IT. LOOK AT HOW GLORIOUSLY SIMPLE IT IS.
  18. OH FOR FUCK'S SAKE DO NOT USE getUnlocalizedName() HERE. THIS IS WHY WE HAVE REGISTRY NAMES AND getRegistryName()! Not to mention that in 1.12, GameRegistry.register(...) is private (use the RegistryEvent.Register<Item> event) and GameRegistry.registerItem() has been removed as it was deprecated back in 1.10.2 in favor of GameRegistry.register(...)! Also, I see no point in using ObjectHolder for your own items. None what so ever. You're already creating them, just stuff them into the static field yourself. ObjectHolder exists to get other mod's items without needing some kind of API or using getValue().
  19. Forge Energy requires that you do a lot of stuff yourself, but it is essentially the same as Redstone Flux (IIRC, FE was inspired by RF). TL;DR: switch to Forge Energy.

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.