// 
// Decompiled by Procyon v0.6.0
// 

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

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

public class RotatedPosition
{
    public final int x;
    public final int y;
    public final int z;
    @Nonnull
    public final PrefabRotation rotation;
    
    public RotatedPosition(final int x, final int y, final int z, @Nonnull final PrefabRotation rotation) {
        this.x = x;
        this.y = y;
        this.z = z;
        this.rotation = rotation;
    }
    
    @Nonnull
    public RotatedPosition getRelativeTo(@Nonnull final RotatedPosition other) {
        final Vector3i vec = new Vector3i(this.x, this.y, this.z);
        other.rotation.rotate(vec);
        final int x = vec.x + other.x;
        final int y = vec.y + other.y;
        final int z = vec.z + other.z;
        final 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);
    }
}
