Fix fence connection
- use ingame data
This commit is contained in:
@@ -143,29 +143,6 @@ const mc_block_t block_class_door[] = {
|
||||
block_warped_door};
|
||||
const size_t block_class_door_len = COUNT_OF(block_class_door);
|
||||
|
||||
const mc_block_t block_class_fence[] = {
|
||||
block_fence,
|
||||
block_nether_brick_fence,
|
||||
block_spruce_fence,
|
||||
block_birch_fence,
|
||||
block_jungle_fence,
|
||||
block_dark_oak_fence,
|
||||
block_crimson_fence,
|
||||
block_warped_fence,
|
||||
block_acacia_fence};
|
||||
const size_t block_class_fence_len = COUNT_OF(block_class_fence);
|
||||
|
||||
const mc_block_t block_class_fence_gate[] = {
|
||||
block_fence_gate,
|
||||
block_spruce_fence_gate,
|
||||
block_birch_fence_gate,
|
||||
block_jungle_fence_gate,
|
||||
block_dark_oak_fence_gate,
|
||||
block_acacia_fence_gate,
|
||||
block_crimson_fence_gate,
|
||||
block_warped_fence_gate};
|
||||
const size_t block_class_fence_gate_len = COUNT_OF(block_class_fence_gate);
|
||||
|
||||
const mc_block_t block_class_ancil[] = {
|
||||
block_wooden_door,
|
||||
block_iron_door,
|
||||
@@ -229,10 +206,8 @@ const mc_block_t block_class_ancil[] = {
|
||||
block_glass,
|
||||
block_redstone_wire,
|
||||
block_ice,
|
||||
block_fence,
|
||||
block_portal,
|
||||
block_waterlily,
|
||||
block_nether_brick_fence,
|
||||
block_andesite_wall,
|
||||
block_brick_wall,
|
||||
block_cobblestone_wall,
|
||||
@@ -252,13 +227,6 @@ const mc_block_t block_class_ancil[] = {
|
||||
block_polished_blackstone_brick_wall,
|
||||
block_double_plant,
|
||||
block_stained_glass,
|
||||
block_spruce_fence,
|
||||
block_birch_fence,
|
||||
block_jungle_fence,
|
||||
block_dark_oak_fence,
|
||||
block_crimson_fence,
|
||||
block_warped_fence,
|
||||
block_acacia_fence,
|
||||
block_cobbled_deepslate_wall,
|
||||
block_polished_deepslate_wall,
|
||||
block_deepslate_brick_wall,
|
||||
|
||||
@@ -36,12 +36,6 @@ extern const size_t block_class_stair_len;
|
||||
extern const mc_block_t block_class_door[];
|
||||
extern const size_t block_class_door_len;
|
||||
|
||||
extern const mc_block_t block_class_fence[];
|
||||
extern const size_t block_class_fence_len;
|
||||
|
||||
extern const mc_block_t block_class_fence_gate[];
|
||||
extern const size_t block_class_fence_gate_len;
|
||||
|
||||
extern const mc_block_t block_class_ancil[];
|
||||
extern const size_t block_class_ancil_len;
|
||||
|
||||
|
||||
@@ -276,12 +276,6 @@ generate_pseudo_data(RenderState* state, uint16_t ancilData) {
|
||||
}
|
||||
data = (check_adjacent_blocks(state, x, y, z, state->block) ^ 0x0f) | data;
|
||||
return (data << 4) | (ancilData & 0x0f);
|
||||
} else if (block_class_is_subset(state->block, block_class_fence, block_class_fence_len)) { /* fences */
|
||||
/* check for fences AND fence gates */
|
||||
return check_adjacent_blocks(state, x, y, z, state->block) | check_adjacent_blocks(state, x, y, z, block_fence_gate) |
|
||||
check_adjacent_blocks(state, x, y, z, block_fence_gate) | check_adjacent_blocks(state, x, y, z, block_birch_fence_gate) | check_adjacent_blocks(state, x, y, z, block_jungle_fence_gate) |
|
||||
check_adjacent_blocks(state, x, y, z, block_dark_oak_fence_gate) | check_adjacent_blocks(state, x, y, z, block_acacia_fence_gate)
|
||||
| check_adjacent_blocks(state, x, y, z, block_crimson_fence_gate) | check_adjacent_blocks(state, x, y, z, block_warped_fence_gate);
|
||||
|
||||
} else if (state->block == block_redstone_wire) { /* redstone */
|
||||
/* three addiotional bit are added, one for on/off state, and
|
||||
@@ -317,8 +311,8 @@ generate_pseudo_data(RenderState* state, uint16_t ancilData) {
|
||||
}
|
||||
return final_data;
|
||||
|
||||
} else if (block_class_is_subset(state->block, (mc_block_t[]){block_portal, block_nether_brick_fence}, 2)) {
|
||||
/* portal and nether brick fences */
|
||||
} else if (state->block == block_portal) {
|
||||
/* portal */
|
||||
return check_adjacent_blocks(state, x, y, z, state->block);
|
||||
|
||||
} else if (block_class_is_subset(state->block, block_class_door, block_class_door_len)) {
|
||||
@@ -620,7 +614,7 @@ chunk_render(PyObject* self, PyObject* args) {
|
||||
state.block_data = ancilData;
|
||||
/* block that need pseudo ancildata:
|
||||
* grass, water, glass, chest, restone wire,
|
||||
* ice, fence, portal, iron bars, glass panes,
|
||||
* ice, portal, iron bars,
|
||||
* trapped chests, stairs */
|
||||
if (block_class_is_subset(state.block, block_class_ancil, block_class_ancil_len)) {
|
||||
ancilData = generate_pseudo_data(&state, ancilData);
|
||||
|
||||
Reference in New Issue
Block a user