Skip to content

Commit bb31f1f

Browse files
committed
Add forge
1 parent 8b67ecb commit bb31f1f

File tree

10 files changed

+41
-12
lines changed

10 files changed

+41
-12
lines changed

benchmark/200CowsVs100Cows.png

344 KB
Loading

benchmark/700CowsVs100Cows.png

365 KB
Loading

benchmark/Untitled.xcf

3.34 MB
Binary file not shown.

common/src/main/java/io/github/discusser/toomanyentities/TooManyEntities.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package io.github.discusser.toomanyentities;
22

3+
import dev.architectury.injectables.annotations.ExpectPlatform;
34
import org.slf4j.Logger;
45
import org.slf4j.LoggerFactory;
56

@@ -16,4 +17,9 @@ public static void init() {
1617
public static void initClient() {
1718

1819
}
20+
21+
@ExpectPlatform
22+
public static boolean isModPresent(String modid) {
23+
throw new AssertionError();
24+
}
1925
}

common/src/main/java/io/github/discusser/toomanyentities/mixin/TooManyEntitiesMixinPlugin.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package io.github.discusser.toomanyentities.mixin;
22

33
import com.google.common.collect.ImmutableMap;
4-
import dev.architectury.injectables.targets.ArchitecturyTarget;
54
import dev.architectury.platform.Platform;
5+
import io.github.discusser.toomanyentities.TooManyEntities;
66
import org.objectweb.asm.tree.ClassNode;
77
import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin;
88
import org.spongepowered.asm.mixin.extensibility.IMixinInfo;
@@ -13,7 +13,7 @@
1313
import java.util.function.Supplier;
1414

1515
public class TooManyEntitiesMixinPlugin implements IMixinConfigPlugin {
16-
private static final Supplier<Boolean> entityCullingLoaded = () -> Platform.isModLoaded("entityculling");
16+
private static final Supplier<Boolean> entityCullingLoaded = () -> TooManyEntities.isModPresent("entityculling");
1717
private static final boolean isFabric = Platform.isFabric();
1818

1919
private static final Map<String, Supplier<Boolean>> CONDITIONS = ImmutableMap.of(
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package io.github.discusser.toomanyentities.fabric;
2+
3+
import net.fabricmc.loader.api.FabricLoader;
4+
5+
public class TooManyEntitiesImpl {
6+
public static boolean isModPresent(String modid) {
7+
return FabricLoader.getInstance().isModLoaded(modid);
8+
}
9+
}
Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,40 @@
11
package io.github.discusser.toomanyentities.forge;
22

33
import dev.architectury.platform.forge.EventBuses;
4+
import io.github.discusser.toomanyentities.TooManyEntities;
45
import io.github.discusser.toomanyentities.forge.config.MapGuiProvider;
56
import io.github.discusser.toomanyentities.forge.config.TooManyEntitiesConfig;
67
import me.shedaniel.autoconfig.AutoConfig;
78
import me.shedaniel.autoconfig.gui.registry.GuiRegistry;
89
import me.shedaniel.autoconfig.serializer.GsonConfigSerializer;
910
import net.minecraftforge.common.MinecraftForge;
10-
import net.minecraftforge.eventbus.api.SubscribeEvent;
11+
import net.minecraftforge.eventbus.api.IEventBus;
1112
import net.minecraftforge.fml.common.Mod;
1213
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
1314
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
1415

15-
import io.github.discusser.toomanyentities.TooManyEntities;
16-
import net.minecraftforge.fml.loading.LoadingModList;
17-
1816
import java.util.Map;
1917

2018
@Mod(TooManyEntities.MODID)
21-
@Mod.EventBusSubscriber(modid = TooManyEntities.MODID)
2219
public final class TooManyEntitiesForge {
2320
public TooManyEntitiesForge() {
24-
EventBuses.registerModEventBus(TooManyEntities.MODID, FMLJavaModLoadingContext.get().getModEventBus());
21+
IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus();
22+
23+
modEventBus.addListener(this::clientSetup);
24+
25+
EventBuses.registerModEventBus(TooManyEntities.MODID, modEventBus);
2526

2627
TooManyEntities.init();
2728
}
2829

29-
@SubscribeEvent
30-
public static void clientInit(FMLClientSetupEvent ignoredEvent) {
30+
private void clientSetup(FMLClientSetupEvent ignoredEvent) {
3131
AutoConfig.register(TooManyEntitiesConfig.class, GsonConfigSerializer::new);
3232
GuiRegistry registry = AutoConfig.getGuiRegistry(TooManyEntitiesConfig.class);
3333
registry.registerPredicateProvider(new MapGuiProvider(), field -> Map.class.isAssignableFrom(field.getType()));
3434
TooManyEntitiesConfig.instance = AutoConfig.getConfigHolder(TooManyEntitiesConfig.class).getConfig();
3535

36+
MinecraftForge.registerConfigScreen(screen -> AutoConfig.getConfigScreen(TooManyEntitiesConfig.class, screen).get());
37+
3638
TooManyEntities.initClient();
3739
}
3840
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package io.github.discusser.toomanyentities.forge;
2+
3+
import net.minecraftforge.fml.ModList;
4+
import net.minecraftforge.fml.loading.LoadingModList;
5+
6+
public class TooManyEntitiesImpl {
7+
public static boolean isModPresent(String modid) {
8+
return ModList.get() == null
9+
? LoadingModList.get().getModFileById(modid) != null
10+
: ModList.get().isLoaded(modid);
11+
}
12+
}

forge/src/main/resources/META-INF/mods.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
modLoader = "javafml"
22
loaderVersion = "[47,)"
3-
#issueTrackerURL = ""
3+
issueTrackerURL = "https://github.com/Discusser/TooManyEntities/issues"
44
license = "MIT"
55

66
[[mods]]

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ org.gradle.jvmargs=-Xmx2G
33
org.gradle.parallel=true
44

55
# Mod properties
6-
mod_version = 1.0.0
6+
mod_version = 1.0.1
77
maven_group = io.github.discusser.toomanyentities
88
archives_name = too_many_entities
99
enabled_platforms = fabric,forge

0 commit comments

Comments
 (0)