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

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

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

public class PropPrefabUtil
{
    @Nonnull
    public static Vector3i getMin(@Nonnull final PrefabBuffer.PrefabBufferAccessor prefab) {
        final int minX = prefab.getMinX(PrefabRotation.ROTATION_0);
        final int minY = prefab.getMinY();
        final int minZ = prefab.getMinZ(PrefabRotation.ROTATION_0);
        return new Vector3i(minX, minY, minZ);
    }
    
    @Nonnull
    public static Vector3i getMax(@Nonnull final PrefabBuffer.PrefabBufferAccessor prefab) {
        final int maxX = prefab.getMaxX(PrefabRotation.ROTATION_0);
        final int maxY = prefab.getMaxY();
        final int maxZ = prefab.getMaxZ(PrefabRotation.ROTATION_0);
        return new Vector3i(maxX, maxY, maxZ);
    }
    
    @Nonnull
    public static Vector3i getMin(@Nonnull final PrefabBuffer.PrefabBufferAccessor prefab, @Nonnull final PrefabRotation rotation) {
        final int minX = prefab.getMinX(rotation);
        final int minY = prefab.getMinY();
        final int minZ = prefab.getMinZ(rotation);
        return new Vector3i(minX, minY, minZ);
    }
    
    @Nonnull
    public static Vector3i getMax(@Nonnull final PrefabBuffer.PrefabBufferAccessor prefab, @Nonnull final PrefabRotation rotation) {
        final int maxX = prefab.getMaxX(rotation);
        final int maxY = prefab.getMaxY();
        final int maxZ = prefab.getMaxZ(rotation);
        return new Vector3i(maxX, maxY, maxZ);
    }
    
    @Nonnull
    public static Vector3i getSize(@Nonnull final PrefabBuffer.PrefabBufferAccessor prefab) {
        final Vector3i min = getMin(prefab);
        final Vector3i max = getMax(prefab);
        return max.addScaled(min, -1);
    }
    
    @Nonnull
    public static Vector3i getAnchor(@Nonnull final PrefabBuffer.PrefabBufferAccessor prefab) {
        final int x = prefab.getAnchorX();
        final int y = prefab.getAnchorY();
        final int z = prefab.getAnchorZ();
        return new Vector3i(x, y, z);
    }
}
