aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/util
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/api/util')
-rw-r--r--src/main/java/gregtech/api/util/GT_FoodStat.java6
-rw-r--r--src/main/java/gregtech/api/util/PositionedWorldEvent.java32
2 files changed, 31 insertions, 7 deletions
diff --git a/src/main/java/gregtech/api/util/GT_FoodStat.java b/src/main/java/gregtech/api/util/GT_FoodStat.java
index da3b220845..96345ef199 100644
--- a/src/main/java/gregtech/api/util/GT_FoodStat.java
+++ b/src/main/java/gregtech/api/util/GT_FoodStat.java
@@ -80,9 +80,9 @@ public class GT_FoodStat implements IFoodStat {
}
}
if (mExplosive) {
- event.setThing(aPlayer);
- event.setPosition(aPlayer.posX, aPlayer.posY, aPlayer.posZ);
- event.newExplosion(4,true, true);
+ event.setThing(aPlayer)
+ .setPosition(aPlayer.posX, aPlayer.posY, aPlayer.posZ)
+ .newExplosion(4,true, true);
aPlayer.attackEntityFrom(GT_DamageSources.getExplodingDamage(), Float.MAX_VALUE);
}
}
diff --git a/src/main/java/gregtech/api/util/PositionedWorldEvent.java b/src/main/java/gregtech/api/util/PositionedWorldEvent.java
index ce5543b320..e8518b5444 100644
--- a/src/main/java/gregtech/api/util/PositionedWorldEvent.java
+++ b/src/main/java/gregtech/api/util/PositionedWorldEvent.java
@@ -5,6 +5,12 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.Vec3;
import net.minecraft.world.World;
+import java.util.List;
+import java.util.Objects;
+import java.util.function.BiConsumer;
+import java.util.function.Consumer;
+import java.util.function.Supplier;
+
@SuppressWarnings("unused")
public class PositionedWorldEvent<T> {
@@ -58,28 +64,32 @@ public class PositionedWorldEvent<T> {
return world;
}
- public void setWorld(World world) {
+ public PositionedWorldEvent<T> setWorld(World world) {
this.world = world;
+ return this;
}
public Vec3 getPosition() {
return position;
}
- public void setPosition(Vec3 position) {
+ public PositionedWorldEvent<T> setPosition(Vec3 position) {
this.position = position;
+ return this;
}
- public void setPosition(double x, double y, double z) {
+ public PositionedWorldEvent<T> setPosition(double x, double y, double z) {
this.position = Vec3.createVectorHelper(x, y, z);
+ return this;
}
public T getThing() {
return thing;
}
- public void setThing(T thing) {
+ public PositionedWorldEvent<T> setThing(T thing) {
this.thing = thing;
+ return this;
}
public void spawnParticle(double motionX, double motionY, double motionZ) {
@@ -141,4 +151,18 @@ public class PositionedWorldEvent<T> {
}
world.playSoundToNearExcept(player, (String) thing, volume, pitch);
}
+
+ public void times(int times, Consumer<PositionedWorldEvent<T>> action) {
+ Objects.requireNonNull(action);
+ for (int i = 0; i < times; i++) {
+ action.accept(this);
+ }
+ }
+
+ public void times(int times, BiConsumer<PositionedWorldEvent<T>, Integer> action) {
+ Objects.requireNonNull(action);
+ for (int i = 0; i < times; i++) {
+ action.accept(this, i);
+ }
+ }
} \ No newline at end of file