0

Add special texture rotation for upper-left and lower-right

This commit is contained in:
Ryan Rector
2011-07-13 15:01:04 -06:00
parent 56a5f42cd0
commit e26059be38

View File

@@ -1529,87 +1529,215 @@ def generate_special_texture(blockID, data, north_direction):
def convert_data(blockID, data, north_direction): def convert_data(blockID, data, north_direction):
if blockID == 26: # bed if blockID == 26: # bed
if north_direction == 'upper-right': #Masked to not clobber block head/foot info
#Masked to not clobber block head/foot info if north_direction == 'upper-left':
if (data & 0b0011) == 0: data = data & 0b1100 | 1
elif (data & 0b0011) == 1: data = data & 0b1100 | 2
elif (data & 0b0011) == 2: data = data & 0b1100 | 3
elif (data & 0b0011) == 3: data = data & 0b1100 | 4
elif north_direction == 'upper-right':
if (data & 0b0011) == 0: data = data & 0b1100 | 2 if (data & 0b0011) == 0: data = data & 0b1100 | 2
elif (data & 0b0011) == 1: data = data & 0b1100 | 3 elif (data & 0b0011) == 1: data = data & 0b1100 | 3
elif (data & 0b0011) == 2: data = data & 0b1100 | 0 elif (data & 0b0011) == 2: data = data & 0b1100 | 0
elif (data & 0b0011) == 3: data = data & 0b1100 | 1 elif (data & 0b0011) == 3: data = data & 0b1100 | 1
elif north_direction == 'lower-right':
if (data & 0b0011) == 0: data = data & 0b1100 | 3
elif (data & 0b0011) == 1: data = data & 0b1100 | 0
elif (data & 0b0011) == 2: data = data & 0b1100 | 1
elif (data & 0b0011) == 3: data = data & 0b1100 | 2
if blockID in (27, 28, 66): # minetrack: if blockID in (27, 28, 66): # minetrack:
if north_direction == 'upper-right': #Masked to not clobber powered rail on/off info
#Masked to not clobber powered rail on/off info #Ascending and flat straight
#Ascending if north_direction == 'upper-left':
if (data & 0b0111) == 0: data = data & 0b1000 | 1
elif (data & 0b0111) == 1: data = data & 0b1000 | 0
elif (data & 0b0111) == 2: data = data & 0b1000 | 5
elif (data & 0b0111) == 3: data = data & 0b1000 | 4
elif (data & 0b0111) == 4: data = data & 0b1000 | 2
elif (data & 0b0111) == 5: data = data & 0b1000 | 3
elif north_direction == 'upper-right':
if (data & 0b0111) == 2: data = data & 0b1000 | 3 if (data & 0b0111) == 2: data = data & 0b1000 | 3
elif (data & 0b0111) == 3: data = data & 0b1000 | 2 elif (data & 0b0111) == 3: data = data & 0b1000 | 2
elif (data & 0b0111) == 4: data = data & 0b1000 | 5 elif (data & 0b0111) == 4: data = data & 0b1000 | 5
elif (data & 0b0111) == 5: data = data & 0b1000 | 4 elif (data & 0b0111) == 5: data = data & 0b1000 | 4
if blockID == 66: #normal minetrack only elif north_direction == 'lower-right':
if north_direction == 'upper-right': if (data & 0b0111) == 0: data = data & 0b1000 | 1
#Corners elif (data & 0b0111) == 1: data = data & 0b1000 | 0
elif (data & 0b0111) == 2: data = data & 0b1000 | 4
elif (data & 0b0111) == 3: data = data & 0b1000 | 5
elif (data & 0b0111) == 4: data = data & 0b1000 | 3
elif (data & 0b0111) == 5: data = data & 0b1000 | 2
if blockID == 66: # normal minetrack only
#Corners
if north_direction == 'upper-left':
if data == 6: data = 7
elif data == 7: data = 8
elif data == 8: data = 6
elif data == 9: data = 9
elif north_direction == 'upper-right':
if data == 6: data = 8 if data == 6: data = 8
elif data == 7: data = 9 elif data == 7: data = 9
elif data == 8: data = 6 elif data == 8: data = 6
elif data == 9: data = 7 elif data == 9: data = 7
elif north_direction == 'lower-right':
if data == 6: data = 9
elif data == 7: data = 6
elif data == 8: data = 8
elif data == 9: data = 7
if blockID in (50, 75, 76): # torch, off/on redstone torch if blockID in (50, 75, 76): # torch, off/on redstone torch
if north_direction == 'upper-right': if north_direction == 'upper-left':
if data == 1: data = 3
elif data == 2: data = 4
elif data == 3: data = 2
elif data == 4: data = 1
elif north_direction == 'upper-right':
if data == 1: data = 2 if data == 1: data = 2
elif data == 2: data = 1 elif data == 2: data = 1
elif data == 3: data = 4 elif data == 3: data = 4
elif data == 4: data = 3 elif data == 4: data = 3
elif north_direction == 'lower-right':
if data == 1: data = 4
elif data == 2: data = 3
elif data == 3: data = 1
elif data == 4: data = 2
if blockID in (53,67): # wooden and cobblestone stairs. if blockID in (53,67): # wooden and cobblestone stairs.
if north_direction == 'upper-right': if north_direction == 'upper-left':
if data == 0: data = 2
elif data == 1: data = 3
elif data == 2: data = 1
elif data == 3: data = 0
elif north_direction == 'upper-right':
if data == 0: data = 1 if data == 0: data = 1
elif data == 1: data = 0 elif data == 1: data = 0
elif data == 2: data = 3 elif data == 2: data = 3
elif data == 3: data = 2 elif data == 3: data = 2
elif north_direction == 'lower-right':
if data == 0: data = 3
elif data == 1: data = 2
elif data == 2: data = 0
elif data == 3: data = 1
if blockID in (61, 62, 23): # furnace and burning furnace if blockID in (61, 62, 23): # furnace and burning furnace
if north_direction == 'upper-right': if north_direction == 'upper-left':
if data == 2: data = 5
elif data == 3: data = 4
elif data == 4: data = 2
elif data == 5: data = 3
elif north_direction == 'upper-right':
if data == 2: data = 3 if data == 2: data = 3
elif data == 3: data = 2 elif data == 3: data = 2
elif data == 4: data = 5 elif data == 4: data = 5
elif data == 5: data = 4 elif data == 5: data = 4
elif north_direction == 'lower-right':
if data == 2: data = 4
elif data == 3: data = 5
elif data == 4: data = 3
elif data == 5: data = 2
if blockID == 63: # signposts if blockID == 63: # signposts
if north_direction == 'upper-right': if north_direction == 'upper-left':
data = (data + 4) % 16
elif north_direction == 'upper-right':
data = (data + 8) % 16 data = (data + 8) % 16
if blockID in (64,71): # wooden door, or iron door elif north_direction == 'lower-right':
if north_direction == 'upper-right': data = (data + 12) % 16
#Masked to not clobber block top/bottom & swung info if blockID in (64,71): # wooden/iron door
#Masked to not clobber block top/bottom & swung info
if north_direction == 'upper-left':
if (data & 0b0011) == 0: data = data & 0b1100 | 1
elif (data & 0b0011) == 1: data = data & 0b1100 | 2
elif (data & 0b0011) == 2: data = data & 0b1100 | 3
elif (data & 0b0011) == 3: data = data & 0b1100 | 0
elif north_direction == 'upper-right':
if (data & 0b0011) == 0: data = data & 0b1100 | 2 if (data & 0b0011) == 0: data = data & 0b1100 | 2
elif (data & 0b0011) == 1: data = data & 0b1100 | 3 elif (data & 0b0011) == 1: data = data & 0b1100 | 3
elif (data & 0b0011) == 2: data = data & 0b1100 | 0 elif (data & 0b0011) == 2: data = data & 0b1100 | 0
elif (data & 0b0011) == 3: data = data & 0b1100 | 1 elif (data & 0b0011) == 3: data = data & 0b1100 | 1
elif north_direction == 'lower-right':
if (data & 0b0011) == 0: data = data & 0b1100 | 3
elif (data & 0b0011) == 1: data = data & 0b1100 | 0
elif (data & 0b0011) == 2: data = data & 0b1100 | 1
elif (data & 0b0011) == 3: data = data & 0b1100 | 2
if blockID == 65: # ladder if blockID == 65: # ladder
if north_direction == 'upper-right': if north_direction == 'upper-left':
if data == 2: data = 5
elif data == 3: data = 4
elif data == 4: data = 2
elif data == 5: data = 3
elif north_direction == 'upper-right':
if data == 2: data = 3 if data == 2: data = 3
elif data == 3: data = 2 elif data == 3: data = 2
elif data == 4: data = 5 elif data == 4: data = 5
elif data == 5: data = 4 elif data == 5: data = 4
elif north_direction == 'lower-right':
if data == 2: data = 4
elif data == 3: data = 5
elif data == 4: data = 3
elif data == 5: data = 2
if blockID == 68: # wall sign if blockID == 68: # wall sign
if north_direction == 'upper-right': if north_direction == 'upper-left':
if data == 2: data = 5
elif data == 3: data = 4
elif data == 4: data = 2
elif data == 5: data = 3
elif north_direction == 'upper-right':
if data == 2: data = 3 if data == 2: data = 3
elif data == 3: data = 2 elif data == 3: data = 2
elif data == 4: data = 5 elif data == 4: data = 5
elif data == 5: data = 4 elif data == 5: data = 4
elif north_direction == 'lower-right':
if data == 2: data = 4
elif data == 3: data = 5
elif data == 4: data = 3
elif data == 5: data = 2
if blockID in (86,91): # pumpkins, jack-o-lantern if blockID in (86,91): # pumpkins, jack-o-lantern
if north_direction == 'upper-right': if north_direction == 'upper-left':
if data == 0: data = 1
elif data == 1: data = 2
elif data == 2: data = 3
elif data == 3: data = 0
elif north_direction == 'upper-right':
if data == 0: data = 2 if data == 0: data = 2
elif data == 1: data = 3 elif data == 1: data = 3
elif data == 2: data = 0 elif data == 2: data = 0
elif data == 3: data = 1 elif data == 3: data = 1
elif north_direction == 'lower-right':
if data == 0: data = 3
elif data == 1: data = 0
elif data == 2: data = 1
elif data == 3: data = 2
if blockID in (93, 94): # redstone repeaters, ON and OFF if blockID in (93, 94): # redstone repeaters, ON and OFF
if north_direction == 'upper-right': #Masked to not clobber delay info
#Masked to not clobber delay info if north_direction == 'upper-left':
if (data & 0b0011) == 0: data = data & 0b1100 | 1
elif (data & 0b0011) == 1: data = data & 0b1100 | 2
elif (data & 0b0011) == 2: data = data & 0b1100 | 3
elif (data & 0b0011) == 3: data = data & 0b1100 | 0
elif north_direction == 'upper-right':
if (data & 0b0011) == 0: data = data & 0b1100 | 2 if (data & 0b0011) == 0: data = data & 0b1100 | 2
elif (data & 0b0011) == 1: data = data & 0b1100 | 3 elif (data & 0b0011) == 1: data = data & 0b1100 | 3
elif (data & 0b0011) == 2: data = data & 0b1100 | 0 elif (data & 0b0011) == 2: data = data & 0b1100 | 0
elif (data & 0b0011) == 3: data = data & 0b1100 | 1 elif (data & 0b0011) == 3: data = data & 0b1100 | 1
elif north_direction == 'lower-right':
if (data & 0b0011) == 0: data = data & 0b1100 | 3
elif (data & 0b0011) == 1: data = data & 0b1100 | 0
elif (data & 0b0011) == 2: data = data & 0b1100 | 1
elif (data & 0b0011) == 3: data = data & 0b1100 | 2
if blockID == 96: # trapdoor if blockID == 96: # trapdoor
if north_direction == 'upper-right': #Masked to not clobber opened/closed info
#Masked to not clobber opened/closed info if north_direction == 'upper-left':
if (data & 0b0011) == 0: data = data & 0b1100 | 2
elif (data & 0b0011) == 1: data = data & 0b1100 | 3
elif (data & 0b0011) == 2: data = data & 0b1100 | 0
elif (data & 0b0011) == 3: data = data & 0b1100 | 1
elif north_direction == 'upper-right':
if (data & 0b0011) == 0: data = data & 0b1100 | 1 if (data & 0b0011) == 0: data = data & 0b1100 | 1
elif (data & 0b0011) == 1: data = data & 0b1100 | 0 elif (data & 0b0011) == 1: data = data & 0b1100 | 0
elif (data & 0b0011) == 2: data = data & 0b1100 | 3 elif (data & 0b0011) == 2: data = data & 0b1100 | 3
elif (data & 0b0011) == 3: data = data & 0b1100 | 2 elif (data & 0b0011) == 3: data = data & 0b1100 | 2
elif north_direction == 'lower-right':
if (data & 0b0011) == 0: data = data & 0b1100 | 3
elif (data & 0b0011) == 1: data = data & 0b1100 | 2
elif (data & 0b0011) == 2: data = data & 0b1100 | 1
elif (data & 0b0011) == 3: data = data & 0b1100 | 0
return data return data