Skip to content

Commit 6d67504

Browse files
authored
Expand Panda API (#7061)
1 parent 99cf01f commit 6d67504

File tree

3 files changed

+201
-0
lines changed

3 files changed

+201
-0
lines changed

build-data/paper.at

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,8 @@ public net.minecraft.world.entity.animal.Fox isDefending()Z
221221
public net.minecraft.world.entity.animal.Fox setDefending(Z)V
222222
public net.minecraft.world.entity.animal.Fox isFaceplanted()Z
223223
public net.minecraft.world.entity.animal.Fox setFaceplanted(Z)V
224+
public net.minecraft.world.entity.animal.Panda getEatCounter()I
225+
public net.minecraft.world.entity.animal.Panda setEatCounter(I)V
224226

225227
# Cook speed multipler API
226228
public net.minecraft.world.level.block.entity.AbstractFurnaceBlockEntity recipeType

patches/api/0312-Missing-Entity-Behavior-API.patch

Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,3 +175,120 @@ index 498e182846b81d50b3a594254e8b341fb23e8763..3826363a1954afcddaadec7f96ac1830
175175
+ public boolean isFaceplanted();
176176
+ // Paper end - Add more fox behavior API
177177
}
178+
diff --git a/src/main/java/org/bukkit/entity/Panda.java b/src/main/java/org/bukkit/entity/Panda.java
179+
index a6a7429ed2e1eefb2b12b7480ed74fcc3963a864..9d065625be5931d970d7f34e1225fae1af960314 100644
180+
--- a/src/main/java/org/bukkit/entity/Panda.java
181+
+++ b/src/main/java/org/bukkit/entity/Panda.java
182+
@@ -63,4 +63,112 @@ public interface Panda extends Animals {
183+
return recessive;
184+
}
185+
}
186+
+
187+
+ // Paper start - Panda API
188+
+ /**
189+
+ * Sets the sneeze progress in this animation.
190+
+ * This value counts up only if {@link Panda#isSneezing()} is true
191+
+ *
192+
+ * @param ticks sneeze progress
193+
+ */
194+
+ void setSneezeTicks(int ticks);
195+
+
196+
+ /**
197+
+ * Gets the current sneeze progress, or how many ticks this panda will sneeze for.
198+
+ *
199+
+ * @return sneeze progress
200+
+ */
201+
+ int getSneezeTicks();
202+
+
203+
+ /**
204+
+ * Sets if the panda is sneezing, which causes the sneeze counter to count.
205+
+ * <p>
206+
+ * When false, this will automatically set the sneeze ticks to 0.
207+
+ *
208+
+ * @param sneeze if the panda is sneezing or not
209+
+ */
210+
+ void setSneezing(boolean sneeze);
211+
+
212+
+ /**
213+
+ * Gets if the panda is sneezing
214+
+ *
215+
+ * @return is sneezing
216+
+ */
217+
+ boolean isSneezing();
218+
+
219+
+ /**
220+
+ * Sets the eating ticks for this panda.
221+
+ * <p>
222+
+ *
223+
+ * This starts counting up as long as it is greater than 0.
224+
+ *
225+
+ * @param ticks eating ticks
226+
+ */
227+
+ void setEatingTicks(int ticks);
228+
+
229+
+ /**
230+
+ * Gets the current eating progress, or how many ticks this panda has been eating for.
231+
+ *
232+
+ * @return eating progress
233+
+ */
234+
+ int getEatingTicks();
235+
+
236+
+ /**
237+
+ * Sets the number of ticks this panda will be unhappy for.
238+
+ * <p>
239+
+ * This value counts down.
240+
+ *
241+
+ * @param ticks unhappy ticks
242+
+ */
243+
+ void setUnhappyTicks(int ticks);
244+
+
245+
+ /**
246+
+ * Gets how many ticks this panda will be unhappy for.
247+
+ *
248+
+ * @return unhappy ticks
249+
+ */
250+
+ int getUnhappyTicks();
251+
+
252+
+ /**
253+
+ * Sets if this panda is currently rolling.
254+
+ *
255+
+ * @param rolling should roll
256+
+ */
257+
+ void setRolling(boolean rolling);
258+
+
259+
+ /**
260+
+ * Gets if this panda is currently rolling on the ground.
261+
+ *
262+
+ * @return is rolling
263+
+ */
264+
+ boolean isRolling();
265+
+
266+
+ /**
267+
+ * Sets if this panda is currently on its back.
268+
+ *
269+
+ * @param onBack is on its back
270+
+ */
271+
+ void setIsOnBack(boolean onBack);
272+
+
273+
+ /**
274+
+ * Gets if this panda is currently on its back.
275+
+ *
276+
+ * @return is on back
277+
+ */
278+
+ boolean isOnBack();
279+
+
280+
+ /**
281+
+ * Sets if this panda is currently sitting.
282+
+ *
283+
+ * @param sitting is currently sitting
284+
+ */
285+
+ void setIsSitting(boolean sitting);
286+
+
287+
+ /**
288+
+ * Gets if this panda is sitting.
289+
+ *
290+
+ * @return is sitting
291+
+ */
292+
+ boolean isSitting();
293+
+ // Paper end - Panda API
294+
}

patches/server/0682-Missing-Entity-Behavior-API.patch

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,3 +156,85 @@ index b647a5b9fdc1da61c4035d6f2cef7814033dc608..9795341efa748c2d94567e882cd5f26a
156156
+ }
157157
+ // Paper end - Add more fox behavior API
158158
}
159+
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPanda.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPanda.java
160+
index 2d2620dbb16aec850e8afda02174508a4be5a313..ec56a520da22248cdcdfaa179489aa0db0f2273f 100644
161+
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPanda.java
162+
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPanda.java
163+
@@ -46,6 +46,77 @@ public class CraftPanda extends CraftAnimals implements Panda {
164+
public void setHiddenGene(Gene gene) {
165+
this.getHandle().setHiddenGene(CraftPanda.toNms(gene));
166+
}
167+
+ // Paper start - Panda API
168+
+ @Override
169+
+ public void setSneezeTicks(int ticks) {
170+
+ this.getHandle().setSneezeCounter(ticks);
171+
+ }
172+
+
173+
+ @Override
174+
+ public int getSneezeTicks() {
175+
+ return this.getHandle().getSneezeCounter();
176+
+ }
177+
+
178+
+ @Override
179+
+ public void setSneezing(boolean sneeze) {
180+
+ this.getHandle().sneeze(sneeze);
181+
+ }
182+
+
183+
+ @Override
184+
+ public boolean isSneezing() {
185+
+ return this.getHandle().isSneezing();
186+
+ }
187+
+
188+
+ @Override
189+
+ public void setEatingTicks(int ticks) {
190+
+ this.getHandle().setEatCounter(ticks);
191+
+ }
192+
+
193+
+ @Override
194+
+ public int getEatingTicks() {
195+
+ return this.getHandle().getEatCounter();
196+
+ }
197+
+
198+
+ @Override
199+
+ public void setUnhappyTicks(int ticks) {
200+
+ this.getHandle().setUnhappyCounter(ticks);
201+
+ }
202+
+
203+
+ @Override
204+
+ public int getUnhappyTicks() {
205+
+ return this.getHandle().getUnhappyCounter();
206+
+ }
207+
+
208+
+ @Override
209+
+ public boolean isRolling() {
210+
+ return this.getHandle().isRolling();
211+
+ }
212+
+
213+
+ @Override
214+
+ public void setRolling(boolean rolling) {
215+
+ this.getHandle().roll(rolling);
216+
+ }
217+
+
218+
+ @Override
219+
+ public boolean isOnBack() {
220+
+ return this.getHandle().isOnBack();
221+
+ }
222+
+
223+
+ @Override
224+
+ public void setIsOnBack(boolean onBack) {
225+
+ this.getHandle().setOnBack(onBack);
226+
+ }
227+
+
228+
+ @Override
229+
+ public boolean isSitting() {
230+
+ return this.getHandle().isSitting();
231+
+ }
232+
+
233+
+ @Override
234+
+ public void setIsSitting(boolean sitting) {
235+
+ this.getHandle().sit(sitting);
236+
+ }
237+
+ // Paper end - Panda API
238+
239+
public static Gene fromNms(net.minecraft.world.entity.animal.Panda.Gene gene) {
240+
Preconditions.checkArgument(gene != null, "Gene may not be null");

0 commit comments

Comments
 (0)