Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

mod:World Border more options for "wrap" logic #2650

Open
Erumaaro opened this issue Sep 16, 2024 · 0 comments
Open

mod:World Border more options for "wrap" logic #2650

Erumaaro opened this issue Sep 16, 2024 · 0 comments
Assignees
Labels
Feature Request New feature or request Mod Label Missing A new issue where the mod label has yet to be assigned.

Comments

@Erumaaro
Copy link

Erumaaro commented Sep 16, 2024

Information

Minecraft version: 1.20.1
Modloader: Forge
Mod name: World Border

Feature description

The current "wrap" logic teleports the player to the opposite side of the map, which effectivly makes the playable area similar to a torus.
I would like it if was possible to choose a different/new "wrap" logic for each direction:

border types: teleport inside, wrap, pole (choose one)
if pole type: teleport logic will move player half the distance between the other two borders along the current border (in whichever direction puts him inside the playable area) and rotate their view (yaw).

This would make it possible to make the playable area similar to a "sphere" if one diretion has borders that are "poles" and the other one wraps around.
It would also create an interesting geometry if both directions have "poles".

example:

config:
x wraps, z is poles, 2 block margin
X: -180, +180
Z: -90, +90
(mimicking degrees of latitue and longitude on a sphere)

event:
player goes north (-z) and crosses border at (-30, -90) while looking NE (old_yaw = -140), which is a "pole" border.

effect:
player is teleported to (+150, -88) and is looking SE (new_yaw = -40).
(If you go straight to the north pole, you are not teleported to the southpole but you will be walking south on the opposite meridian without having turned around)

pseudocode:

move math for poles in z direction (North-Pole and South-Pole) when crossing +z border:
new_pos.x = modulo( (old_pos.x - minX) + (maxX-minX)/2 , maxX-minX ) + minX ;
new_pos.z = old_pos.z - distanceTeleportedBack ;

move math for poles in x direction ("East-Pole" and "West-Pole") when crossing +x border:
new_pos.x = old_pos.x - distanceTeleportedBack ;
new_pos.z = modulo( (old_pos.z - minZ) + (maxZ-minZ)/2 , maxZ-minZ ) + minZ ;

rotation math for poles in x direction:
new_yaw = - old_yaw

rotation math for poles in z direction:
new_yaw = modulo( - old_yaw , 2 * pi) - pi ;

PS

additional features I would like to request but are (I believe) already requested:
-bigger size limit, preferrably all the way to 30M
-the ability to choose different teleportation logic for each direction of every dimension, including modded dimensions.

@Erumaaro Erumaaro added Feature Request New feature or request Mod Label Missing A new issue where the mod label has yet to be assigned. labels Sep 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature Request New feature or request Mod Label Missing A new issue where the mod label has yet to be assigned.
Projects
None yet
Development

No branches or pull requests

2 participants