92a114d29d
Added the missing bits of axle at the ends of the MB Added a versioning NBT tag to the mech MB to allow easy changing of the MB structure
41 lines
1.5 KiB
Java
41 lines
1.5 KiB
Java
/*
|
|
* This file is part of Industrial Wires.
|
|
* Copyright (C) 2016-2018 malte0811
|
|
* Industrial Wires is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
* Industrial Wires is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with Industrial Wires. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
package malte0811.industrialWires.blocks;
|
|
|
|
import blusunrize.immersiveengineering.common.blocks.IEBlockInterfaces;
|
|
import blusunrize.immersiveengineering.common.util.chickenbones.Matrix4;
|
|
import malte0811.industrialWires.util.MiscUtils;
|
|
import net.minecraft.util.EnumFacing;
|
|
import net.minecraft.util.math.AxisAlignedBB;
|
|
|
|
public interface IBlockBoundsIW {
|
|
AxisAlignedBB getBoundingBox();
|
|
|
|
interface IBlockBoundsDirectional extends IBlockBoundsIW, IEBlockInterfaces.IDirectionalTile {
|
|
|
|
@Override
|
|
default AxisAlignedBB getBoundingBox() {
|
|
EnumFacing dir = getFacing();
|
|
Matrix4 mat = new Matrix4();
|
|
mat.translate(.5, 0, .5);
|
|
mat.rotate((-dir.getHorizontalAngle()+180)*Math.PI/180, 0, 1, 0);
|
|
mat.translate(-.5, 0, -.5);
|
|
return MiscUtils.apply(mat, getBoundingBoxNoRot());
|
|
}
|
|
|
|
AxisAlignedBB getBoundingBoxNoRot();
|
|
}
|
|
}
|