Add hop boost to controllable minecarts

This commit is contained in:
William Blake Galbreath
2019-06-30 00:10:25 -05:00
parent 41c424e330
commit e033d1e4cd

View File

@@ -1,14 +1,14 @@
From 7204fb2997a43b3e8fe7784b4e79e335ded47ea7 Mon Sep 17 00:00:00 2001 From d72f07a6c6675db0203037654ac0b192b358e426 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com> From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sat, 29 Jun 2019 02:32:40 -0500 Date: Sat, 29 Jun 2019 02:32:40 -0500
Subject: [PATCH] Controllable Minecarts Subject: [PATCH] Controllable Minecarts
--- ---
.../java/net/minecraft/server/Entity.java | 1 + .../java/net/minecraft/server/Entity.java | 1 +
.../server/EntityMinecartAbstract.java | 35 +++++++++++++++++++ .../server/EntityMinecartAbstract.java | 39 +++++++++++++++++++
.../net/minecraft/server/ItemMinecart.java | 8 +++-- .../net/minecraft/server/ItemMinecart.java | 8 ++--
.../java/net/pl3x/purpur/PurpurConfig.java | 27 ++++++++++++++ .../java/net/pl3x/purpur/PurpurConfig.java | 29 ++++++++++++++
4 files changed, 68 insertions(+), 3 deletions(-) 4 files changed, 74 insertions(+), 3 deletions(-)
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index ca429be7d..ee099b672 100644 index ca429be7d..ee099b672 100644
@@ -23,7 +23,7 @@ index ca429be7d..ee099b672 100644
return this.inLava; return this.inLava;
} }
diff --git a/src/main/java/net/minecraft/server/EntityMinecartAbstract.java b/src/main/java/net/minecraft/server/EntityMinecartAbstract.java diff --git a/src/main/java/net/minecraft/server/EntityMinecartAbstract.java b/src/main/java/net/minecraft/server/EntityMinecartAbstract.java
index 6df2930e2..d300c0533 100644 index 6df2930e2..63ae1550b 100644
--- a/src/main/java/net/minecraft/server/EntityMinecartAbstract.java --- a/src/main/java/net/minecraft/server/EntityMinecartAbstract.java
+++ b/src/main/java/net/minecraft/server/EntityMinecartAbstract.java +++ b/src/main/java/net/minecraft/server/EntityMinecartAbstract.java
@@ -4,6 +4,7 @@ import java.util.Iterator; @@ -4,6 +4,7 @@ import java.util.Iterator;
@@ -34,7 +34,7 @@ index 6df2930e2..d300c0533 100644
// CraftBukkit start // CraftBukkit start
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.entity.Vehicle; import org.bukkit.entity.Vehicle;
@@ -330,12 +331,46 @@ public abstract class EntityMinecartAbstract extends Entity { @@ -330,12 +331,50 @@ public abstract class EntityMinecartAbstract extends Entity {
public void a(int i, int j, int k, boolean flag) {} public void a(int i, int j, int k, boolean flag) {}
@@ -64,6 +64,10 @@ index 6df2930e2..d300c0533 100644
+ Entity passenger = passengers.get(0); + Entity passenger = passengers.get(0);
+ if (passenger instanceof EntityHuman) { + if (passenger instanceof EntityHuman) {
+ EntityHuman entityhuman = (EntityHuman) passenger; + EntityHuman entityhuman = (EntityHuman) passenger;
+ if (entityhuman.isJumping()) {
+ Vec3D mot = getMot();
+ setMot(mot.x, PurpurConfig.controllableMinecartsHopBoost, mot.z);
+ }
+ if (entityhuman.getForward() != 0.0F) { + if (entityhuman.getForward() != 0.0F) {
+ Vector dir = entityhuman.getBukkitEntity().getEyeLocation().getDirection().normalize().multiply(getControllableSpeed()); + Vector dir = entityhuman.getBukkitEntity().getEyeLocation().getDirection().normalize().multiply(getControllableSpeed());
+ if (entityhuman.getForward() < 0.0) { + if (entityhuman.getForward() < 0.0) {
@@ -107,7 +111,7 @@ index 764427456..456eced16 100644
} }
} }
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index 448d21d9e..3fe6cef02 100644 index 448d21d9e..76d7be4d8 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -1,9 +1,13 @@ @@ -1,9 +1,13 @@
@@ -124,18 +128,20 @@ index 448d21d9e..3fe6cef02 100644
import org.bukkit.configuration.InvalidConfigurationException; import org.bukkit.configuration.InvalidConfigurationException;
import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.configuration.file.YamlConfiguration;
@@ -293,4 +297,27 @@ public class PurpurConfig { @@ -293,4 +297,29 @@ public class PurpurConfig {
ridableZombiePigman = getBoolean("settings.ridable.zombie_pigman", ridableZombiePigman); ridableZombiePigman = getBoolean("settings.ridable.zombie_pigman", ridableZombiePigman);
ridableZombieVillager = getBoolean("settings.ridable.zombie_villager", ridableZombieVillager); ridableZombieVillager = getBoolean("settings.ridable.zombie_villager", ridableZombieVillager);
} }
+ +
+ public static boolean controllableMinecarts = true; + public static boolean controllableMinecarts = true;
+ public static boolean controllableMinecartsPlaceAnywhere = true; + public static boolean controllableMinecartsPlaceAnywhere = true;
+ public static double controllableMinecartsBaseSpeed = 0.1F; + public static double controllableMinecartsHopBoost = 0.5D;
+ public static double controllableMinecartsBaseSpeed = 0.1D;
+ public static Map<Block, Double> controllableMinecartsBlockSpeeds = new HashMap<>(); + public static Map<Block, Double> controllableMinecartsBlockSpeeds = new HashMap<>();
+ private static void controllableMinecarts() { + private static void controllableMinecarts() {
+ controllableMinecarts = getBoolean("settings.controllable-minecarts.enabled", controllableMinecarts); + controllableMinecarts = getBoolean("settings.controllable-minecarts.enabled", controllableMinecarts);
+ controllableMinecartsPlaceAnywhere = getBoolean("settings.controllable-minecarts.place-anywhere", controllableMinecartsPlaceAnywhere); + controllableMinecartsPlaceAnywhere = getBoolean("settings.controllable-minecarts.place-anywhere", controllableMinecartsPlaceAnywhere);
+ controllableMinecartsHopBoost = getDouble("settings.controllable-minecarts.hop-boost", controllableMinecartsHopBoost);
+ controllableMinecartsBaseSpeed = getDouble("settings.controllable-minecarts.base-speed", controllableMinecartsBaseSpeed); + controllableMinecartsBaseSpeed = getDouble("settings.controllable-minecarts.base-speed", controllableMinecartsBaseSpeed);
+ if (!config.contains("settings.controllable-minecarts.block-speed")) { + if (!config.contains("settings.controllable-minecarts.block-speed")) {
+ config.createSection("settings.controllable-minecarts.block-speed"); + config.createSection("settings.controllable-minecarts.block-speed");