-
Notifications
You must be signed in to change notification settings - Fork 424
Open
Description
yarn/mappings/net/minecraft/block/PointedDripstoneBlock.mapping
Lines 1 to 10 in bdf6841
| CLASS net/minecraft/class_5689 net/minecraft/block/PointedDripstoneBlock | |
| FIELD field_28050 VERTICAL_DIRECTION Lnet/minecraft/class_2754; | |
| FIELD field_28051 THICKNESS Lnet/minecraft/class_2754; | |
| FIELD field_28052 WATERLOGGED Lnet/minecraft/class_2746; | |
| FIELD field_28053 TIP_MERGE_SHAPE Lnet/minecraft/class_265; | |
| FIELD field_28054 UP_TIP_SHAPE Lnet/minecraft/class_265; | |
| FIELD field_28055 DOWN_TIP_SHAPE Lnet/minecraft/class_265; | |
| FIELD field_28056 FRUSTUM_SHAPE Lnet/minecraft/class_265; | |
| FIELD field_28057 MIDDLE_SHAPE Lnet/minecraft/class_265; | |
| FIELD field_28058 BASE_SHAPE Lnet/minecraft/class_265; |
Considering the model size defined in the file, field_28056 should be MIDDLE_SHAPE, field_28057 should be BASE_SHAPE, and field_28058 should be FRUSTUM_SHAPE.
And current mapping would lead to confusing result as showed below (1.21.9).
// snippet in `getOutlineShape` in PointedDripstoneBlock
VoxelShape var10000;
switch ((Thickness)state.get(THICKNESS)) {
case TIP_MERGE -> var10000 = TIP_MERGE_SHAPE;
case TIP -> var10000 = state.get(VERTICAL_DIRECTION) == Direction.DOWN ? DOWN_TIP_SHAPE : UP_TIP_SHAPE;
case FRUSTUM -> var10000 = BASE_SHAPE;
case MIDDLE -> var10000 = FRUSTUM_SHAPE;
case BASE -> var10000 = MIDDLE_SHAPE;
default -> throw new MatchException((String)null, (Throwable)null);
}
VoxelShape voxelShape = var10000;
return voxelShape.offset(state.getModelOffset(pos));I found this issue in 1.21.3 mapping while reading the code, and confirm it still exists in 1.21.9 mapping. I didn't check it backward.
Here's the 1.21.3 method was like:
Thickness thickness = (Thickness)state.get(THICKNESS);
VoxelShape voxelShape;
if (thickness == Thickness.TIP_MERGE) {
voxelShape = TIP_MERGE_SHAPE;
} else if (thickness == Thickness.TIP) {
if (state.get(VERTICAL_DIRECTION) == Direction.DOWN) {
voxelShape = DOWN_TIP_SHAPE;
} else {
voxelShape = UP_TIP_SHAPE;
}
} else if (thickness == Thickness.FRUSTUM) {
voxelShape = BASE_SHAPE;
} else if (thickness == Thickness.MIDDLE) {
voxelShape = FRUSTUM_SHAPE;
} else {
voxelShape = MIDDLE_SHAPE;
}
Vec3d vec3d = state.getModelOffset(pos);
return voxelShape.offset(vec3d.x, (double)0.0F, vec3d.z);Metadata
Metadata
Assignees
Labels
No labels