Skip to content

Commit

Permalink
Revert "Use old collisions from 92faa92 (1.13.2-0.2.9-pre11)"
Browse files Browse the repository at this point in the history
This reverts commit 58e64d8.
  • Loading branch information
Cadiboo committed Jan 20, 2024
1 parent 58e64d8 commit 3cf0d11
Showing 1 changed file with 9 additions and 108 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ public static VoxelShape getCollisionShapeOrThrow(boolean canCollide, BlockState
return state.getShape(reader, blockPos);

var mesher = NoCubesConfig.Server.mesher;
var ref = new VoxelShape[] {Shapes.empty()};
var ref = new VoxelShape[]{Shapes.empty()};
if (reader instanceof Level)
((Level) reader).getProfiler().push("NoCubes collisions");
try (var area = new Area(reader, blockPos, ModUtil.VEC_ONE, mesher)) {
Expand Down Expand Up @@ -192,15 +192,14 @@ public static void generate(Area area, Mesher mesher, ShapeConsumer consumer) {
}

public static boolean generateShapes(Vec centre, Vec faceNormal, ShapeConsumer consumer, Face face) {
generateShapesOld(consumer, face, centre, faceNormal, null, 0.125F);
// if (!CollisionHandler.generateShape(centre, faceNormal, consumer, face.v0))
// return false;
// if (!CollisionHandler.generateShape(centre, faceNormal, consumer, face.v1))
// return false;
// if (!CollisionHandler.generateShape(centre, faceNormal, consumer, face.v2))
// return false;
// if (!CollisionHandler.generateShape(centre, faceNormal, consumer, face.v3))
// return false;
if (!CollisionHandler.generateShape(centre, faceNormal, consumer, face.v0))
return false;
if (!CollisionHandler.generateShape(centre, faceNormal, consumer, face.v1))
return false;
if (!CollisionHandler.generateShape(centre, faceNormal, consumer, face.v2))
return false;
if (!CollisionHandler.generateShape(centre, faceNormal, consumer, face.v3))
return false;
return true;
}

Expand All @@ -217,102 +216,4 @@ private static boolean generateShape(Vec centre, Vec faceNormal, ShapeConsumer c
);
}

private static void generateShapesOld(ShapeConsumer consumer, Face face, Vec centre, Vec mut, VoxelShape originalBoxOffset, float boxRadius) {
var mutOldX = mut.x;
var mutOldY = mut.y;
var mutOldZ = mut.z;

var v0 = face.v0;
var v1 = face.v1;
var v2 = face.v2;
var v3 = face.v3;

//0___3
//_____
//__c__
//_____
//1___2
if (!acceptVoxelShapeForVertex(consumer, v0, boxRadius, originalBoxOffset) ||
!acceptVoxelShapeForVertex(consumer, v1, boxRadius, originalBoxOffset) ||
!acceptVoxelShapeForVertex(consumer, v2, boxRadius, originalBoxOffset) ||
!acceptVoxelShapeForVertex(consumer, v3, boxRadius, originalBoxOffset) ||
!acceptVoxelShapeForVertex(consumer, centre, boxRadius, originalBoxOffset)
)
return;

// //0_*_3
// //_____
// //*_c_*
// //_____
// //1_*_2
// if (!acceptVoxelShapeForVertex(consumer, interp(v0, v1, 0.5F, mut), boxRadius, originalBoxOffset) ||
// !acceptVoxelShapeForVertex(consumer, interp(v1, v2, 0.5F, mut), boxRadius, originalBoxOffset) ||
// !acceptVoxelShapeForVertex(consumer, interp(v2, v3, 0.5F, mut), boxRadius, originalBoxOffset) ||
// !acceptVoxelShapeForVertex(consumer, interp(v3, v0, 0.5F, mut), boxRadius, originalBoxOffset)
// )
// return;

// //0x*x3
// //x___x
// //*_c_*
// //x___x
// //1x*x2
// if (!acceptVoxelShapeForVertex(consumer, interp(v0, v1, 0.25F, mut), boxRadius, originalBoxOffset) ||
// !acceptVoxelShapeForVertex(consumer, interp(v0, v1, 0.75F, mut), boxRadius, originalBoxOffset) ||
// !acceptVoxelShapeForVertex(consumer, interp(v1, v2, 0.25F, mut), boxRadius, originalBoxOffset) ||
// !acceptVoxelShapeForVertex(consumer, interp(v1, v2, 0.75F, mut), boxRadius, originalBoxOffset) ||
// !acceptVoxelShapeForVertex(consumer, interp(v2, v3, 0.25F, mut), boxRadius, originalBoxOffset) ||
// !acceptVoxelShapeForVertex(consumer, interp(v2, v3, 0.75F, mut), boxRadius, originalBoxOffset) ||
// !acceptVoxelShapeForVertex(consumer, interp(v3, v0, 0.25F, mut), boxRadius, originalBoxOffset) ||
// !acceptVoxelShapeForVertex(consumer, interp(v3, v0, 0.75F, mut), boxRadius, originalBoxOffset)
// )
// return;

// //0x*x3
// //x†_†x
// //*_c_*
// //x†_†x
// //1x*x2
// if (!acceptVoxelShapeForVertex(consumer, interp(v0, centre, 0.5F, mut), boxRadius, originalBoxOffset) ||
// !acceptVoxelShapeForVertex(consumer, interp(v1, centre, 0.5F, mut), boxRadius, originalBoxOffset) ||
// !acceptVoxelShapeForVertex(consumer, interp(v2, centre, 0.5F, mut), boxRadius, originalBoxOffset) ||
// !acceptVoxelShapeForVertex(consumer, interp(v3, centre, 0.5F, mut), boxRadius, originalBoxOffset)
// )
// return;

mut.set(
mutOldX,
mutOldY,
mutOldZ
);
}

private static Vec interp(Vec v0, Vec v1, float t, Vec toUse) {
return toUse.set(
v0.x + t * (v1.x - v0.x),
v0.y + t * (v1.y - v0.y),
v0.z + t * (v1.z - v0.z)
);

}

private static boolean acceptVoxelShapeForVertex(ShapeConsumer consumer, Vec v, float boxRadius, VoxelShape originalBox) {
final double vy = v.y;
final double vx = v.x;
final double vz = v.z;

final boolean originalBoxMaxYGreaterThanVertex = false;//originalBox != null && originalBox.getEnd(EnumFacing.Axis.Y) >= vy;

return consumer.accept(
//min
vx - boxRadius,
originalBoxMaxYGreaterThanVertex ? vy - boxRadius - boxRadius : vy - boxRadius,
vz - boxRadius,
//max
vx + boxRadius,
originalBoxMaxYGreaterThanVertex ? vy : vy + boxRadius,
vz + boxRadius
);
}

}

0 comments on commit 3cf0d11

Please sign in to comment.