Skip to content

Commit a76bf9c

Browse files
committed
add copper golem statue collision box
1 parent 4f3e715 commit a76bf9c

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

common/src/main/java/ac/grim/grimac/utils/collisions/CollisionData.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1033,6 +1033,15 @@ public enum CollisionData implements CollisionFactory {
10331033
};
10341034
}, BlockTags.WOODEN_SHELVES.getStates().toArray(new StateType[0])),
10351035

1036+
COPPER_GOLEM_STATUE((player, version, data, x, y, z) -> {
1037+
if (version.isOlderThan(ClientVersion.V_1_21_9)) {
1038+
// ViaVersion replacement block (copper block)
1039+
return new SimpleCollisionBox(0, 0, 0, 1, 1, 1, true);
1040+
}
1041+
1042+
return new HexCollisionBox(3, 0, 3, 13, 14, 13);
1043+
}, BlockTags.COPPER_GOLEM_STATUES.getStates().toArray(new StateType[0])),
1044+
10361045
DEFAULT(new SimpleCollisionBox(0, 0, 0, 1, 1, 1, true), StateTypes.STONE);
10371046

10381047
// This should be an array... but a hashmap will do for now...
@@ -1161,7 +1170,11 @@ private static CollisionBox getEndRod(ClientVersion version, BlockFace face) {
11611170
// Would pre-computing all states be worth the memory cost? I doubt it
11621171
public static CollisionData getData(StateType state) { // TODO: Find a better hack for lava and scaffolding
11631172
// What the fuck mojang, why put noCollision() and then give PITCHER_CROP collision?
1164-
return state.isSolid() || state == StateTypes.LAVA || state == StateTypes.SCAFFOLDING || state == StateTypes.PITCHER_CROP || state == StateTypes.HEAVY_CORE || state == StateTypes.PALE_MOSS_CARPET || BlockTags.WALL_HANGING_SIGNS.contains(state) ? rawLookupMap.getOrDefault(state, DEFAULT) : NO_COLLISION;
1173+
return state.isSolid() || state == StateTypes.LAVA || state == StateTypes.SCAFFOLDING
1174+
|| state == StateTypes.PITCHER_CROP || state == StateTypes.HEAVY_CORE
1175+
|| state == StateTypes.PALE_MOSS_CARPET || BlockTags.WALL_HANGING_SIGNS.contains(state)
1176+
|| BlockTags.COPPER_GOLEM_STATUES.contains(state)
1177+
? rawLookupMap.getOrDefault(state, DEFAULT) : NO_COLLISION;
11651178
}
11661179

11671180
// TODO: This is wrong if a block doesn't have any hitbox and isn't specified, light block?

0 commit comments

Comments
 (0)