diff --git a/overviewer_core/src/block_class.c b/overviewer_core/src/block_class.c index 0554831..d97e56a 100644 --- a/overviewer_core/src/block_class.c +++ b/overviewer_core/src/block_class.c @@ -124,7 +124,11 @@ const mc_block_t block_class_stair[] = { block_waxed_cut_copper_stairs, block_waxed_exposed_cut_copper_stairs, block_waxed_weathered_cut_copper_stairs, - block_waxed_oxidized_cut_copper_stairs}; + block_waxed_oxidized_cut_copper_stairs, + block_cobbled_deepslate_stairs, + block_polished_deepslate_stairs, + block_deepslate_brick_stairs, + block_deepslate_tile_stairs}; const size_t block_class_stair_len = COUNT_OF(block_class_stair); const mc_block_t block_class_door[] = { @@ -215,6 +219,10 @@ const mc_block_t block_class_ancil[] = { block_waxed_exposed_cut_copper_stairs, block_waxed_weathered_cut_copper_stairs, block_waxed_oxidized_cut_copper_stairs, + block_cobbled_deepslate_stairs, + block_polished_deepslate_stairs, + block_deepslate_brick_stairs, + block_deepslate_tile_stairs, block_grass, block_flowing_water, block_water, @@ -250,7 +258,11 @@ const mc_block_t block_class_ancil[] = { block_dark_oak_fence, block_crimson_fence, block_warped_fence, - block_acacia_fence}; + block_acacia_fence, + block_cobbled_deepslate_wall, + block_polished_deepslate_wall, + block_deepslate_brick_wall, + block_deepslate_tile_wall}; const size_t block_class_ancil_len = COUNT_OF(block_class_ancil); const mc_block_t block_class_alt_height[] = { @@ -331,7 +343,15 @@ const mc_block_t block_class_alt_height[] = { block_waxed_cut_copper_slab, block_waxed_exposed_cut_copper_slab, block_waxed_weathered_cut_copper_slab, - block_waxed_oxidized_cut_copper_slab}; + block_waxed_oxidized_cut_copper_slab, + block_cobbled_deepslate_stairs, + block_polished_deepslate_stairs, + block_deepslate_brick_stairs, + block_deepslate_tile_stairs, + block_cobbled_deepslate_slab, + block_polished_deepslate_slab, + block_deepslate_brick_slab, + block_deepslate_tile_slab}; const size_t block_class_alt_height_len = COUNT_OF(block_class_alt_height); const mc_block_t block_class_nether_roof[] = { diff --git a/overviewer_core/src/mc_id.h b/overviewer_core/src/mc_id.h index 44cb845..61f9240 100644 --- a/overviewer_core/src/mc_id.h +++ b/overviewer_core/src/mc_id.h @@ -362,25 +362,36 @@ enum mc_block_id { block_calcite = 1081, block_rooted_dirt = 1082, - block_cobbled_deepslate = 1083, - block_polished_deepslate = 1084, - block_deepslate_coal_ore = 1085, - block_deepslate_iron_ore = 1086, - block_deepslate_copper_ore = 1087, - block_deepslate_gold_ore = 1088, - block_deepslate_emerald_ore = 1089, - block_deepslate_lapis_ore = 1090, - block_deepslate_diamond_ore = 1091, - block_deepslate_redstone_ore = 1092, - block_deepslate_bricks = 1093, - block_cracked_deepslate_bricks = 1094, - block_deepslate_tiles = 1095, - block_cracked_deepslate_tiles = 1096, - block_chiseled_deepslate = 1097, + block_deepslate = 1083, + block_cobbled_deepslate = 1084, + block_polished_deepslate = 1085, + block_deepslate_coal_ore = 1086, + block_deepslate_iron_ore = 1087, + block_deepslate_copper_ore = 1088, + block_deepslate_gold_ore = 1089, + block_deepslate_emerald_ore = 1090, + block_deepslate_lapis_ore = 1091, + block_deepslate_diamond_ore = 1092, + block_deepslate_redstone_ore = 1093, + block_deepslate_bricks = 1094, + block_cracked_deepslate_bricks = 1095, + block_deepslate_tiles = 1096, + block_cracked_deepslate_tiles = 1097, + block_chiseled_deepslate = 1098, - block_dripstone = 1098, - block_smooth_basalt = 1099, - block_tuff = 1100, + block_cobbled_deepslate_stairs = 1099, + block_polished_deepslate_stairs = 1100, + block_deepslate_brick_stairs = 1101, + block_deepslate_tile_stairs = 1102, + + block_cobbled_deepslate_slab = 1103, + block_polished_deepslate_slab = 1104, + block_deepslate_brick_slab = 1105, + block_deepslate_tile_slab = 1106, + + block_dripstone = 1107, + block_smooth_basalt = 1108, + block_tuff = 1109, // adding a gap in the numbering of walls to keep them all // in one numbering block starting at 1792 @@ -403,6 +414,10 @@ enum mc_block_id { block_blackstone_wall = 1806, block_polished_blackstone_wall = 1807, block_polished_blackstone_brick_wall = 1808, + block_cobbled_deepslate_wall = 1809, + block_polished_deepslate_wall = 1810, + block_deepslate_brick_wall = 1811, + block_deepslate_tile_wall = 1812, // end of walls block_prismarine_stairs = 11337, diff --git a/overviewer_core/src/overviewer.h b/overviewer_core/src/overviewer.h index 02be4ee..338bb48 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 extension // and want to force users to rebuild -#define OVERVIEWER_EXTENSION_VERSION 104 +#define OVERVIEWER_EXTENSION_VERSION 105 #include #include diff --git a/overviewer_core/textures.py b/overviewer_core/textures.py index c10a25f..795b15a 100644 --- a/overviewer_core/textures.py +++ b/overviewer_core/textures.py @@ -767,6 +767,26 @@ class Textures(object): return img + def build_axis_block(self, top, side, data): + """ + Build an block with Axis property. + data = {'y': 0, 'x': 1, 'z': 2}[axis] + """ + def draw_x(): + return self.build_full_block(side.rotate(90), None, None, top, side.rotate(90)) + + def draw_y(): + return self.build_full_block(side, None, None, side.rotate(270), top) + + draw_funcs = [draw_x, draw_y] + + if data == 0: # up + return self.build_block(top, side) + elif data == 1: # x + return draw_funcs[(self.rotation + 0) % len(draw_funcs)]() + elif data == 2: # y + return draw_funcs[(self.rotation + 1) % len(draw_funcs)]() + def build_sprite(self, side): """From a side texture, create a sprite-like texture such as those used for spiderwebs or flowers.""" @@ -1679,9 +1699,10 @@ block(blockid=42, top_image="assets/minecraft/textures/block/iron_block.png") # these wooden slabs are unobtainable without cheating, they are still # here because lots of pre-1.3 worlds use this blocks, add prismarine slabs @material(blockid=[43, 44, 181, 182, 204, 205] + list(range(11340, 11359)) + - list(range(1027, 1030)) + list(range(1072, 1080)), data=list(range(16)), + list(range(1027, 1030)) + list(range(1072, 1080)) + list(range(1103, 1107)), + data=list(range(16)), transparent=[44, 182, 205] + list(range(11340, 11359)) + list(range(1027, 1030)) + - list(range(1072, 1080)), solid=True) + list(range(1072, 1080)) + list(range(1103, 1107)), solid=True) def slabs(self, blockid, data): if blockid == 44 or blockid == 182: texture = data & 7 @@ -1789,6 +1810,14 @@ def slabs(self, blockid, data): 1079: "assets/minecraft/textures/block/oxidized_cut_copper.png", } top = side = self.load_image_texture(copper_tex[blockid]).copy() + elif blockid in range(1103, 1107): + deepslate_tex = { + 1103: "assets/minecraft/textures/block/cobbled_deepslate.png", + 1104: "assets/minecraft/textures/block/polished_deepslate.png", + 1105: "assets/minecraft/textures/block/deepslate_bricks.png", + 1106: "assets/minecraft/textures/block/deepslate_tiles.png", + } + top = side = self.load_image_texture(deepslate_tex[blockid]).copy() if blockid == 43 or blockid == 181 or blockid == 204: # double slab return self.build_block(top, side) @@ -2048,10 +2077,11 @@ block(blockid=52, top_image="assets/minecraft/textures/block/spawner.png", trans # polished_granite polished_andesite polished_diorite granite diorite andesite end_stone_bricks red_nether_brick stairs # smooth_red_sandstone blackstone polished_blackstone polished_blackstone_brick # also all the copper variants +# also all deepslate variants @material(blockid=[53, 67, 108, 109, 114, 128, 134, 135, 136, 156, 163, 164, 180, 203, 509, 510, 11337, 11338, 11339, 11370, 11371, 11374, 11375, 11376, 11377, 11378, 11379, 11380, 11381, 11382, 11383, 11384, 11415, 1030, 1031, 1032, 1064, 1065, 1066, - 1067, 1068, 1069, 1070, 1071], + 1067, 1068, 1069, 1070, 1071, 1099, 1100, 1101, 1102], data=list(range(128)), transparent=True, solid=True, nospawn=True) def stairs(self, blockid, data): # preserve the upside-down bit @@ -2112,7 +2142,11 @@ def stairs(self, blockid, data): 1069: "assets/minecraft/textures/block/exposed_cut_copper.png", 1070: "assets/minecraft/textures/block/weathered_cut_copper.png", 1071: "assets/minecraft/textures/block/oxidized_cut_copper.png", - + # Deepslate + 1099: "assets/minecraft/textures/block/cobbled_deepslate.png", + 1100: "assets/minecraft/textures/block/polished_deepslate.png", + 1101: "assets/minecraft/textures/block/deepslate_bricks.png", + 1102: "assets/minecraft/textures/block/deepslate_tiles.png", } texture = self.load_image_texture(stair_id_to_tex[blockid]).copy() @@ -4882,7 +4916,7 @@ def beacon(self, blockid, data): # cobblestone and mossy cobblestone walls, chorus plants, mossy stone brick walls # one additional bit of data value added for mossy and cobblestone -@material(blockid=[199]+list(range(1792, 1808 + 1)), data=list(range(32)), transparent=True, nospawn=True) +@material(blockid=[199]+list(range(1792, 1812 + 1)), data=list(range(32)), transparent=True, nospawn=True) def cobblestone_wall(self, blockid, data): walls_id_to_tex = { 199: "assets/minecraft/textures/block/chorus_plant.png", # chorus plants @@ -4902,7 +4936,11 @@ def cobblestone_wall(self, blockid, data): 1805: "assets/minecraft/textures/block/stone_bricks.png", 1806: "assets/minecraft/textures/block/blackstone.png", 1807: "assets/minecraft/textures/block/polished_blackstone.png", - 1808: "assets/minecraft/textures/block/polished_blackstone_bricks.png" + 1808: "assets/minecraft/textures/block/polished_blackstone_bricks.png", + 1809: "assets/minecraft/textures/block/cobbled_deepslate.png", + 1810: "assets/minecraft/textures/block/polished_deepslate.png", + 1811: "assets/minecraft/textures/block/deepslate_bricks.png", + 1812: "assets/minecraft/textures/block/deepslate_tiles.png", } t = self.load_image_texture(walls_id_to_tex[blockid]).copy() @@ -5317,19 +5355,12 @@ def chorus_flower(self, blockid, data): # purpur block block(blockid=201, top_image="assets/minecraft/textures/block/purpur_block.png") -# purpur pilar -@material(blockid=202, data=list(range(12)) , solid=True) +# purpur pillar +@material(blockid=202, data=list(range(3)), solid=True) def purpur_pillar(self, blockid, data): - pillar_orientation = data & 12 top=self.load_image_texture("assets/minecraft/textures/block/purpur_pillar_top.png") side=self.load_image_texture("assets/minecraft/textures/block/purpur_pillar.png") - if pillar_orientation == 0: # east-west orientation - return self.build_block(top, side) - elif pillar_orientation == 4: # east-west orientation - return self.build_full_block(side.rotate(90), None, None, top, side.rotate(90)) - elif pillar_orientation == 8: # north-south orientation - - return self.build_full_block(side, None, None, side.rotate(270), top) + return self.build_axis_block(top, side, data) # end brick block(blockid=206, top_image="assets/minecraft/textures/block/end_stone_bricks.png") @@ -5895,12 +5926,7 @@ def basalt(self, blockid, data): block_name = "polished_basalt" if blockid == 1002 else "basalt" top = self.load_image_texture("assets/minecraft/textures/block/" + block_name + "_top.png") side = self.load_image_texture("assets/minecraft/textures/block/" + block_name + "_side.png") - if data == 0: - return self.build_block(top, side) - elif data == 1: # east-west orientation - return self.build_full_block(side.rotate(90), None, None, top, side.rotate(90)) - elif data == 2: # north-south orientation - return self.build_full_block(side, None, None, side.rotate(270), top) + return self.build_axis_block(top, side, data) # Blackstone block @@ -5997,22 +6023,31 @@ block(blockid=1080, top_image="assets/minecraft/textures/block/moss_block.png") block(blockid=1081, top_image="assets/minecraft/textures/block/calcite.png") block(blockid=1082, top_image="assets/minecraft/textures/block/rooted_dirt.png") -block(blockid=1083, top_image="assets/minecraft/textures/block/cobbled_deepslate.png") -block(blockid=1084, top_image="assets/minecraft/textures/block/polished_deepslate.png") -block(blockid=1085, top_image="assets/minecraft/textures/block/deepslate_coal_ore.png") -block(blockid=1086, top_image="assets/minecraft/textures/block/deepslate_iron_ore.png") -block(blockid=1087, top_image="assets/minecraft/textures/block/deepslate_copper_ore.png") -block(blockid=1088, top_image="assets/minecraft/textures/block/deepslate_gold_ore.png") -block(blockid=1089, top_image="assets/minecraft/textures/block/deepslate_emerald_ore.png") -block(blockid=1090, top_image="assets/minecraft/textures/block/deepslate_lapis_ore.png") -block(blockid=1091, top_image="assets/minecraft/textures/block/deepslate_diamond_ore.png") -block(blockid=1092, top_image="assets/minecraft/textures/block/deepslate_redstone_ore.png") -block(blockid=1093, top_image="assets/minecraft/textures/block/deepslate_bricks.png") -block(blockid=1094, top_image="assets/minecraft/textures/block/cracked_deepslate_bricks.png") -block(blockid=1095, top_image="assets/minecraft/textures/block/deepslate_tiles.png") -block(blockid=1096, top_image="assets/minecraft/textures/block/cracked_deepslate_tiles.png") -block(blockid=1097, top_image="assets/minecraft/textures/block/chiseled_deepslate.png") -block(blockid=1098, top_image="assets/minecraft/textures/block/dripstone_block.png") -block(blockid=1099, top_image="assets/minecraft/textures/block/smooth_basalt.png") -block(blockid=1100, top_image="assets/minecraft/textures/block/tuff.png") +# deepslate +@material(blockid=1083, data=list(range(3)), solid=True) +def purpur_pillar(self, blockid, data): + top=self.load_image_texture("assets/minecraft/textures/block/deepslate_top.png") + side=self.load_image_texture("assets/minecraft/textures/block/deepslate.png") + return self.build_axis_block(top, side, data) + + +block(blockid=1084, top_image="assets/minecraft/textures/block/cobbled_deepslate.png") +block(blockid=1085, top_image="assets/minecraft/textures/block/polished_deepslate.png") +block(blockid=1086, top_image="assets/minecraft/textures/block/deepslate_coal_ore.png") +block(blockid=1087, top_image="assets/minecraft/textures/block/deepslate_iron_ore.png") +block(blockid=1088, top_image="assets/minecraft/textures/block/deepslate_copper_ore.png") +block(blockid=1089, top_image="assets/minecraft/textures/block/deepslate_gold_ore.png") +block(blockid=1090, top_image="assets/minecraft/textures/block/deepslate_emerald_ore.png") +block(blockid=1091, top_image="assets/minecraft/textures/block/deepslate_lapis_ore.png") +block(blockid=1092, top_image="assets/minecraft/textures/block/deepslate_diamond_ore.png") +block(blockid=1093, top_image="assets/minecraft/textures/block/deepslate_redstone_ore.png") +block(blockid=1094, top_image="assets/minecraft/textures/block/deepslate_bricks.png") +block(blockid=1095, top_image="assets/minecraft/textures/block/cracked_deepslate_bricks.png") +block(blockid=1096, top_image="assets/minecraft/textures/block/deepslate_tiles.png") +block(blockid=1097, top_image="assets/minecraft/textures/block/cracked_deepslate_tiles.png") +block(blockid=1098, top_image="assets/minecraft/textures/block/chiseled_deepslate.png") + +block(blockid=1107, top_image="assets/minecraft/textures/block/dripstone_block.png") +block(blockid=1108, top_image="assets/minecraft/textures/block/smooth_basalt.png") +block(blockid=1109, top_image="assets/minecraft/textures/block/tuff.png") diff --git a/overviewer_core/world.py b/overviewer_core/world.py index f8ac9f0..c45581d 100644 --- a/overviewer_core/world.py +++ b/overviewer_core/world.py @@ -815,25 +815,37 @@ class RegionSet(object): 'minecraft:moss_block': (1080, 0), 'minecraft:calcite': (1081, 0), 'minecraft:rooted_dirt': (1082, 0), - 'minecraft:cobbled_deepslate': (1083, 0), - 'minecraft:polished_deepslate': (1084, 0), - 'minecraft:deepslate_coal_ore': (1085, 0), - 'minecraft:deepslate_iron_ore': (1086, 0), - 'minecraft:deepslate_copper_ore': (1087, 0), - 'minecraft:deepslate_gold_ore': (1088, 0), - 'minecraft:deepslate_emerald_ore': (1089, 0), - 'minecraft:deepslate_lapis_ore': (1090, 0), - 'minecraft:deepslate_diamond_ore': (1091, 0), - 'minecraft:deepslate_redstone_ore': (1092, 0), - 'minecraft:deepslate_bricks': (1093, 0), - 'minecraft:cracked_deepslate_bricks': (1094, 0), - 'minecraft:deepslate_tiles': (1095, 0), - 'minecraft:cracked_deepslate_tiles': (1096, 0), - 'minecraft:chiseled_deepslate': (1097, 0), + 'minecraft:deepslate': (1083, 0), + 'minecraft:infested_deepslate': (1083, 0), + 'minecraft:cobbled_deepslate': (1084, 0), + 'minecraft:polished_deepslate': (1085, 0), + 'minecraft:deepslate_coal_ore': (1086, 0), + 'minecraft:deepslate_iron_ore': (1087, 0), + 'minecraft:deepslate_copper_ore': (1088, 0), + 'minecraft:deepslate_gold_ore': (1089, 0), + 'minecraft:deepslate_emerald_ore': (1090, 0), + 'minecraft:deepslate_lapis_ore': (1091, 0), + 'minecraft:deepslate_diamond_ore': (1092, 0), + 'minecraft:deepslate_redstone_ore': (1093, 0), + 'minecraft:deepslate_bricks': (1094, 0), + 'minecraft:cracked_deepslate_bricks': (1095, 0), + 'minecraft:deepslate_tiles': (1096, 0), + 'minecraft:cracked_deepslate_tiles': (1097, 0), + 'minecraft:chiseled_deepslate': (1098, 0), - 'minecraft:dripstone_block': (1098, 0), - 'minecraft:smooth_basalt': (1099, 0), - 'minecraft:tuff': (1100, 0), + 'minecraft:cobbled_deepslate_stairs': (1099, 0), + 'minecraft:polished_deepslate_stairs': (1100, 0), + 'minecraft:deepslate_brick_stairs': (1101, 0), + 'minecraft:deepslate_tile_stairs': (1102, 0), + + 'minecraft:cobbled_deepslate_slab': (1103, 0), + 'minecraft:polished_deepslate_slab': (1104, 0), + 'minecraft:deepslate_brick_slab': (1105, 0), + 'minecraft:deepslate_tile_slab': (1106, 0), + + 'minecraft:dripstone_block': (1107, 0), + 'minecraft:smooth_basalt': (1108, 0), + 'minecraft:tuff': (1109, 0), # New blocks 'minecraft:carved_pumpkin': (11300, 0), @@ -977,6 +989,10 @@ class RegionSet(object): 'minecraft:blackstone_wall': (1806, 0), 'minecraft:polished_blackstone_wall': (1807, 0), 'minecraft:polished_blackstone_brick_wall': (1808, 0), + 'minecraft:cobbled_deepslate_wall': (1809, 0), + 'minecraft:polished_deepslate_wall': (1810, 0), + 'minecraft:deepslate_brick_wall': (1811, 0), + 'minecraft:deepslate_tile_wall': (1812, 0), } colors = [ 'white', 'orange', 'magenta', 'light_blue', @@ -1019,7 +1035,9 @@ class RegionSet(object): 'minecraft:mossy_cobblestone_slab','minecraft:mossy_stone_brick_slab', 'minecraft:smooth_quartz_slab','minecraft:smooth_stone_slab', 'minecraft:blackstone_slab','minecraft:polished_blackstone_slab', - 'minecraft:polished_blackstone_brick_slab' + 'minecraft:polished_blackstone_brick_slab', 'minecraft:cobbled_deepslate_slab', + 'minecraft:polished_deepslate_slab', 'minecraft:deepslate_brick_slab', + 'minecraft:deepslate_tile_slab' ) prismarine_slabs = ('minecraft:prismarine_slab','minecraft:dark_prismarine_slab','minecraft:prismarine_brick_slab') @@ -1155,6 +1173,18 @@ class RegionSet(object): elif key == 'minecraft:polished_blackstone_brick_slab': block = 1026 # polished_blackstone_bricks data = 0 + elif key == 'minecraft:cobbled_deepslate_slab': + block = 1084 # 'minecraft:cobbled_deepslate' + data = 0 + elif key == 'minecraft:polished_deepslate_slab': + block = 1085 # 'minecraft:polished_deepslate' + data = 0 + elif key == 'minecraft:deepslate_brick_slab': + block = 1094 # 'minecraft:deepslate_bricks' + data = 0 + elif key == 'minecraft:deepslate_tile_slab': + block = 1096 # 'minecraft:deepslate_tiles' + data = 0 elif key in prismarine_slabs: block = 168 # minecraft:prismarine variants @@ -1168,6 +1198,7 @@ class RegionSet(object): # dumb hack because I'm lazy but this function is horrid anyway block = block - 18 + elif key in ['minecraft:ladder', 'minecraft:chest', 'minecraft:ender_chest', 'minecraft:trapped_chest', 'minecraft:furnace', 'minecraft:blast_furnace', 'minecraft:smoker']: @@ -1221,7 +1252,8 @@ class RegionSet(object): data = 3 if axis == 'z': data = 4 - elif key in ['minecraft:basalt', 'minecraft:polished_basalt', 'minecraft:chain']: + elif key in ['minecraft:basalt', 'minecraft:polished_basalt', 'minecraft:chain', 'minecraft:purpur_pillar', + 'minecraft:deepslate']: axis = palette_entry['Properties']['axis'] data = {'y': 0, 'x': 1, 'z': 2}[axis] elif key in ['minecraft:redstone_torch','minecraft:redstone_wall_torch','minecraft:wall_torch',