HyCodeYourTale
classpublicPriority 3

RotatedPosition

com.hypixel.hytale.builtin.hytalegenerator.props.directionality.RotatedPosition

1

Methods

1

Public Methods

4

Fields

1

Constructors

Constructors

public
RotatedPosition(int x, int y, int z, PrefabRotation rotation)

Methods

Public Methods (1)

public
Vector3i toVector3i()
@Nonnull

Fields

Public Fields (4)

publicfinalPrefabRotation rotation
publicfinalint x
publicfinalint y
publicfinalint z

Related Classes

Source Code

package com.hypixel.hytale.builtin.hytalegenerator.props.directionality;

import com.hypixel.hytale.math.vector.Vector3i;
import com.hypixel.hytale.server.core.prefab.PrefabRotation;
import javax.annotation.Nonnull;

public class RotatedPosition {
   public final int x;
   public final int y;
   public final int z;
   @Nonnull
   public final PrefabRotation rotation;

   public RotatedPosition(int x, int y, int z, @Nonnull PrefabRotation rotation) {
      this.x = x;
      this.y = y;
      this.z = z;
      this.rotation = rotation;
   }

   @Nonnull
   public RotatedPosition getRelativeTo(@Nonnull RotatedPosition other) {
      Vector3i vec = new Vector3i(this.x, this.y, this.z);
      other.rotation.rotate(vec);
      int x = vec.x + other.x;
      int y = vec.y + other.y;
      int z = vec.z + other.z;
      PrefabRotation rotation = this.rotation.add(other.rotation);
      return new RotatedPosition(x, y, z, rotation);
   }

   @Nonnull
   public Vector3i toVector3i() {
      return new Vector3i(this.x, this.y, this.z);
   }
}