Add special texture rotation for upper-left and lower-right
This commit is contained in:
172
textures.py
172
textures.py
@@ -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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user