From 9e27e6adc9c0a469100773a4b0db0a67e1c50b8e Mon Sep 17 00:00:00 2001 From: Ian Salmons Date: Fri, 1 Nov 2019 11:45:00 +0100 Subject: [PATCH] add composter --- overviewer_core/src/mc_id.h | 1 + overviewer_core/src/overviewer.h | 2 +- overviewer_core/textures.py | 27 ++++++++++++++++++++++++++- overviewer_core/world.py | 3 +++ 4 files changed, 31 insertions(+), 2 deletions(-) diff --git a/overviewer_core/src/mc_id.h b/overviewer_core/src/mc_id.h index f472184..2787112 100644 --- a/overviewer_core/src/mc_id.h +++ b/overviewer_core/src/mc_id.h @@ -325,6 +325,7 @@ enum mc_block_id { block_bamboo_sapling = 11413, block_scaffolding = 11414, block_bamboo = 11416, + block_composter = 11417, // adding a gap in the numbering of walls to keep them all // in one numbering block starting at 21000 block_andesite_wall = 21000, diff --git a/overviewer_core/src/overviewer.h b/overviewer_core/src/overviewer.h index 49955ad..7e450dc 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 76 +#define OVERVIEWER_EXTENSION_VERSION 77 #include #include diff --git a/overviewer_core/textures.py b/overviewer_core/textures.py index 467576e..39e1ce8 100644 --- a/overviewer_core/textures.py +++ b/overviewer_core/textures.py @@ -1936,7 +1936,7 @@ def lantern(self, blockid, data): return img # bamboo -@material(blockid=11416, data=[0], transparent=True) +@material(blockid=11416, transparent=True) def bamboo(self, blockid, data): # get the multipart texture of the lantern inputtexture = self.load_image_texture("assets/minecraft/textures/block/bamboo_stalk.png") @@ -1994,6 +1994,31 @@ def bamboo(self, blockid, data): alpha_over(img, top, (-4+xoff, -5), top) return img +# composter +@material(blockid=11417, data=list(range(9)), transparent=True) +def composter(self, blockid, data): + side = self.load_image_texture("assets/minecraft/textures/block/composter_side.png") + top = self.load_image_texture("assets/minecraft/textures/block/composter_top.png") + # bottom = self.load_image_texture("assets/minecraft/textures/block/composter_bottom.png") + + if data == 0: # empty + return self.build_full_block(top, side, side, side, side) + + if data == 8: + compost = self.transform_image_top( + self.load_image_texture("assets/minecraft/textures/block/composter_ready.png")) + else: + compost = self.transform_image_top( + self.load_image_texture("assets/minecraft/textures/block/composter_compost.png")) + + nudge = {1: (0, 9), 2: (0, 8), 3: (0, 7), 4: (0, 6), 5: (0, 4), 6: (0, 2), 7: (0, 0), 8: (0, 0)} + + img = self.build_full_block(None, side, side, None, None) + alpha_over(img, compost, nudge[data], compost) + img2 = self.build_full_block(top, None, None, side, side) + alpha_over(img, img2, (0, 0), img2) + return img + # fire @material(blockid=51, data=list(range(16)), transparent=True) def fire(self, blockid, data): diff --git a/overviewer_core/world.py b/overviewer_core/world.py index 8fc0ff9..4db4151 100644 --- a/overviewer_core/world.py +++ b/overviewer_core/world.py @@ -833,6 +833,7 @@ class RegionSet(object): 'minecraft:scaffolding': (11414, 0), "minecraft:smooth_red_sandstone_stairs": (11415, 0), 'minecraft:bamboo': (11416, 0), + "minecraft:composter": (11417, 0), # adding a gap in the numbering of walls to keep them all # in one numbering block starting at 21000 'minecraft:andesite_wall': (21000, 0), @@ -1128,6 +1129,8 @@ class RegionSet(object): data = 1 else: data = 0 + elif key == "minecraft:composter": + data = palette_entry['Properties']['level'] return (block, data) def get_type(self):