mirror of
https://github.com/Samsuik/Sakura.git
synced 2026-01-06 15:41:49 +00:00
87 lines
3.9 KiB
Diff
87 lines
3.9 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Samsuik <40902469+Samsuik@users.noreply.github.com>
|
|
Date: Sun, 15 Oct 2023 22:48:35 +0100
|
|
Subject: [PATCH] Cannon Mechanics
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java
|
|
index 276453621ef03489ea01ea816bea201e913a820b..ad5dfaf41c5ed9ddf7c3bc87395b7fd07ed0b3e6 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java
|
|
@@ -65,6 +65,7 @@ public class FallingBlockEntity extends Entity {
|
|
public CompoundTag blockData;
|
|
protected static final EntityDataAccessor<BlockPos> DATA_START_POS = SynchedEntityData.defineId(FallingBlockEntity.class, EntityDataSerializers.BLOCK_POS);
|
|
public boolean autoExpire = true; // Paper - Auto expire setting
|
|
+ public boolean heightParity; // Sakura
|
|
|
|
public FallingBlockEntity(EntityType<? extends FallingBlockEntity> type, Level world) {
|
|
super(type, world);
|
|
@@ -73,6 +74,7 @@ public class FallingBlockEntity extends Entity {
|
|
this.fallDamageMax = 40;
|
|
this.isFallingBlock = true; // Sakura
|
|
this.loadChunks = world.sakuraConfig().cannons.sand.loadsChunks; // Sakura - load chunks
|
|
+ this.heightParity = world.sakuraConfig().cannons.mechanics.fallingBlockParity; // Sakura
|
|
}
|
|
|
|
public FallingBlockEntity(Level world, double x, double y, double z, BlockState block) {
|
|
@@ -182,6 +184,12 @@ public class FallingBlockEntity extends Entity {
|
|
return itemEntity;
|
|
}
|
|
// Sakura end
|
|
+ // Sakura start
|
|
+ @Override
|
|
+ public final double getEyeY() {
|
|
+ return heightParity ? getY() : super.getEyeY();
|
|
+ }
|
|
+ // Sakura end
|
|
|
|
@Override
|
|
public void tick() {
|
|
diff --git a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java
|
|
index 95cfce87dd4057d7c24fb45629ac0df5f4dc814d..595853612890d9330095cd478e32fb48ac920881 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java
|
|
@@ -43,6 +43,12 @@ public class PrimedTnt extends Entity implements TraceableEntity {
|
|
this.yo = y;
|
|
this.zo = z;
|
|
this.owner = igniter;
|
|
+ // Sakura start
|
|
+ switch (world.sakuraConfig().cannons.mechanics.tntSpread) {
|
|
+ case NONE -> multiplyDeltaMovement(0, 0, 0);
|
|
+ case Y -> multiplyDeltaMovement(0, 1, 0);
|
|
+ }
|
|
+ // Sakura end
|
|
}
|
|
|
|
@Override
|
|
@@ -222,7 +228,7 @@ public class PrimedTnt extends Entity implements TraceableEntity {
|
|
// Paper start - Optional prevent TNT from moving in water
|
|
@Override
|
|
public boolean isPushedByFluid() {
|
|
- return !level.paperConfig().fixes.preventTntFromMovingInWater && super.isPushedByFluid();
|
|
+ return !level.paperConfig().fixes.preventTntFromMovingInWater && level.sakuraConfig().cannons.mechanics.tntFlowsInWater && super.isPushedByFluid(); // Sakura - convenience
|
|
}
|
|
// Paper end
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFallingBlock.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFallingBlock.java
|
|
index 90df6530606e0a487dc70a1663980092f6f0b120..a69e95451705feea6365dc25c069e7341aec8915 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFallingBlock.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFallingBlock.java
|
|
@@ -35,6 +35,16 @@ public class CraftFallingBlock extends CraftEntity implements FallingBlock {
|
|
public void setStacked(int stacked) {
|
|
getHandle().setStacked(stacked);
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public void setHeightParity(boolean parity) {
|
|
+ getHandle().heightParity = parity;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public boolean getHeightParity() {
|
|
+ return getHandle().heightParity;
|
|
+ }
|
|
// Sakura end
|
|
|
|
@Override
|