Skip to content

Commit

Permalink
lost datagen again
Browse files Browse the repository at this point in the history
  • Loading branch information
ferriarnus committed Jan 13, 2024
1 parent c0a3272 commit d07ef8f
Show file tree
Hide file tree
Showing 8 changed files with 39 additions and 41 deletions.
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ runs {
// workingDirectory project.file('run-data')

// Specify the modid for data generation, where to output the resulting resource, and where to look for existing resources.
programArguments.addAll '--mod', project.mod_id, '--all', '--output', file('src/generated/resources/').getAbsolutePath(), '--existing', file('src/test/resources/').getAbsolutePath()
programArguments.addAll '--mod', project.mod_id, 'examplemod', '--all', '--output', file('src/generated/resources/').getAbsolutePath(), '--existing', file('src/test/resources/').getAbsolutePath()
}
}

Expand Down
8 changes: 0 additions & 8 deletions src/main/java/com/example/regilite/Regilite.java

This file was deleted.

36 changes: 20 additions & 16 deletions src/main/java/com/example/regilite/data/EnderDataProvider.java
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
package com.example.regilite.data;

import com.example.regilite.Regilite;
import net.minecraft.core.HolderLookup;
import net.minecraft.data.CachedOutput;
import net.minecraft.data.DataProvider;
import net.minecraft.data.PackOutput;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.MutableComponent;
import net.minecraft.resources.ResourceLocation;
import net.neoforged.bus.api.SubscribeEvent;
import net.neoforged.fml.common.Mod;
import net.neoforged.bus.api.IEventBus;
import net.neoforged.neoforge.common.data.ExistingFileHelper;
import net.neoforged.neoforge.data.event.GatherDataEvent;
import org.apache.commons.lang3.function.TriFunction;
Expand All @@ -21,13 +19,13 @@
import java.util.concurrent.CompletableFuture;
import java.util.function.Supplier;

@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD, modid = Regilite.MODID)
public class EnderDataProvider implements DataProvider {
private final String modid;
private final Map<Supplier<String>, String> langEntries = new HashMap<>();
private final List<DataProvider> subProviders = new ArrayList<>();
private final List<TriFunction<PackOutput, ExistingFileHelper, CompletableFuture<HolderLookup.Provider>, DataProvider>> serverSubProviderConsumers = new ArrayList<>();
private static final Map<String, EnderDataProvider> INSTANCES = new HashMap<>();
private boolean registered = false;

protected EnderDataProvider(String modid) {
this.modid = modid;
Expand All @@ -37,6 +35,15 @@ public static EnderDataProvider getInstance(String modid) {
return INSTANCES.computeIfAbsent(modid, EnderDataProvider::new);
}

public static EnderDataProvider register(String modid, IEventBus modbus) {
EnderDataProvider provider = INSTANCES.computeIfAbsent(modid, EnderDataProvider::new);
if (!provider.registered) {
modbus.addListener(provider::onGatherData);
provider.registered = true;
}
return provider;
}

public void addSubProvider(boolean include, DataProvider provider) {
if (include) {
subProviders.add(provider);
Expand Down Expand Up @@ -78,19 +85,16 @@ public String getName() {
return "Ender IO Data (" + modid + ")";
}

@SubscribeEvent
static void onGatherData(GatherDataEvent event) {
for (EnderDataProvider provider : INSTANCES.values()) {
if (event.includeServer()) {
for (TriFunction<PackOutput, ExistingFileHelper, CompletableFuture<HolderLookup.Provider>, DataProvider> function : provider.serverSubProviderConsumers) {
provider.subProviders.add(function.apply(event.getGenerator().getPackOutput(), event.getExistingFileHelper(), event.getLookupProvider()));
}

void onGatherData(GatherDataEvent event) {
if (event.includeServer()) {
for (TriFunction<PackOutput, ExistingFileHelper, CompletableFuture<HolderLookup.Provider>, DataProvider> function : this.serverSubProviderConsumers) {
this.subProviders.add(function.apply(event.getGenerator().getPackOutput(), event.getExistingFileHelper(), event.getLookupProvider()));
}
EnderLangProvider enUs = new EnderLangProvider(event.getGenerator().getPackOutput(), provider.modid, "en_us");
enUs.add(provider.langEntries);
provider.subProviders.add(enUs);
event.getGenerator().addProvider(true, provider);
}

EnderLangProvider enUs = new EnderLangProvider(event.getGenerator().getPackOutput(), this.modid, "en_us");
enUs.add(this.langEntries);
this.subProviders.add(enUs);
event.getGenerator().addProvider(true, this);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -64,14 +64,14 @@ public static <T extends BlockEntity> EnderBlockEntityRegistry create(String mod
@Override
public void register(IEventBus bus) {
super.register(bus);
this.onGatherData();
this.onGatherData(bus);
if (FMLEnvironment.dist.isClient()) {
bus.addListener(new BlockEntityRendererEvents(this)::registerBER);
}
}

private void onGatherData() {
EnderDataProvider provider = EnderDataProvider.getInstance(getNamespace());
private void onGatherData(IEventBus bus) {
EnderDataProvider provider = EnderDataProvider.register(getNamespace(), bus);
provider.addServerSubProvider((packOutput, existingFileHelper, lookup) -> new EnderTagProvider<>(packOutput, this.getRegistryKey(), b -> b.builtInRegistryHolder().key(), lookup, getNamespace(), existingFileHelper, this));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -124,14 +124,14 @@ public static EnderBlockRegistry createRegistry(String modid) {
@Override
public void register(IEventBus bus) {
super.register(bus);
this.onGatherData();
this.onGatherData(bus);
if (FMLEnvironment.dist.isClient()) {
bus.addListener(new ColorEvents.Blocks(this)::registerBlockColor);
}
}

private void onGatherData() {
EnderDataProvider provider = EnderDataProvider.getInstance(getNamespace());
private void onGatherData(IEventBus bus) {
EnderDataProvider provider = EnderDataProvider.register(getNamespace(), bus);
provider.addServerSubProvider((packOutput, existingFileHelper, lookup) -> new EnderTagProvider<>(packOutput, this.getRegistryKey(), b -> b.builtInRegistryHolder().key(), lookup, getNamespace(), existingFileHelper, this));
provider.addServerSubProvider((packOutput, existingFileHelper, lookup) -> new EnderBlockStateProvider(packOutput, getNamespace(), existingFileHelper, this));
provider.addServerSubProvider((packOutput, existingFileHelper, lookup) -> new LootTableProvider(packOutput, Collections.emptySet(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,11 +55,11 @@ public static EnderEntityRegistry create(String modid) {
@Override
public void register(IEventBus bus) {
super.register(bus);
onGatherData();
onGatherData(bus);
}

private void onGatherData() {
EnderDataProvider provider = EnderDataProvider.getInstance(getNamespace());
private void onGatherData(IEventBus bus) {
EnderDataProvider provider = EnderDataProvider.register(getNamespace(), bus);
provider.addServerSubProvider((packOutput, existingFileHelper, lookup) -> new EnderTagProvider<>(packOutput, this.getRegistryKey(), b -> b.builtInRegistryHolder().key(), lookup, getNamespace(), existingFileHelper, this));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -192,25 +192,27 @@ public static EnderItemRegistry createRegistry(String modid) {
@Override
public void register(IEventBus bus) {
super.register(bus);
this.onGatherData();
this.onGatherData(bus);
bus.addListener(this::addCreative);
if (FMLEnvironment.dist.isClient()) {
bus.addListener(new ColorEvents.Items(this)::registerItemColor);
}

}

private void onGatherData() {
EnderDataProvider provider = EnderDataProvider.getInstance(getNamespace());
private void onGatherData(IEventBus bus) {
EnderDataProvider provider = EnderDataProvider.register(getNamespace(), bus);
provider.addServerSubProvider((packOutput, existingFileHelper, lookup) -> new EnderTagProvider<>(packOutput, this.getRegistryKey(), b -> b.builtInRegistryHolder().key(), lookup, getNamespace(), existingFileHelper, this));
provider.addServerSubProvider((packOutput, existingFileHelper, lookup) -> new EnderItemModelProvider(packOutput, getNamespace(), existingFileHelper, this));
}

private void addCreative(BuildCreativeModeTabContentsEvent event) {
for (DeferredHolder<Item, ? extends Item> item : this.getEntries()) {
Consumer<CreativeModeTab.Output> outputConsumer = ((EnderDeferredItem<Item>) item).getTab().get(event.getTabKey());
if (outputConsumer != null) {
outputConsumer.accept(event);
if (item instanceof EnderDeferredItem) {
Consumer<CreativeModeTab.Output> outputConsumer = ((EnderDeferredItem<Item>) item).getTab().get(event.getTabKey());
if (outputConsumer != null) {
outputConsumer.accept(event);
}
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/META-INF/mods.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# Note that there are a couple of TOML lists in this file.
# Find more information on toml format here: https://github.com/toml-lang/toml
# The name of the mod loader type to load - for regular FML @Mod mods it should be javafml
modLoader="javafml" #mandatory
modLoader="lowcodefml" #mandatory
# A version range to match for said mod loader - for regular FML @Mod it will be the the FML version. This is currently 47.
loaderVersion="${loader_version_range}" #mandatory
# The license for you mod. This is mandatory metadata and allows for easier comprehension of your redistributive properties.
Expand Down

0 comments on commit d07ef8f

Please sign in to comment.