Jump to content

Java Class Inheritance


Ron_Parker

Recommended Posts

I've been working on my mod for awhile and i'm trying to add a custom slab but I can't get the MaterialColor  and Material to work because it says they're private. Here's my code:

 

Java Class:

public class CoolSlab extends SlabBlock {
    public CoolSlab() {
        super(new Properties(Material.IRON, MaterialColor.AIR).hardnessAndResistance(12, 40).harvestTool(ToolType.PICKAXE).sound(SoundType.GLASS));
    }
}

 

Deferred Registry:

public static final RegistryObject<Block> COOL_SLAB = BLOCKS.register("cool_slab", CoolSlab::new);
Edited by Ron_Parker
Link to comment
Share on other sites

1 hour ago, Ron_Parker said:

super(new Properties(Material.IRON, MaterialColor.AIR).hardnessAndResistance(12, 40).harvestTool(ToolType.PICKAXE).sound(SoundType.GLASS));

Don't hardcode a parameter, just call the superclass directly. This is a waste of an object and resources.

1 hour ago, Ron_Parker said:

MaterialColor  and Material to work because it says they're private.

They are definitely not private. They are static final fields accessible to any who calls it. You might want to try setting up your workspace again.

Edited by ChampionAsh5357
Link to comment
Share on other sites

Examine existing usages using your IDE? Right click -> Find all References

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

You are messing up in many fundamental java principals. 

Guys, please don't give him copy paste code as there are many out there he could find if he cared.

The example in DeferredRegister shows what you should be passing in.

Which is a Supplier<Block>

That supplier is typically created via a lambda, but it doesn't have to be, this is a implementation detail that's completely up to you.

That supplier has to return a NEW instance of a Block, or subclass of Block.

To create a Block instance you need the Properties instance.

Which has a private constructor. So you need to figure out if there are any functions you can access that create a new instance of that class.

This is where your IDE comes in, just like Draco said, go to the constructor, right click, find references.

The method you should all should be really obvious.

I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Consider supporting the team on Patreon

Link to comment
Share on other sites

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

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

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