From 807ffa76a18ac8cac073577fbe05b4a249c0e41c Mon Sep 17 00:00:00 2001 From: pietru Date: Mon, 28 Apr 2025 22:11:00 +0200 Subject: [PATCH] add vis_claim command --- .../pietru/cookie_utils/api/TextCommands.java | 1 + .../my_cmds/vis_area_claim_command.java | 68 +++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 src/main/java/net/pietru/cookie_utils/commands/my_cmds/vis_area_claim_command.java diff --git a/src/main/java/net/pietru/cookie_utils/api/TextCommands.java b/src/main/java/net/pietru/cookie_utils/api/TextCommands.java index c2d5a33..16cfc10 100644 --- a/src/main/java/net/pietru/cookie_utils/api/TextCommands.java +++ b/src/main/java/net/pietru/cookie_utils/api/TextCommands.java @@ -39,6 +39,7 @@ public class TextCommands { commands.put("my_id",new my_id_command()); commands.put("my_name",new my_name_command()); commands.put("my_area",new my_area_command()); + commands.put("vis_claim",new vis_area_claim_command()); commands.put("my_claims",new my_claims_command()); commands.put("setup",new setup_command()); commands.put("region",new region_command()); diff --git a/src/main/java/net/pietru/cookie_utils/commands/my_cmds/vis_area_claim_command.java b/src/main/java/net/pietru/cookie_utils/commands/my_cmds/vis_area_claim_command.java new file mode 100644 index 0000000..65e5d4f --- /dev/null +++ b/src/main/java/net/pietru/cookie_utils/commands/my_cmds/vis_area_claim_command.java @@ -0,0 +1,68 @@ +package net.pietru.cookie_utils.commands.my_cmds; + +import com.badlogic.gdx.graphics.Color; +import com.badlogic.gdx.math.Vector3; +import com.badlogic.gdx.math.collision.BoundingBox; +import finalforeach.cosmicreach.entities.player.Player; +import finalforeach.cosmicreach.networking.NetworkIdentity; +import finalforeach.cosmicreach.networking.packets.MessagePacket; +import finalforeach.cosmicreach.networking.server.ServerSingletons; +import finalforeach.cosmicreach.particles.GameParticleSystem; +import io.netty.channel.ChannelHandlerContext; +import net.pietru.cookie_utils.api.Area; +import net.pietru.cookie_utils.commands.BaseCommand; +import net.pietru.cookie_utils.utils.ParticleUtil; + +import static net.pietru.cookie_utils.api.Region.get_area_at_pos; +import static net.pietru.cookie_utils.utils.block_util.isInt; + +public class vis_area_claim_command extends BaseCommand { + @Override + public String get_command_key() { + return "vis_claim"; + } + + @Override + public void accept(String[] args, NetworkIdentity networkIdentity, ChannelHandlerContext ctx) { + Player plr = ServerSingletons.getPlayer(networkIdentity); + Area area = get_area_at_pos(plr.getPosition(), plr.getZone()); + + int xp = (int)plr.getPosition().x; + int yp = (int)plr.getPosition().y; + int zp = (int)plr.getPosition().z; + String size_txt = "15"; + if (args.length >= 2) { + size_txt=args[1]; + } + + int size = isInt(size_txt) ? Math.max(Math.min(Integer.parseInt(size_txt), 15), 2) : 15; + Vector3 ca = new Vector3(xp - size, yp - size, zp - size); + Vector3 cb = new Vector3(xp + size, yp + size, zp + size); + BoundingBox bb = new BoundingBox(ca,cb); + + GameParticleSystem system = GameParticleSystem.laserParticleSystem.copy(); + system.startColor.set(Color.YELLOW); + system.duration = 20.0F; + + Vector3 m = new Vector3(.5f,.5f,.5f); + + for (int x = (int) bb.min.x; x<=bb.max.x; x++){ + ParticleUtil.send_particle(x, (int) bb.min.y, (int) bb.min.z,system,ctx,m); + ParticleUtil.send_particle(x, (int) bb.max.y, (int) bb.min.z,system,ctx,m); + ParticleUtil.send_particle(x, (int) bb.min.y, (int) bb.max.z,system,ctx,m); + ParticleUtil.send_particle(x, (int) bb.max.y, (int) bb.max.z,system,ctx,m); + } + for (int y = (int) bb.min.y; y<=bb.max.y; y++){ + ParticleUtil.send_particle((int) bb.min.x,y, (int) bb.min.z,system,ctx,m); + ParticleUtil.send_particle((int) bb.max.x,y, (int) bb.min.z,system,ctx,m); + ParticleUtil.send_particle((int) bb.min.x,y, (int) bb.max.z,system,ctx,m); + ParticleUtil.send_particle((int) bb.max.x,y, (int) bb.max.z,system,ctx,m); + } + for (int z = (int) bb.min.z; z<=bb.max.z; z++){ + ParticleUtil.send_particle((int) bb.min.x, (int) bb.min.y,z,system,ctx,m); + ParticleUtil.send_particle((int) bb.max.x, (int) bb.min.y,z,system,ctx,m); + ParticleUtil.send_particle((int) bb.min.x, (int) bb.max.y,z,system,ctx,m); + ParticleUtil.send_particle((int) bb.max.x, (int) bb.max.y,z,system,ctx,m); + } + } +}