@@ -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