Convert iron doors, other wood type doors.

All wood type doors are converted to "oak" doors.
This commit is contained in:
Auke Kok 2015-11-22 15:04:53 -08:00
parent 00382166de
commit 651c651be0
2 changed files with 56 additions and 14 deletions

View File

@ -226,6 +226,9 @@ class MTBlock:
param1[i] = max(blocklight[i], skylight[i])|(blocklight[i]<<4)
mcblockidentifier[i] = str(blocks[i]) + ':' + str(data[i])
def isdoor(b):
return b == 64 or b == 71 or (b >= 193 and b <= 197)
# pressure plates - append mesecons node timer
if blocks[i] == 70 or blocks[i] == 72:
self.timers.append(((i&0xf)|((i>>4)&0xf)<<8|((i>>8)&0xf)<<4, 100, 0))
@ -236,30 +239,36 @@ class MTBlock:
elif blocks[i] == 31 and data[i] == 1:
content[i], param2[i] = conversion_table[931][random.randint(0,4)]
# fix doors based on top/bottom bits
elif blocks[i] == 64 and data[i] < 8:
elif isdoor(blocks[i]) and data[i] < 8:
above = i + 256
if (above >= 4096):
print('Unable to fix door - top part is across block boundary!')
elif blocks[above] == 64 and data[above] < 7:
elif isdoor(blocks[above]) and data[above] < 7:
print('Unable to fix door - bottom part on top of bottom part!')
else:
d_right = data[above] & 1 # 0 - left, 1 - right
d_open = data[i] & 4 # 0 - closed, 1 - open
d_face = data[i] & 3 # n,e,s,w orientation
content[i], param2[i] = conversion_table[964][d_face|d_open|(d_right<<3)]
alt = 964
if blocks[i] == 71:
alt = 966
content[i], param2[i] = conversion_table[alt][d_face|d_open|(d_right<<3)]
if d_right == 1:
self.metadata[(i & 0xf, (i>>8) & 0xf, (i>>4) & 0xf)] = ({ "right": "1" }, {})
elif blocks[i] == 64 and data[i] >= 8:
elif isdoor(blocks[i]) and data[i] >= 8:
below = i - 256
if (below < 0):
print('Unable to fix door - bottom part is across block boundary!')
elif blocks[below] == 64 and data[below] >= 8:
elif isdoor(blocks[below]) and data[below] >= 8:
print('Unable to fix door - top part below top part!')
else:
d_right = data[i] & 1 # 0 - left, 1 - right
d_open = data[below] & 4 # 0 - closed, 1 - open
d_face = data[below] & 3 # n,e,s,w orientation
content[i], param2[i] = conversion_table[965][d_face|d_open|(d_right<<3)]
alt = 965
if blocks[i] == 71:
alt = 967
content[i], param2[i] = conversion_table[alt][d_face|d_open|(d_right<<3)]
if d_right == 1:
self.metadata[(i & 0xf, (i>>8) & 0xf, (i>>4) & 0xf)] = ({ "right": "1" }, {})

View File

@ -321,14 +321,7 @@
70 mesecons_pressureplates:pressure_plate_stone_off
71 0,4 doors:door_steel_b_1 0 //FIXME: doors fix themselves after open/close
71 1,5 doors:door_steel_b_1 1
71 2,6 doors:door_steel_b_1 2
71 3,7 doors:door_steel_b_1 3
71 8 doors:door_steel_t_1
71 9 doors:door_steel_t_1
71 10 doors:door_steel_t_1
71 11 doors:door_steel_t_1
71 air // door parts get fixed up in code
72 mesecons_pressureplates:pressure_plate_wood_off
@ -649,6 +642,12 @@
182 8 stairs:slab_desert_stone 22
182 stairs:slab_desert_stone
193 air // door parts get fixed up in code
194 air // door parts get fixed up in code
195 air // door parts get fixed up in code
196 air // door parts get fixed up in code
197 air // door parts get fixed up in code
324 0,4 doors:door_wood_b_1 0
324 1,5 doors:door_wood_b_1 1
324 2,6 doors:door_wood_b_1 2
@ -727,3 +726,37 @@
965 14 doors:door_wood_t_1 0
965 15 doors:door_wood_t_1 1
966 0 doors:door_steel_b_1 3
966 1 doors:door_steel_b_1 0
966 2 doors:door_steel_b_1 1
966 3 doors:door_steel_b_1 2
966 4 doors:door_steel_b_2 0
966 5 doors:door_steel_b_2 1
966 6 doors:door_steel_b_2 2
966 7 doors:door_steel_b_2 3
966 8 doors:door_steel_b_2 3
966 9 doors:door_steel_b_2 0
966 10 doors:door_steel_b_2 1
966 11 doors:door_steel_b_2 2
966 12 doors:door_steel_b_1 2
966 13 doors:door_steel_b_1 3
966 14 doors:door_steel_b_1 0
966 15 doors:door_steel_b_1 1
967 0 doors:door_steel_t_1 3
967 1 doors:door_steel_t_1 0
967 2 doors:door_steel_t_1 1
967 3 doors:door_steel_t_1 2
967 4 doors:door_steel_t_2 0
967 5 doors:door_steel_t_2 1
967 6 doors:door_steel_t_2 2
967 7 doors:door_steel_t_2 3
967 8 doors:door_steel_t_2 3
967 9 doors:door_steel_t_2 0
967 10 doors:door_steel_t_2 1
967 11 doors:door_steel_t_2 2
967 12 doors:door_steel_t_1 2
967 13 doors:door_steel_t_1 3
967 14 doors:door_steel_t_1 0
967 15 doors:door_steel_t_1 1