Iprove tall-grass looking. Draw the sprite in the correct angle, and draw it at a random offset (as done in game).
This commit is contained in:
@@ -125,12 +125,18 @@ rendermode_normal_occluded(void *data, RenderState *state) {
|
|||||||
static void
|
static void
|
||||||
rendermode_normal_draw(void *data, RenderState *state, PyObject *src, PyObject *mask, PyObject *mask_light) {
|
rendermode_normal_draw(void *data, RenderState *state, PyObject *src, PyObject *mask, PyObject *mask_light) {
|
||||||
RenderModeNormal *self = (RenderModeNormal *)data;
|
RenderModeNormal *self = (RenderModeNormal *)data;
|
||||||
|
int randx = 0,randy = 0;
|
||||||
|
|
||||||
/* first, check to see if we should use biome-compatible src, mask */
|
/* first, check to see if we should use biome-compatible src, mask */
|
||||||
if (self->biome_data) {
|
if (self->biome_data) {
|
||||||
if (state->block == 18) {
|
if (state->block == 18) {
|
||||||
src = mask = self->leaf_texture;
|
src = mask = self->leaf_texture;
|
||||||
} else if (state->block == 31) {
|
} else if (state->block == 31) {
|
||||||
|
/* add a random offset to the postion of the tall grass to make it more wild */
|
||||||
|
randx = rand() % 6 + 1 - 3;
|
||||||
|
randy = rand() % 6 + 1 - 3;
|
||||||
|
state->imgx = state->imgx + randx;
|
||||||
|
state->imgy = state->imgy + randy;
|
||||||
unsigned char data = getArrayByte3D(state->blockdata_expanded, state->x, state->y, state->z);
|
unsigned char data = getArrayByte3D(state->blockdata_expanded, state->x, state->y, state->z);
|
||||||
if (data == 1) {
|
if (data == 1) {
|
||||||
src = mask = self->tall_grass_texture;
|
src = mask = self->tall_grass_texture;
|
||||||
|
|||||||
13
textures.py
13
textures.py
@@ -236,7 +236,8 @@ def _build_block(top, side, blockID=None):
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
img = Image.new("RGBA", (24,24), (38,92,255,0))
|
img = Image.new("RGBA", (24,24), (38,92,255,0))
|
||||||
|
|
||||||
|
original_texture = top.copy()
|
||||||
top = transform_image(top, blockID)
|
top = transform_image(top, blockID)
|
||||||
|
|
||||||
if not side:
|
if not side:
|
||||||
@@ -256,8 +257,15 @@ def _build_block(top, side, blockID=None):
|
|||||||
otherside = ImageEnhance.Brightness(otherside).enhance(0.8)
|
otherside = ImageEnhance.Brightness(otherside).enhance(0.8)
|
||||||
otherside.putalpha(othersidealpha)
|
otherside.putalpha(othersidealpha)
|
||||||
|
|
||||||
|
## special case for tall-grass, fern and dead shrub, they are the only sprite-blocks
|
||||||
|
## that have the sprites in the diagonal of the block
|
||||||
|
if blockID in (31,32):
|
||||||
|
front = original_texture.resize((14,11), Image.ANTIALIAS)
|
||||||
|
composite.alpha_over(img, front, (5,9))
|
||||||
|
return img
|
||||||
|
|
||||||
## special case for non-block things
|
## special case for non-block things
|
||||||
if blockID in (31,32,37,38,6,39,40,83,30): ## tall grass, dead shrubs, flowers, sapling, mushrooms, reeds, web
|
if blockID in (37,38,6,39,40,83,30): ## flowers, sapling, mushrooms, reeds, web
|
||||||
#
|
#
|
||||||
# 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
|
||||||
@@ -265,7 +273,6 @@ def _build_block(top, side, blockID=None):
|
|||||||
composite.alpha_over(img, otherside, (6,3), otherside)
|
composite.alpha_over(img, otherside, (6,3), otherside)
|
||||||
return img
|
return img
|
||||||
|
|
||||||
|
|
||||||
if blockID in (81,): # cacti!
|
if blockID in (81,): # cacti!
|
||||||
composite.alpha_over(img, side, (1,6), side)
|
composite.alpha_over(img, side, (1,6), side)
|
||||||
composite.alpha_over(img, otherside, (11,6), otherside)
|
composite.alpha_over(img, otherside, (11,6), otherside)
|
||||||
|
|||||||
Reference in New Issue
Block a user