From 9970aeb94da78b617fcbc114b4b01447f8b2b183 Mon Sep 17 00:00:00 2001 From: AnimeGitB Date: Thu, 25 Aug 2022 00:13:27 +0930 Subject: [PATCH] Consolidate random point offsets --- .../emu/grasscutter/game/drop/DropSystem.java | 4 +- .../entity/gadget/GadgetGatherObject.java | 5 +-- .../managers/blossom/BlossomActivity.java | 2 +- .../emu/grasscutter/game/world/Scene.java | 6 +-- .../java/emu/grasscutter/utils/Position.java | 38 ++++--------------- 5 files changed, 15 insertions(+), 40 deletions(-) diff --git a/src/main/java/emu/grasscutter/game/drop/DropSystem.java b/src/main/java/emu/grasscutter/game/drop/DropSystem.java index 7c4dc44bb..053dcbed2 100644 --- a/src/main/java/emu/grasscutter/game/drop/DropSystem.java +++ b/src/main/java/emu/grasscutter/game/drop/DropSystem.java @@ -78,8 +78,8 @@ public class DropSystem extends BaseGameSystem { } if (itemData.isEquip()) { for (int i = 0; i < num; i++) { - float range = (5f + (.1f * num)); - Position pos = em.getPosition().clone().addX((float) (Math.random() * range) - (range / 2)).addY(3f).addZ((float) (Math.random() * range) - (range / 2)); + float range = (2.5f + (.05f * num)); + Position pos = em.getPosition().nearby2d(range).addY(3f); addDropEntity(dd, em.getScene(), itemData, pos, num, gp); } } else { diff --git a/src/main/java/emu/grasscutter/game/entity/gadget/GadgetGatherObject.java b/src/main/java/emu/grasscutter/game/entity/gadget/GadgetGatherObject.java index 2dfe220d3..b13369ed0 100644 --- a/src/main/java/emu/grasscutter/game/entity/gadget/GadgetGatherObject.java +++ b/src/main/java/emu/grasscutter/game/entity/gadget/GadgetGatherObject.java @@ -68,10 +68,7 @@ public class GadgetGatherObject extends GadgetContent { scene, player, GameData.getItemDataMap().get(itemId), - getGadget().getPosition().clone() - .addY(2f) - .addX(Utils.randomFloatRange(-1f, 1f)) - .addZ(Utils.randomFloatRange(-1f, 1f)), + getGadget().getPosition().nearby2d(1f).addY(2f), 1, true); diff --git a/src/main/java/emu/grasscutter/game/managers/blossom/BlossomActivity.java b/src/main/java/emu/grasscutter/game/managers/blossom/BlossomActivity.java index d1a2d7cfc..a01829c02 100644 --- a/src/main/java/emu/grasscutter/game/managers/blossom/BlossomActivity.java +++ b/src/main/java/emu/grasscutter/game/managers/blossom/BlossomActivity.java @@ -101,7 +101,7 @@ public class BlossomActivity { for (int i = 0; i < willSpawn; i++) { MonsterData monsterData = GameData.getMonsterDataMap().get(candidateMonsters.poll()); int level = scene.getEntityLevel(1, worldLevelOverride); - EntityMonster entity = new EntityMonster(scene, monsterData, pos.nearby2d(40), level); + EntityMonster entity = new EntityMonster(scene, monsterData, pos.nearby2d(4f), level); scene.addEntity(entity); newMonsters.add(entity); } diff --git a/src/main/java/emu/grasscutter/game/world/Scene.java b/src/main/java/emu/grasscutter/game/world/Scene.java index cd904ec94..9702680ee 100644 --- a/src/main/java/emu/grasscutter/game/world/Scene.java +++ b/src/main/java/emu/grasscutter/game/world/Scene.java @@ -695,14 +695,14 @@ public class Scene { return; } if (itemData.isEquip()) { - float range = (3f + (.1f * amount)); + float range = (1.5f + (.05f * amount)); for (int i = 0; i < amount; i++) { - Position pos = bornForm.getPosition().clone().addX((float) (Math.random() * range) - (range / 2)).addZ((float) (Math.random() * range) - (range / 2)).addZ(.9f); + Position pos = bornForm.getPosition().nearby2d(range).addZ(.9f); // Why Z? EntityItem entity = new EntityItem(this, null, itemData, pos, 1); addEntity(entity); } } else { - EntityItem entity = new EntityItem(this, null, itemData, bornForm.getPosition().clone().addZ(.9f), amount); + EntityItem entity = new EntityItem(this, null, itemData, bornForm.getPosition().clone().addZ(.9f), amount); // Why Z? addEntity(entity); } } diff --git a/src/main/java/emu/grasscutter/utils/Position.java b/src/main/java/emu/grasscutter/utils/Position.java index 5b7674dc2..655984309 100644 --- a/src/main/java/emu/grasscutter/utils/Position.java +++ b/src/main/java/emu/grasscutter/utils/Position.java @@ -6,19 +6,21 @@ import com.google.gson.annotations.SerializedName; import com.github.davidmoten.rtreemulti.geometry.Point; import dev.morphia.annotations.Entity; import emu.grasscutter.net.proto.VectorOuterClass.Vector; +import lombok.Getter; +import lombok.Setter; @Entity public class Position implements Serializable { private static final long serialVersionUID = -2001232313615923575L; @SerializedName(value="x", alternate={"_x", "X"}) - private float x; + @Getter @Setter private float x; @SerializedName(value="y", alternate={"_y", "Y"}) - private float y; + @Getter @Setter private float y; @SerializedName(value="z", alternate={"_z", "Z"}) - private float z; + @Getter @Setter private float z; public Position() { @@ -51,30 +53,6 @@ public class Position implements Serializable { this.set(pos); } - public float getX() { - return x; - } - - public void setX(float x) { - this.x = x; - } - - public float getZ() { - return z; - } - - public void setZ(float z) { - this.z = z; - } - - public float getY() { - return y; - } - - public void setY(float y) { - this.y = y; - } - public Position set(float x, float y) { this.x = x; this.y = y; @@ -150,10 +128,10 @@ public class Position implements Serializable { return Math.sqrt(detX*detX+detY*detY+detZ*detZ); } - public Position nearby2d(int range) { + public Position nearby2d(float range) { Position position = clone(); - position.z += (float)Utils.randomRange(-range,range)/10; - position.x += (float)Utils.randomRange(-range,range)/10; + position.z += Utils.randomFloatRange(-range, range); + position.x += Utils.randomFloatRange(-range, range); return position; } public Position translateWithDegrees(float dist, float angle) {