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

package com.hypixel.hytale.server.core.modules.collision;

import javax.annotation.Nonnull;
import com.hypixel.hytale.server.core.asset.type.fluid.Fluid;
import com.hypixel.hytale.protocol.BlockMaterial;
import javax.annotation.Nullable;
import com.hypixel.hytale.server.core.asset.type.blocktype.config.BlockType;

public class BlockCollisionData extends BoxCollisionData
{
    public int x;
    public int y;
    public int z;
    public int blockId;
    public int rotation;
    @Nullable
    public BlockType blockType;
    @Nullable
    public BlockMaterial blockMaterial;
    public int detailBoxIndex;
    public boolean willDamage;
    public int fluidId;
    @Nullable
    public Fluid fluid;
    public boolean touching;
    public boolean overlapping;
    
    public void setBlockData(@Nonnull final CollisionConfig collisionConfig) {
        this.x = collisionConfig.blockX;
        this.y = collisionConfig.blockY;
        this.z = collisionConfig.blockZ;
        this.blockId = collisionConfig.blockId;
        this.rotation = collisionConfig.rotation;
        this.blockType = collisionConfig.blockType;
        this.blockMaterial = collisionConfig.blockMaterial;
        this.willDamage = ((collisionConfig.blockMaterialMask & 0x10) != 0x0);
        this.fluidId = collisionConfig.fluidId;
        this.fluid = collisionConfig.fluid;
    }
    
    public void setDetailBoxIndex(final int detailBoxIndex) {
        this.detailBoxIndex = detailBoxIndex;
    }
    
    public void setTouchingOverlapping(final boolean touching, final boolean overlapping) {
        this.touching = touching;
        this.overlapping = overlapping;
    }
    
    public void clear() {
        this.blockType = null;
        this.blockMaterial = null;
    }
    
    @Nonnull
    @Override
    public String toString() {
        return "BlockCollisionData{x=" + this.x + ", y=" + this.y + ", z=" + this.z + ", blockId=" + this.blockId + ", blockType=" + String.valueOf(this.blockType) + ", blockMaterial=" + String.valueOf(this.blockMaterial) + ", collisionPoint=" + String.valueOf(this.collisionPoint) + ", collisionNormal=" + String.valueOf(this.collisionNormal) + ", collisionStart=" + this.collisionStart + ", collisionEnd=" + this.collisionEnd + ", detailBoxIndex=" + this.detailBoxIndex;
    }
}
