added support for different door types
This commit is contained in:
@@ -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) ||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user