Jump to content

Calculate size of worldborder based on zone center and map center?


Recommended Posts

Posted (edited)

Hello everyone, I'm attempting to create shrinking zone system (like pubg and other BRs). I'm working on way to control it throught commands and in order to save it all I've made capability just for that. It all works fine.

When creating the map you have to specify the map center and map size. When you run command to start the game, center of world border is calculated based on these values. But I need to have dynamic size of the world border to prevent it blocking some parts of the map. I have tried few things, but nothing was precise. So I am asking the Minecraft community if somebody is more experienced with all this maths stuff to help me with this. I want to be able to have always 2 sides of the map inside the border (I know I can't have all on square map with offset world border - so the other 2 sides of the border will be longer than the map size, but that doesn't matter).

So what I have tried (the part of the code responsible for calculating the border size and center) :

Spoiler

	private void startGame(IGameData data, World world)
	{
		WorldBorder border = world.getWorldBorder();
		BlockPos center = data.getMapCenter();
		int size = data.getMapSize();
		
		BlockPos zoneCenter = new BlockPos(generateZoneCenterX(center, size), 256, generateZoneCenterZ(center, size));
		
		while(world.isAirBlock(zoneCenter))
		{
			zoneCenter = new BlockPos(zoneCenter.getX(), zoneCenter.getY() - 1, zoneCenter.getZ());
			if(world.getBlockState(zoneCenter).getMaterial().isLiquid())
			{
				Pubgmc.logger.info("Generating new zone center...");
				zoneCenter = new BlockPos(generateZoneCenterX(zoneCenter, size), 256, generateZoneCenterZ(zoneCenter, size));
			}
		}
		
		// ATTEMP 1
		/*int rangeX = Math.abs(center.getX() - zoneCenter.getX());
		int rangeZ = Math.abs(center.getZ() - zoneCenter.getZ());
		double totalDistance = Math.sqrt(sqr(rangeX) + sqr(rangeZ));*/
		
		//ATEMP 2
		int totalDistance = Math.abs(center.getX() - zoneCenter.getX()) + Math.abs(center.getZ() - zoneCenter.getZ());
		
		border.setCenter(zoneCenter.getX(), zoneCenter.getZ());
		border.setTransition(size + totalDistance);
	}

 

 

 

GitHub

Edited by Toma™
Posted

I would recommend writing out what you’re trying to do on paper (or in a image editor on your computer) and finding the maths you need to understand that way

About Me

Spoiler

My Discord - Cadiboo#8887

My WebsiteCadiboo.github.io

My ModsCadiboo.github.io/projects

My TutorialsCadiboo.github.io/tutorials

Versions below 1.14.4 are no longer supported on this forum. Use the latest version to receive support.

When asking support remember to include all relevant log files (logs are found in .minecraft/logs/), code if applicable and screenshots if possible.

Only download mods from trusted sites like CurseForge (minecraft.curseforge.com). A list of bad sites can be found here, with more information available at stopmodreposts.org

Edit your own signature at www.minecraftforge.net/forum/settings/signature/ (Make sure to check its compatibility with the Dark Theme)

Posted
On 2/10/2019 at 12:36 PM, Toma™ said:

specify the map center and map size. When you run command to start the game, center of world border is calculated based on these values

So, uh, center = center and size = size? 

Not much to compute there.

On 2/10/2019 at 12:36 PM, Toma™ said:

But I need to have dynamic size of the world border to prevent it blocking some parts of the map.

So you need to move or resize the world border based on the players location? 

Well. Move the center to the player's location and set the size to some value while they're inside the unrestricted region. ..

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.

Posted
47 minutes ago, Draco18s said:

So, uh, center = center and size = size? 

Not much to compute there.

So you need to move or resize the world border based on the players location? 

Well. Move the center to the player's location and set the size to some value while they're inside the unrestricted region. ..

I think you misunderstood my post a bit.

What I meant is this:

- I have map where I defined the map center (zone minimal offset) and map size (zone maximal offset). Then random zone center is calculated based on these values -> Zone center is between these 2 points.

- The default zone size is the map size multiplied by 2

- But since the map is being offset from the map center, the zone corners don't cover all maps corners (obviously). So I'm looking for a way to calculate the new zone size based on the map size*2 and the zone's offset from the map center. I've been trying some triangle math here, but that didn't work. I'm trying to always have 2 corners of the zone cover 2 corners of the map and the other 2 zone corners to stick away from the map. So far I managed to get it to work with 1 side of the zone, but now I'm completely lost.

 

I will post GitHub link to my first post with updated code & my attempts.

Posted

As I'm thinking about it, I won't be able to have 2 corners inside the map because I have 2 squares and one of them is misplaced from the center, so having making this would be impossible right?

Posted
3 hours ago, Toma™ said:

But since the map is being offset from the map

You have used this word twice with two different meanings. I cannot follow your question.

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.

Posted
On 2/11/2019 at 12:38 PM, Cadiboo said:

would recommend writing out what you’re trying to do on paper (or in a image editor on your computer)

I would recommend posting a visual to describe your problem

About Me

Spoiler

My Discord - Cadiboo#8887

My WebsiteCadiboo.github.io

My ModsCadiboo.github.io/projects

My TutorialsCadiboo.github.io/tutorials

Versions below 1.14.4 are no longer supported on this forum. Use the latest version to receive support.

When asking support remember to include all relevant log files (logs are found in .minecraft/logs/), code if applicable and screenshots if possible.

Only download mods from trusted sites like CurseForge (minecraft.curseforge.com). A list of bad sites can be found here, with more information available at stopmodreposts.org

Edit your own signature at www.minecraftforge.net/forum/settings/signature/ (Make sure to check its compatibility with the Dark Theme)

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



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • My friends and I are playing a modified version of BMC4 and we're noticing stuff like passive mobs. (I think) like creatures/animals from Alex mobs, naturalist, let's do nature and even vanilla MC (sheep, cow, pigs, chickens, horses, donkeys) don't really spawn in, unlike the sea creatures and hostile monsters spawn in just fine and normal numbers. Here is a mod list from a crash report: https://pastebin.ubuntu.com/p/K9vJxxx6n4/ Just a quick copy and paste of the mod list from an unrelated crash report If anything please let me know if I should post pics of the mods from my mods folder I want to know how to increase their spawn rate/amount and if there are any mods that are causing the scarce appearances of these mobs
    • I'm locally hosting a server and when Connecting to it Me (and my friends) get disconnected with the Warning:  [00:55:21] [Server thread/INFO] [minecraft/ServerGamePacketListenerImpl]: butterrocker lost connection: Disconnected [00:55:21] [Server thread/INFO] [minecraft/MinecraftServer]: butterrocker left the game [00:55:21] [Server thread/WARN] [minecraft/Connection]: handleDisconnection() called twice Server latest.log Client latest.log This server is hosted locally, Minecraft ver 1.20.1 and forge ver 47.3.22 I can connect the the sever just fine locally, but when connecting to the IP Others and I cannot connect, I've changed "-Dfml.readTimeout=240" from 30 to 240, to no affect.  I've removed the client side config files, to No avail, Checked mod vers by moving around the files, still nothing. I'm at a loss currently. Yesterday 1/13/25 everything worked fine and My friends and I could all connect, but now we cannot. Any assistance would be greatly appreciated.  If any further information is required please let me know, Thanks!
    • pick a block to be the base. get the location of that block when placed use setPlacedBy to place the other blocks   when any of the blocks are delete again get the location a removed the other blocks  
    • That server does not appear to be running Minecraft Forge. You should probably check for support from papermc for best results.
    • hey! i have 0 clue why my server is crashing, but here's the logs https://mclo.gs/GAWAPn1 it was working perfectly fine just a moment ago
×
×
  • Create New...

Important Information

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