0

added support for different door types

This commit is contained in:
Andrew Chin
2014-08-26 15:48:05 -04:00
parent df920e60de
commit e82e7bf0b2
2 changed files with 39 additions and 6 deletions

View File

@@ -398,7 +398,9 @@ generate_pseudo_data(RenderState *state, unsigned short ancilData) {
/* portal and nether brick fences */
return check_adjacent_blocks(state, x, y, z, state->block);
} else if ((state->block == 64) || (state->block == 71)) {
} else if ((state->block == 64) || (state->block == 71) || (state->block == 193) ||
(state->block == 194) || (state->block == 195) || (state->block == 196) ||
(state->block ==197)) {
/* use bottom block data format plus one bit for top/down
* block (0x8) and one bit for hinge position (0x10)
*/
@@ -704,8 +706,13 @@ chunk_render(PyObject *self, PyObject *args) {
* trapped chests, stairs */
if ((state.block == 2) || (state.block == 9) ||
(state.block == 20) || (state.block == 54) ||
(state.block == 55) || (state.block == 64) ||
(state.block == 71) || (state.block == 79) ||
(state.block == 55) ||
/* doors */
(state.block == 64) || (state.block == 193) ||
(state.block == 194) || (state.block == 195) ||
(state.block == 196) || (state.block == 197) ||
(state.block == 71) || /* end doors */
(state.block == 79) ||
(state.block == 85) || (state.block == 90) ||
(state.block == 101) || (state.block == 102) ||
(state.block == 111) || (state.block == 113) ||

View File

@@ -2195,7 +2195,7 @@ def signpost(self, blockid, data):
# wooden and iron door
# uses pseudo-ancildata found in iterate.c
@material(blockid=[64,71], data=range(32), transparent=True)
@material(blockid=[64,71,193,194,195,196,197], data=range(32), transparent=True)
def door(self, blockid, data):
#Masked to not clobber block top/bottom & swung info
if self.rotation == 1:
@@ -2215,9 +2215,35 @@ def door(self, blockid, data):
elif (data & 0b00011) == 3: data = data & 0b11100 | 2
if data & 0x8 == 0x8: # top of the door
raw_door = self.load_image_texture("assets/minecraft/textures/blocks/%s.png" % ("door_wood_upper" if blockid == 64 else "door_iron_upper"))
if blockid == 64: # classic wood door
raw_door = self.load_image_texture("assets/minecraft/textures/blocks/door_wood_upper.png")
elif blockid == 71: # iron door
raw_door = self.load_image_texture("assets/minecraft/textures/blocks/door_iron_upper.png")
elif blockid == 193: # spruce door
raw_door = self.load_image_texture("assets/minecraft/textures/blocks/door_spruce_upper.png")
elif blockid == 194: # birch door
raw_door = self.load_image_texture("assets/minecraft/textures/blocks/door_birch_upper.png")
elif blockid == 195: # jungle door
raw_door = self.load_image_texture("assets/minecraft/textures/blocks/door_jungle_upper.png")
elif blockid == 196: # acacia door
raw_door = self.load_image_texture("assets/minecraft/textures/blocks/door_acacia_upper.png")
elif blockid == 197: # dark_oak door
raw_door = self.load_image_texture("assets/minecraft/textures/blocks/door_dark_oak_upper.png")
else: # bottom of the door
raw_door = self.load_image_texture("assets/minecraft/textures/blocks/%s.png" % ("door_wood_lower" if blockid == 64 else "door_iron_lower"))
if blockid == 64:
raw_door = self.load_image_texture("assets/minecraft/textures/blocks/door_wood_lower.png")
elif blockid == 71: # iron door
raw_door = self.load_image_texture("assets/minecraft/textures/blocks/door_iron_lower.png")
elif blockid == 193: # spruce door
raw_door = self.load_image_texture("assets/minecraft/textures/blocks/door_spruce_lower.png")
elif blockid == 194: # birch door
raw_door = self.load_image_texture("assets/minecraft/textures/blocks/door_birch_lower.png")
elif blockid == 195: # jungle door
raw_door = self.load_image_texture("assets/minecraft/textures/blocks/door_jungle_lower.png")
elif blockid == 196: # acacia door
raw_door = self.load_image_texture("assets/minecraft/textures/blocks/door_acacia_lower.png")
elif blockid == 197: # dark_oak door
raw_door = self.load_image_texture("assets/minecraft/textures/blocks/door_dark_oak_lower.png")
# if you want to render all doors as closed, then force
# force closed to be True