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. The reason block container doesn't work is because it overrides getBlockModelType() to make the block invisible.
  2. Well, the problem here is that you blindly pick a block below the surface. If that block isn't air, you don't generate.
  3. *cough* 1.12 *cough*
  4. You just need to tell the oredictionary about your block, vanilla items (like wooden axes) already have oredict recipes.
  5. "Subworlds" is not in the code as anything. It's a notion.
  6. registry.registerAll( oreSapphire, oreSapphire.setRegistryName(oreSapphire.getRegistryName()) ); This is equal to block.setRegistryName(block.getRegistryName()) and wrong. You should be doing item.setRegistryName(block.getRegistryName())
  7. It doesn't work that way. There's an older mod that does what you're looking for and it uses subworlds (essentially a second World). Worlds don't collide with other Worlds though. And no, I don't know how to do it.
  8. Then look for ONE air block.
  9. Or as I like to think about it, canInteractWithThisEntity If you can't interact, then you can't view, viewing is interaction.
  10. And specifically, the LivingHurtEvent only runs server-side.
  11. user action -> entity on server gets awake -> send packet -> packet handler sets the same value on the client entity -> renderer reads the data in the entity when rendering the model
  12. You aren't registering am item model anywhere that I can see
  13. Size isn't important. Capabilities is about compatibility and accessibility.
  14. Random question: why do uou pass both message (which you use to pull message.awake) and message.id?
  15. Height had nothing to do with the stated problem. It is X and Z that need to be offset.
  16. Your packet doesn't do anything when it arrives. void proccessMessage(PacketReturnAwaken message) { try { }catch(Exception e) { Utils.getLogger().catching(e); } } So blank, much void, many noop. Wow. Additionally, your packet doesn't have any way of finding the entity it needs to awaken.
  17. Aaannnddd...The "old"system still exists. Capabilities are the replacements for the massive interface list, implements IPowerUser, IMechanicalPower, IRedPowerConsumer, IInventory, ISidedInventory, IButterworthPillbox, IForestryFishnet, IRotaryBanana.... It isn't a replacement for data storage.
  18. If you ACTUALLY register models on the server it will crash, yes.
  19. Probably because ModelLoader itself (while in a client package) isn't marked SideOnly, but its parent class is. This means the JVM can find ModelLoader and the server is fine. But! There's no guarantee that that won't change suddenly and unexpectedly in the future. You're safest assuming that client stuff only happens on the client than saying "works for me." Because at some point, it suddenly won't, and you won't know why.
  20. How equal are item stacks? Item: yes Metadata: maybe (tools vs. dye) Stack size: unlikely (but maybe you do care, eg. recipes) NBT data: sometimes (depends on the item and the NBT tag) Ergo you need more than one way to compare.
  21. That has nothing to do with it. Pretend you are the JVM. When you load a class you need to check that the class contains valid code. Ie that every referenced class with its already loaded or can be found and loaded if it is needed. The JVM cannot predict whether or not a given method will execute, so it assumes that all of them will at some point. The JVM scans through your class, finds a reference to a ModelRegistryEvent, attempts to locate this class, and fails to do so.
  22. Probably create a custom IRecipe implementation (you can subclass the existing ones).
  23. The magic of packets

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.