Skip to content

Commit 127c801

Browse files
committed
Much improved, now stable, Guide code API, create new domains, use and render existing ones, all from a stable API
1 parent 3ee883f commit 127c801

14 files changed

Lines changed: 424 additions & 343 deletions

src/main/java/dev/isxander/controlify/Controlify.java

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
import dev.isxander.controlify.driver.steamdeck.SteamDeckMode;
2828
import dev.isxander.controlify.driver.steamdeck.SteamDeckUtil;
2929
import dev.isxander.controlify.font.InputFontMapper;
30-
import dev.isxander.controlify.gui.guide.GuideDomain;
30+
import dev.isxander.controlify.gui.guide.GuideDomainImpl;
3131
import dev.isxander.controlify.gui.guide.GuideDomains;
3232
import dev.isxander.controlify.gui.screen.*;
3333
import dev.isxander.controlify.debug.DebugProperties;
@@ -55,6 +55,7 @@
5555
import net.minecraft.client.gui.screens.PauseScreen;
5656
import net.minecraft.client.multiplayer.ServerData;
5757
import net.minecraft.network.chat.Component;
58+
import net.minecraft.resources.Identifier;
5859
import org.jetbrains.annotations.NotNull;
5960
import org.jetbrains.annotations.Nullable;
6061
import org.lwjgl.glfw.GLFW;
@@ -184,21 +185,22 @@ public ControlifyBindApi bindings() {
184185
}
185186

186187
@Override
187-
public GuideDomainRegistries guideRegistries() {
188-
return new GuideDomainRegistries() {
188+
public GuideDomainRegistry guideRegistries() {
189+
return new GuideDomainRegistry() {
189190
@Override
190-
public GuideDomainRegistry<InGameCtx> inGame() {
191+
public GuideDomain<InGameCtx> inGame() {
191192
return GuideDomains.IN_GAME;
192193
}
193194

194195
@Override
195-
public GuideDomainRegistry<ContainerCtx> container() {
196+
public GuideDomain<ContainerCtx> container() {
196197
return GuideDomains.CONTAINER;
197198
}
198199

199200
@Override
200-
public <T extends FactCtx> RenderableGuideDomain<T> registerCustom(GuideDomain<T> domain) {
201-
GuideDomains.CUSTOM_DOMAINS.put(domain.id(), domain);
201+
public <T extends FactCtx> GuideDomain<T> registerCustom(Identifier domainId) {
202+
GuideDomainImpl<T> domain = new GuideDomainImpl<>(domainId);
203+
GuideDomains.CUSTOM_DOMAINS.put(domainId, domain);
202204
PlatformClientUtil.registerAssetReloadListener(domain);
203205
return domain;
204206
}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package dev.isxander.controlify.api.entrypoint;
22

33
import dev.isxander.controlify.api.bind.ControlifyBindApi;
4-
import dev.isxander.controlify.api.guide.GuideDomainRegistries;
4+
import dev.isxander.controlify.api.guide.GuideDomainRegistry;
55

66
public interface PreInitContext {
77
ControlifyBindApi bindings();
88

9-
GuideDomainRegistries guideRegistries();
9+
GuideDomainRegistry guideRegistries();
1010
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package dev.isxander.controlify.api.guide;
2+
3+
public interface GuideDomain<T extends FactCtx> {
4+
void registerFact(Fact<? super T> fact);
5+
6+
void registerDynamicRule(Rule rule);
7+
8+
GuideInstance<T> createInstance();
9+
}

src/main/java/dev/isxander/controlify/api/guide/GuideDomainRegistries.java

Lines changed: 0 additions & 13 deletions
This file was deleted.
Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
package dev.isxander.controlify.api.guide;
22

3-
public interface GuideDomainRegistry<T extends FactCtx> {
4-
void registerFact(Fact<? super T> fact);
3+
import net.minecraft.resources.Identifier;
54

6-
void registerDynamicRule(Rule rule);
5+
public interface GuideDomainRegistry {
6+
GuideDomain<InGameCtx> inGame();
7+
8+
GuideDomain<ContainerCtx> container();
9+
10+
<T extends FactCtx> GuideDomain<T> registerCustom(Identifier domainId);
711
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package dev.isxander.controlify.api.guide;
2+
3+
import net.minecraft.client.gui.Font;
4+
import net.minecraft.client.gui.GuiGraphicsExtractor;
5+
import net.minecraft.client.gui.components.Renderable;
6+
7+
public interface GuideInstance<T extends FactCtx> {
8+
GuideDomain<T> domain();
9+
10+
boolean update(T context, Font font);
11+
12+
void extractRenderState(GuiGraphicsExtractor graphics, boolean bottomAligned, boolean textContrast);
13+
Renderable renderable(boolean bottomAligned, boolean textContrast);
14+
}

src/main/java/dev/isxander/controlify/api/guide/RenderableGuideDomain.java

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

0 commit comments

Comments
 (0)