parent
7e2cb56c1b
commit
a5d9787071
|
@ -42,3 +42,4 @@ overviewer_core/src/primitives.h
|
||||||
/.vs/Minecraft-Overviewer/v15/.suo
|
/.vs/Minecraft-Overviewer/v15/.suo
|
||||||
/.vs
|
/.vs
|
||||||
.vscode
|
.vscode
|
||||||
|
ImagingUtils.h
|
||||||
|
|
|
@ -293,6 +293,7 @@ enum mc_block_id {
|
||||||
block_mossy_stone_brick_stairs = 11370,
|
block_mossy_stone_brick_stairs = 11370,
|
||||||
block_mossy_cobblestone_stairs = 11371,
|
block_mossy_cobblestone_stairs = 11371,
|
||||||
block_mossy_stone_brick_wall = 11372,
|
block_mossy_stone_brick_wall = 11372,
|
||||||
|
block_lantern = 11373,
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef uint16_t mc_block_t;
|
typedef uint16_t mc_block_t;
|
||||||
|
|
|
@ -1871,6 +1871,62 @@ def torches(self, blockid, data):
|
||||||
|
|
||||||
return img
|
return img
|
||||||
|
|
||||||
|
# lantern
|
||||||
|
@material(blockid=11373, data=[0, 1], transparent=True)
|
||||||
|
def lantern(self, blockid, data):
|
||||||
|
# get the multipart texture of the lantern
|
||||||
|
inputtexture = self.load_image_texture("assets/minecraft/textures/block/lantern.png")
|
||||||
|
|
||||||
|
# # now create a textures, using the parts defined in lantern.json
|
||||||
|
|
||||||
|
# JSON data for sides
|
||||||
|
# from": [ 5, 1, 5 ],
|
||||||
|
# "to": [11, 8, 11 ],
|
||||||
|
# { "uv": [ 0, 2, 6, 9 ], "texture": "#all" }
|
||||||
|
|
||||||
|
side_crop = inputtexture.crop((0, 2, 6, 9))
|
||||||
|
side_slice = side_crop.copy()
|
||||||
|
side_texture = Image.new("RGBA", (16, 16), self.bgcolor)
|
||||||
|
side_texture.paste(side_slice,(5, 8))
|
||||||
|
|
||||||
|
# JSON data for top
|
||||||
|
# { "uv": [ 0, 9, 6, 15 ], "texture": "#all" }
|
||||||
|
top_crop = inputtexture.crop((0, 9, 6, 15))
|
||||||
|
top_slice = top_crop.copy()
|
||||||
|
top_texture = Image.new("RGBA", (16, 16), self.bgcolor)
|
||||||
|
top_texture.paste(top_slice,(5, 5))
|
||||||
|
|
||||||
|
# mimic parts of build_full_block, to get an object smaller than a block
|
||||||
|
# build_full_block(self, top, side1, side2, side3, side4, bottom=None):
|
||||||
|
# a non transparent block uses top, side 3 and side 4.
|
||||||
|
img = Image.new("RGBA", (24, 24), self.bgcolor)
|
||||||
|
# prepare the side textures
|
||||||
|
# side3
|
||||||
|
side3 = self.transform_image_side(side_texture)
|
||||||
|
# Darken this side
|
||||||
|
sidealpha = side3.split()[3]
|
||||||
|
side3 = ImageEnhance.Brightness(side3).enhance(0.9)
|
||||||
|
side3.putalpha(sidealpha)
|
||||||
|
# place the transformed texture
|
||||||
|
hangoff = 0
|
||||||
|
if data == 1:
|
||||||
|
hangoff = 8
|
||||||
|
xoff = 4
|
||||||
|
yoff =- hangoff
|
||||||
|
alpha_over(img, side3, (xoff+0, yoff+6), side3)
|
||||||
|
# side4
|
||||||
|
side4 = self.transform_image_side(side_texture)
|
||||||
|
side4 = side4.transpose(Image.FLIP_LEFT_RIGHT)
|
||||||
|
# Darken this side
|
||||||
|
sidealpha = side4.split()[3]
|
||||||
|
side4 = ImageEnhance.Brightness(side4).enhance(0.8)
|
||||||
|
side4.putalpha(sidealpha)
|
||||||
|
alpha_over(img, side4, (12-xoff, yoff+6), side4)
|
||||||
|
# top
|
||||||
|
top = self.transform_image_top(top_texture)
|
||||||
|
alpha_over(img, top, (0, 8-hangoff), top)
|
||||||
|
return img
|
||||||
|
|
||||||
# fire
|
# fire
|
||||||
@material(blockid=51, data=list(range(16)), transparent=True)
|
@material(blockid=51, data=list(range(16)), transparent=True)
|
||||||
def fire(self, blockid, data):
|
def fire(self, blockid, data):
|
||||||
|
|
|
@ -808,6 +808,7 @@ class RegionSet(object):
|
||||||
"minecraft:mossy_stone_brick_stairs": (11370, 0),
|
"minecraft:mossy_stone_brick_stairs": (11370, 0),
|
||||||
"minecraft:mossy_cobblestone_stairs": (11371, 0),
|
"minecraft:mossy_cobblestone_stairs": (11371, 0),
|
||||||
"minecraft:mossy_stone_brick_wall": (11372, 0),
|
"minecraft:mossy_stone_brick_wall": (11372, 0),
|
||||||
|
"minecraft:lantern": (11373, 0),
|
||||||
}
|
}
|
||||||
|
|
||||||
colors = [ 'white', 'orange', 'magenta', 'light_blue',
|
colors = [ 'white', 'orange', 'magenta', 'light_blue',
|
||||||
|
@ -1081,6 +1082,11 @@ class RegionSet(object):
|
||||||
elif key in ['minecraft:beetroots', 'minecraft:melon_stem', 'minecraft:wheat',
|
elif key in ['minecraft:beetroots', 'minecraft:melon_stem', 'minecraft:wheat',
|
||||||
'minecraft:pumpkin_stem', 'minecraft:potatoes', 'minecraft:carrots']:
|
'minecraft:pumpkin_stem', 'minecraft:potatoes', 'minecraft:carrots']:
|
||||||
data = palette_entry['Properties']['age']
|
data = palette_entry['Properties']['age']
|
||||||
|
elif key == 'minecraft:lantern':
|
||||||
|
if palette_entry['Properties']['hanging'] == 'true':
|
||||||
|
data = 1
|
||||||
|
else:
|
||||||
|
data = 0
|
||||||
return (block, data)
|
return (block, data)
|
||||||
|
|
||||||
def get_type(self):
|
def get_type(self):
|
||||||
|
|
Loading…
Reference in New Issue