Jump to content

Make a block delete water 1.15.2


LostALifeGaming

Recommended Posts

Hi im very new to forge mdk and have never done java before so im self teaching.

 

Im making a mod that provides a drain and when placed will over time delete water source blocks around it. I want it to delete the water from the top down. So if you have a room full of water it will read the top layer that has water in it and count how many water source block are on that y plane. It will the take the amount of water blocks and times it by something like 3 so that for each block of water in the room, 3 seconds is added to the amount of time required to pass before the water in that y layer is removed.

 

I am unsure how to make the block replace water with air or what function to use. Right now i just want to focus on getting the block to delete water. 

 

Sorry if my explanation is unclear.

Thanks for the help.

Link to comment
Share on other sites

58 minutes ago, LostALifeGaming said:

have never done java before

Do java first, then come back and try to do modding. Learning both at the same time is a terrible way to start programming.

59 minutes ago, LostALifeGaming said:

I want it to delete the water from the top down. So if you have a room full of water it will read the top layer that has water in it and count how many water source block are on that y plane

Highly ambitious and also problematic. Unloaded areas will be affected and it will be editing a wide range of blocks like a multipart. Since it's also not in a standard shape, it becomes even more of an issue. There are a few way I can think of though, but that's regardless of any lag.

1 hour ago, LostALifeGaming said:

I am unsure how to make the block replace water with air or what function to use.

World#setBlockState or World#destroyBlock should do nicely.

Link to comment
Share on other sites

1 hour ago, ChampionAsh5357 said:

Do java first, then come back and try to do modding. Learning both at the same time is a terrible way to start programming.

I understand what you mean but whenever i have come across a term i dont understand (I know basic C# so im not completely new to programming) i end up searching it up and most of the time that works for me and i dont mind the challenge of learning java while making the mod. If anything it means when i learn something new i can remember it by what i used it for.

1 hour ago, ChampionAsh5357 said:

Highly ambitious and also problematic. Unloaded areas will be affected and it will be editing a wide range of blocks like a multipart. Since it's also not in a standard shape, it becomes even more of an issue. There are a few way I can think of though, but that's regardless of any lag.

Ok thanks for telling me, what do you suggest would be a resonable way to do it?

1 hour ago, ChampionAsh5357 said:

World#setBlockState or World#destroyBlock should do nicely.

Ok thanks but where would this need to be. Would it sit in a class for when the block is placed or does it passively run in all instances of the block. 

Link to comment
Share on other sites

3 minutes ago, LostALifeGaming said:

Ok thanks for telling me, what do you suggest would be a resonable way to do it?

There's not really a reasonable way to do it. The bigger the water size, the more checks needed and the greater amount of lag on the system. There's no real optimization in something like this other than caching block positions which are water.

4 minutes ago, LostALifeGaming said:

Ok thanks but where would this need to be.

Probably in a tile entity of some sort since you require some kind of timing feature.

5 minutes ago, LostALifeGaming said:

i dont mind the challenge of learning java while making the mod

Less of a challenge and more of falling into bad habits looking at very problematic code. Hence why we suggest not starting it that way as it only detriments your learning.

Link to comment
Share on other sites

50 minutes ago, ChampionAsh5357 said:

Less of a challenge and more of falling into bad habits looking at very problematic code. Hence why we suggest not starting it that way as it only detriments your learning.

Ok i will have a look into java begginer tutorials. 

 

50 minutes ago, ChampionAsh5357 said:

Probably in a tile entity of some sort since you require some kind of timing feature.

Thanks i'll have a look into tile entity development :)

 

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.