Set up tags and loot tables generation

This commit is contained in:
Sollace 2024-03-18 17:11:16 +00:00
parent 9d59c89ac2
commit 7d1d2f45da
No known key found for this signature in database
GPG key ID: E52FACE7B5C773DB
157 changed files with 394 additions and 3533 deletions

View file

@ -1,17 +1,40 @@
package com.minelittlepony.unicopia.datagen; package com.minelittlepony.unicopia.datagen;
import com.minelittlepony.unicopia.datagen.providers.UBlockLootTableProvider;
import com.minelittlepony.unicopia.datagen.providers.UBlockTagProvider;
import com.minelittlepony.unicopia.datagen.providers.UItemTagProvider;
import com.minelittlepony.unicopia.datagen.providers.UModelProvider; import com.minelittlepony.unicopia.datagen.providers.UModelProvider;
import com.minelittlepony.unicopia.datagen.providers.URecipeProvider; import com.minelittlepony.unicopia.datagen.providers.URecipeProvider;
import com.minelittlepony.unicopia.server.world.UWorldGen;
import net.fabricmc.fabric.api.datagen.v1.DataGeneratorEntrypoint; import net.fabricmc.fabric.api.datagen.v1.DataGeneratorEntrypoint;
import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator; import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator;
import net.minecraft.registry.RegistryBuilder;
import net.minecraft.registry.RegistryEntryLookup;
import net.minecraft.registry.RegistryKeys;
import net.minecraft.world.biome.OverworldBiomeCreator;
import net.minecraft.world.gen.carver.ConfiguredCarver;
import net.minecraft.world.gen.feature.PlacedFeature;
public class Datagen implements DataGeneratorEntrypoint { public class Datagen implements DataGeneratorEntrypoint {
@Override @Override
public void onInitializeDataGenerator(FabricDataGenerator fabricDataGenerator) { public void onInitializeDataGenerator(FabricDataGenerator fabricDataGenerator) {
final FabricDataGenerator.Pack pack = fabricDataGenerator.createPack(); final FabricDataGenerator.Pack pack = fabricDataGenerator.createPack();
UBlockTagProvider blockTags = pack.addProvider(UBlockTagProvider::new);
pack.addProvider((output, registries) -> new UItemTagProvider(output, registries, blockTags));
pack.addProvider(UModelProvider::new); pack.addProvider(UModelProvider::new);
pack.addProvider(URecipeProvider::new); pack.addProvider(URecipeProvider::new);
pack.addProvider(UBlockLootTableProvider::new);
}
@Override
public void buildRegistry(RegistryBuilder builder) {
builder.addRegistry(RegistryKeys.BIOME, registerable -> {
RegistryEntryLookup<PlacedFeature> placedFeatureLookup = registerable.getRegistryLookup(RegistryKeys.PLACED_FEATURE);
RegistryEntryLookup<ConfiguredCarver<?>> carverLookup = registerable.getRegistryLookup(RegistryKeys.CONFIGURED_CARVER);
registerable.register(UWorldGen.SWEET_APPLE_ORCHARD, OverworldBiomeCreator.createNormalForest(placedFeatureLookup, carverLookup, false, false, false));
});
} }
} }

View file

@ -0,0 +1,131 @@
package com.minelittlepony.unicopia.datagen.providers;
import java.util.List;
import com.minelittlepony.unicopia.block.UBlocks;
import com.minelittlepony.unicopia.item.UItems;
import com.minelittlepony.unicopia.server.world.Tree;
import com.minelittlepony.unicopia.server.world.UTreeGen;
import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
import net.fabricmc.fabric.api.datagen.v1.provider.FabricBlockLootTableProvider;
import net.minecraft.block.BedBlock;
import net.minecraft.block.Block;
import net.minecraft.block.Blocks;
import net.minecraft.block.enums.BedPart;
import net.minecraft.enchantment.Enchantments;
import net.minecraft.item.Items;
import net.minecraft.loot.LootPool;
import net.minecraft.loot.LootTable;
import net.minecraft.loot.condition.TableBonusLootCondition;
import net.minecraft.loot.entry.ItemEntry;
import net.minecraft.loot.function.SetCountLootFunction;
import net.minecraft.loot.provider.number.ConstantLootNumberProvider;
import net.minecraft.loot.provider.number.UniformLootNumberProvider;
public class UBlockLootTableProvider extends FabricBlockLootTableProvider {
public UBlockLootTableProvider(FabricDataOutput output) {
super(output);
}
@Override
public void generate() {
// simple drops
List.of(
UBlocks.CARVED_CLOUD, UBlocks.UNSTABLE_CLOUD,
UBlocks.CHISELLED_CHITIN_STAIRS, UBlocks.CHISELLED_CHITIN,
UBlocks.CLOUD_BRICK_STAIRS, UBlocks.CLOUD_BRICKS,
UBlocks.CLOUD_PLANK_STAIRS, UBlocks.CLOUD_PLANKS,
UBlocks.CURING_JOKE,
UBlocks.GOLDEN_OAK_LOG,
UBlocks.HIVE,
UBlocks.PALM_BUTTON, UBlocks.PALM_FENCE_GATE, UBlocks.PALM_FENCE, UBlocks.PALM_LOG, UBlocks.PALM_PLANKS,
UBlocks.PALM_PRESSURE_PLATE, UBlocks.PALM_SIGN, UBlocks.PALM_HANGING_SIGN, UBlocks.PALM_STAIRS, UBlocks.PALM_TRAPDOOR, UBlocks.PALM_WOOD,
UBlocks.STRIPPED_PALM_LOG, UBlocks.STRIPPED_PALM_WOOD,
UBlocks.STRIPPED_ZAP_LOG, UBlocks.STRIPPED_ZAP_WOOD,
UBlocks.WAXED_STRIPPED_ZAP_LOG, UBlocks.WAXED_STRIPPED_ZAP_WOOD,
UBlocks.WAXED_ZAP_FENCE_GATE, UBlocks.WAXED_ZAP_FENCE,
UBlocks.WAXED_ZAP_LOG, UBlocks.WAXED_ZAP_PLANKS, UBlocks.WAXED_ZAP_STAIRS, UBlocks.WAXED_ZAP_WOOD,
UBlocks.WEATHER_VANE,
UBlocks.ZAP_FENCE_GATE, UBlocks.ZAP_FENCE,
UBlocks.ZAP_LOG, UBlocks.ZAP_PLANKS, UBlocks.ZAP_STAIRS, UBlocks.ZAP_WOOD
).forEach(this::addDrop);
// slabs
List.of(
UBlocks.CHISELLED_CHITIN_SLAB, UBlocks.CLOUD_BRICK_SLAB,
UBlocks.CLOUD_PLANK_SLAB, UBlocks.PALM_SLAB, UBlocks.ZAP_SLAB, UBlocks.WAXED_ZAP_SLAB
).forEach(slab -> addDrop(slab, this::slabDrops));
// fruit
UModelProvider.FRUITS.forEach((block, drop) -> {
if (block != UBlocks.GOLDEN_APPLE) {
addDrop(block, drop);
}
});
List.of(UBlocks.GREEN_APPLE_LEAVES, UBlocks.SOUR_APPLE_LEAVES, UBlocks.SWEET_APPLE_LEAVES, UBlocks.GOLDEN_OAK_LEAVES).forEach(block -> addDrop(block, this::fruitLeavesDrops));
addDrop(UBlocks.MANGO_LEAVES, block -> leavesDrops(block, UTreeGen.MANGO_TREE.sapling().get(), 0.025F, 0.027777778F, 0.03125F, 0.041666668F, 0.1F)); // same chance as jungle
addDrop(UBlocks.ZAP_LEAVES, block -> leavesDrops(block, UTreeGen.ZAP_APPLE_TREE.sapling().get(), SAPLING_DROP_CHANCE));
addDrop(UBlocks.FLOWERING_ZAP_LEAVES, block -> leavesDrops(block, UTreeGen.ZAP_APPLE_TREE.sapling().get(), SAPLING_DROP_CHANCE));
addDrop(UBlocks.PALM_LEAVES, block -> leavesDrops(block, UTreeGen.BANANA_TREE.sapling().get(), SAPLING_DROP_CHANCE));
Tree.REGISTRY.forEach(tree -> {
tree.sapling().ifPresent(this::addDrop);
tree.pot().ifPresent(this::addPottedPlantDrops);
});
// doors
List.of(
UBlocks.CLOUD_DOOR, UBlocks.CRYSTAL_DOOR,
UBlocks.DARK_OAK_DOOR, UBlocks.PALM_DOOR, UBlocks.STABLE_DOOR
).forEach(door -> addDrop(door, this::doorDrops));
//beds
List.of(
UBlocks.CLOUD_BED, UBlocks.CLOTH_BED
).forEach(bed -> addDrop(bed, b -> dropsWithProperty(b, BedBlock.PART, BedPart.HEAD)));
addDrop(UBlocks.CHITIN_SPIKES, drops(UBlocks.CHITIN_SPIKES, UItems.CARAPACE, ConstantLootNumberProvider.create(6)));
addDrop(UBlocks.CHITIN, drops(UBlocks.CHITIN, UItems.CARAPACE, ConstantLootNumberProvider.create(9)));
addDrop(UBlocks.SURFACE_CHITIN, drops(UBlocks.SURFACE_CHITIN, UItems.CARAPACE, ConstantLootNumberProvider.create(9)));
addDrop(UBlocks.CLOUD, drops(UBlocks.CLOUD, UItems.CLOUD_LUMP, ConstantLootNumberProvider.create(4)));
addDrop(UBlocks.CLOUD_STAIRS, drops(UBlocks.CLOUD_STAIRS, UItems.CLOUD_LUMP, ConstantLootNumberProvider.create(6)));
addDrop(UBlocks.SOGGY_CLOUD, drops(UBlocks.CLOUD, UItems.CLOUD_LUMP, ConstantLootNumberProvider.create(4)));
addDrop(UBlocks.SOGGY_CLOUD_STAIRS, drops(UBlocks.CLOUD_STAIRS, UItems.CLOUD_LUMP, ConstantLootNumberProvider.create(6)));
addDrop(UBlocks.DENSE_CLOUD, drops(UBlocks.DENSE_CLOUD, UItems.CLOUD_LUMP, ConstantLootNumberProvider.create(9)));
addDrop(UBlocks.DENSE_CLOUD_STAIRS, drops(UBlocks.DENSE_CLOUD_STAIRS, UItems.CLOUD_LUMP, ConstantLootNumberProvider.create(13)));
addDrop(UBlocks.ETCHED_CLOUD, drops(UBlocks.ETCHED_CLOUD, UItems.CLOUD_LUMP, ConstantLootNumberProvider.create(9)));
addDrop(UBlocks.ETCHED_CLOUD_STAIRS, drops(UBlocks.ETCHED_CLOUD_STAIRS, UItems.CLOUD_LUMP, ConstantLootNumberProvider.create(13)));
addDrop(UBlocks.CLOUD_PILLAR, drops(UBlocks.CLOUD_PILLAR, UBlocks.CLOUD, ConstantLootNumberProvider.create(6)));
addDrop(UBlocks.FROSTED_OBSIDIAN, Blocks.OBSIDIAN);
}
public LootTable.Builder fruitLeavesDrops(Block leaves) {
return LootTable.builder()
.pool(LootPool.builder()
.rolls(ConstantLootNumberProvider.create(1))
.with(ItemEntry.builder(leaves).conditionally(WITH_SILK_TOUCH_OR_SHEARS))
)
.pool(LootPool.builder()
.rolls(ConstantLootNumberProvider.create(1))
.conditionally(WITHOUT_SILK_TOUCH_NOR_SHEARS)
.with(
applyExplosionDecay(leaves, ItemEntry.builder(Items.STICK)
.apply(SetCountLootFunction.builder(UniformLootNumberProvider.create(1, 2)))
)
.conditionally(TableBonusLootCondition.builder(Enchantments.FORTUNE, LEAVES_STICK_DROP_CHANCE))
)
);
}
}

View file

@ -181,14 +181,7 @@ public class UBlockStateModelGenerator extends BlockStateModelGenerator {
registerParentedItemModel(UBlocks.MANGO_LEAVES, ModelIds.getBlockModelId(Blocks.JUNGLE_LEAVES)); registerParentedItemModel(UBlocks.MANGO_LEAVES, ModelIds.getBlockModelId(Blocks.JUNGLE_LEAVES));
// fruit // fruit
Map.of(UBlocks.GREEN_APPLE, UItems.GREEN_APPLE, UModelProvider.FRUITS.forEach((block, item) -> registerSingleton(block, TextureMap.cross(ModelIds.getItemModelId(item)), BlockModels.FRUIT));
UBlocks.GOLDEN_APPLE, Items.GOLDEN_APPLE,
UBlocks.MANGO, UItems.MANGO,
UBlocks.SOUR_APPLE, UItems.SOUR_APPLE,
UBlocks.SWEET_APPLE, UItems.SWEET_APPLE,
UBlocks.ZAP_APPLE, UItems.ZAP_APPLE,
UBlocks.ZAP_BULB, UItems.ZAP_BULB
).forEach((block, item) -> registerSingleton(block, TextureMap.cross(ModelIds.getItemModelId(item)), BlockModels.FRUIT));
// bales // bales
registerAll((g, block) -> g.registerBale(Unicopia.id(block.getLeft().getPath().replace("bale", "block")), block.getLeft(), block.getRight()), registerAll((g, block) -> g.registerBale(Unicopia.id(block.getLeft().getPath().replace("bale", "block")), block.getLeft(), block.getRight()),

View file

@ -0,0 +1,167 @@
package com.minelittlepony.unicopia.datagen.providers;
import java.util.concurrent.CompletableFuture;
import com.minelittlepony.unicopia.UTags;
import com.minelittlepony.unicopia.Unicopia;
import com.minelittlepony.unicopia.block.UBlocks;
import com.minelittlepony.unicopia.server.world.Tree;
import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagProvider;
import net.minecraft.block.Block;
import net.minecraft.block.Blocks;
import net.minecraft.registry.RegistryWrapper;
import net.minecraft.registry.RegistryWrapper.WrapperLookup;
import net.minecraft.registry.tag.BlockTags;
public class UBlockTagProvider extends FabricTagProvider.BlockTagProvider {
public UBlockTagProvider(FabricDataOutput output, CompletableFuture<RegistryWrapper.WrapperLookup> registriesFuture) {
super(output, registriesFuture);
}
@Override
protected void configure(WrapperLookup registries) {
Block[] crops = {
UBlocks.OATS, UBlocks.OATS_STEM, UBlocks.OATS_CROWN,
UBlocks.ROCKS, UBlocks.PINEAPPLE,
UBlocks.SWEET_APPLE_SPROUT, UBlocks.GREEN_APPLE_SPROUT, UBlocks.SWEET_APPLE_SPROUT,
UBlocks.GOLDEN_OAK_SPROUT
};
getOrCreateTagBuilder(UTags.CATAPULT_IMMUNE).add(Blocks.BEDROCK).forceAddTag(BlockTags.DOORS).forceAddTag(BlockTags.TRAPDOORS);
getOrCreateTagBuilder(BlockTags.CROPS).add(crops);
getOrCreateTagBuilder(BlockTags.BEE_GROWABLES).add(crops);
getOrCreateTagBuilder(BlockTags.MAINTAINS_FARMLAND).add(crops);
getOrCreateTagBuilder(BlockTags.NEEDS_DIAMOND_TOOL).add(UBlocks.FROSTED_OBSIDIAN);
getOrCreateTagBuilder(BlockTags.PICKAXE_MINEABLE).add(UBlocks.ROCKS, UBlocks.FROSTED_OBSIDIAN, UBlocks.WEATHER_VANE);
getOrCreateTagBuilder(BlockTags.DRAGON_IMMUNE).add(UBlocks.FROSTED_OBSIDIAN, UBlocks.GOLDEN_OAK_LOG, UBlocks.GOLDEN_OAK_LEAVES);
getOrCreateTagBuilder(BlockTags.FIRE).add(UBlocks.SPECTRAL_FIRE);
getOrCreateTagBuilder(BlockTags.HOE_MINEABLE).add(UBlocks.HAY_BLOCK).addOptional(Unicopia.id("rice_block")).addOptional(Unicopia.id("straw_block"));
addZapWoodset();
addPalmWoodset();
addCloudBlocksets();
addChitinBlocksets();
addHayBlocks();
addFruitTrees();
}
private void addFruitTrees() {
Block[] leaves = {
UBlocks.GREEN_APPLE_LEAVES, UBlocks.SWEET_APPLE_LEAVES, UBlocks.SOUR_APPLE_LEAVES,
UBlocks.GOLDEN_OAK_LEAVES, UBlocks.MANGO_LEAVES
};
getOrCreateTagBuilder(BlockTags.LEAVES).add(leaves);
getOrCreateTagBuilder(BlockTags.HOE_MINEABLE).add(leaves);
Block[] burnableLogs = { UBlocks.GOLDEN_OAK_LOG };
getOrCreateTagBuilder(BlockTags.LOGS).add(burnableLogs);
getOrCreateTagBuilder(BlockTags.LOGS_THAT_BURN).add(burnableLogs);
var saplings = Tree.REGISTRY.stream().flatMap(tree -> tree.sapling().stream()).toArray(Block[]::new);
getOrCreateTagBuilder(BlockTags.SAPLINGS).add(saplings);
getOrCreateTagBuilder(BlockTags.MAINTAINS_FARMLAND).add(saplings);
getOrCreateTagBuilder(BlockTags.GUARDED_BY_PIGLINS).add(UBlocks.GOLDEN_OAK_LEAVES, UBlocks.GOLDEN_OAK_LOG, UBlocks.GOLDEN_OAK_SPROUT, UBlocks.GOLDEN_APPLE);
}
private void addZapWoodset() {
getOrCreateTagBuilder(BlockTags.LEAVES).add(UBlocks.ZAP_LEAVES, UBlocks.FLOWERING_ZAP_LEAVES);
getOrCreateTagBuilder(UTags.POLEARM_MINEABLE).add(
UBlocks.ZAP_LEAVES, UBlocks.FLOWERING_ZAP_LEAVES,
UBlocks.ZAP_PLANKS,
UBlocks.ZAP_LOG, UBlocks.ZAP_WOOD, UBlocks.STRIPPED_ZAP_LOG, UBlocks.STRIPPED_ZAP_WOOD,
UBlocks.ZAP_FENCE_GATE, UBlocks.ZAP_FENCE,
UBlocks.ZAP_SLAB,
UBlocks.ZAP_STAIRS
);
Block[] burnableLogs = { UBlocks.WAXED_ZAP_LOG, UBlocks.WAXED_ZAP_WOOD, UBlocks.WAXED_STRIPPED_ZAP_LOG, UBlocks.WAXED_STRIPPED_ZAP_WOOD };
getOrCreateTagBuilder(BlockTags.LOGS).add(burnableLogs).add(UBlocks.ZAP_LOG, UBlocks.ZAP_WOOD, UBlocks.STRIPPED_ZAP_LOG, UBlocks.STRIPPED_ZAP_WOOD);
getOrCreateTagBuilder(BlockTags.LOGS_THAT_BURN).add(burnableLogs);
getOrCreateTagBuilder(BlockTags.PLANKS).add(UBlocks.ZAP_PLANKS, UBlocks.WAXED_ZAP_PLANKS);
//getOrCreateTagBuilder(BlockTags.WOODEN_BUTTONS).add(UBlocks.ZAP_BUTTON);
//getOrCreateTagBuilder(BlockTags.WOODEN_DOORS).add(UBlocks.ZAP_DOOR);
getOrCreateTagBuilder(BlockTags.FENCE_GATES).add(UBlocks.ZAP_FENCE_GATE, UBlocks.WAXED_ZAP_FENCE_GATE);
getOrCreateTagBuilder(BlockTags.WOODEN_FENCES).add(UBlocks.ZAP_FENCE, UBlocks.WAXED_ZAP_FENCE);
//getOrCreateTagBuilder(BlockTags.PRESSURE_PLATES).add(UBlocks.ZAP_PRESSURE_PLATE);
//getOrCreateTagBuilder(BlockTags.WOODEN_PRESSURE_PLATES).add(UBlocks.ZAP_PRESSURE_PLATE);
getOrCreateTagBuilder(BlockTags.SLABS).add(UBlocks.ZAP_SLAB, UBlocks.WAXED_ZAP_SLAB);
getOrCreateTagBuilder(BlockTags.WOODEN_SLABS).add(UBlocks.ZAP_SLAB, UBlocks.WAXED_ZAP_SLAB);
getOrCreateTagBuilder(BlockTags.STAIRS).add(UBlocks.ZAP_STAIRS, UBlocks.WAXED_ZAP_STAIRS);
getOrCreateTagBuilder(BlockTags.WOODEN_STAIRS).add(UBlocks.ZAP_STAIRS, UBlocks.WAXED_ZAP_STAIRS);
//getOrCreateTagBuilder(BlockTags.TRAPDOORS).add(UBlocks.ZAP_TRAPDOOR);
//getOrCreateTagBuilder(BlockTags.WOODEN_TRAPDOORS).add(UBlocks.ZAP_TRAPDOOR);
}
private void addPalmWoodset() {
getOrCreateTagBuilder(BlockTags.LEAVES).add(UBlocks.PALM_LEAVES);
getOrCreateTagBuilder(BlockTags.HOE_MINEABLE).add(UBlocks.PALM_LEAVES);
Block[] logs = { UBlocks.PALM_LOG, UBlocks.PALM_WOOD, UBlocks.STRIPPED_PALM_LOG, UBlocks.STRIPPED_PALM_WOOD };
getOrCreateTagBuilder(BlockTags.LOGS).add(logs);
getOrCreateTagBuilder(BlockTags.LOGS_THAT_BURN).add(logs);
getOrCreateTagBuilder(BlockTags.PLANKS).add(UBlocks.PALM_PLANKS);
addSign(UBlocks.PALM_SIGN, UBlocks.PALM_WALL_SIGN, UBlocks.PALM_HANGING_SIGN, UBlocks.PALM_WALL_HANGING_SIGN);
getOrCreateTagBuilder(BlockTags.WOODEN_BUTTONS).add(UBlocks.PALM_BUTTON);
getOrCreateTagBuilder(BlockTags.WOODEN_DOORS).add(UBlocks.PALM_DOOR);
getOrCreateTagBuilder(BlockTags.FENCE_GATES).add(UBlocks.PALM_FENCE_GATE);
getOrCreateTagBuilder(BlockTags.WOODEN_FENCES).add(UBlocks.PALM_FENCE);
getOrCreateTagBuilder(BlockTags.PRESSURE_PLATES).add(UBlocks.PALM_PRESSURE_PLATE);
getOrCreateTagBuilder(BlockTags.WOODEN_PRESSURE_PLATES).add(UBlocks.PALM_PRESSURE_PLATE);
getOrCreateTagBuilder(BlockTags.SLABS).add(UBlocks.PALM_SLAB);
getOrCreateTagBuilder(BlockTags.WOODEN_SLABS).add(UBlocks.PALM_SLAB);
getOrCreateTagBuilder(BlockTags.STAIRS).add(UBlocks.PALM_STAIRS);
getOrCreateTagBuilder(BlockTags.WOODEN_STAIRS).add(UBlocks.PALM_STAIRS);
getOrCreateTagBuilder(BlockTags.TRAPDOORS).add(UBlocks.PALM_TRAPDOOR);
getOrCreateTagBuilder(BlockTags.WOODEN_TRAPDOORS).add(UBlocks.PALM_TRAPDOOR);
}
private void addCloudBlocksets() {
getOrCreateTagBuilder(BlockTags.PICKAXE_MINEABLE).add(
UBlocks.CLOUD_BRICKS, UBlocks.CLOUD_BRICK_SLAB, UBlocks.CLOUD_BRICK_STAIRS, UBlocks.COMPACTED_CLOUD_BRICKS, UBlocks.CARVED_CLOUD
);
getOrCreateTagBuilder(BlockTags.AXE_MINEABLE).add(
UBlocks.CLOUD_PLANKS, UBlocks.CLOUD_PLANK_SLAB, UBlocks.CLOUD_PLANK_STAIRS, UBlocks.COMPACTED_CLOUD_PLANKS
);
getOrCreateTagBuilder(UTags.block("cloud_beds")).add(UBlocks.CLOUD_BED);
getOrCreateTagBuilder(UTags.block("cloud_slabs")).add(
UBlocks.CLOUD_SLAB, UBlocks.SOGGY_CLOUD_SLAB, UBlocks.DENSE_CLOUD_SLAB, UBlocks.ETCHED_CLOUD_SLAB,
UBlocks.CLOUD_PLANK_SLAB, UBlocks.CLOUD_BRICK_SLAB
);
getOrCreateTagBuilder(UTags.block("cloud_stairs")).add(
UBlocks.CLOUD_STAIRS, UBlocks.SOGGY_CLOUD_STAIRS, UBlocks.DENSE_CLOUD_STAIRS, UBlocks.ETCHED_CLOUD_STAIRS,
UBlocks.CLOUD_PLANK_STAIRS, UBlocks.CLOUD_BRICK_STAIRS
);
getOrCreateTagBuilder(UTags.block("clouds")).add(
UBlocks.CLOUD, UBlocks.CLOUD_PLANKS, UBlocks.CLOUD_BRICKS, UBlocks.DENSE_CLOUD,
UBlocks.ETCHED_CLOUD, UBlocks.CARVED_CLOUD,
UBlocks.COMPACTED_CLOUD, UBlocks.COMPACTED_CLOUD_PLANKS, UBlocks.COMPACTED_CLOUD_BRICKS,
UBlocks.UNSTABLE_CLOUD, UBlocks.SOGGY_CLOUD
);
}
private void addChitinBlocksets() {
getOrCreateTagBuilder(BlockTags.PICKAXE_MINEABLE).add(
UBlocks.CHITIN_SPIKES,
UBlocks.CHISELLED_CHITIN, UBlocks.CHISELLED_CHITIN_HULL, UBlocks.CHISELLED_CHITIN_SLAB, UBlocks.CHISELLED_CHITIN_STAIRS
);
getOrCreateTagBuilder(BlockTags.SHOVEL_MINEABLE).add(UBlocks.CHITIN, UBlocks.SURFACE_CHITIN);
}
private void addSign(Block standing, Block wall, Block hanging, Block wallHanging) {
getOrCreateTagBuilder(BlockTags.STANDING_SIGNS).add(standing);
getOrCreateTagBuilder(BlockTags.WALL_SIGNS).add(wall);
getOrCreateTagBuilder(BlockTags.CEILING_HANGING_SIGNS).add(hanging);
getOrCreateTagBuilder(BlockTags.WALL_HANGING_SIGNS).add(wallHanging);
}
private void addHayBlocks() {
}
}

View file

@ -0,0 +1,59 @@
package com.minelittlepony.unicopia.datagen.providers;
import java.util.concurrent.CompletableFuture;
import com.minelittlepony.unicopia.UTags;
import com.minelittlepony.unicopia.block.UBlocks;
import com.minelittlepony.unicopia.item.UItems;
import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagProvider;
import net.minecraft.registry.RegistryWrapper;
import net.minecraft.registry.RegistryWrapper.WrapperLookup;
import net.minecraft.registry.tag.BlockTags;
import net.minecraft.registry.tag.ItemTags;
public class UItemTagProvider extends FabricTagProvider.ItemTagProvider {
public UItemTagProvider(FabricDataOutput output, CompletableFuture<RegistryWrapper.WrapperLookup> registriesFuture, BlockTagProvider blockTagProvider) {
super(output, registriesFuture, blockTagProvider);
}
@Override
protected void configure(WrapperLookup arg) {
copyBlockTags();
getOrCreateTagBuilder(ItemTags.BOOKSHELF_BOOKS).add(UItems.SPELLBOOK);
getOrCreateTagBuilder(ItemTags.BEDS).add(UItems.CLOTH_BED, UItems.CLOUD_BED);
getOrCreateTagBuilder(ItemTags.CHEST_BOATS).add(UItems.PALM_CHEST_BOAT);
getOrCreateTagBuilder(ItemTags.BOATS).add(UItems.PALM_BOAT);
getOrCreateTagBuilder(ItemTags.MUSIC_DISCS).add(UItems.MUSIC_DISC_CRUSADE, UItems.MUSIC_DISC_FUNK, UItems.MUSIC_DISC_PET, UItems.MUSIC_DISC_POPULAR);
getOrCreateTagBuilder(ItemTags.CREEPER_DROP_MUSIC_DISCS).add(UItems.MUSIC_DISC_CRUSADE, UItems.MUSIC_DISC_FUNK, UItems.MUSIC_DISC_PET, UItems.MUSIC_DISC_POPULAR);
getOrCreateTagBuilder(ItemTags.SIGNS).add(UBlocks.PALM_SIGN.asItem());
getOrCreateTagBuilder(ItemTags.HANGING_SIGNS).add(UBlocks.PALM_HANGING_SIGN.asItem());
getOrCreateTagBuilder(UTags.HORSE_SHOES).add(UItems.IRON_HORSE_SHOE, UItems.GOLDEN_HORSE_SHOE, UItems.COPPER_HORSE_SHOE, UItems.NETHERITE_HORSE_SHOE);
getOrCreateTagBuilder(UTags.POLEARMS).add(UItems.WOODEN_POLEARM, UItems.STONE_POLEARM, UItems.IRON_POLEARM, UItems.GOLDEN_POLEARM, UItems.DIAMOND_POLEARM, UItems.NETHERITE_POLEARM);
getOrCreateTagBuilder(ItemTags.TOOLS).addTag(UTags.HORSE_SHOES).addTag(UTags.POLEARMS);
}
private void copyBlockTags() {
copy(BlockTags.LEAVES, ItemTags.LEAVES);
copy(BlockTags.LOGS_THAT_BURN, ItemTags.LOGS_THAT_BURN);
copy(BlockTags.LOGS, ItemTags.LOGS);
copy(BlockTags.PLANKS, ItemTags.PLANKS);
copy(BlockTags.WOODEN_BUTTONS, ItemTags.WOODEN_BUTTONS);
copy(BlockTags.WOODEN_DOORS, ItemTags.WOODEN_DOORS);
copy(BlockTags.FENCE_GATES, ItemTags.FENCE_GATES);
copy(BlockTags.WOODEN_FENCES, ItemTags.WOODEN_FENCES);
copy(BlockTags.WOODEN_PRESSURE_PLATES, ItemTags.WOODEN_PRESSURE_PLATES);
copy(BlockTags.SLABS, ItemTags.SLABS);
copy(BlockTags.WOODEN_SLABS, ItemTags.WOODEN_SLABS);
copy(BlockTags.STAIRS, ItemTags.STAIRS);
copy(BlockTags.WOODEN_STAIRS, ItemTags.WOODEN_STAIRS);
copy(BlockTags.TRAPDOORS, ItemTags.TRAPDOORS);
copy(BlockTags.WOODEN_TRAPDOORS, ItemTags.WOODEN_TRAPDOORS);
copy(BlockTags.SAPLINGS, ItemTags.SAPLINGS);
}
}

View file

@ -1,14 +1,18 @@
package com.minelittlepony.unicopia.datagen.providers; package com.minelittlepony.unicopia.datagen.providers;
import java.util.List; import java.util.List;
import java.util.Map;
import com.minelittlepony.unicopia.Race; import com.minelittlepony.unicopia.Race;
import com.minelittlepony.unicopia.block.UBlocks; import com.minelittlepony.unicopia.block.UBlocks;
import com.minelittlepony.unicopia.item.BedsheetsItem; import com.minelittlepony.unicopia.item.BedsheetsItem;
import com.minelittlepony.unicopia.item.UItems; import com.minelittlepony.unicopia.item.UItems;
import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
import net.fabricmc.fabric.api.datagen.v1.provider.FabricModelProvider; import net.fabricmc.fabric.api.datagen.v1.provider.FabricModelProvider;
import net.minecraft.block.Block;
import net.minecraft.data.client.BlockStateModelGenerator; import net.minecraft.data.client.BlockStateModelGenerator;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.Items;
import net.minecraft.registry.Registries; import net.minecraft.registry.Registries;
import net.minecraft.data.client.ItemModelGenerator; import net.minecraft.data.client.ItemModelGenerator;
import net.minecraft.data.client.ModelIds; import net.minecraft.data.client.ModelIds;
@ -16,6 +20,15 @@ import net.minecraft.data.client.TextureKey;
import net.minecraft.data.client.TextureMap; import net.minecraft.data.client.TextureMap;
public class UModelProvider extends FabricModelProvider { public class UModelProvider extends FabricModelProvider {
static final Map<Block, Item> FRUITS = Map.of(UBlocks.GREEN_APPLE, UItems.GREEN_APPLE,
UBlocks.GOLDEN_APPLE, Items.GOLDEN_APPLE,
UBlocks.MANGO, UItems.MANGO,
UBlocks.SOUR_APPLE, UItems.SOUR_APPLE,
UBlocks.SWEET_APPLE, UItems.SWEET_APPLE,
UBlocks.ZAP_APPLE, UItems.ZAP_APPLE,
UBlocks.ZAP_BULB, UItems.ZAP_BULB
);
public UModelProvider(FabricDataOutput output) { public UModelProvider(FabricDataOutput output) {
super(output); super(output);
} }

View file

@ -1,7 +0,0 @@
{
"replace": false,
"values": [
"unicopia:rocks",
"unicopia:pineapple"
]
}

View file

@ -1,8 +0,0 @@
{
"replace": false,
"values": [
"unicopia:frosted_obsidian",
"unicopia:golden_oak_leaves",
"unicopia:golden_oak_log"
]
}

View file

@ -1,6 +0,0 @@
{
"replace": false,
"values": [
"unicopia:spectral_fire"
]
}

View file

@ -1,13 +0,0 @@
{
"replace": false,
"values": [
"unicopia:palm_leaves",
"unicopia:zap_leaves",
"unicopia:flowering_zap_leaves",
"unicopia:green_apple_leaves",
"unicopia:sweet_apple_leaves",
"unicopia:sour_apple_leaves",
"unicopia:golden_oak_leaves",
"unicopia:mango_leaves"
]
}

View file

@ -1,18 +0,0 @@
{
"replace": false,
"values": [
"unicopia:palm_log",
"unicopia:palm_wood",
"unicopia:golden_oak_log",
"unicopia:stripped_palm_log",
"unicopia:stripped_palm_wood",
"unicopia:zap_log",
"unicopia:zap_wood",
"unicopia:stripped_zap_log",
"unicopia:stripped_zap_wood",
"unicopia:waxed_zap_log",
"unicopia:waxed_zap_wood",
"unicopia:waxed_stripped_zap_log",
"unicopia:waxed_stripped_zap_wood"
]
}

View file

@ -1,14 +0,0 @@
{
"replace": false,
"values": [
"unicopia:palm_log",
"unicopia:palm_wood",
"unicopia:golden_oak_log",
"unicopia:stripped_palm_log",
"unicopia:stripped_palm_wood",
"unicopia:waxed_zap_log",
"unicopia:waxed_zap_wood",
"unicopia:waxed_stripped_zap_log",
"unicopia:waxed_stripped_zap_wood"
]
}

View file

@ -1,14 +0,0 @@
{
"replace": false,
"values": [
"unicopia:rocks",
"unicopia:pineapple",
"unicopia:oats",
"unicopia:oats_stem",
"unicopia:green_apple_sprout",
"unicopia:sweet_apple_sprout",
"unicopia:sour_apple_sprout",
"unicopia:golden_oak_sprout",
"unicopia:gold_root"
]
}

View file

@ -1,10 +0,0 @@
{
"replace": false,
"values": [
"unicopia:cloud_planks",
"unicopia:cloud_plank_slab",
"unicopia:cloud_plank_stairs",
"unicopia:compacted_cloud_planks",
"unicopia:waxed_zap_planks"
]
}

View file

@ -1,16 +0,0 @@
{
"replace": false,
"values": [
"unicopia:palm_leaves",
"unicopia:zap_leaves",
"unicopia:flowering_zap_leaves",
"unicopia:green_apple_leaves",
"unicopia:sweet_apple_leaves",
"unicopia:sour_apple_leaves",
"unicopia:golden_oak_leaves",
"unicopia:mango_leaves",
"unicopia:hay_block",
{ "id": "unicopia:rice_block", "required": false },
{ "id": "unicopia:straw_block", "required": false }
]
}

View file

@ -1,18 +0,0 @@
{
"replace": false,
"values": [
"unicopia:rocks",
"unicopia:frosted_obsidian",
"unicopia:weather_vane",
"unicopia:chitin_spikes",
"unicopia:chiselled_chitin",
"unicopia:chiselled_chitin_slab",
"unicopia:chiselled_chitin_stairs",
"unicopia:chiselled_chitin_hull",
"unicopia:cloud_bricks",
"unicopia:cloud_brick_slab",
"unicopia:cloud_brick_stairs",
"unicopia:compacted_cloud_bricks",
"unicopia:carved_cloud"
]
}

View file

@ -1,7 +0,0 @@
{
"replace": false,
"values": [
"unicopia:chitin",
"unicopia:surface_chitin"
]
}

View file

@ -1,6 +0,0 @@
{
"replace": false,
"values": [
"unicopia:frosted_obsidian"
]
}

View file

@ -1,8 +0,0 @@
{
"replace": false,
"values": [
"unicopia:golden_oak_leaves",
"unicopia:golden_oak_log",
"unicopia:golden_oak_sapling"
]
}

View file

@ -1,7 +0,0 @@
{
"replace": false,
"values": [
"unicopia:palm_planks",
"unicopia:zap_planks"
]
}

View file

@ -1,6 +0,0 @@
{
"replace": false,
"values": [
"unicopia:mango_sapling"
]
}

View file

@ -1,6 +0,0 @@
{
"replace": false,
"values": [
"unicopia:palm_sign"
]
}

View file

@ -1,6 +0,0 @@
{
"replace": false,
"values": [
"unicopia:palm_wall_sign"
]
}

View file

@ -1,6 +0,0 @@
{
"replace": false,
"values": [
"unicopia:palm_button"
]
}

View file

@ -1,6 +0,0 @@
{
"replace": false,
"values": [
"unicopia:palm_door"
]
}

View file

@ -1,8 +0,0 @@
{
"replace": false,
"values": [
"unicopia:palm_fence_gate",
"unicopia:zap_fence_gate",
"unicopia:waxed_zap_fence_gate"
]
}

View file

@ -1,8 +0,0 @@
{
"replace": false,
"values": [
"unicopia:palm_fence",
"unicopia:zap_fence",
"unicopia:waxed_zap_fence"
]
}

View file

@ -1,6 +0,0 @@
{
"replace": false,
"values": [
"unicopia:palm_pressure_plate"
]
}

View file

@ -1,8 +0,0 @@
{
"replace": false,
"values": [
"unicopia:palm_slab",
"unicopia:zap_slab",
"unicopia:waxed_zap_slab"
]
}

View file

@ -1,8 +0,0 @@
{
"replace": false,
"values": [
"unicopia:palm_stairs",
"unicopia:zap_stairs",
"unicopia:waxed_zap_stairs"
]
}

View file

@ -1,6 +0,0 @@
{
"replace": false,
"values": [
"unicopia:palm_trapdoor"
]
}

View file

@ -1,7 +0,0 @@
{
"replace": false,
"values": [
"#unicopia:cloud_beds",
"unicopia:cloth_bed"
]
}

View file

@ -1,6 +0,0 @@
{
"replace": false,
"values": [
"unicopia:spellbook"
]
}

View file

@ -1,6 +0,0 @@
{
"replace": false,
"values": [
"unicopia:palm_chest_boat"
]
}

View file

@ -1,9 +0,0 @@
{
"replace": false,
"values": [
"unicopia:music_disc_crusade",
"unicopia:music_disc_pet",
"unicopia:music_disc_popular",
"unicopia:music_disc_funk"
]
}

View file

@ -1,8 +0,0 @@
{
"replace": false,
"values": [
"unicopia:palm_fence_gate",
"unicopia:zap_fence_gate",
"unicopia:waxed_zap_fence_gate"
]
}

View file

@ -1,6 +0,0 @@
{
"replace": false,
"values": [
"unicopia:palm_hanging_sign"
]
}

View file

@ -1,11 +0,0 @@
{
"replace": false,
"values": [
"unicopia:palm_leaves",
"unicopia:zap_leaves",
"unicopia:green_apple_leaves",
"unicopia:sweet_apple_leaves",
"unicopia:sour_apple_leaves",
"unicopia:mango_leaves"
]
}

View file

@ -1,17 +0,0 @@
{
"replace": false,
"values": [
"unicopia:palm_log",
"unicopia:palm_wood",
"unicopia:stripped_palm_log",
"unicopia:stripped_palm_wood",
"unicopia:zap_log",
"unicopia:zap_wood",
"unicopia:stripped_zap_log",
"unicopia:stripped_zap_wood",
"unicopia:waxed_zap_log",
"unicopia:waxed_zap_wood",
"unicopia:waxed_stripped_zap_log",
"unicopia:waxed_stripped_zap_wood"
]
}

View file

@ -1,17 +0,0 @@
{
"replace": false,
"values": [
"unicopia:palm_log",
"unicopia:palm_wood",
"unicopia:stripped_palm_log",
"unicopia:stripped_palm_wood",
"unicopia:zap_log",
"unicopia:zap_wood",
"unicopia:stripped_zap_log",
"unicopia:stripped_zap_wood",
"unicopia:waxed_zap_log",
"unicopia:waxed_zap_wood",
"unicopia:waxed_stripped_zap_log",
"unicopia:waxed_stripped_zap_wood"
]
}

View file

@ -1,9 +0,0 @@
{
"replace": false,
"values": [
"unicopia:music_disc_crusade",
"unicopia:music_disc_pet",
"unicopia:music_disc_popular",
"unicopia:music_disc_funk"
]
}

View file

@ -1,9 +0,0 @@
{
"replace": false,
"values": [
"unicopia:golden_oak_seeds",
"unicopia:golden_oak_leaves",
"unicopia:golden_oak_log",
"unicopia:golden_oak_sapling"
]
}

View file

@ -1,7 +0,0 @@
{
"replace": false,
"values": [
"unicopia:palm_planks",
"unicopia:zap_planks"
]
}

View file

@ -1,11 +0,0 @@
{
"replace": false,
"values": [
"unicopia:mango_sapling",
"unicopia:palm_sapling",
"unicopia:green_apple_sapling",
"unicopia:sour_apple_sapling",
"unicopia:sweet_apple_sapling",
"unicopia:zapling"
]
}

View file

@ -1,6 +0,0 @@
{
"replace": false,
"values": [
"unicopia:palm_sign"
]
}

View file

@ -1,6 +0,0 @@
{
"replace": false,
"values": [
"unicopia:chiselled_chitin_slab"
]
}

View file

@ -1,6 +0,0 @@
{
"replace": false,
"values": [
"unicopia:chiselled_chitin_stairs"
]
}

View file

@ -1,7 +0,0 @@
{
"replace": false,
"values": [
"#unicopia:horse_shoes",
"#unicopia:polearms"
]
}

View file

@ -1,6 +0,0 @@
{
"replace": false,
"values": [
"unicopia:palm_button"
]
}

View file

@ -1,8 +0,0 @@
{
"replace": false,
"values": [
"unicopia:palm_door",
"unicopia:dark_oak_stable_door",
"unicopia:stable_door"
]
}

View file

@ -1,8 +0,0 @@
{
"replace": false,
"values": [
"unicopia:palm_fence",
"unicopia:zap_fence",
"unicopia:waxed_zap_fence"
]
}

View file

@ -1,6 +0,0 @@
{
"replace": false,
"values": [
"unicopia:palm_pressure_plate"
]
}

View file

@ -1,8 +0,0 @@
{
"replace": false,
"values": [
"unicopia:palm_slab",
"unicopia:zap_slab",
"unicopia:waxed_zap_slab"
]
}

View file

@ -1,8 +0,0 @@
{
"replace": false,
"values": [
"unicopia:palm_stairs",
"unicopia:zap_stairs",
"unicopia:waxed_zap_stairs"
]
}

View file

@ -1,6 +0,0 @@
{
"replace": false,
"values": [
"unicopia:palm_trapdoor"
]
}

View file

@ -1,20 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [
{
"type": "minecraft:item",
"name": "unicopia:carved_cloud"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

@ -1,20 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [
{
"type": "minecraft:item",
"name": "unicopia:chiselled_chitin"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

@ -1,36 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [
{
"type": "minecraft:item",
"name": "unicopia:chiselled_chitin_slab",
"functions": [
{
"add": false,
"count": 2,
"function": "minecraft:set_count",
"conditions": [
{
"block": "unicopia:chiselled_chitin_slab",
"condition": "minecraft:block_state_property",
"properties": {
"type": "double"
}
}
]
}
]
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

@ -1,20 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [
{
"type": "minecraft:item",
"name": "unicopia:chiselled_chitin_stairs"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

@ -1,27 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [
{
"type": "minecraft:item",
"name": "unicopia:carapace",
"functions": [
{
"add": false,
"count": 9,
"function": "minecraft:set_count"
}
]
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

@ -1,27 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [
{
"type": "minecraft:item",
"name": "unicopia:carapace",
"functions": [
{
"add": false,
"count": 6,
"function": "minecraft:set_count"
}
]
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

@ -1,29 +0,0 @@
{
"type": "minecraft:block",
"functions": [
{
"function": "minecraft:explosion_decay"
}
],
"pools": [
{
"bonus_rolls": 0.0,
"entries": [
{
"type": "minecraft:item",
"conditions": [
{
"block": "unicopia:cloth_bed",
"condition": "minecraft:block_state_property",
"properties": {
"part": "head"
}
}
],
"name": "unicopia:cloth_bed"
}
],
"rolls": 1.0
}
]
}

View file

@ -1,27 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [
{
"type": "minecraft:item",
"name": "unicopia:cloud_lump",
"functions": [
{
"add": false,
"count": 4,
"function": "minecraft:set_count"
}
]
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

@ -1,29 +0,0 @@
{
"type": "minecraft:block",
"functions": [
{
"function": "minecraft:explosion_decay"
}
],
"pools": [
{
"bonus_rolls": 0.0,
"entries": [
{
"type": "minecraft:item",
"conditions": [
{
"block": "unicopia:cloud_bed",
"condition": "minecraft:block_state_property",
"properties": {
"part": "head"
}
}
],
"name": "unicopia:cloud_bed"
}
],
"rolls": 1.0
}
]
}

View file

@ -1,36 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [
{
"type": "minecraft:item",
"name": "unicopia:cloud_brick_slab",
"functions": [
{
"add": false,
"count": 2,
"function": "minecraft:set_count",
"conditions": [
{
"block": "unicopia:cloud_brick_slab",
"condition": "minecraft:block_state_property",
"properties": {
"type": "double"
}
}
]
}
]
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

@ -1,20 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [
{
"type": "minecraft:item",
"name": "unicopia:cloud_brick_stairs"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

@ -1,20 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [
{
"type": "minecraft:item",
"name": "unicopia:cloud_bricks"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

@ -1,29 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"bonus_rolls": 0.0,
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
],
"entries": [
{
"type": "minecraft:item",
"conditions": [
{
"block": "unicopia:cloud_door",
"condition": "minecraft:block_state_property",
"properties": {
"half": "lower"
}
}
],
"name": "unicopia:cloud_door"
}
],
"rolls": 1.0
}
]
}

View file

@ -1,27 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [
{
"type": "minecraft:item",
"name": "unicopia:cloud",
"functions": [
{
"add": false,
"count": 6,
"function": "minecraft:set_count"
}
]
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

@ -1,36 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [
{
"type": "minecraft:item",
"name": "unicopia:cloud_plank_slab",
"functions": [
{
"add": false,
"count": 2,
"function": "minecraft:set_count",
"conditions": [
{
"block": "unicopia:cloud_plank_slab",
"condition": "minecraft:block_state_property",
"properties": {
"type": "double"
}
}
]
}
]
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

@ -1,20 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [
{
"type": "minecraft:item",
"name": "unicopia:cloud_plank_stairs"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

@ -1,20 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [
{
"type": "minecraft:item",
"name": "unicopia:cloud_planks"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

@ -1,27 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [
{
"type": "minecraft:item",
"name": "unicopia:cloud_lump",
"functions": [
{
"add": false,
"count": 6,
"function": "minecraft:set_count"
}
]
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

@ -1,29 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"bonus_rolls": 0.0,
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
],
"entries": [
{
"type": "minecraft:item",
"conditions": [
{
"block": "unicopia:crystal_door",
"condition": "minecraft:block_state_property",
"properties": {
"half": "lower"
}
}
],
"name": "unicopia:crystal_door"
}
],
"rolls": 1.0
}
]
}

View file

@ -1,20 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [
{
"type": "minecraft:item",
"name": "unicopia:curing_joke"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

@ -1,29 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"bonus_rolls": 0.0,
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
],
"entries": [
{
"type": "minecraft:item",
"conditions": [
{
"block": "unicopia:dark_oak_stable_door",
"condition": "minecraft:block_state_property",
"properties": {
"half": "lower"
}
}
],
"name": "unicopia:dark_oak_stable_door"
}
],
"rolls": 1.0
}
]
}

View file

@ -1,27 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [
{
"type": "minecraft:item",
"name": "unicopia:cloud_lump",
"functions": [
{
"add": false,
"count": 9,
"function": "minecraft:set_count"
}
]
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

@ -1,27 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [
{
"type": "minecraft:item",
"name": "unicopia:cloud_lump",
"functions": [
{
"add": false,
"count": 13,
"function": "minecraft:set_count"
}
]
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

@ -1,27 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [
{
"type": "minecraft:item",
"name": "unicopia:cloud_lump",
"functions": [
{
"add": false,
"count": 9,
"function": "minecraft:set_count"
}
]
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

@ -1,27 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [
{
"type": "minecraft:item",
"name": "unicopia:cloud_lump",
"functions": [
{
"add": false,
"count": 13,
"function": "minecraft:set_count"
}
]
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

@ -1,135 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"bonus_rolls": 0.0,
"entries": [
{
"type": "minecraft:alternatives",
"children": [
{
"type": "minecraft:item",
"conditions": [
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:match_tool",
"predicate": {
"items": [
"minecraft:shears"
]
}
},
{
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
]
}
],
"name": "unicopia:flowering_zap_leaves"
},
{
"type": "minecraft:item",
"conditions": [
{
"condition": "minecraft:survives_explosion"
},
{
"chances": [
0.05,
0.0625,
0.083333336,
0.1
],
"condition": "minecraft:table_bonus",
"enchantment": "minecraft:fortune"
}
],
"name": "unicopia:zapling"
}
]
}
],
"rolls": 1.0
},
{
"bonus_rolls": 0.0,
"conditions": [
{
"condition": "minecraft:inverted",
"term": {
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:match_tool",
"predicate": {
"items": [
"minecraft:shears"
]
}
},
{
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
]
}
}
],
"entries": [
{
"type": "minecraft:item",
"conditions": [
{
"chances": [
0.02,
0.022222223,
0.025,
0.033333335,
0.1
],
"condition": "minecraft:table_bonus",
"enchantment": "minecraft:fortune"
}
],
"functions": [
{
"add": false,
"count": {
"type": "minecraft:uniform",
"max": 2.0,
"min": 1.0
},
"function": "minecraft:set_count"
},
{
"function": "minecraft:explosion_decay"
}
],
"name": "minecraft:stick"
}
],
"rolls": 1.0
}
]
}

View file

@ -1,20 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:obsidian"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

@ -1,116 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"bonus_rolls": 0.0,
"entries": [
{
"type": "minecraft:alternatives",
"children": [
{
"type": "minecraft:item",
"conditions": [
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:match_tool",
"predicate": {
"items": [
"minecraft:shears"
]
}
},
{
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
]
}
],
"name": "unicopia:golden_oak_leaves"
}
]
}
],
"rolls": 1.0
},
{
"bonus_rolls": 0.0,
"conditions": [
{
"condition": "minecraft:inverted",
"term": {
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:match_tool",
"predicate": {
"items": [
"minecraft:shears"
]
}
},
{
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
]
}
}
],
"entries": [
{
"type": "minecraft:item",
"conditions": [
{
"chances": [
0.02,
0.022222223,
0.025,
0.033333335,
0.1
],
"condition": "minecraft:table_bonus",
"enchantment": "minecraft:fortune"
}
],
"functions": [
{
"add": false,
"count": {
"type": "minecraft:uniform",
"max": 2.0,
"min": 1.0
},
"function": "minecraft:set_count"
},
{
"function": "minecraft:explosion_decay"
}
],
"name": "minecraft:blaze_rod"
}
],
"rolls": 1.0
}
]
}

View file

@ -1,20 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [
{
"type": "minecraft:item",
"name": "unicopia:golden_oak_log"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

@ -1,20 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [
{
"type": "minecraft:item",
"name": "unicopia:golden_oak_sapling"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

@ -1,20 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [
{
"type": "minecraft:item",
"name": "unicopia:green_apple"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

@ -1,116 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"bonus_rolls": 0.0,
"entries": [
{
"type": "minecraft:alternatives",
"children": [
{
"type": "minecraft:item",
"conditions": [
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:match_tool",
"predicate": {
"items": [
"minecraft:shears"
]
}
},
{
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
]
}
],
"name": "unicopia:green_apple_leaves"
}
]
}
],
"rolls": 1.0
},
{
"bonus_rolls": 0.0,
"conditions": [
{
"condition": "minecraft:inverted",
"term": {
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:match_tool",
"predicate": {
"items": [
"minecraft:shears"
]
}
},
{
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
]
}
}
],
"entries": [
{
"type": "minecraft:item",
"conditions": [
{
"chances": [
0.02,
0.022222223,
0.025,
0.033333335,
0.1
],
"condition": "minecraft:table_bonus",
"enchantment": "minecraft:fortune"
}
],
"functions": [
{
"add": false,
"count": {
"type": "minecraft:uniform",
"max": 2.0,
"min": 1.0
},
"function": "minecraft:set_count"
},
{
"function": "minecraft:explosion_decay"
}
],
"name": "minecraft:stick"
}
],
"rolls": 1.0
}
]
}

View file

@ -1,20 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [
{
"type": "minecraft:item",
"name": "unicopia:green_apple_sapling"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

@ -1,20 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [
{
"type": "minecraft:item",
"name": "unicopia:hive"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

@ -1,20 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [
{
"type": "minecraft:item",
"name": "unicopia:mango"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

@ -1,135 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"bonus_rolls": 0.0,
"entries": [
{
"type": "minecraft:alternatives",
"children": [
{
"type": "minecraft:item",
"conditions": [
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:match_tool",
"predicate": {
"items": [
"minecraft:shears"
]
}
},
{
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
]
}
],
"name": "unicopia:mango_leaves"
},
{
"type": "minecraft:item",
"conditions": [
{
"condition": "minecraft:survives_explosion"
},
{
"chances": [
0.05,
0.0625,
0.083333336,
0.1
],
"condition": "minecraft:table_bonus",
"enchantment": "minecraft:fortune"
}
],
"name": "unicopia:mango_sapling"
}
]
}
],
"rolls": 1.0
},
{
"bonus_rolls": 0.0,
"conditions": [
{
"condition": "minecraft:inverted",
"term": {
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:match_tool",
"predicate": {
"items": [
"minecraft:shears"
]
}
},
{
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
]
}
}
],
"entries": [
{
"type": "minecraft:item",
"conditions": [
{
"chances": [
0.02,
0.022222223,
0.025,
0.033333335,
0.1
],
"condition": "minecraft:table_bonus",
"enchantment": "minecraft:fortune"
}
],
"functions": [
{
"add": false,
"count": {
"type": "minecraft:uniform",
"max": 2.0,
"min": 1.0
},
"function": "minecraft:set_count"
},
{
"function": "minecraft:explosion_decay"
}
],
"name": "minecraft:stick"
}
],
"rolls": 1.0
}
]
}

View file

@ -1,20 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"bonus_rolls": 0.0,
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
],
"entries": [
{
"type": "minecraft:item",
"name": "unicopia:palm_button"
}
],
"rolls": 1.0
}
]
}

View file

@ -1,29 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"bonus_rolls": 0.0,
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
],
"entries": [
{
"type": "minecraft:item",
"conditions": [
{
"block": "unicopia:palm_door",
"condition": "minecraft:block_state_property",
"properties": {
"half": "lower"
}
}
],
"name": "unicopia:palm_door"
}
],
"rolls": 1.0
}
]
}

View file

@ -1,20 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"bonus_rolls": 0.0,
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
],
"entries": [
{
"type": "minecraft:item",
"name": "unicopia:palm_fence"
}
],
"rolls": 1.0
}
]
}

View file

@ -1,20 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"bonus_rolls": 0.0,
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
],
"entries": [
{
"type": "minecraft:item",
"name": "unicopia:palm_fence_gate"
}
],
"rolls": 1.0
}
]
}

View file

@ -1,20 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"bonus_rolls": 0.0,
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
],
"entries": [
{
"type": "minecraft:item",
"name": "unicopia:palm_sign"
}
],
"rolls": 1.0
}
]
}

View file

@ -1,135 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"bonus_rolls": 0.0,
"entries": [
{
"type": "minecraft:alternatives",
"children": [
{
"type": "minecraft:item",
"conditions": [
{
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:match_tool",
"predicate": {
"items": [
"minecraft:shears"
]
}
},
{
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
]
}
],
"name": "unicopia:palm_leaves"
},
{
"type": "minecraft:item",
"conditions": [
{
"condition": "minecraft:survives_explosion"
},
{
"chances": [
0.05,
0.0625,
0.083333336,
0.1
],
"condition": "minecraft:table_bonus",
"enchantment": "minecraft:fortune"
}
],
"name": "unicopia:palm_sapling"
}
]
}
],
"rolls": 1.0
},
{
"bonus_rolls": 0.0,
"conditions": [
{
"condition": "minecraft:inverted",
"term": {
"condition": "minecraft:any_of",
"terms": [
{
"condition": "minecraft:match_tool",
"predicate": {
"items": [
"minecraft:shears"
]
}
},
{
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
]
}
}
],
"entries": [
{
"type": "minecraft:item",
"conditions": [
{
"chances": [
0.02,
0.022222223,
0.025,
0.033333335,
0.1
],
"condition": "minecraft:table_bonus",
"enchantment": "minecraft:fortune"
}
],
"functions": [
{
"add": false,
"count": {
"type": "minecraft:uniform",
"max": 2.0,
"min": 1.0
},
"function": "minecraft:set_count"
},
{
"function": "minecraft:explosion_decay"
}
],
"name": "minecraft:stick"
}
],
"rolls": 1.0
}
]
}

View file

@ -1,20 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [
{
"type": "minecraft:item",
"name": "unicopia:palm_log"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

@ -1,20 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1.0,
"bonus_rolls": 0.0,
"entries": [
{
"type": "minecraft:item",
"name": "unicopia:palm_planks"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

@ -1,20 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"bonus_rolls": 0.0,
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
],
"entries": [
{
"type": "minecraft:item",
"name": "unicopia:palm_pressure_plate"
}
],
"rolls": 1.0
}
]
}

Some files were not shown because too many files have changed in this diff Show more