feat: Increase gravity strength for falling elements
This commit is contained in:
@@ -1,11 +1,25 @@
|
||||
// Plant element behaviors (grass, seeds, trees)
|
||||
function updateGrass(x, y) {
|
||||
// Grass behaves like dirt for physics
|
||||
if (getPixel(x, y + 1) === EMPTY) {
|
||||
// Grass behaves like dirt for physics with stronger gravity
|
||||
let maxFall = 3;
|
||||
let newY = y;
|
||||
|
||||
// Check how far down we can fall
|
||||
for (let i = 1; i <= maxFall; i++) {
|
||||
if (getPixel(x, y + i) === EMPTY) {
|
||||
newY = y + i;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (newY > y) {
|
||||
// Fall straight down as far as possible
|
||||
setPixel(x, y, EMPTY);
|
||||
setPixel(x, y + 1, GRASS);
|
||||
setPixel(x, newY, GRASS);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
// Try to move down-left or down-right
|
||||
else if (getPixel(x - 1, y + 1) === EMPTY) {
|
||||
setPixel(x, y, EMPTY);
|
||||
setPixel(x - 1, y + 1, GRASS);
|
||||
@@ -46,13 +60,27 @@ function updateGrass(x, y) {
|
||||
}
|
||||
|
||||
function updateSeed(x, y) {
|
||||
// Seeds fall like sand
|
||||
if (getPixel(x, y + 1) === EMPTY) {
|
||||
// Seeds fall like sand with stronger gravity
|
||||
let maxFall = 3;
|
||||
let newY = y;
|
||||
|
||||
// Check how far down we can fall
|
||||
for (let i = 1; i <= maxFall; i++) {
|
||||
if (getPixel(x, y + i) === EMPTY) {
|
||||
newY = y + i;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (newY > y) {
|
||||
// Fall straight down as far as possible
|
||||
setPixel(x, y, EMPTY);
|
||||
setPixel(x, y + 1, SEED);
|
||||
moveMetadata(x, y, x, y + 1);
|
||||
setPixel(x, newY, SEED);
|
||||
moveMetadata(x, y, x, newY);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
// Try to move down-left or down-right
|
||||
else if (getPixel(x - 1, y + 1) === EMPTY) {
|
||||
setPixel(x, y, EMPTY);
|
||||
setPixel(x - 1, y + 1, SEED);
|
||||
|
||||
Reference in New Issue
Block a user