Added all the new 1.9-pre3 blocks:
- The enchantment table has not book yet! - The brewing stand is the 2d texture pasted. TODO. - The cauldron works perfect. - The air portal draw som random dots resembling stars, is not marevellous, but does the job. - Air portal frame is rendered without problem.
This commit is contained in:
committed by
Alejandro Aguilera Martínez
parent
1c5b324767
commit
f758f876d6
@@ -130,7 +130,8 @@ transparent_blocks = set([ 0, 6, 8, 9, 18, 20, 26, 27, 28, 29, 30, 31, 32, 33
|
|||||||
34, 37, 38, 39, 40, 44, 50, 51, 52, 53, 55, 59, 63, 64,
|
34, 37, 38, 39, 40, 44, 50, 51, 52, 53, 55, 59, 63, 64,
|
||||||
65, 66, 67, 68, 69, 70, 71, 72, 74, 75, 76, 77, 78, 79,
|
65, 66, 67, 68, 69, 70, 71, 72, 74, 75, 76, 77, 78, 79,
|
||||||
81, 83, 85, 90, 92, 93, 94, 96, 101, 102, 104, 105,
|
81, 83, 85, 90, 92, 93, 94, 96, 101, 102, 104, 105,
|
||||||
106, 107, 108, 109, 111, 113, 114, 115])
|
106, 107, 108, 109, 111, 113, 114, 115, 116, 117, 118,
|
||||||
|
119, 120])
|
||||||
|
|
||||||
# This set holds block ids that are solid blocks
|
# This set holds block ids that are solid blocks
|
||||||
solid_blocks = set([1, 2, 3, 4, 5, 7, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
|
solid_blocks = set([1, 2, 3, 4, 5, 7, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
|
||||||
|
|||||||
@@ -280,7 +280,7 @@ def _build_block(top, side, blockID=None):
|
|||||||
return img
|
return img
|
||||||
|
|
||||||
## special case for non-block things
|
## special case for non-block things
|
||||||
if blockID in (37,38,6,39,40,83,30): ## flowers, sapling, mushrooms, reeds, web
|
if blockID in (37,38,6,39,40,83,30,120): ## flowers, sapling, mushrooms, reeds, web, broken air portal frame(data = 1)
|
||||||
#
|
#
|
||||||
# instead of pasting these blocks at the cube edges, place them in the middle:
|
# instead of pasting these blocks at the cube edges, place them in the middle:
|
||||||
# and omit the top
|
# and omit the top
|
||||||
@@ -1963,6 +1963,73 @@ def generate_special_texture(blockID, data):
|
|||||||
|
|
||||||
# use the same technic as tall grass
|
# use the same technic as tall grass
|
||||||
img = _build_block(t, t, blockID)
|
img = _build_block(t, t, blockID)
|
||||||
|
return generate_texture_tuple(img, blockID)
|
||||||
|
|
||||||
|
if blockID == 116: # enchantment table
|
||||||
|
# no book at the moment
|
||||||
|
top = terrain_images[166]
|
||||||
|
side = terrain_images[182]
|
||||||
|
img = _build_full_block((top, 4), None, None, side, side)
|
||||||
|
return generate_texture_tuple(img, blockID)
|
||||||
|
|
||||||
|
if blockID == 117: # brewing stand
|
||||||
|
# place holder. just paste it in 2d!
|
||||||
|
t = terrain_images[157]
|
||||||
|
img = Image.new("RGBA", (24,24), bgcolor)
|
||||||
|
|
||||||
|
composite.alpha_over(img, t, (4, 4), t)
|
||||||
|
return generate_texture_tuple(img, blockID)
|
||||||
|
|
||||||
|
if blockID == 118: # cauldron
|
||||||
|
side = terrain_images[154]
|
||||||
|
top = terrain_images[138]
|
||||||
|
bottom = terrain_images[139]
|
||||||
|
water = transform_image(_load_image("water.png"))
|
||||||
|
if data == 0: # empty
|
||||||
|
img = _build_full_block(top, side, side, side, side)
|
||||||
|
|
||||||
|
if data == 1: # 1/3 filled
|
||||||
|
img = _build_full_block(None , side, side, None, None)
|
||||||
|
composite.alpha_over(img, water, (0,8), water)
|
||||||
|
img2 = _build_full_block(top , None, None, side, side)
|
||||||
|
composite.alpha_over(img, img2, (0,0), img2)
|
||||||
|
|
||||||
|
if data == 2: # 2/3 filled
|
||||||
|
img = _build_full_block(None , side, side, None, None)
|
||||||
|
composite.alpha_over(img, water, (0,4), water)
|
||||||
|
img2 = _build_full_block(top , None, None, side, side)
|
||||||
|
composite.alpha_over(img, img2, (0,0), img2)
|
||||||
|
|
||||||
|
if data == 3: # 3/3 filled
|
||||||
|
img = _build_full_block(None , side, side, None, None)
|
||||||
|
composite.alpha_over(img, water, (0,0), water)
|
||||||
|
img2 = _build_full_block(top , None, None, side, side)
|
||||||
|
composite.alpha_over(img, img2, (0,0), img2)
|
||||||
|
|
||||||
|
return generate_texture_tuple(img, blockID)
|
||||||
|
|
||||||
|
if blockID == 119: # air portal
|
||||||
|
img = Image.new("RGBA", (24,24), bgcolor)
|
||||||
|
# generate a black texure with white, blue and grey dots resembling stars
|
||||||
|
t = Image.new("RGBA", (16,16), (0,0,0,255))
|
||||||
|
for color in [(155,155,155,255), (100,255,100,255), (255,255,255,255)]:
|
||||||
|
for i in range(6):
|
||||||
|
x = randint(0,15)
|
||||||
|
y = randint(0,15)
|
||||||
|
t.putpixel((x,y),color)
|
||||||
|
|
||||||
|
t = transform_image(t, blockID)
|
||||||
|
composite.alpha_over(img, t, (0,0), t)
|
||||||
|
|
||||||
|
return generate_texture_tuple(img, blockID)
|
||||||
|
|
||||||
|
if blockID == 120: # air portal frame
|
||||||
|
if data == 0: # fixed block
|
||||||
|
t = terrain_images[159]
|
||||||
|
img = _build_full_block(t, None, None, t, t)
|
||||||
|
if data == 1: # broken block
|
||||||
|
t = terrain_images[158]
|
||||||
|
img = _build_block(t, t, blockID)
|
||||||
|
|
||||||
return generate_texture_tuple(img, blockID)
|
return generate_texture_tuple(img, blockID)
|
||||||
|
|
||||||
@@ -2384,7 +2451,7 @@ special_blocks = set([ 2, 6, 9, 17, 18, 20, 26, 23, 27, 28, 29, 31, 33,
|
|||||||
63, 64, 65, 66, 67, 68, 70, 71, 72, 75, 76, 79, 85,
|
63, 64, 65, 66, 67, 68, 70, 71, 72, 75, 76, 79, 85,
|
||||||
86, 90, 91, 92, 93, 94, 96, 97, 98, 99, 100, 101,
|
86, 90, 91, 92, 93, 94, 96, 97, 98, 99, 100, 101,
|
||||||
102, 104, 105, 106, 107, 108, 109, 111, 113, 114,
|
102, 104, 105, 106, 107, 108, 109, 111, 113, 114,
|
||||||
115])
|
115, 116, 117, 118, 119, 120])
|
||||||
|
|
||||||
# this is a map of special blockIDs to a list of all
|
# this is a map of special blockIDs to a list of all
|
||||||
# possible values for ancillary data that it might have.
|
# possible values for ancillary data that it might have.
|
||||||
@@ -2457,6 +2524,11 @@ special_map[111] = range(4) # lily pad, orientation
|
|||||||
special_map[113] = range(16) # netherbrick fence, uses pseudo data
|
special_map[113] = range(16) # netherbrick fence, uses pseudo data
|
||||||
special_map[114] = range(4) # netherbrick stairs, orientation
|
special_map[114] = range(4) # netherbrick stairs, orientation
|
||||||
special_map[115] = range(4) # nether wart, size of the plant
|
special_map[115] = range(4) # nether wart, size of the plant
|
||||||
|
special_map[116] = (0,) # enchantment table, nothings special. book not implemented
|
||||||
|
special_map[117] = range(8) # brewing stand, number of bottles. (not implemented)
|
||||||
|
special_map[118] = range(4) # cauldron, amount of water in it.
|
||||||
|
special_map[119] = (0,) # air portal, generated texture
|
||||||
|
special_map[120] = range(2) # air portal frame, fixed or broken block
|
||||||
|
|
||||||
# placeholders that are generated in generate()
|
# placeholders that are generated in generate()
|
||||||
bgcolor = None
|
bgcolor = None
|
||||||
|
|||||||
Reference in New Issue
Block a user