mirror of
https://github.com/Winds-Studio/Leaf.git
synced 2025-12-28 19:39:17 +00:00
ClassInstanceMultiMap belongs to Minecraft vanilla entity storage. And is unused, since replaced by spottedleaf's entity storage (rewrite chunk system). However these patches might be useful for vanilla entity storage if is used.
53 lines
2.1 KiB
Diff
53 lines
2.1 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Martijn Muijsers <martijnmuijsers@live.nl>
|
|
Date: Thu, 1 Dec 2022 00:12:14 +0100
|
|
Subject: [PATCH] Update boss bar within tick
|
|
|
|
License: LGPL-3.0 (https://www.gnu.org/licenses/lgpl-3.0.html)
|
|
Gale - https://galemc.org
|
|
|
|
This patch is based on the following mixin:
|
|
"net/caffeinemc/mods/lithium/mixin/ai/raid/RaidMixin.java"
|
|
By: Angeline <jellysquid3@users.noreply.github.com>
|
|
As part of: Lithium (https://github.com/CaffeineMC/lithium-fabric)
|
|
Licensed under: LGPL-3.0 (https://www.gnu.org/licenses/lgpl-3.0.html)
|
|
|
|
diff --git a/net/minecraft/world/entity/raid/Raid.java b/net/minecraft/world/entity/raid/Raid.java
|
|
index b3a29ce523fb5de71589c7c17598bba17622f988..afcf185c4e2c0648c96a872fbe1fbebb6012d513 100644
|
|
--- a/net/minecraft/world/entity/raid/Raid.java
|
|
+++ b/net/minecraft/world/entity/raid/Raid.java
|
|
@@ -126,6 +126,7 @@ public class Raid {
|
|
private Raid.RaidStatus status;
|
|
private int celebrationTicks;
|
|
private Optional<BlockPos> waveSpawnPos = Optional.empty();
|
|
+ private boolean isBarDirty; // Gale - Lithium - update boss bar within tick
|
|
|
|
public Raid(BlockPos center, Difficulty difficulty) {
|
|
this.active = true;
|
|
@@ -278,6 +279,12 @@ public class Raid {
|
|
}
|
|
|
|
public void tick(ServerLevel level) {
|
|
+ // Gale start - Lithium - update boss bar within tick
|
|
+ if (this.isBarDirty) {
|
|
+ this.updateBossbarInternal();
|
|
+ this.isBarDirty = false;
|
|
+ }
|
|
+ // Gale end - Lithium - update boss bar within tick
|
|
if (!this.isStopped()) {
|
|
if (this.status == Raid.RaidStatus.ONGOING) {
|
|
boolean flag = this.active;
|
|
@@ -588,6 +595,12 @@ public class Raid {
|
|
}
|
|
|
|
public void updateBossbar() {
|
|
+ // Gale start - Lithium - update boss bar within tick
|
|
+ this.isBarDirty = true;
|
|
+ }
|
|
+
|
|
+ private void updateBossbarInternal() {
|
|
+ // Gale end - Lithium - update boss bar within tick
|
|
this.raidEvent.setProgress(Mth.clamp(this.getHealthOfLivingRaiders() / this.totalHealth, 0.0F, 1.0F));
|
|
}
|
|
|