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

164 lines
9.5 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;
import net.minecraft.block.*;
2020-11-01 15:11:04 +01:00
import net.minecraft.data.DataGenerator;
2020-11-01 18:58:08 +01:00
import net.minecraft.state.properties.BlockStateProperties;
import net.minecraft.util.ResourceLocation;
2020-11-01 15:11:04 +01:00
import net.minecraftforge.client.model.generators.BlockStateProvider;
import net.minecraftforge.client.model.generators.ConfiguredModel;
2020-11-01 20:32:55 +01:00
import net.minecraftforge.common.data.ExistingFileHelper;
2020-11-01 15:11:04 +01:00
2020-11-01 18:58:08 +01:00
import java.util.function.Supplier;
2020-11-01 15:11:04 +01:00
public class GeneratorBlockStates extends BlockStateProvider {
public GeneratorBlockStates(DataGenerator gen, ExistingFileHelper exFileHelper) {
super(gen, ActuallyAdditions.MOD_ID, exFileHelper);
}
@Override
protected void registerStatesAndModels() {
2020-11-01 18:58:08 +01:00
buildCubeAll(ActuallyBlocks.blockCrystalClusterRedstone);
buildCubeAll(ActuallyBlocks.blockCrystalClusterLapis);
buildCubeAll(ActuallyBlocks.blockCrystalClusterDiamond);
buildCubeAll(ActuallyBlocks.blockCrystalClusterCoal);
buildCubeAll(ActuallyBlocks.blockCrystalClusterEmerald);
buildCubeAll(ActuallyBlocks.blockCrystalClusterIron);
buildCubeAll(ActuallyBlocks.blockBatteryBox);
buildCubeAll(ActuallyBlocks.blockItemViewerHopping);
buildCubeAll(ActuallyBlocks.blockFarmer);
buildCubeAll(ActuallyBlocks.blockBioReactor);
buildCubeAll(ActuallyBlocks.blockEmpowerer);
buildCubeAll(ActuallyBlocks.blockTinyTorch);
buildCubeAll(ActuallyBlocks.blockShockSuppressor);
buildCubeAll(ActuallyBlocks.blockDisplayStand);
buildCubeAll(ActuallyBlocks.blockPlayerInterface);
buildCubeAll(ActuallyBlocks.blockItemViewer);
buildCubeAll(ActuallyBlocks.blockFireworkBox);
buildCubeAll(ActuallyBlocks.blockMiner);
buildCubeAll(ActuallyBlocks.blockAtomicReconstructor);
buildCubeAll(ActuallyBlocks.blockCrystalRedstone);
buildCubeAll(ActuallyBlocks.blockCrystalLapis);
buildCubeAll(ActuallyBlocks.blockCrystalDiamond);
buildCubeAll(ActuallyBlocks.blockCrystalVoid);
buildCubeAll(ActuallyBlocks.blockCrystalEmerald);
buildCubeAll(ActuallyBlocks.blockCrystalQuarts);
buildCubeAll(ActuallyBlocks.blockCrystalEmpoweredRedstone);
buildCubeAll(ActuallyBlocks.blockCrystalEmpoweredLapis);
buildCubeAll(ActuallyBlocks.blockCrystalEmpoweredDiamond);
buildCubeAll(ActuallyBlocks.blockCrystalEmpoweredVoid);
buildCubeAll(ActuallyBlocks.blockCrystalEmpoweredEmerald);
buildCubeAll(ActuallyBlocks.blockCrystalEmpoweredQuarts);
buildCubeAll(ActuallyBlocks.blockBlackLotus);
buildCubeAll(ActuallyBlocks.blockLaserRelay);
buildCubeAll(ActuallyBlocks.blockLaserRelayAdvanced);
buildCubeAll(ActuallyBlocks.blockLaserRelayExtreme);
buildCubeAll(ActuallyBlocks.blockLaserRelayFluids);
buildCubeAll(ActuallyBlocks.blockLaserRelayItem);
buildCubeAll(ActuallyBlocks.blockLaserRelayItemWhitelist);
buildCubeAll(ActuallyBlocks.blockRangedCollector);
buildCubeAll(ActuallyBlocks.blockDirectionalBreaker);
buildCubeAll(ActuallyBlocks.blockLeafGenerator);
buildCubeAll(ActuallyBlocks.blockSmileyCloud);
buildCubeAll(ActuallyBlocks.blockXPSolidifier);
buildCubeAll(ActuallyBlocks.blockTestifiBucksGreenWall);
buildCubeAll(ActuallyBlocks.blockTestifiBucksWhiteWall);
stairsBlock((StairsBlock) ActuallyBlocks.blockTestifiBucksGreenStairs.get(), modLoc("block/green_wall_block"));
stairsBlock((StairsBlock) ActuallyBlocks.blockTestifiBucksWhiteStairs.get(), modLoc("block/white_wall_block"));
slabBlock((SlabBlock) ActuallyBlocks.blockTestifiBucksGreenSlab.get(), modLoc("block/green_wall_block"), modLoc("block/green_wall_block"));
slabBlock((SlabBlock) ActuallyBlocks.blockTestifiBucksWhiteSlab.get(), modLoc("block/white_wall_block"), modLoc("block/white_wall_block"));
fenceBlock((FenceBlock) ActuallyBlocks.blockTestifiBucksGreenFence.get(), modLoc("block/green_wall_block"));
fenceBlock((FenceBlock) ActuallyBlocks.blockTestifiBucksWhiteFence.get(), modLoc("block/white_wall_block"));
buildLitState(ActuallyBlocks.LAMP_WHITE);
buildLitState(ActuallyBlocks.LAMP_ORANGE);
buildLitState(ActuallyBlocks.LAMP_MAGENTA);
buildLitState(ActuallyBlocks.LAMP_LIGHT_BLUE);
buildLitState(ActuallyBlocks.LAMP_YELLOW);
buildLitState(ActuallyBlocks.LAMP_LIME);
buildLitState(ActuallyBlocks.LAMP_PINK);
buildLitState(ActuallyBlocks.LAMP_GRAY);
buildLitState(ActuallyBlocks.LAMP_LIGHT_GRAY);
buildLitState(ActuallyBlocks.LAMP_CYAN);
buildLitState(ActuallyBlocks.LAMP_PURPLE);
buildLitState(ActuallyBlocks.LAMP_BLUE);
buildLitState(ActuallyBlocks.LAMP_BROWN);
buildLitState(ActuallyBlocks.LAMP_GREEN);
buildLitState(ActuallyBlocks.LAMP_RED);
buildLitState(ActuallyBlocks.LAMP_BLACK);
buildCubeAll(ActuallyBlocks.blockLampPowerer);
buildCubeAll(ActuallyBlocks.blockTreasureChest);
buildCubeAll(ActuallyBlocks.blockEnergizer);
buildCubeAll(ActuallyBlocks.blockEnervator);
buildCubeAll(ActuallyBlocks.blockLavaFactoryController);
buildCubeAll(ActuallyBlocks.blockCanolaPress);
buildCubeAll(ActuallyBlocks.blockPhantomface);
buildCubeAll(ActuallyBlocks.blockPhantomPlacer);
buildCubeAll(ActuallyBlocks.blockPhantomLiquiface);
buildCubeAll(ActuallyBlocks.blockPhantomEnergyface);
buildCubeAll(ActuallyBlocks.blockPhantomRedstoneface);
buildCubeAll(ActuallyBlocks.blockPhantomBreaker);
buildCubeAll(ActuallyBlocks.blockCoalGenerator);
buildCubeAll(ActuallyBlocks.blockOilGenerator);
buildCubeAll(ActuallyBlocks.blockFermentingBarrel);
buildCubeAll(ActuallyBlocks.blockRice);
buildCubeAll(ActuallyBlocks.blockCanola);
buildCubeAll(ActuallyBlocks.blockFlax);
buildCubeAll(ActuallyBlocks.blockCoffee);
buildCubeAll(ActuallyBlocks.BLACK_QUARTS);
buildCubeAll(ActuallyBlocks.BLACK_QUARTS_CHISELED);
buildCubeAll(ActuallyBlocks.BLACK_QUARTS_PILLAR);
buildCubeAll(ActuallyBlocks.CHARCOAL);
buildCubeAll(ActuallyBlocks.ENDER_CASING);
buildCubeAll(ActuallyBlocks.ENDERPEARL);
buildCubeAll(ActuallyBlocks.IRON_CASING);
buildCubeAll(ActuallyBlocks.IRON_CASING_SNOW);
buildCubeAll(ActuallyBlocks.LAVA_FACTORY_CASE);
buildCubeAll(ActuallyBlocks.ORE_BLACK_QUARTS);
buildCubeAll(ActuallyBlocks.WOOD_CASING);
buildCubeAll(ActuallyBlocks.blockFeeder);
buildCubeAll(ActuallyBlocks.blockGrinder);
buildCubeAll(ActuallyBlocks.blockGrinderDouble);
buildCubeAll(ActuallyBlocks.blockFurnaceDouble);
buildCubeAll(ActuallyBlocks.blockInputter);
buildCubeAll(ActuallyBlocks.blockInputterAdvanced);
buildCubeAll(ActuallyBlocks.blockFishingNet);
buildCubeAll(ActuallyBlocks.blockFurnaceSolar);
buildCubeAll(ActuallyBlocks.blockHeatCollector);
buildCubeAll(ActuallyBlocks.blockItemRepairer);
buildCubeAll(ActuallyBlocks.blockGreenhouseGlass);
buildCubeAll(ActuallyBlocks.blockBreaker);
buildCubeAll(ActuallyBlocks.blockPlacer);
buildCubeAll(ActuallyBlocks.blockDropper);
buildCubeAll(ActuallyBlocks.blockFluidPlacer);
buildCubeAll(ActuallyBlocks.blockFluidCollector);
buildCubeAll(ActuallyBlocks.blockCoffeeMachine);
buildCubeAll(ActuallyBlocks.blockPhantomBooster);
// buildCubeAll(ActuallyBlocks.blockWildPlant);
wallBlock((WallBlock) ActuallyBlocks.blockQuartzWall.get(), modLoc("block/black_quartz_block"));
wallBlock((WallBlock) ActuallyBlocks.blockChiseledQuartzWall.get(), modLoc("block/black_quartz_chiseled_block"));
wallBlock((WallBlock) ActuallyBlocks.blockPillarQuartzWall.get(), modLoc("block/black_quartz_pillar_block"));
stairsBlock((StairsBlock) ActuallyBlocks.blockQuartzStair.get(), modLoc("block/black_quartz_block"));
stairsBlock((StairsBlock) ActuallyBlocks.blockChiseledQuartzStair.get(), modLoc("block/black_quartz_chiseled_block"));
stairsBlock((StairsBlock) ActuallyBlocks.blockPillarQuartzStair.get(), modLoc("block/black_quartz_pillar_block"));
slabBlock((SlabBlock) ActuallyBlocks.blockQuartzSlab.get(), modLoc("block/black_quartz_block"), modLoc("block/black_quartz_block"));
slabBlock((SlabBlock) ActuallyBlocks.blockChiseledQuartzSlab.get(), modLoc("block/black_quartz_chiseled_block"), modLoc("block/black_quartz_chiseled_block"));
slabBlock((SlabBlock) ActuallyBlocks.blockPillarQuartzSlab.get(), modLoc("block/black_quartz_pillar_block"), modLoc("block/black_quartz_pillar_block"));
}
private void buildCubeAll(Supplier<Block> block) {
simpleBlock(block.get());
2020-11-01 15:11:04 +01:00
}
2020-11-01 18:58:08 +01:00
private void buildLitState(Supplier<Block> block) {
ResourceLocation name = block.get().getRegistryName();
assert name != null;
getVariantBuilder(block.get())
.partialState().with(BlockStateProperties.LIT, false)
.addModels(ConfiguredModel.builder().modelFile(models().cubeAll(name.toString(), modLoc("block/" + name.getPath()))).build())
.partialState().with(BlockStateProperties.LIT, true)
.addModels(ConfiguredModel.builder().modelFile(models().cubeAll(name.toString(), modLoc("block/" + name.getPath().replace("_block", "_on_block")))).build());
2020-11-01 15:11:04 +01:00
}
}