diff options
author | Tyler Murphy <tylerm@tylerm.dev> | 2023-04-17 12:12:01 -0400 |
---|---|---|
committer | Tyler Murphy <tylerm@tylerm.dev> | 2023-04-17 12:12:01 -0400 |
commit | 180aad05decc7eefa87e4e45d6747c48f40e5361 (patch) | |
tree | 51545197f7c94b4022acab880772c9f4fc65db0e /src/main/java/net/tylermurphy/Minecraft/Tick/GameTicks/GrassTick.java | |
download | minecraftjava-180aad05decc7eefa87e4e45d6747c48f40e5361.tar.gz minecraftjava-180aad05decc7eefa87e4e45d6747c48f40e5361.tar.bz2 minecraftjava-180aad05decc7eefa87e4e45d6747c48f40e5361.zip |
Diffstat (limited to 'src/main/java/net/tylermurphy/Minecraft/Tick/GameTicks/GrassTick.java')
-rwxr-xr-x | src/main/java/net/tylermurphy/Minecraft/Tick/GameTicks/GrassTick.java | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/main/java/net/tylermurphy/Minecraft/Tick/GameTicks/GrassTick.java b/src/main/java/net/tylermurphy/Minecraft/Tick/GameTicks/GrassTick.java new file mode 100755 index 0000000..f7201f1 --- /dev/null +++ b/src/main/java/net/tylermurphy/Minecraft/Tick/GameTicks/GrassTick.java @@ -0,0 +1,50 @@ +package net.tylermurphy.Minecraft.Tick.GameTicks;
+
+import net.tylermurphy.Minecraft.Scene.World;
+import net.tylermurphy.Minecraft.Tick.BlockUpdate;
+
+public class GrassTick {
+
+ private static boolean foundGrass(int x, int y, int z)
+ {
+ for(int a = x-1; a<x+2; a++) {
+ for(int b = y-1; b<y+2; b++) {
+ for(int c = z-1; c<z+2; c++) {
+ if(x == a && c == z) continue;
+ if(World.getBlock(a, b, c) == 0) return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ private static void searchForDirt(int x, int y, int z)
+ {
+ for(int a = x-1; a<x+2; a++)
+ for(int b = y-1; b<y+2; b++)
+ for(int c = z-1; c<z+2; c++) {
+ if(x == a && c == z)
+ continue;
+ if(World.getBlock(a, b, c) == 1 && World.getBlock(a, b+1, c) == -1) {
+ BlockUpdate.createBlockUpdate(a, b, c, (byte)1, (byte)1);
+ }
+ }
+ }
+
+ public static void doGrassTick(BlockUpdate update) {
+ if(update.new_block_id == 1) {
+ int rand = (int)(Math.random()*100);
+ if(rand>95) {
+ if(World.getBlock(update.x,update.y+1,update.z) == -1 && foundGrass(update.x,update.y,update.z)) {
+ World.setBlock(update.x,update.y,update.z, (byte)0);
+ }
+ } else {
+ BlockUpdate.createBlockUpdate(update.x,update.y,update.z, (byte)1, (byte)1);
+ }
+ }
+ if(update.new_block_id == 0) {
+ searchForDirt(update.x,update.y,update.z);
+ }
+ }
+
+}
|