mirror of
https://github.com/Samsuik/Sakura.git
synced 2025-12-23 08:49:25 +00:00
Rewrite player fps settings
This commit is contained in:
100
patches/api/0003-Merge-Cannon-Entities.patch
Normal file
100
patches/api/0003-Merge-Cannon-Entities.patch
Normal file
@@ -0,0 +1,100 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Samsuik <40902469+Samsuik@users.noreply.github.com>
|
||||
Date: Thu, 5 Oct 2023 14:34:30 +0100
|
||||
Subject: [PATCH] Merge Cannon Entities
|
||||
|
||||
|
||||
diff --git a/src/main/java/me/samsuik/sakura/entity/merge/MergeLevel.java b/src/main/java/me/samsuik/sakura/entity/merge/MergeLevel.java
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..f8010a92ac82e76611ff7a9be259f11db0a1cc90
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/me/samsuik/sakura/entity/merge/MergeLevel.java
|
||||
@@ -0,0 +1,42 @@
|
||||
+package me.samsuik.sakura.entity.merge;
|
||||
+
|
||||
+import org.jspecify.annotations.NullMarked;
|
||||
+
|
||||
+@NullMarked
|
||||
+public enum MergeLevel {
|
||||
+ /**
|
||||
+ * Disabled.
|
||||
+ */
|
||||
+ NONE(-1),
|
||||
+ /**
|
||||
+ * "STRICT" merges entities with the same properties, position, momentum and OOE.
|
||||
+ * This is considered safe to use, and will not break cannon mechanics.
|
||||
+ */
|
||||
+ STRICT(1),
|
||||
+ /**
|
||||
+ * "LENIENT" merges entities aggressively by tracking the entities that have
|
||||
+ * previously merged. This is a hybrid of "SPAWN" and "STRICT" merging, with the
|
||||
+ * visuals of "STRICT" merging and better merging potential of "SPAWN" merging.
|
||||
+ */
|
||||
+ LENIENT(2),
|
||||
+ /**
|
||||
+ * "SPAWN" merges entities one gametick after they have spawned. Merging is
|
||||
+ * only possible after it has been established that the entity is safe to
|
||||
+ * merge by collecting information on the entities that merge together over time.
|
||||
+ */
|
||||
+ SPAWN(3);
|
||||
+
|
||||
+ private final int level;
|
||||
+
|
||||
+ MergeLevel(int level) {
|
||||
+ this.level = level;
|
||||
+ }
|
||||
+
|
||||
+ public boolean atLeast(MergeLevel level) {
|
||||
+ return this.getLevel() >= level.getLevel();
|
||||
+ }
|
||||
+
|
||||
+ public int getLevel() {
|
||||
+ return this.level;
|
||||
+ }
|
||||
+}
|
||||
diff --git a/src/main/java/me/samsuik/sakura/entity/merge/Mergeable.java b/src/main/java/me/samsuik/sakura/entity/merge/Mergeable.java
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..c33c461b10ff27bc5b0a294b61078c89cceae6b8
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/me/samsuik/sakura/entity/merge/Mergeable.java
|
||||
@@ -0,0 +1,14 @@
|
||||
+package me.samsuik.sakura.entity.merge;
|
||||
+
|
||||
+import org.jspecify.annotations.NullMarked;
|
||||
+
|
||||
+@NullMarked
|
||||
+public interface Mergeable {
|
||||
+ MergeLevel getMergeLevel();
|
||||
+
|
||||
+ void setMergeLevel(MergeLevel level);
|
||||
+
|
||||
+ int getStacked();
|
||||
+
|
||||
+ void setStacked(int stacked);
|
||||
+}
|
||||
diff --git a/src/main/java/org/bukkit/entity/FallingBlock.java b/src/main/java/org/bukkit/entity/FallingBlock.java
|
||||
index 7904c716a3b0869ebf2f9b416536c59121a539a8..2479453b96a75fda2c307261f84c91034e73000d 100644
|
||||
--- a/src/main/java/org/bukkit/entity/FallingBlock.java
|
||||
+++ b/src/main/java/org/bukkit/entity/FallingBlock.java
|
||||
@@ -7,7 +7,7 @@ import org.jetbrains.annotations.NotNull;
|
||||
/**
|
||||
* Represents a falling block
|
||||
*/
|
||||
-public interface FallingBlock extends Entity {
|
||||
+public interface FallingBlock extends Entity, me.samsuik.sakura.entity.merge.Mergeable { // Sakura
|
||||
|
||||
/**
|
||||
* Get the Material of the falling block
|
||||
diff --git a/src/main/java/org/bukkit/entity/TNTPrimed.java b/src/main/java/org/bukkit/entity/TNTPrimed.java
|
||||
index 87e717c9ea61b0cbf536bc62fa829ddcfae5ad8c..ba84b3cbbd3358b16b21a18baa9c1812733fc144 100644
|
||||
--- a/src/main/java/org/bukkit/entity/TNTPrimed.java
|
||||
+++ b/src/main/java/org/bukkit/entity/TNTPrimed.java
|
||||
@@ -6,7 +6,7 @@ import org.jetbrains.annotations.Nullable;
|
||||
/**
|
||||
* Represents a Primed TNT.
|
||||
*/
|
||||
-public interface TNTPrimed extends Explosive {
|
||||
+public interface TNTPrimed extends Explosive, me.samsuik.sakura.entity.merge.Mergeable { // Sakura
|
||||
|
||||
/**
|
||||
* Set the number of ticks until the TNT blows up after being primed.
|
||||
Reference in New Issue
Block a user