mirror of
https://github.com/SquidDev-CC/CC-Tweaked
synced 2025-03-22 11:26:58 +00:00
Cache the tool's transformation matrix
This commit is contained in:
parent
5082947331
commit
39f3cf8cbe
@ -48,6 +48,9 @@ import java.util.function.Function;
|
||||
|
||||
public class TurtleTool extends AbstractTurtleUpgrade
|
||||
{
|
||||
private static final TransformationMatrix leftTransform = getMatrixFor( -0.40625f );
|
||||
private static final TransformationMatrix rightTransform = getMatrixFor( 0.40625f );
|
||||
|
||||
protected final ItemStack item;
|
||||
|
||||
public TurtleTool( ResourceLocation id, String adjective, Item item )
|
||||
@ -91,14 +94,7 @@ public class TurtleTool extends AbstractTurtleUpgrade
|
||||
@OnlyIn( Dist.CLIENT )
|
||||
public TransformedModel getModel( ITurtleAccess turtle, @Nonnull TurtleSide side )
|
||||
{
|
||||
float xOffset = side == TurtleSide.LEFT ? -0.40625f : 0.40625f;
|
||||
Matrix4f transform = new Matrix4f( new float[] {
|
||||
0.0f, 0.0f, -1.0f, 1.0f + xOffset,
|
||||
1.0f, 0.0f, 0.0f, 0.0f,
|
||||
0.0f, -1.0f, 0.0f, 1.0f,
|
||||
0.0f, 0.0f, 0.0f, 1.0f,
|
||||
} );
|
||||
return TransformedModel.of( getCraftingItem(), new TransformationMatrix( transform ) );
|
||||
return TransformedModel.of( getCraftingItem(), side == TurtleSide.LEFT ? leftTransform : rightTransform );
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
@ -293,4 +289,14 @@ public class TurtleTool extends AbstractTurtleUpgrade
|
||||
Direction direction = tile.isRemoved() ? null : turtle.getDirection().getOpposite();
|
||||
DropConsumer.clearAndDrop( turtle.getWorld(), turtle.getPosition(), direction );
|
||||
}
|
||||
|
||||
private static TransformationMatrix getMatrixFor( float offset )
|
||||
{
|
||||
return new TransformationMatrix( new Matrix4f( new float[] {
|
||||
0.0f, 0.0f, -1.0f, 1.0f + offset,
|
||||
1.0f, 0.0f, 0.0f, 0.0f,
|
||||
0.0f, -1.0f, 0.0f, 1.0f,
|
||||
0.0f, 0.0f, 0.0f, 1.0f,
|
||||
} ) );
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user