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. looks like you're applying yaw and pitch swapped during partial ticks. That is, you're applying a large yaw change to the pitch angle and a small pitch change to the yaw angle. As for how the matrix works, you'll want to read up on projection matricies: https://jsantell.com/3d-projection/
  2. This behavior is the default behavior for items with durability. Actually they disappear when they take damage and are at 0 durability, so you could just deny the usage when the item has 0 remaining durability. Or you could look at the elytra to see how it swaps out the item for a broken version.
  3. This indicates that your DeferredRegister exists in another class. Don't do that. The entire god damn point of the DeferredRegister system was to allow people to register their blocks in static fields. In a single class. There is no registerNoItem() method in this class.
  4. BlockState#get(Property) eg. someBlockState.getValue(RotatedPillarBlock.AXIS);
  5. You don't need a fully qualified name here if you just use an import statement. You need to synchronize your data. Also, use a capability instead of NBTtags. NBT is for saving to disk, Capabilities are for runtime. You aren't null-checking here. If you are absolutely sure your stack will have the capability, use orElseThrow(Exception). If you aren't sure, then use ifPresent(() -> {})
  6. This doesn't work. There is only one instance of your item class, so ALL copies for ALL players will share the same oxidation stage. You need to use Capabilities. Hardness of -1 is unbreakable. Harvest Level of -1 means something else.
  7. Did you re-run the gradle tasks?
  8. This won't work when you compile your mod and put it in the actual game, due to the game being obfuscated. Second, attacking is an AI behavior, you'd need to remove it from the enderman's AI tasks.
  9. 1.16.5 uses Mojang names, the documentation uses MCP names.
  10. Not sure why you're posting here, this is the forum for "I need help making a mod" not the "some mod I have is doing things I don't like."
  11. Oh, also: Because you didn't do this, you had to do this: And call empty methods.
  12. Complain to the author of Total Darkness.
  13. I was absolutely joking. The unsafe package is called "unsafe" because it is not safe to use.
  14. You lack this method: https://github.com/Draco18s/ReasonableRealism/blob/1.14.4/src/main/java/com/draco18s/harderores/block/ore/HardOreBlock.java#L51-L54 I'm not sure what the Mojang mapping name is for it, but you still lack it.
  15. Mojang marks methods as deprecated meaning "do not call this directly, call the BlockState version." It is not a "do not override indicator." There are literally hundreds of posts about it on this forum.
  16. really!? fuck man, replace that entire function with blockIn.getRegistryName().getPath().toUpperCase();
  17. (1) do not use OnlyIn pretty much ever, and never on methods you are creating whole cloth. (2) your getType method is never called (3) your useOn method does a whole lotta nuthin (4) have you looked at the vanilla spawn egg? (5) why are you not extending the vanilla spawn egg?
  18. ...and this class? Also, you know it's spelled "items" with an M right?
  19. None of the code you've shown here is registering an item. I also don't know why you wrapped DeferredRegister.create in a function with a convoluted signature rather than just going ENTITIES = DeferredRegister.create(ForgeRegistries.ENTITIES);
  20. I read that like I read this: import sun.java.misc.unsafe
  21. Chunk generation happens on a separate thread, so the IWorld is all you're going to get. You cannot access the main server world yet, both because (a) it might not exist and (b) it wouldn't be thread safe.
  22. It's probably in the LivingEntity code. Basically rather than checking if the entity's center is over a block, it checks all four corners of the entity's bounding box.
  23. I knew one existed, just didn't know the name.

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.