ActuallyAdditions/src/main/java/de/ellpeck/actuallyadditions/data/GeneratorItemModels.java

66 lines
2.3 KiB
Java
Raw Normal View History

2020-11-01 15:11:04 +01:00
package de.ellpeck.actuallyadditions.data;
import de.ellpeck.actuallyadditions.common.ActuallyAdditions;
2020-11-01 18:58:08 +01:00
import de.ellpeck.actuallyadditions.common.blocks.ActuallyBlocks;
2020-11-20 20:57:44 +01:00
import de.ellpeck.actuallyadditions.common.items.ActuallyItems;
import de.ellpeck.actuallyadditions.common.items.ToolSet;
2020-11-01 15:11:04 +01:00
import net.minecraft.block.Block;
2020-11-28 17:18:18 +01:00
import net.minecraft.block.WallBlock;
2020-11-01 15:11:04 +01:00
import net.minecraft.data.DataGenerator;
2020-11-20 20:57:44 +01:00
import net.minecraft.item.Item;
2020-11-28 17:18:18 +01:00
import net.minecraft.util.ResourceLocation;
2020-11-01 15:11:04 +01:00
import net.minecraftforge.client.model.generators.ItemModelProvider;
import net.minecraftforge.client.model.generators.ModelFile;
2020-11-01 20:32:55 +01:00
import net.minecraftforge.common.data.ExistingFileHelper;
2020-11-01 18:58:08 +01:00
import net.minecraftforge.fml.RegistryObject;
2020-11-01 15:11:04 +01:00
import java.util.Collection;
2020-11-20 20:57:44 +01:00
import java.util.function.Supplier;
2020-11-01 15:11:04 +01:00
public class GeneratorItemModels extends ItemModelProvider {
public GeneratorItemModels(DataGenerator generator, ExistingFileHelper existingFileHelper) {
super(generator, ActuallyAdditions.MOD_ID, existingFileHelper);
}
@Override
protected void registerModels() {
2020-11-28 17:18:18 +01:00
// Items
2020-11-21 14:11:30 +01:00
simpleItem(ActuallyItems.BOOKLET); // will require complex I think
2020-11-28 19:08:18 +01:00
// All items?
2020-11-20 20:57:44 +01:00
ActuallyItems.SIMPLE_ITEMS.forEach(this::simpleItem);
// Toolsets
ActuallyItems.ALL_TOOL_SETS.stream()
.map(ToolSet::getItemGroup)
.flatMap(Collection::stream)
.forEach(item -> simpleItem(() -> item));
2020-11-28 17:18:18 +01:00
// Blocks
2020-11-01 18:58:08 +01:00
ActuallyBlocks.BLOCKS.getEntries().forEach(this::registerBlockModel);
2020-11-01 15:11:04 +01:00
}
2020-11-01 18:58:08 +01:00
private void registerBlockModel(RegistryObject<Block> block) {
String path = block.get().getRegistryName().getPath();
2020-11-28 17:18:18 +01:00
if (block.get() instanceof WallBlock) {
String name = path;
path = "block/" + path.replace("wall_", "");
withExistingParent(name, new ResourceLocation("block/wall_inventory"))
.texture("wall", modLoc(path));
return;
}
2020-11-01 15:11:04 +01:00
getBuilder(path).parent(new ModelFile.UncheckedModelFile(modLoc("block/" + path)));
}
2020-11-20 20:57:44 +01:00
private void simpleItem(Supplier<Item> item) {
String path = item.get().getRegistryName().getPath();
singleTexture(path, mcLoc("item/handheld"), "layer0", modLoc("item/" + path));
}
2020-11-01 15:11:04 +01:00
@Override
public String getName() {
return "Item Models";
}
}