summaryrefslogtreecommitdiff
path: root/src/main/java/luckyblock/action/triggers/TrappedRoomTrigger.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/luckyblock/action/triggers/TrappedRoomTrigger.java')
-rw-r--r--src/main/java/luckyblock/action/triggers/TrappedRoomTrigger.java38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/main/java/luckyblock/action/triggers/TrappedRoomTrigger.java b/src/main/java/luckyblock/action/triggers/TrappedRoomTrigger.java
new file mode 100644
index 0000000..818fb07
--- /dev/null
+++ b/src/main/java/luckyblock/action/triggers/TrappedRoomTrigger.java
@@ -0,0 +1,38 @@
+package luckyblock.action.triggers;
+
+
+import luckyblock.action.LuckyActionHolder;
+import net.minecraft.core.BlockPos;
+import net.minecraft.core.registries.BuiltInRegistries;
+import net.minecraft.resources.ResourceLocation;
+import net.minecraft.server.level.ServerLevel;
+import net.minecraft.util.RandomSource;
+import net.minecraft.world.level.block.Block;
+import net.minecraft.world.level.block.Blocks;
+import net.minecraft.world.level.block.state.BlockState;
+
+public class TrappedRoomTrigger implements ILuckyTrigger {
+ @Override
+ public String getName() {
+ return "trapped_room";
+ }
+
+ @Override
+ public void execute(ServerLevel level, BlockPos pos, LuckyActionHolder holder, RandomSource random) {
+ Block block = BuiltInRegistries.BLOCK.get(new ResourceLocation(holder.wall_block));
+ BlockState wallState = (block != null) ? block.defaultBlockState() : Blocks.STONE_BRICKS.defaultBlockState();
+ int r = holder.radius;
+ for (int x = -r; x <= r; x++) {
+ for (int y = 0; y <= r * 2; y++) {
+ for (int z = -r; z <= r; z++) {
+ BlockPos targetPos = pos.offset(x, y, z);
+ if (Math.abs(x) == r || Math.abs(z) == r || y == 0 || y == r * 2) {
+ level.setBlock(targetPos, wallState, 3);
+ } else {
+ level.setBlock(targetPos, Blocks.AIR.defaultBlockState(), 3);
+ }
+ }
+ }
+ }
+ }
+} \ No newline at end of file