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.

Featured Replies

Posted

Hi!

 

As you might know, almost all methods in Block/Item classes are public. Although, many of them in reality provide only shortcut overloads, like "idDropped", which is called only by other Block's method that returns actual list of ItemStacks to drop.

So my question is, is there some list of methods that are part of true public layer, i.e. they're called by Minecraft engine? This would make life much easier, so you don't need to override tons of aux methods that won't be called anyway.

 

Thanks.

 

EDIT: fixed terms; not overload, override of course

__          ___    _      _______

\ \        / / |  | |  /\|__  __|

  \ \  /\  / /| |__| |  /  \  | | 

  \ \/  \/ / |  __  | / /\ \ | | 

    \  /\  /  | |  | |/ ____ \| | 

    \/  \/  |_|  |_/_/    \_\_| 

                                   

                                   

how to debug 101:http://www.minecraftforge.net/wiki/Debug_101

-hydroflame, author of the forge revolution-

I hope you meant "overriding" instead of "overloading".

Overloading wouldn't do anything in most cases, since you can't tell Minecraft to call an overloaded method.

Overriding on the contrary, allows many things, is commonly the easiest way and one of the basic principle of Java.

I can't believe you are complaining about overriding.

 

If the ModingAPI was perfect, you would only have to override.

  • Author

@GotoLink Thanks for pointing typo. Of course, override. Fixed OP.

 

Although, the question persists. Is there any list of methods that are part of true public layer, excluding ones that are public and used only by Block/Item classes themselves?

I think you should be more specific.

I am sure you already searched for "public" keyword yourself, or used call hierarchy to found where calls to your method(s) of interest are mainly done.

In the most general of case, I would say that what you are searching doesn't exist.

There is no "public class CoreEngine ..."

  • Author

Okay, from your responses I understood that there's no such thing.

I thought that 'public layer' is a rather stable term. My bad then.

Anyway, my initial question arose from multiple methods in Block class that are declared as public and used only internally.

Much of them are used by other Classes like the world section of minecraft during the rendering and gameplay process. They need to be public to be visible for these classes. You can find them by searching with eclipse for them. You can also override them to change their behaviour.

PM's regarding modding questions should belong in the Modder Support sub-forum and won't be answered.

  • Author

Not all of them actually. That's the source of my initial confusion.

 

I've been imagining how pretty this API could be revamped and mapped onto component-based model. Like add Collidable component to block to make it collidable. Ah, dreams, dreams :) It would require to write Minecraft almost from zero though :)

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

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.