From bc24ea53ceb3a893f890bae788e2e1890af137ff Mon Sep 17 00:00:00 2001 From: Bernd Buschinski Date: Wed, 2 Jun 2021 17:36:17 +0200 Subject: [PATCH] Added Chains --- overviewer_core/textures.py | 38 +++++++++++++++++++++++++++++++++++++ overviewer_core/world.py | 3 ++- 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/overviewer_core/textures.py b/overviewer_core/textures.py index 9e6220b..d6f38c6 100644 --- a/overviewer_core/textures.py +++ b/overviewer_core/textures.py @@ -5862,6 +5862,44 @@ def basalt(self, blockid, data): block(blockid=[1004], top_image="assets/minecraft/textures/block/blackstone_top.png", side_image="assets/minecraft/textures/block/blackstone.png") + +# Chain +@material(blockid=11419, data=list(range(3)), solid=True, transparent=True, nospawn=True) +def chain(self, blockid, data): + tex = self.load_image_texture("assets/minecraft/textures/block/chain.png") + sidetex = Image.new(tex.mode, tex.size, self.bgcolor) + mask = tex.crop((0, 0, 6, 16)) + alpha_over(sidetex, mask, (5, 0), mask) + + if data == 0: # y + return self.build_sprite(sidetex) + else: + img = Image.new("RGBA", (24, 24), self.bgcolor) + sidetex = sidetex.rotate(90) + side = self.transform_image_side(sidetex) + otherside = self.transform_image_top(sidetex) + + def draw_x(): + _side = side.transpose(Image.FLIP_LEFT_RIGHT) + alpha_over(img, _side, (6,3), _side) + alpha_over(img, otherside, (3,3), otherside) + + def draw_z(): + _otherside = otherside.transpose(Image.FLIP_LEFT_RIGHT) + alpha_over(img, side, (6,3), side) + alpha_over(img, _otherside, (0,6), _otherside) + + draw_funcs = [draw_x, draw_z] + + if data == 1: # x + draw_funcs[self.rotation % len(draw_funcs)]() + + elif data == 2: # z + draw_funcs[(self.rotation + 1) % len(draw_funcs)]() + + return img + + # Netherite block(blockid=[1005], top_image="assets/minecraft/textures/block/netherite_block.png") # soul soil diff --git a/overviewer_core/world.py b/overviewer_core/world.py index 842a3ac..9d15ed3 100644 --- a/overviewer_core/world.py +++ b/overviewer_core/world.py @@ -882,6 +882,7 @@ class RegionSet(object): 'minecraft:bamboo': (11416, 0), "minecraft:composter": (11417, 0), "minecraft:barrel": (11418, 0), + "minecraft:chain": (11419, 0), # 1.15 blocks below 'minecraft:beehive': (11501, 0), 'minecraft:bee_nest': (11502, 0), @@ -1137,7 +1138,7 @@ class RegionSet(object): data = 3 if axis == 'z': data = 4 - elif key == 'minecraft:basalt' or key == 'minecraft:polished_basalt': + elif key in ['minecraft:basalt', 'minecraft:polished_basalt', 'minecraft:chain']: 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',