Added AE tools to fabric tool tags to fix breaking speed.

This commit is contained in:
Sebastian Hartte
2020-08-19 01:34:08 +02:00
parent 420fb272b4
commit a0949297d5
4 changed files with 50 additions and 6 deletions
@@ -11,6 +11,7 @@ import net.minecraft.data.DataGenerator;
import appeng.data.providers.loot.BlockDropProvider;
import appeng.data.providers.recipes.SlabStairRecipes;
import appeng.data.providers.tags.ConventionTagProvider;
import appeng.data.providers.tags.ToolTagProviders;
public class Entrypoint implements PreLaunchEntrypoint {
@@ -21,6 +22,7 @@ public class Entrypoint implements PreLaunchEntrypoint {
generator.install(new BlockDropProvider(output));
generator.install(new SlabStairRecipes(output));
generator.install(new ConventionTagProvider(output));
generator.install(new ToolTagProviders(output));
generator.run();
}
@@ -11,7 +11,7 @@ import appeng.core.AppEng;
public class ConventionTagProvider extends TagProvider {
public ConventionTagProvider(Path outputPath) {
super(outputPath);
super("c", outputPath);
}
@Override
@@ -24,15 +24,17 @@ import appeng.data.providers.IAE2DataProvider;
public abstract class TagProvider implements IAE2DataProvider {
private static final Gson GSON = new GsonBuilder().setPrettyPrinting().create();
protected static final String CONVENTION_NAMESPACE = "c";
protected static final String TYPE_ITEMS = "items";
protected static final String TYPE_BLOCKS = "blocks";
private final String defaultNamespace;
private final Path outputPath;
private DataCache cache;
protected TagProvider(Path outputPath) {
protected TagProvider(String defaultNamespace, Path outputPath) {
this.defaultNamespace = defaultNamespace;
this.outputPath = outputPath;
}
@@ -49,15 +51,19 @@ public abstract class TagProvider implements IAE2DataProvider {
protected abstract void generate() throws IOException;
protected void addItemTag(String name, ItemConvertible... items) throws IOException {
Identifier id = parseId(name);
List<String> itemIds = Arrays.stream(items).map(ItemConvertible::asItem).map(Registry.ITEM::getId)
.map(Identifier::toString).collect(Collectors.toList());
writeTagFile(CONVENTION_NAMESPACE, TYPE_ITEMS, name, itemIds);
writeTagFile(id.getNamespace(), TYPE_ITEMS, id.getPath(), itemIds);
}
protected void addBlockTag(String name, Block... blocks) throws IOException {
Identifier id = parseId(name);
List<String> itemIds = Arrays.stream(blocks).map(Registry.BLOCK::getId).map(Identifier::toString)
.collect(Collectors.toList());
writeTagFile(CONVENTION_NAMESPACE, TYPE_BLOCKS, name, itemIds);
writeTagFile(id.getNamespace(), TYPE_BLOCKS, id.getPath(), itemIds);
}
protected void writeTagFile(String namespace, String tagType, String tagName, List<String> entries)
@@ -75,7 +81,15 @@ public abstract class TagProvider implements IAE2DataProvider {
@Override
public String getName() {
return AppEng.MOD_NAME + " Convention Tags";
return AppEng.MOD_NAME + " Tags (" + defaultNamespace + ")";
}
private Identifier parseId(String name) {
if (name.contains(":")) {
return new Identifier(name);
} else {
return new Identifier(defaultNamespace, name);
}
}
}
@@ -0,0 +1,28 @@
package appeng.data.providers.tags;
import java.io.IOException;
import java.nio.file.Path;
import appeng.core.AppEng;
public class ToolTagProviders extends TagProvider {
public ToolTagProviders(Path outputPath) {
super("fabric", outputPath);
}
@Override
protected void generate() throws IOException {
addItemTag("axes", ITEMS.netherQuartzAxe(), ITEMS.certusQuartzAxe());
addItemTag("hoes", ITEMS.netherQuartzHoe(), ITEMS.certusQuartzHoe());
addItemTag("pickaxes", ITEMS.netherQuartzPick(), ITEMS.certusQuartzPick());
addItemTag("shovels", ITEMS.netherQuartzShovel(), ITEMS.certusQuartzShovel());
addItemTag("swords", ITEMS.netherQuartzSword(), ITEMS.certusQuartzSword());
}
@Override
public String getName() {
return AppEng.MOD_NAME + " Tool Tags";
}
}