mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-20 18:07:43 +01:00
Allow minecarts to be placed anywhere
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
From 85436bf8d0c03d671b7afc8abfcade610999485d Mon Sep 17 00:00:00 2001
|
From 7204fb2997a43b3e8fe7784b4e79e335ded47ea7 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
|
||||||
@@ -6,11 +6,12 @@ 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 | 35 +++++++++++++++++++
|
||||||
.../java/net/pl3x/purpur/PurpurConfig.java | 25 +++++++++++++
|
.../net/minecraft/server/ItemMinecart.java | 8 +++--
|
||||||
3 files changed, 61 insertions(+)
|
.../java/net/pl3x/purpur/PurpurConfig.java | 27 ++++++++++++++
|
||||||
|
4 files changed, 68 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 ca429be7db..ee099b6728 100644
|
index ca429be7d..ee099b672 100644
|
||||||
--- a/src/main/java/net/minecraft/server/Entity.java
|
--- a/src/main/java/net/minecraft/server/Entity.java
|
||||||
+++ b/src/main/java/net/minecraft/server/Entity.java
|
+++ b/src/main/java/net/minecraft/server/Entity.java
|
||||||
@@ -1294,6 +1294,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
@@ -1294,6 +1294,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||||||
@@ -22,7 +23,7 @@ index ca429be7db..ee099b6728 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 6df2930e2d..d300c05333 100644
|
index 6df2930e2..d300c0533 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;
|
||||||
@@ -80,8 +81,33 @@ index 6df2930e2d..d300c05333 100644
|
|||||||
// CraftBukkit start - replace magic numbers with our variables
|
// CraftBukkit start - replace magic numbers with our variables
|
||||||
this.setMot(new Vec3D(this.getMot().x * this.derailedX, this.getMot().y * this.derailedY, this.getMot().z * this.derailedZ));
|
this.setMot(new Vec3D(this.getMot().x * this.derailedX, this.getMot().y * this.derailedY, this.getMot().z * this.derailedZ));
|
||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
|
diff --git a/src/main/java/net/minecraft/server/ItemMinecart.java b/src/main/java/net/minecraft/server/ItemMinecart.java
|
||||||
|
index 764427456..456eced16 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/ItemMinecart.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/ItemMinecart.java
|
||||||
|
@@ -103,8 +103,10 @@ public class ItemMinecart extends Item {
|
||||||
|
IBlockData iblockdata = world.getType(blockposition);
|
||||||
|
|
||||||
|
if (!iblockdata.a(TagsBlock.RAILS)) {
|
||||||
|
- return EnumInteractionResult.FAIL;
|
||||||
|
- } else {
|
||||||
|
+ // Purpur start - place minecarts anywhere
|
||||||
|
+ if (!net.pl3x.purpur.PurpurConfig.controllableMinecartsPlaceAnywhere) return EnumInteractionResult.FAIL;
|
||||||
|
+ if (iblockdata.getMaterial().isSolid()) blockposition = blockposition.shift(itemactioncontext.getClickedFace());
|
||||||
|
+ } //else { // Purpur end - place minecarts anywhere
|
||||||
|
ItemStack itemstack = itemactioncontext.getItemStack();
|
||||||
|
|
||||||
|
if (!world.isClientSide) {
|
||||||
|
@@ -131,6 +133,6 @@ public class ItemMinecart extends Item {
|
||||||
|
|
||||||
|
itemstack.subtract(1);
|
||||||
|
return EnumInteractionResult.SUCCESS;
|
||||||
|
- }
|
||||||
|
+ //} // Purpur - place minecarts anywhere
|
||||||
|
}
|
||||||
|
}
|
||||||
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 448d21d9e1..b5aa94e802 100644
|
index 448d21d9e..3fe6cef02 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 @@
|
||||||
@@ -98,16 +124,18 @@ index 448d21d9e1..b5aa94e802 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,25 @@ public class PurpurConfig {
|
@@ -293,4 +297,27 @@ 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 double controllableMinecartsBaseSpeed = 0.1F;
|
+ public static double controllableMinecartsBaseSpeed = 0.1F;
|
||||||
+ 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);
|
||||||
+ 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");
|
||||||
|
|||||||
Reference in New Issue
Block a user