Skip to content

Commit 6589ece

Browse files
Merge pull request #32 from VazkiiMods/event-bus-wip-stuff
Event bus wip stuff
2 parents 832410e + df81b4b commit 6589ece

File tree

83 files changed

+2495
-2203
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

83 files changed

+2495
-2203
lines changed

src/main/java/org/violetmoon/zeta/Zeta.java

Lines changed: 193 additions & 181 deletions
Large diffs are not rendered by default.

src/main/java/org/violetmoon/zeta/advancement/AdvancementModifierRegistry.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@
1717
import org.violetmoon.zeta.advancement.modifier.WaxModifier;
1818
import org.violetmoon.zeta.api.IAdvancementModifier;
1919
import org.violetmoon.zeta.api.IAdvancementModifierDelegate;
20+
import org.violetmoon.zeta.client.event.play.ZScreen;
2021
import org.violetmoon.zeta.event.bus.LoadEvent;
22+
import org.violetmoon.zeta.event.bus.PlayEvent;
2123
import org.violetmoon.zeta.event.load.ZAddReloadListener;
2224
import org.violetmoon.zeta.event.load.ZGatherAdvancementModifiers;
2325

@@ -36,7 +38,10 @@
3638
import net.minecraft.world.level.ItemLike;
3739
import net.minecraft.world.level.biome.Biome;
3840
import net.minecraft.world.level.block.Block;
41+
import org.violetmoon.zetaimplforge.api.ForgeZGatherAdvancementModifiers;
42+
import org.violetmoon.zetaimplforge.client.event.play.ForgeZEarlyRender;
3943

44+
//TODO: make this zeta-independent
4045
public class AdvancementModifierRegistry {
4146
protected final Zeta zeta;
4247
protected final Multimap<ResourceLocation, IAdvancementModifier> modifiers = HashMultimap.create();
@@ -59,11 +64,11 @@ public void addModifier(IAdvancementModifier mod) {
5964
modifiers.put(r, mod);
6065
}
6166

62-
@LoadEvent
67+
@PlayEvent
6368
public void addListeners(ZAddReloadListener event) {
6469
if(!gatheredAddons) {
6570
IAdvancementModifierDelegate delegateImpl = new DelegateImpl();
66-
zeta.loadBus.fireExternal(new ZGatherAdvancementModifiers() {
71+
zeta.loadBus.fire(new ZGatherAdvancementModifiers() {
6772
@Override
6873
public void register(IAdvancementModifier modifier) {
6974
addModifier(modifier);

src/main/java/org/violetmoon/zeta/client/ClientRegistryExtension.java

Lines changed: 6 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import org.violetmoon.zeta.client.event.load.ZAddItemColorHandlers;
1010
import org.violetmoon.zeta.client.event.load.ZClientSetup;
1111
import org.violetmoon.zeta.event.bus.LoadEvent;
12+
import org.violetmoon.zeta.event.load.ZLoadComplete;
1213
import org.violetmoon.zeta.registry.DyeablesRegistry;
1314
import org.violetmoon.zeta.registry.RenderLayerRegistry;
1415
import org.violetmoon.zeta.registry.ZetaRegistry;
@@ -56,32 +57,16 @@ public void registerItemColorHandlers(ZAddItemColorHandlers event) {
5657
}
5758
}
5859

59-
//these are in Post events to give other listeners a chance to populate .registerNamed
6060
@LoadEvent
61-
public void registerBlockColorsPost(ZAddBlockColorHandlers.Post event) {
62-
registry.finalizeBlockColors((block, name) -> {
63-
Function<Block, BlockColor> blockColorCreator = event.getNamedBlockColors().get(name);
64-
if(blockColorCreator == null)
65-
z.log.error("Unknown block color creator {} used on block {}", name, block);
66-
else
67-
event.register(blockColorCreator.apply(block), block);
68-
});
61+
public void registerRenderLayers(ZClientSetup event) {
62+
z.renderLayerRegistry.finalize(this::doSetRenderLayer);
6963
}
7064

71-
@LoadEvent
72-
public void registerItemColorsPost(ZAddItemColorHandlers.Post event) {
73-
registry.finalizeItemColors((item, name) -> {
74-
Function<Item, ItemColor> itemColorCreator = event.getNamedItemColors().get(name);
75-
if(itemColorCreator == null)
76-
z.log.error("Unknown item color creator {} used on item {}", name, item);
77-
else
78-
event.register(itemColorCreator.apply(item), item);
79-
});
80-
}
8165

66+
//I hope this won't run on dedicated servers
8267
@LoadEvent
83-
public void registerRenderLayers(ZClientSetup event) {
84-
z.renderLayerRegistry.finalize(this::doSetRenderLayer);
68+
public void onLoadComplete(ZLoadComplete event){
69+
z.registry.validateColorsProviders();
8570
}
8671

8772
protected abstract void doSetRenderLayer(Block block, RenderLayerRegistry.Layer layer);
Lines changed: 38 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,46 @@
11
package org.violetmoon.zeta.client;
22

3+
import net.minecraft.client.Minecraft;
4+
import org.jetbrains.annotations.ApiStatus;
35
import org.violetmoon.zeta.client.event.play.ZClientTick;
6+
import org.violetmoon.zeta.client.event.play.ZRenderGuiOverlay;
47
import org.violetmoon.zeta.client.event.play.ZRenderTick;
58
import org.violetmoon.zeta.event.bus.PlayEvent;
6-
import org.violetmoon.zeta.event.bus.ZPhase;
7-
8-
import net.minecraft.client.Minecraft;
9-
import net.minecraft.client.gui.screens.Screen;
109

10+
//TODO: 1.21. replace with minecraft own ticker. Tbh this is legacy already and should be replaced with Minecraft.getPartialTicks()
11+
@Deprecated
1112
public final class ClientTicker {
12-
public int ticksInGame = 0;
13-
public float partialTicks = 0;
14-
public float delta = 0;
15-
public float total = 0;
16-
17-
@PlayEvent
18-
public void onRenderTick(ZRenderTick event) {
19-
if(event.isStartPhase())
20-
partialTicks = event.getRenderTickTime();
21-
else
22-
endRenderTick();
23-
}
24-
25-
@PlayEvent
26-
public void onEndClientTick(ZClientTick event) {
27-
if(event.getPhase() != ZPhase.END)
28-
return;
29-
30-
Screen gui = Minecraft.getInstance().screen;
31-
if(gui == null || !gui.isPauseScreen()) {
32-
ticksInGame++;
33-
partialTicks = 0;
34-
}
35-
36-
endRenderTick();
37-
}
38-
39-
public void endRenderTick() {
40-
float oldTotal = total;
41-
total = ticksInGame + partialTicks;
42-
delta = total - oldTotal;
43-
}
13+
14+
//no need to have more than 1 instance of this class. Ticks are always the same
15+
public static final ClientTicker INSTANCE = new ClientTicker();
16+
17+
private ClientTicker() {
18+
}
19+
20+
public float partialTicks = 0;
21+
public float delta = 0;
22+
public float total = 0;
23+
24+
public int ticksInGame = 0;
25+
26+
@ApiStatus.Internal
27+
@PlayEvent
28+
public void onRenderTick(ZRenderTick.Start event) {
29+
partialTicks = Minecraft.getInstance().getPartialTick();
30+
delta = Minecraft.getInstance().getDeltaFrameTime();
31+
total = ticksInGame + partialTicks;
32+
}
33+
34+
@ApiStatus.Internal
35+
@PlayEvent
36+
public void onEndClientTick(ZClientTick.End event) {
37+
if (!Minecraft.getInstance().isPaused()) {
38+
ticksInGame++;
39+
}
40+
}
41+
42+
@PlayEvent
43+
public void pre(ZRenderGuiOverlay.ChatPanel.Pre event) {
44+
int aa = 1;
45+
}
4446
}

src/main/java/org/violetmoon/zeta/client/TopLayerTooltipHandler.java

Lines changed: 0 additions & 76 deletions
This file was deleted.

src/main/java/org/violetmoon/zeta/client/ZetaClient.java

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -23,22 +23,18 @@
2323
import net.minecraft.world.level.block.Block;
2424

2525
public abstract class ZetaClient implements IZeta {
26+
2627
public ZetaClient(Zeta zeta) {
2728
this.zeta = zeta;
2829
this.loadBus = zeta.loadBus;
2930
this.playBus = zeta.playBus;
3031

31-
this.ticker = createClientTicker();
3232
this.clientConfigManager = createClientConfigManager();
33-
this.topLayerTooltipHandler = createTopLayerTooltipHandler();
3433
this.clientRegistryExtension = createClientRegistryExtension();
3534

3635
loadBus.subscribe(clientRegistryExtension)
3736
.subscribe(clientConfigManager);
3837

39-
playBus.subscribe(ticker)
40-
.subscribe(topLayerTooltipHandler);
41-
4238
ZetaClientList.INSTANCE.register(this);
4339
}
4440

@@ -48,23 +44,13 @@ public ZetaClient(Zeta zeta) {
4844

4945
public ResourceLocation generalIcons = new ResourceLocation("zeta", "textures/gui/general_icons.png");
5046

51-
public final ClientTicker ticker;
5247
public final ClientConfigManager clientConfigManager;
53-
public final TopLayerTooltipHandler topLayerTooltipHandler;
5448
public final ClientRegistryExtension clientRegistryExtension;
5549

56-
public ClientTicker createClientTicker() {
57-
return new ClientTicker();
58-
}
59-
6050
public ClientConfigManager createClientConfigManager() {
6151
return new ClientConfigManager(this);
6252
}
6353

64-
public TopLayerTooltipHandler createTopLayerTooltipHandler() {
65-
return new TopLayerTooltipHandler();
66-
}
67-
6854
//ummm ??
6955
public void sendToServer(IZetaMessage msg) {
7056
if(Minecraft.getInstance().getConnection() == null)
@@ -87,8 +73,6 @@ public void sendToServer(IZetaMessage msg) {
8773
// The name is unwieldy on purpose, usages of this function should stick out.
8874
public abstract @Nullable RegistryAccess hackilyGetCurrentClientLevelRegistryAccess();
8975

90-
public abstract void start();
91-
9276
@Override
9377
public Zeta asZeta() {
9478
return zeta;

src/main/java/org/violetmoon/zeta/client/event/load/ZAddBlockColorHandlers.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.util.Map;
44
import java.util.function.Function;
55

6+
import org.violetmoon.zeta.Zeta;
67
import org.violetmoon.zeta.event.bus.IZetaLoadEvent;
78

89
import net.minecraft.client.color.block.BlockColor;
@@ -11,11 +12,6 @@
1112

1213
public interface ZAddBlockColorHandlers extends IZetaLoadEvent {
1314
void register(BlockColor c, Block... blocks);
14-
void registerNamed(Function<Block, BlockColor> c, String... names);
15+
void registerNamed(Zeta myZeta, Function<Block, BlockColor> c, String... names);
1516
BlockColors getBlockColors();
16-
17-
Post makePostEvent();
18-
interface Post extends ZAddBlockColorHandlers {
19-
Map<String, Function<Block, BlockColor>> getNamedBlockColors();
20-
}
2117
}

src/main/java/org/violetmoon/zeta/client/event/load/ZAddItemColorHandlers.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.util.Map;
44
import java.util.function.Function;
55

6+
import org.violetmoon.zeta.Zeta;
67
import org.violetmoon.zeta.event.bus.IZetaLoadEvent;
78

89
import net.minecraft.client.color.item.ItemColor;
@@ -12,11 +13,6 @@
1213

1314
public interface ZAddItemColorHandlers extends IZetaLoadEvent {
1415
void register(ItemColor c, ItemLike... items);
15-
void registerNamed(Function<Item, ItemColor> c, String... names);
16+
void registerNamed(Zeta myZeta, Function<Item, ItemColor> c, String... names);
1617
ItemColors getItemColors();
17-
18-
Post makePostEvent();
19-
interface Post extends ZAddItemColorHandlers {
20-
Map<String, Function<Item, ItemColor>> getNamedItemColors();
21-
}
2218
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package org.violetmoon.zeta.client.event.load;
2+
3+
import java.util.function.Consumer;
4+
5+
import org.violetmoon.zeta.event.bus.IZetaLoadEvent;
6+
7+
import net.minecraft.server.packs.resources.PreparableReloadListener;
8+
9+
public interface ZRegisterClientReloadListener extends IZetaLoadEvent, Consumer<PreparableReloadListener> {
10+
@Override
11+
void accept(PreparableReloadListener bleh);
12+
}

src/main/java/org/violetmoon/zeta/client/event/load/ZRegisterReloadListeners.java

Lines changed: 0 additions & 14 deletions
This file was deleted.

0 commit comments

Comments
 (0)