Skip to content

Commit 7d66006

Browse files
committed
Add compat for Mixed Litter (No Man's Land), closes #17
1 parent 785098d commit 7d66006

13 files changed

Lines changed: 80 additions & 22 deletions

File tree

common/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ dependencies {
2424
compileOnly "maven.modrinth:entitytexturefeatures:${etf_version}-neoforge-1.21"
2525
compileOnly "maven.modrinth:reliable-remover:${reliable_remover_version}-neoforge-1.21.1"
2626
compileOnly "maven.modrinth:exposure:${exposure_neoforge_version}"
27+
compileOnly "maven.modrinth:mixed-litter:${mixed_litter_version}"
2728

2829
compileOnly group: 'org.spongepowered', name: 'mixin', version: '0.8.5'
2930
compileOnly group: 'org.ow2.asm', name: 'asm-tree', version: '9.6'

common/src/main/java/com/evandev/fieldguide/client/FieldGuideClient.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import com.evandev.fieldguide.Constants;
44
import com.evandev.fieldguide.client.gui.screens.BookScreen;
55
import com.evandev.fieldguide.client.gui.screens.FieldGuideEntryScreen;
6-
import com.evandev.fieldguide.client.gui.screens.FieldGuideScreen;
6+
import com.evandev.fieldguide.client.gui.screens.FieldGuideCategoryScreen;
77
import com.evandev.fieldguide.client.scanning.FieldGuideScanner;
88
import com.evandev.fieldguide.config.ModConfig;
99
import com.evandev.fieldguide.data.Category;
@@ -54,8 +54,8 @@ public static void onClientTick(Minecraft minecraft) {
5454
if (isRecent && lastEntry != null) {
5555
Category targetCategory = manager.getCategoryForEntry(lastEntry);
5656
if (targetCategory != null) {
57-
int page = FieldGuideScreen.getPageForEntry(targetCategory, lastEntry);
58-
FieldGuideScreen mainScreen = new FieldGuideScreen(targetCategory, page);
57+
int page = FieldGuideCategoryScreen.getPageForEntry(targetCategory, lastEntry);
58+
FieldGuideCategoryScreen mainScreen = new FieldGuideCategoryScreen(targetCategory, page);
5959
minecraft.setScreen(new FieldGuideEntryScreen(mainScreen, lastEntry));
6060
return;
6161
}
@@ -65,7 +65,7 @@ public static void onClientTick(Minecraft minecraft) {
6565
if ("last_opened_screen".equals(defaultMode) && BookScreen.lastOpenedScreen != null) {
6666
minecraft.setScreen(BookScreen.lastOpenedScreen);
6767
} else {
68-
minecraft.setScreen(new FieldGuideScreen());
68+
minecraft.setScreen(new FieldGuideCategoryScreen());
6969
}
7070
}
7171
}

common/src/main/java/com/evandev/fieldguide/client/gui/screens/FieldGuideScreen.java renamed to common/src/main/java/com/evandev/fieldguide/client/gui/screens/FieldGuideCategoryScreen.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636

3737
import java.util.*;
3838

39-
public class FieldGuideScreen extends BookScreen {
39+
public class FieldGuideCategoryScreen extends BookScreen {
4040
private static final int ITEMS_PER_PAGE = 9;
4141
private static final int ITEMS_PER_VIEW = ITEMS_PER_PAGE * 2;
4242

@@ -63,21 +63,21 @@ public class FieldGuideScreen extends BookScreen {
6363
private PageTurnButton backButton;
6464
private FieldGuideSearchBox searchBox;
6565

66-
public FieldGuideScreen() {
66+
public FieldGuideCategoryScreen() {
6767
super(Component.translatable("title.fieldguide.field_guide"));
6868
}
6969

70-
public FieldGuideScreen(Category initialCategory) {
70+
public FieldGuideCategoryScreen(Category initialCategory) {
7171
this();
7272
this.setSelectedCategory(initialCategory);
7373
}
7474

75-
public FieldGuideScreen(Category initialCategory, int initialPage) {
75+
public FieldGuideCategoryScreen(Category initialCategory, int initialPage) {
7676
this(initialCategory);
7777
this.currentPage = initialPage;
7878
}
7979

80-
public FieldGuideScreen(String searchQuery, Screen parent) {
80+
public FieldGuideCategoryScreen(String searchQuery, Screen parent) {
8181
this();
8282
this.searchQuery = searchQuery;
8383
this.parent = parent;
@@ -743,6 +743,10 @@ private void renderEntryInGrid(GuiGraphics guiGraphics, Object entry, int x, int
743743
try {
744744
entity = type.create(this.minecraft.level);
745745
if (entity != null) {
746+
if (Services.PLATFORM.isModLoaded("mixed_litter")) {
747+
Services.PLATFORM.applyMixedLitterCompat(entity);
748+
}
749+
746750
entryCache.put(type, entity);
747751
}
748752
} catch (Exception e) {

common/src/main/java/com/evandev/fieldguide/client/gui/screens/FieldGuideEntryScreen.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,13 @@
3737
import java.util.Locale;
3838

3939
public class FieldGuideEntryScreen extends BookScreen {
40-
private final FieldGuideScreen parent;
40+
private final FieldGuideCategoryScreen parent;
4141
private final Object entry;
4242
private final List<ResourceLocation> spawnBiomes = new ArrayList<>();
4343
private Entity renderedEntity;
4444
private long lastClickTime = 0;
4545

46-
public FieldGuideEntryScreen(FieldGuideScreen parent, Object entry) {
46+
public FieldGuideEntryScreen(FieldGuideCategoryScreen parent, Object entry) {
4747
super(getTitleForEntry(entry));
4848
this.parent = parent;
4949
this.entry = entry;
@@ -103,6 +103,9 @@ private void setupEntityPreview() {
103103
if (renderEntry instanceof EntityType<?> type && this.minecraft != null && this.minecraft.level != null) {
104104
try {
105105
this.renderedEntity = type.create(this.minecraft.level);
106+
if (Services.PLATFORM.isModLoaded("mixed_litter")) {
107+
Services.PLATFORM.applyMixedLitterCompat(this.renderedEntity);
108+
}
106109
} catch (Exception ignored) {
107110
}
108111
}
@@ -164,7 +167,7 @@ private void setupBiomeWidget(boolean unlocked) {
164167
graphics.renderTooltip(this.font, Component.translatable("biome." + item.getNamespace() + "." + item.getPath()), mouseX, mouseY);
165168
}
166169
}, item -> {
167-
if (this.minecraft != null) this.minecraft.setScreen(new FieldGuideScreen("=!" + item, this));
170+
if (this.minecraft != null) this.minecraft.setScreen(new FieldGuideCategoryScreen("=!" + item, this));
168171
}));
169172
}
170173
}
@@ -193,7 +196,7 @@ private void setupDropWidget(boolean unlocked) {
193196
}
194197
}, stack -> {
195198
if (this.minecraft != null)
196-
this.minecraft.setScreen(new FieldGuideScreen("=^" + stack.getHoverName().getString().toLowerCase(Locale.ROOT), this));
199+
this.minecraft.setScreen(new FieldGuideCategoryScreen("=^" + stack.getHoverName().getString().toLowerCase(Locale.ROOT), this));
197200
}));
198201
}
199202
}
@@ -225,7 +228,7 @@ private void setupNavigationButtons() {
225228

226229
this.addRenderableWidget(new FieldGuideSearchBox(this.font, this.width / 2 - 70, this.bounds.bottom() + 5, 140, 20, "", q -> {
227230
if (!q.isEmpty() && this.minecraft != null) {
228-
FieldGuideScreen searchScreen = new FieldGuideScreen(q, this);
231+
FieldGuideCategoryScreen searchScreen = new FieldGuideCategoryScreen(q, this);
229232
searchScreen.setInitialSearchFocus(true);
230233
this.minecraft.setScreen(searchScreen);
231234
}

common/src/main/java/com/evandev/fieldguide/client/gui/screens/FieldGuideJournalScreen.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ protected void init() {
101101

102102
this.searchBox = new FieldGuideSearchBox(this.font, this.width / 2 - 70, this.bounds.bottom() + 5, 140, 20, "", q -> {
103103
if (!q.isEmpty() && this.minecraft != null) {
104-
FieldGuideScreen searchScreen = new FieldGuideScreen(q, this);
104+
FieldGuideCategoryScreen searchScreen = new FieldGuideCategoryScreen(q, this);
105105
searchScreen.setInitialSearchFocus(true);
106106
this.minecraft.setScreen(searchScreen);
107107
}
@@ -165,7 +165,7 @@ public boolean mouseClicked(double mouseX, double mouseY, int button) {
165165
public void onTabClick(Category category) {
166166
if (category.getId().getPath().equals("intro")) return;
167167
cleanupEmptyPages();
168-
Objects.requireNonNull(this.minecraft).setScreen(new FieldGuideScreen(category, 0));
168+
Objects.requireNonNull(this.minecraft).setScreen(new FieldGuideCategoryScreen(category, 0));
169169
}
170170

171171
@Override

common/src/main/java/com/evandev/fieldguide/mixin/client/InventoryScreenMixin.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import com.evandev.fieldguide.Constants;
44
import com.evandev.fieldguide.client.gui.screens.BookScreen;
5-
import com.evandev.fieldguide.client.gui.screens.FieldGuideScreen;
5+
import com.evandev.fieldguide.client.gui.screens.FieldGuideCategoryScreen;
66
import com.evandev.fieldguide.config.ModConfig;
77
import net.minecraft.client.gui.GuiGraphics;
88
import net.minecraft.client.gui.components.ImageButton;
@@ -47,7 +47,7 @@ private void addFieldGuideButton(CallbackInfo ci) {
4747
if ("last_opened_screen".equals(defaultMode) && BookScreen.lastOpenedScreen != null) {
4848
this.minecraft.setScreen(BookScreen.lastOpenedScreen);
4949
} else {
50-
this.minecraft.setScreen(new FieldGuideScreen());
50+
this.minecraft.setScreen(new FieldGuideCategoryScreen());
5151
}
5252
}
5353
}

common/src/main/java/com/evandev/fieldguide/mixin/client/PauseScreenMixin.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import com.evandev.fieldguide.Constants;
44
import com.evandev.fieldguide.client.gui.screens.BookScreen;
5-
import com.evandev.fieldguide.client.gui.screens.FieldGuideScreen;
5+
import com.evandev.fieldguide.client.gui.screens.FieldGuideCategoryScreen;
66
import com.evandev.fieldguide.config.ModConfig;
77
import net.minecraft.client.gui.components.AbstractWidget;
88
import net.minecraft.client.gui.components.ImageButton;
@@ -63,7 +63,7 @@ private void addFieldGuideButton(CallbackInfo ci) {
6363
if ("last_opened_screen".equals(defaultMode) && BookScreen.lastOpenedScreen != null) {
6464
this.minecraft.setScreen(BookScreen.lastOpenedScreen);
6565
} else {
66-
this.minecraft.setScreen(new FieldGuideScreen());
66+
this.minecraft.setScreen(new FieldGuideCategoryScreen());
6767
}
6868
}
6969
},

common/src/main/java/com/evandev/fieldguide/mixin/client/ScreenMixin.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.evandev.fieldguide.mixin.client;
22

33
import com.evandev.fieldguide.client.FieldGuideClient;
4-
import com.evandev.fieldguide.client.gui.screens.FieldGuideScreen;
4+
import com.evandev.fieldguide.client.gui.screens.FieldGuideCategoryScreen;
55
import com.evandev.fieldguide.compat.emi.EmiCompat;
66
import com.evandev.fieldguide.platform.Services;
77
import net.minecraft.client.Minecraft;
@@ -26,7 +26,7 @@ public class ScreenMixin {
2626

2727
if (hoveredStack != null && !hoveredStack.isEmpty()) {
2828
String query = "=^" + hoveredStack.getHoverName().getString().toLowerCase(Locale.ROOT);
29-
FieldGuideScreen screen = new FieldGuideScreen(query, (Screen) (Object) this);
29+
FieldGuideCategoryScreen screen = new FieldGuideCategoryScreen(query, (Screen) (Object) this);
3030
screen.setSearchItemStack(hoveredStack);
3131
Minecraft.getInstance().setScreen(screen);
3232
cir.setReturnValue(true);

common/src/main/java/com/evandev/fieldguide/platform/services/IPlatformHelper.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.evandev.fieldguide.platform.services;
22

3+
import net.minecraft.world.entity.Entity;
4+
35
import java.nio.file.Path;
46

57
public interface IPlatformHelper {
@@ -42,4 +44,10 @@ default String getEnvironmentName() {
4244
*/
4345
Path getConfigDirectory();
4446

47+
/**
48+
* Applies platform-specific dummy entity configurations.
49+
*/
50+
default void applyMixedLitterCompat(Entity entity) {
51+
}
52+
4553
}

gradle.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ etf_version=7.0.5
3131
exposure_neoforge_version=WYaaE1QE
3232
exposure_fabric_version=EDtO2y84
3333
fcapi_version=v21.1.6-1.21.1
34+
mixed_litter_version=1.0.3
3435

3536
# Fabric
3637
fabric_version=0.116.7+1.21.1

0 commit comments

Comments
 (0)