From 2d3214e1df94299b195f8c940f650b9399860739 Mon Sep 17 00:00:00 2001 From: jazckson <8786660+jacksonzck@users.noreply.github.com> Date: Thu, 9 Apr 2026 00:06:24 -0500 Subject: [PATCH 1/2] Makes the effect of sand rain change depending on what items the user has --- .../managers/itemmanager/traps/SandRain.java | 33 ++++++++++++++++--- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/src/main/java/gg/archipelago/aprandomizer/managers/itemmanager/traps/SandRain.java b/src/main/java/gg/archipelago/aprandomizer/managers/itemmanager/traps/SandRain.java index 3e706273..a68dfb82 100644 --- a/src/main/java/gg/archipelago/aprandomizer/managers/itemmanager/traps/SandRain.java +++ b/src/main/java/gg/archipelago/aprandomizer/managers/itemmanager/traps/SandRain.java @@ -1,10 +1,13 @@ package gg.archipelago.aprandomizer.managers.itemmanager.traps; import gg.archipelago.aprandomizer.APRandomizer; +import gg.archipelago.aprandomizer.managers.ShopManager; import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; -import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntityType; import net.minecraft.world.phys.Vec3; public class SandRain implements Trap { @@ -13,12 +16,34 @@ public void trigger(ServerPlayer player) { APRandomizer.getServer().execute(() -> { ServerLevel world = APRandomizer.getServer().overworld(); Vec3 pos = player.position(); - int radius = 5; + // Change block given based on tool level of player. + int currentToolLevel = APRandomizer.worldData.getPurchasedTier(ShopManager.CATEGORY_TOOLS); + String blockName; + if (currentToolLevel == 0) { // Wooden Tools + blockName = "minecraft:suspicious_sand"; + } else if (currentToolLevel == 1 || currentToolLevel == 2) { // Stone or Iron + blockName = "minecraft:sand"; + } else if (currentToolLevel == 3) { // Diamond + blockName = "minecraft:packed_mud"; + } else { // Netherite + blockName = "minecraft:anvil"; + } + CompoundTag blockStateTag = new CompoundTag(); + CompoundTag nameTag = new CompoundTag(); + nameTag.putString("Name", blockName); + blockStateTag.put("BlockState", nameTag); + // Change radius based on efficiency level of player. + int currentEfficiencyLevel = APRandomizer.worldData.getPurchasedTier(ShopManager.CATEGORY_EFFICIENCY); + int radius = 5 * (currentEfficiencyLevel + 1); for (int x = (int)pos.x - radius; x <= (int)pos.x + radius; x++) { for (int z = (int)pos.z - radius; z <= (int)pos.z + radius; z++) { BlockPos blockPos = new BlockPos(x, (int)pos.y + 15, z); - if(world.isEmptyBlock(blockPos)) - world.setBlock(blockPos, Blocks.SAND.defaultBlockState(), 3); + if(world.isEmptyBlock(blockPos)) { + Entity e = EntityType.FALLING_BLOCK.create(world); + e.deserializeNBT(blockStateTag); + e.setPos(blockPos.getCenter()); + world.addFreshEntity(e); + } } } }); From 34246f4f111a227d563a662d81adaf2c93be1de6 Mon Sep 17 00:00:00 2001 From: jazckson <8786660+jacksonzck@users.noreply.github.com> Date: Thu, 9 Apr 2026 00:08:36 -0500 Subject: [PATCH 2/2] Add executable bit to gradlew --- gradlew | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 gradlew diff --git a/gradlew b/gradlew old mode 100644 new mode 100755