From cdcb88b0f216a491e07bfe15acfa79580c8b03ac Mon Sep 17 00:00:00 2001 From: InrcedibleHolg Date: Sat, 3 Aug 2019 12:49:57 +0200 Subject: [PATCH] Implement new stairs fix stone stairs and slabs added code change requests by @CounterPillow --- overviewer_core/src/block_class.c | 39 +++++++++++++++++++++++++++---- overviewer_core/src/mc_id.h | 12 +++++++++- overviewer_core/src/overviewer.h | 2 +- overviewer_core/textures.py | 38 +++++++++++++++++++++--------- overviewer_core/world.py | 13 +++++++++-- 5 files changed, 84 insertions(+), 20 deletions(-) diff --git a/overviewer_core/src/block_class.c b/overviewer_core/src/block_class.c index 9dc6654..82775d2 100644 --- a/overviewer_core/src/block_class.c +++ b/overviewer_core/src/block_class.c @@ -60,7 +60,6 @@ bool block_class_is_subset( const mc_block_t block_class_stair[] = { block_oak_stairs, - block_stone_stairs, block_brick_stairs, block_stone_brick_stairs, block_nether_brick_stairs, @@ -77,9 +76,19 @@ const mc_block_t block_class_stair[] = { block_dark_prismarine_stairs, block_prismarine_brick_stairs, block_mossy_cobblestone_stairs, + block_cobblestone_stairs, + block_smooth_quartz_stairs, + block_polished_granite_stairs, + block_polished_diorite_stairs, + block_polished_andesite_stairs, + block_stone_stairs, + block_granite_stairs, + block_diorite_stairs, + block_andesite_stairs, + block_end_stone_brick_stairs, + block_red_nether_brick_stairs, block_mossy_stone_brick_stairs, - block_smooth_sandstone_stairs, -}; + block_smooth_sandstone_stairs}; const size_t block_class_stair_len = COUNT_OF(block_class_stair); const mc_block_t block_class_door[] = { @@ -120,7 +129,6 @@ const mc_block_t block_class_ancil[] = { block_acacia_door, block_dark_oak_door, block_oak_stairs, - block_stone_stairs, block_brick_stairs, block_stone_brick_stairs, block_nether_brick_stairs, @@ -136,8 +144,19 @@ const mc_block_t block_class_ancil[] = { block_prismarine_stairs, block_dark_prismarine_stairs, block_prismarine_brick_stairs, + block_cobblestone_stairs, block_mossy_cobblestone_stairs, block_mossy_stone_brick_stairs, + block_smooth_quartz_stairs, + block_polished_granite_stairs, + block_polished_diorite_stairs, + block_polished_andesite_stairs, + block_stone_stairs, + block_granite_stairs, + block_diorite_stairs, + block_andesite_stairs, + block_end_stone_brick_stairs, + block_red_nether_brick_stairs, block_smooth_sandstone_stairs, block_grass, block_flowing_water, @@ -168,7 +187,6 @@ const size_t block_class_ancil_len = COUNT_OF(block_class_ancil); const mc_block_t block_class_alt_height[] = { block_stone_slab, block_oak_stairs, - block_stone_stairs, block_brick_stairs, block_stone_brick_stairs, block_nether_brick_stairs, @@ -183,8 +201,19 @@ const mc_block_t block_class_alt_height[] = { block_prismarine_stairs, block_dark_prismarine_stairs, block_prismarine_brick_stairs, + block_cobblestone_stairs, block_mossy_cobblestone_stairs, block_mossy_stone_brick_stairs, + block_smooth_quartz_stairs, + block_polished_granite_stairs, + block_polished_diorite_stairs, + block_polished_andesite_stairs, + block_stone_stairs, + block_granite_stairs, + block_diorite_stairs, + block_andesite_stairs, + block_end_stone_brick_stairs, + block_red_nether_brick_stairs, block_smooth_sandstone_stairs, block_prismarine_slab, block_dark_prismarine_slab, diff --git a/overviewer_core/src/mc_id.h b/overviewer_core/src/mc_id.h index 8b8329c..55793ff 100644 --- a/overviewer_core/src/mc_id.h +++ b/overviewer_core/src/mc_id.h @@ -70,7 +70,7 @@ enum mc_block_id { block_wooden_door = 64, block_ladder = 65, block_rail = 66, - block_stone_stairs = 67, + block_cobblestone_stairs = 67, block_wall_sign = 68, block_lever = 69, block_stone_pressure_plate = 70, @@ -295,6 +295,16 @@ enum mc_block_id { block_mossy_stone_brick_wall = 11372, block_lantern = 11373, block_smooth_sandstone_stairs = 11374, + block_smooth_quartz_stairs = 11375, + block_polished_granite_stairs = 11376, + block_polished_diorite_stairs = 11377, + block_polished_andesite_stairs = 11378, + block_stone_stairs = 11379, + block_granite_stairs = 11380, + block_diorite_stairs = 11381, + block_andesite_stairs = 11382, + block_end_stone_brick_stairs = 11383, + block_red_nether_brick_stairs = 11384, }; typedef uint16_t mc_block_t; diff --git a/overviewer_core/src/overviewer.h b/overviewer_core/src/overviewer.h index 4a0a7dc..dcb1d0f 100644 --- a/overviewer_core/src/overviewer.h +++ b/overviewer_core/src/overviewer.h @@ -31,7 +31,7 @@ // increment this value if you've made a change to the c extesion // and want to force users to rebuild -#define OVERVIEWER_EXTENSION_VERSION 72 +#define OVERVIEWER_EXTENSION_VERSION 73 #include #include diff --git a/overviewer_core/textures.py b/overviewer_core/textures.py index 4ae2d5b..f981d20 100644 --- a/overviewer_core/textures.py +++ b/overviewer_core/textures.py @@ -1703,8 +1703,8 @@ def slabs(self, blockid, data): if blockid == 44 or blockid == 43: if texture== 0: # stone slab - top = self.load_image_texture("assets/minecraft/textures/block/smooth_stone.png") - side = self.load_image_texture("assets/minecraft/textures/block/smooth_stone_slab_side.png") + top = self.load_image_texture("assets/minecraft/textures/block/stone.png") + side = self.load_image_texture("assets/minecraft/textures/block/stone.png") elif texture== 1: # sandstone slab top = self.load_image_texture("assets/minecraft/textures/block/sandstone_top.png") side = self.load_image_texture("assets/minecraft/textures/block/sandstone.png") @@ -1947,9 +1947,12 @@ def fire(self, blockid, data): # monster spawner block(blockid=52, top_image="assets/minecraft/textures/block/spawner.png", transparent=True) -# wooden, cobblestone, red brick, stone brick, netherbrick, sandstone, spruce, birch, jungle, quartz, red sandstone, (dark) prismarine, mossy brick and mossy cobblestone stairs. -@material(blockid=[53,67,108,109,114,128,134,135,136,156,163,164,180,203,11337,11338,11339, - 11370, 11371, 11374], data=list(range(128)), transparent=True, solid=True, nospawn=True) +# wooden, cobblestone, red brick, stone brick, netherbrick, sandstone, spruce, birch, +# jungle, quartz, red sandstone, (dark) prismarine, mossy brick and mossy cobblestone, stone smooth_quartz +# polished_granite polished_andesite polished_diorite granite diorite andesite end_stone_bricks red_nether_brick stairs +@material(blockid=[53, 67, 108, 109, 114, 128, 134, 135, 136, 156, 163, 164, 180, 203, 11337, 11338, 11339, + 11370, 11371, 11374, 11375, 11376, 11377, 11378, 11379, 11380, 11381, 11382, 11383, 11384], + data=list(range(128)), transparent=True, solid=True, nospawn=True) def stairs(self, blockid, data): # preserve the upside-down bit upside_down = data & 0x4 @@ -1983,6 +1986,16 @@ def stairs(self, blockid, data): 11370: "assets/minecraft/textures/block/mossy_stone_bricks.png", 11371: "assets/minecraft/textures/block/mossy_cobblestone.png", 11374: "assets/minecraft/textures/block/sandstone_top.png", + 11375: "assets/minecraft/textures/block/quartz_block_side.png", + 11376: "assets/minecraft/textures/block/polished_granite.png", + 11377: "assets/minecraft/textures/block/polished_diorite.png", + 11378: "assets/minecraft/textures/block/polished_andesite.png", + 11379: "assets/minecraft/textures/block/stone.png", + 11380: "assets/minecraft/textures/block/granite.png", + 11381: "assets/minecraft/textures/block/diorite.png", + 11382: "assets/minecraft/textures/block/andesite.png", + 11383: "assets/minecraft/textures/block/end_stone_bricks.png", + 11384: "assets/minecraft/textures/block/red_nether_bricks.png", } texture = self.load_image_texture(stair_id_to_tex[blockid]).copy() @@ -1993,13 +2006,16 @@ def stairs(self, blockid, data): inside_r = texture.copy() # sandstone, red sandstone, and quartz stairs have special top texture - if blockid == 128: - texture = self.load_image_texture("assets/minecraft/textures/block/sandstone_top.png").copy() - elif blockid == 156: - texture = self.load_image_texture("assets/minecraft/textures/block/quartz_block_top.png").copy() - elif blockid == 180: - texture = self.load_image_texture("assets/minecraft/textures/block/red_sandstone_top.png").copy() + special_tops = { + 128: "assets/minecraft/textures/block/sandstone_top.png", + 156: "assets/minecraft/textures/block/quartz_block_top.png", + 180: "assets/minecraft/textures/block/red_sandstone_top.png", + 11375: "assets/minecraft/textures/block/quartz_block_top.png", + } + if blockid in special_tops: + texture = self.load_image_texture(special_tops[blockid]).copy() + slab_top = texture.copy() diff --git a/overviewer_core/world.py b/overviewer_core/world.py index c57e699..991d1ef 100644 --- a/overviewer_core/world.py +++ b/overviewer_core/world.py @@ -435,7 +435,6 @@ class RegionSet(object): 'minecraft:oak_door': (64, 0), 'minecraft:ladder': (65, 0), 'minecraft:rail': (66, 0), - 'minecraft:stone_stairs': (67, 0), 'minecraft:cobblestone_stairs': (67, 0), 'minecraft:wall_sign': (68, 0), 'minecraft:lever': (69, 0), @@ -810,6 +809,16 @@ class RegionSet(object): "minecraft:mossy_stone_brick_wall": (11372, 0), "minecraft:lantern": (11373, 0), "minecraft:smooth_sandstone_stairs": (11374, 0), + 'minecraft:smooth_quartz_stairs': (11375, 0), + 'minecraft:polished_granite_stairs': (11376, 0), + 'minecraft:polished_diorite_stairs': (11377, 0), + 'minecraft:polished_andesite_stairs': (11378, 0), + 'minecraft:stone_stairs': (11379, 0), + 'minecraft:granite_stairs': (11380, 0), + 'minecraft:diorite_stairs': (11381, 0), + 'minecraft:andesite_stairs': (11382, 0), + 'minecraft:end_stone_brick_stairs': (11383, 0), + 'minecraft:red_nether_brick_stairs': (11384, 0), } colors = [ 'white', 'orange', 'magenta', 'light_blue', @@ -900,7 +909,7 @@ class RegionSet(object): if key == 'minecraft:stone_brick_slab': block = 98 elif key == 'minecraft:stone_slab': - block = 43 # block_double_stone_slab + block = 1 # stone data 0 elif key == 'minecraft:cobblestone_slab': block = 4 # cobblestone elif key == 'minecraft:sandstone_slab':