More datagen

This commit is contained in:
Sollace 2024-03-15 00:57:14 +00:00
parent 1bf698cf5d
commit 9db67f6727
No known key found for this signature in database
GPG key ID: E52FACE7B5C773DB
225 changed files with 169 additions and 1309 deletions

View file

@ -50,7 +50,7 @@ public class EdibleBlock extends HayBlock {
static final BooleanProperty BOTTOM_SOUTH_WEST = BooleanProperty.of("bottom_south_west");
// [up/down][north/south][west/east]
private static final BooleanProperty[] SEGMENTS = {
public static final BooleanProperty[] SEGMENTS = {
BOTTOM_NORTH_WEST,
BOTTOM_NORTH_EAST,
BOTTOM_SOUTH_WEST,

View file

@ -65,6 +65,11 @@ public class SegmentedCropBlock extends CropBlock implements SegmentedBlock {
this.progressionAge = progressionAge;
}
@Override
public IntProperty getAgeProperty() {
return super.getAgeProperty();
}
public SegmentedCropBlock createNext(int progressionAge) {
SegmentedCropBlock next = create(getMaxAge() - this.progressionAge, progressionAge, Settings.copy(this), seeds, () -> this, null);
nextSegmentSupplier = () -> next;

View file

@ -1,23 +1,44 @@
package com.minelittlepony.unicopia.datagen.providers;
import java.util.Arrays;
import java.util.List;
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Stream;
import com.minelittlepony.unicopia.Unicopia;
import com.minelittlepony.unicopia.block.EdibleBlock;
import com.minelittlepony.unicopia.block.FruitBearingBlock;
import com.minelittlepony.unicopia.block.zap.ZapAppleLeavesBlock;
import com.minelittlepony.unicopia.server.world.ZapAppleStageStore;
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
import net.minecraft.block.Block;
import net.minecraft.block.Blocks;
import net.minecraft.data.client.BlockStateModelGenerator;
import net.minecraft.data.client.BlockStateSupplier;
import net.minecraft.data.client.BlockStateVariant;
import net.minecraft.data.client.BlockStateVariantMap;
import net.minecraft.data.client.Model;
import net.minecraft.data.client.ModelIds;
import net.minecraft.data.client.Models;
import net.minecraft.data.client.MultipartBlockStateSupplier;
import net.minecraft.data.client.TextureKey;
import net.minecraft.data.client.TextureMap;
import net.minecraft.data.client.TexturedModel;
import net.minecraft.data.client.VariantSettings;
import net.minecraft.data.client.VariantsBlockStateSupplier;
import net.minecraft.data.client.When;
import net.minecraft.registry.Registries;
import net.minecraft.registry.Registry;
import net.minecraft.state.property.BooleanProperty;
import net.minecraft.state.property.EnumProperty;
import net.minecraft.state.property.Properties;
import net.minecraft.state.property.Property;
import net.minecraft.util.Identifier;
import net.minecraft.util.Pair;
import net.minecraft.util.StringIdentifiable;
import net.minecraft.util.math.Direction;
public interface BlockModels {
Model FRUIT = block("fruit", TextureKey.CROSS);
@ -29,10 +50,13 @@ public interface BlockModels {
VariantSettings.Rotation.R270, VariantSettings.Rotation.R180, VariantSettings.Rotation.R0, VariantSettings.Rotation.R90
};
List<Model> FLATTENED_MODELS = Arrays.stream(FLATTENED_MODEL_SUFFEXES)
.map(suffex -> "_corner_" + suffex)
.map(variant -> block("flattened" + variant, variant, TextureKey.ALL))
.toList();
Model[] FLATTENED_MODELS = Arrays.stream(FLATTENED_MODEL_SUFFEXES)
.map(variant -> block("flattened_corner_" + variant, "_corner_" + variant, TextureKey.ALL))
.toArray(Model[]::new);
@SuppressWarnings("unchecked")
Pair<Model, String>[] BALE_MODELS = Stream.of("bnw", "bne", "bsw", "bse", "tnw", "tne", "tsw", "tse")
.map(suffex -> new Pair<>(block("template_bale_" + suffex, "_" + suffex, TextureKey.TOP, TextureKey.SIDE), "_" + suffex))
.toArray(Pair[]::new);
static Model block(String parent, TextureKey ... requiredTextureKeys) {
return new Model(Optional.of(Unicopia.id("block/" + parent)), Optional.empty(), requiredTextureKeys);
@ -46,14 +70,18 @@ public interface BlockModels {
return new Model(Optional.of(parent.withPrefixedPath("block/")), Optional.empty(), requiredTextureKeys);
}
static Model block(Identifier parent, String variant, TextureKey ... requiredTextureKeys) {
return new Model(Optional.of(parent.withPrefixedPath("block/")), Optional.of(variant), requiredTextureKeys);
}
static void registerCompactedBlock(BlockStateModelGenerator modelGenerator, Block block) {
FLATTENED_MODELS.forEach(model -> {
for (Model model : FLATTENED_MODELS) {
model.upload(block, TextureMap.all(ModelIds.getBlockModelId(block).withPath(p -> p.replace("compacted_", ""))), modelGenerator.modelCollector);
});
}
modelGenerator.blockStateCollector.accept(createCompactedBlockState(block));
}
static BlockStateSupplier createCompactedBlockState(Block block) {
private static BlockStateSupplier createCompactedBlockState(Block block) {
MultipartBlockStateSupplier supplier = MultipartBlockStateSupplier.create(block);
for (byte i = 0; i < FLATTENED_MODEL_ROTATIONS.length; i++) {
final BooleanProperty yAxis = (i & 0b100) == 0 ? Properties.DOWN : Properties.UP;
@ -76,4 +104,94 @@ public interface BlockModels {
}
return supplier;
}
static void registerChest(BlockStateModelGenerator modelGenerator, Block chest, Block particleSource) {
modelGenerator.registerBuiltin(ModelIds.getBlockModelId(chest), particleSource).includeWithoutItem(chest);
ItemModels.CHEST.upload(ModelIds.getItemModelId(chest.asItem()), TextureMap.particle(particleSource), modelGenerator.modelCollector);
}
static void registerBed(BlockStateModelGenerator modelGenerator, Block bed, Block particleSource) {
modelGenerator.registerBuiltinWithParticle(bed, ModelIds.getBlockModelId(particleSource));
modelGenerator.registerBed(bed, particleSource);
}
static void registerBale(BlockStateModelGenerator modelGenerator, Identifier blockId, Identifier baseBlockId, String endSuffex) {
Identifier top = baseBlockId.withPath(p -> "block/" + p + endSuffex);
Identifier side = baseBlockId.withPath(p -> "block/" + p + "_side");
TextureMap textures = new TextureMap().put(TextureKey.TOP, top).put(TextureKey.SIDE, side);
MultipartBlockStateSupplier supplier = MultipartBlockStateSupplier.create(Registries.BLOCK.getOrEmpty(blockId).orElseGet(() -> {
return Registry.register(Registries.BLOCK, blockId, new EdibleBlock(blockId, blockId, false));
}));
Map<Integer, Identifier> uploadedModels = new HashMap<>();
for (Direction.Axis axis : Direction.Axis.VALUES) {
for (int i = 0; i < EdibleBlock.SEGMENTS.length; i++) {
BooleanProperty segment = EdibleBlock.SEGMENTS[i];
segment.getName();
supplier.with(When.create().set(EdibleBlock.AXIS, axis).set(segment, true), BlockStateVariant.create()
.put(VariantSettings.MODEL, uploadedModels.computeIfAbsent(i, ii -> {
return BALE_MODELS[ii].getLeft().upload(blockId.withPath(p -> "block/" + p + BALE_MODELS[ii].getRight()), textures, modelGenerator.modelCollector);
}))
.put(VariantSettings.X, axis == Direction.Axis.Y ? VariantSettings.Rotation.R0 : VariantSettings.Rotation.R90)
.put(VariantSettings.Y, axis == Direction.Axis.X ? VariantSettings.Rotation.R90 : VariantSettings.Rotation.R0)
);
}
}
modelGenerator.blockStateCollector.accept(supplier);
}
static void registerCropWithoutItem(BlockStateModelGenerator modelGenerator, Block crop, Property<Integer> ageProperty, int ... stages) {
if (ageProperty.getValues().size() != stages.length) {
throw new IllegalArgumentException();
}
Int2ObjectOpenHashMap<Identifier> uploadedModels = new Int2ObjectOpenHashMap<>();
modelGenerator.blockStateCollector.accept(VariantsBlockStateSupplier.create(crop).coordinate(BlockStateVariantMap.create(ageProperty).register(integer -> {
Identifier identifier = uploadedModels.computeIfAbsent(stages[integer], stage -> modelGenerator.createSubModel(crop, "_stage" + stage, Models.CROP, TextureMap::crop));
return BlockStateVariant.create().put(VariantSettings.MODEL, identifier);
})));
}
static <T extends Enum<T> & StringIdentifiable> void registerTallCrop(BlockStateModelGenerator modelGenerator, Block crop,
Property<Integer> ageProperty,
EnumProperty<T> partProperty,
int[] ... ageTextureIndices) {
Map<String, Identifier> uploadedModels = new HashMap<>();
modelGenerator.blockStateCollector.accept(VariantsBlockStateSupplier.create(crop).coordinate(BlockStateVariantMap.create(partProperty, ageProperty).register((part, age) -> {
int i = ageTextureIndices[part.ordinal()][age];
Identifier identifier = uploadedModels.computeIfAbsent("_" + part.asString() + "_stage" + i, variant -> modelGenerator.createSubModel(crop, variant, Models.CROSS, TextureMap::cross));
return BlockStateVariant.create().put(VariantSettings.MODEL, identifier);
})));
}
static void registerFloweringLeaves(BlockStateModelGenerator modelGenerator, Block block) {
Identifier baseModel = TexturedModel.LEAVES.upload(block, modelGenerator.modelCollector);
Identifier floweringModel = Models.CUBE_ALL.upload(block, "_flowering", TextureMap.of(TextureKey.ALL, ModelIds.getBlockSubModelId(block, "_flowering")), modelGenerator.modelCollector);
modelGenerator.blockStateCollector.accept(MultipartBlockStateSupplier.create(block)
.with(BlockStateVariant.create().put(VariantSettings.MODEL, baseModel))
.with(When.create().set(FruitBearingBlock.STAGE, FruitBearingBlock.Stage.FLOWERING), BlockStateVariant.create().put(VariantSettings.MODEL, floweringModel)));
}
static void registerZapLeaves(BlockStateModelGenerator modelGenerator, Block block) {
Identifier baseModel = TexturedModel.LEAVES.upload(block, modelGenerator.modelCollector);
Identifier floweringModel = Registries.BLOCK.getId(block).withPrefixedPath("block/flowering_");
modelGenerator.blockStateCollector.accept(VariantsBlockStateSupplier.create(block)
.coordinate(BlockStateVariantMap.create(ZapAppleLeavesBlock.STAGE)
.register(stage -> BlockStateVariant.create()
.put(VariantSettings.MODEL, stage == ZapAppleStageStore.Stage.FLOWERING ? floweringModel : baseModel))));
}
static void createSproutStages(BlockStateModelGenerator modelGenerator) {
for (int i = 0; i < Models.STEM_GROWTH_STAGES.length; i++) {
Models.STEM_GROWTH_STAGES[i].upload(Unicopia.id("block/apple_sprout_stage" + i), TextureMap.stem(Blocks.MELON_STEM), modelGenerator.modelCollector);
}
}
static void registerSprout(BlockStateModelGenerator modelGenerator, Block block) {
modelGenerator.blockStateCollector.accept(VariantsBlockStateSupplier.create(block)
.coordinate(BlockStateVariantMap.create(Properties.AGE_7)
.register(age -> BlockStateVariant.create()
.put(VariantSettings.MODEL, Unicopia.id("block/apple_sprout_stage" + age)))));
}
}

View file

@ -18,6 +18,7 @@ import net.minecraft.util.Identifier;
interface ItemModels {
Model GENERATED = net.minecraft.data.client.Models.GENERATED;
Model CHEST = item(new Identifier("chest"), TextureKey.PARTICLE);
Model TEMPLATE_AMULET = item("template_amulet", TextureKey.LAYER0);
Model TEMPLATE_SPAWN_EGG = item(new Identifier("template_spawn_egg"));
Model TEMPLATE_MUG = item("template_mug", TextureKey.LAYER0);

View file

@ -4,6 +4,7 @@ import java.util.List;
import java.util.Map;
import com.minelittlepony.unicopia.Race;
import com.minelittlepony.unicopia.Unicopia;
import com.minelittlepony.unicopia.block.UBlocks;
import com.minelittlepony.unicopia.item.BedsheetsItem;
import com.minelittlepony.unicopia.item.UItems;
@ -11,17 +12,21 @@ import com.minelittlepony.unicopia.server.world.Tree;
import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
import net.fabricmc.fabric.api.datagen.v1.provider.FabricModelProvider;
import net.minecraft.block.Block;
import net.minecraft.block.Blocks;
import net.minecraft.data.client.BlockStateModelGenerator;
import net.minecraft.data.client.BlockStateModelGenerator.TintType;
import net.minecraft.data.family.BlockFamily;
import net.minecraft.item.Item;
import net.minecraft.item.Items;
import net.minecraft.registry.Registries;
import net.minecraft.state.property.Properties;
import net.minecraft.util.Identifier;
import net.minecraft.util.Pair;
import net.minecraft.data.client.ItemModelGenerator;
import net.minecraft.data.client.ModelIds;
import net.minecraft.data.client.TextureKey;
import net.minecraft.data.client.TextureMap;
import net.minecraft.data.client.TexturedModel;
public class UModelProvider extends FabricModelProvider {
public UModelProvider(FabricDataOutput output) {
@ -30,7 +35,6 @@ public class UModelProvider extends FabricModelProvider {
@Override
public void generateBlockStateModels(BlockStateModelGenerator modelGenerator) {
// cloud blocks
modelGenerator.registerCubeAllModelTexturePool(UBlocks.CLOUD).slab(UBlocks.CLOUD_SLAB);//.stairs(UBlocks.CLOUD_STAIRS);
modelGenerator.registerCubeAllModelTexturePool(UBlocks.ETCHED_CLOUD).slab(UBlocks.ETCHED_CLOUD_SLAB);//.stairs(UBlocks.ETCHED_CLOUD_STAIRS);
@ -41,6 +45,9 @@ public class UModelProvider extends FabricModelProvider {
List.of(UBlocks.COMPACTED_CLOUD, UBlocks.COMPACTED_CLOUD_BRICKS, UBlocks.COMPACTED_CLOUD_PLANKS, UBlocks.COMPACTED_DENSE_CLOUD, UBlocks.COMPACTED_ETCHED_CLOUD).forEach(block -> {
BlockModels.registerCompactedBlock(modelGenerator, block);
});
BlockModels.registerChest(modelGenerator, UBlocks.CLOUD_CHEST, UBlocks.CLOUD);
BlockModels.registerBed(modelGenerator, UBlocks.CLOUD_BED, UBlocks.CLOUD);
BlockModels.registerBed(modelGenerator, UBlocks.CLOTH_BED, Blocks.SPRUCE_PLANKS);
// doors
List.of(UBlocks.STABLE_DOOR, UBlocks.DARK_OAK_DOOR, UBlocks.CRYSTAL_DOOR, UBlocks.CLOUD_DOOR).forEach(modelGenerator::registerDoor);
@ -76,19 +83,36 @@ public class UModelProvider extends FabricModelProvider {
.slab(UBlocks.WAXED_ZAP_SLAB).stairs(UBlocks.WAXED_ZAP_STAIRS).fence(UBlocks.WAXED_ZAP_FENCE).fenceGate(UBlocks.WAXED_ZAP_FENCE_GATE)
.group("wooden").unlockCriterionName("has_planks")
.build());
BlockModels.registerZapLeaves(modelGenerator, UBlocks.ZAP_LEAVES);
modelGenerator.registerSingleton(UBlocks.FLOWERING_ZAP_LEAVES, TexturedModel.LEAVES);
// golden oak wood
modelGenerator.registerSimpleCubeAll(UBlocks.GOLDEN_OAK_LEAVES);
modelGenerator.registerLog(UBlocks.GOLDEN_OAK_LOG)
.log(UBlocks.GOLDEN_OAK_LOG);
// plants
Tree.REGISTRY.stream().filter(tree -> tree.sapling().isPresent()).forEach(tree -> {
modelGenerator.registerFlowerPotPlant(tree.sapling().get(), tree.pot().get(), TintType.NOT_TINTED);
});
modelGenerator.registerTintableCross(UBlocks.CURING_JOKE, TintType.NOT_TINTED);
modelGenerator.registerCrop(UBlocks.GOLD_ROOT, Properties.AGE_7, 0, 0, 1, 1, 2, 2, 2, 3);
BlockModels.registerCropWithoutItem(modelGenerator, UBlocks.OATS, UBlocks.OATS.getAgeProperty(), 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11);
BlockModels.registerCropWithoutItem(modelGenerator, UBlocks.OATS_STEM, UBlocks.OATS_STEM.getAgeProperty(), 0, 1, 2, 3, 4, 5, 6);
BlockModels.registerCropWithoutItem(modelGenerator, UBlocks.OATS_CROWN, UBlocks.OATS_CROWN.getAgeProperty(), 0, 1);
BlockModels.registerTallCrop(modelGenerator, UBlocks.PINEAPPLE, Properties.AGE_7, Properties.BLOCK_HALF,
new int[] { 0, 1, 2, 3, 4, 5, 5, 6 },
new int[] { 0, 0, 1, 2, 3, 4, 5, 6 }
);
// leaves
List.of(UBlocks.GREEN_APPLE_LEAVES, UBlocks.SOUR_APPLE_LEAVES, UBlocks.SWEET_APPLE_LEAVES).forEach(block -> {
BlockModels.registerFloweringLeaves(modelGenerator, block);
});
BlockModels.createSproutStages(modelGenerator);
List.of(UBlocks.GREEN_APPLE_SPROUT, UBlocks.SOUR_APPLE_SPROUT, UBlocks.SWEET_APPLE_SPROUT, UBlocks.GOLDEN_OAK_SPROUT).forEach(block -> {
BlockModels.registerSprout(modelGenerator, block);
});
// fruit
Map.of(UBlocks.GREEN_APPLE, UItems.GREEN_APPLE,
@ -101,6 +125,15 @@ public class UModelProvider extends FabricModelProvider {
).forEach((block, item) -> {
modelGenerator.registerSingleton(block, TextureMap.cross(Registries.ITEM.getId(item).withPrefixedPath("item/")), BlockModels.FRUIT);
});
// bales
List.of(
new Pair<>(new Identifier("hay_block"), "_top"),
new Pair<>(new Identifier("farmersdelight", "rice_bale"), "_top"),
new Pair<>(new Identifier("farmersdelight", "straw_bale"), "_end")
).forEach(block -> {
BlockModels.registerBale(modelGenerator, Unicopia.id(block.getLeft().getPath().replace("bale", "block")), block.getLeft(), block.getRight());
});
}
@Override

View file

@ -1,5 +0,0 @@
{
"variants": {
"": { "model": "unicopia:block/cloth_bed" }
}
}

View file

@ -1,5 +0,0 @@
{
"variants": {
"": { "model": "unicopia:block/cloud_bed" }
}
}

View file

@ -1,5 +0,0 @@
{
"variants": {
"": { "model": "unicopia:block/cloud_chest" }
}
}

View file

@ -1,7 +0,0 @@
{
"variants": {
"": {
"model": "unicopia:block/flowering_zap_leaves"
}
}
}

View file

@ -1,12 +0,0 @@
{
"variants": {
"age=0": { "model": "unicopia:block/gold_root_stage0" },
"age=1": { "model": "unicopia:block/gold_root_stage0" },
"age=2": { "model": "unicopia:block/gold_root_stage1" },
"age=3": { "model": "unicopia:block/gold_root_stage1" },
"age=4": { "model": "unicopia:block/gold_root_stage2" },
"age=5": { "model": "unicopia:block/gold_root_stage2" },
"age=6": { "model": "unicopia:block/gold_root_stage2" },
"age=7": { "model": "unicopia:block/gold_root_stage3" }
}
}

View file

@ -1,28 +0,0 @@
{
"variants": {
"age=0": {
"model": "unicopia:block/apple_sprout_stage0"
},
"age=1": {
"model": "unicopia:block/apple_sprout_stage1"
},
"age=2": {
"model": "unicopia:block/apple_sprout_stage2"
},
"age=3": {
"model": "unicopia:block/apple_sprout_stage3"
},
"age=4": {
"model": "unicopia:block/apple_sprout_stage4"
},
"age=5": {
"model": "unicopia:block/apple_sprout_stage5"
},
"age=6": {
"model": "unicopia:block/apple_sprout_stage6"
},
"age=7": {
"model": "unicopia:block/apple_sprout_stage7"
}
}
}

View file

@ -1,11 +0,0 @@
{
"multipart": [
{
"apply": { "model": "unicopia:block/green_apple_leaves" }
},
{
"apply": { "model": "unicopia:block/green_apple_leaves_flowering" },
"when": { "stage": "flowering" }
}
]
}

View file

@ -1,28 +0,0 @@
{
"variants": {
"age=0": {
"model": "unicopia:block/apple_sprout_stage0"
},
"age=1": {
"model": "unicopia:block/apple_sprout_stage1"
},
"age=2": {
"model": "unicopia:block/apple_sprout_stage2"
},
"age=3": {
"model": "unicopia:block/apple_sprout_stage3"
},
"age=4": {
"model": "unicopia:block/apple_sprout_stage4"
},
"age=5": {
"model": "unicopia:block/apple_sprout_stage5"
},
"age=6": {
"model": "unicopia:block/apple_sprout_stage6"
},
"age=7": {
"model": "unicopia:block/apple_sprout_stage7"
}
}
}

View file

@ -1,31 +0,0 @@
{
"multipart": [
{ "apply": { "model": "unicopia:block/hay_bale_bne", "x": 90, "y": 90 }, "when": { "axis": "x", "bottom_south_west": true } },
{ "apply": { "model": "unicopia:block/hay_bale_bnw", "x": 90, "y": 90 }, "when": { "axis": "x", "bottom_north_west": true } },
{ "apply": { "model": "unicopia:block/hay_bale_bse", "x": 90, "y": 90 }, "when": { "axis": "x", "top_south_west": true } },
{ "apply": { "model": "unicopia:block/hay_bale_bsw", "x": 90, "y": 90 }, "when": { "axis": "x", "top_north_west": true } },
{ "apply": { "model": "unicopia:block/hay_bale_tne", "x": 90, "y": 90 }, "when": { "axis": "x", "bottom_south_east": true } },
{ "apply": { "model": "unicopia:block/hay_bale_tnw", "x": 90, "y": 90 }, "when": { "axis": "x", "bottom_north_east": true } },
{ "apply": { "model": "unicopia:block/hay_bale_tse", "x": 90, "y": 90 }, "when": { "axis": "x", "top_south_east": true } },
{ "apply": { "model": "unicopia:block/hay_bale_tsw", "x": 90, "y": 90 }, "when": { "axis": "x", "top_north_east": true } },
{ "apply": { "model": "unicopia:block/hay_bale_bne" }, "when": { "axis": "y", "bottom_north_east": true } },
{ "apply": { "model": "unicopia:block/hay_bale_bnw" }, "when": { "axis": "y", "bottom_north_west": true } },
{ "apply": { "model": "unicopia:block/hay_bale_bse" }, "when": { "axis": "y", "bottom_south_east": true } },
{ "apply": { "model": "unicopia:block/hay_bale_bsw" }, "when": { "axis": "y", "bottom_south_west": true } },
{ "apply": { "model": "unicopia:block/hay_bale_tne" }, "when": { "axis": "y", "top_north_east": true } },
{ "apply": { "model": "unicopia:block/hay_bale_tnw" }, "when": { "axis": "y", "top_north_west": true } },
{ "apply": { "model": "unicopia:block/hay_bale_tse" }, "when": { "axis": "y", "top_south_east": true } },
{ "apply": { "model": "unicopia:block/hay_bale_tsw" }, "when": { "axis": "y", "top_south_west": true } },
{ "apply": { "model": "unicopia:block/hay_bale_bne", "x": 90 }, "when": { "axis": "z", "bottom_south_east": true } },
{ "apply": { "model": "unicopia:block/hay_bale_bnw", "x": 90 }, "when": { "axis": "z", "bottom_south_west": true } },
{ "apply": { "model": "unicopia:block/hay_bale_bse", "x": 90 }, "when": { "axis": "z", "top_south_east": true } },
{ "apply": { "model": "unicopia:block/hay_bale_bsw", "x": 90 }, "when": { "axis": "z", "top_south_west": true } },
{ "apply": { "model": "unicopia:block/hay_bale_tne", "x": 90 }, "when": { "axis": "z", "bottom_north_east": true } },
{ "apply": { "model": "unicopia:block/hay_bale_tnw", "x": 90 }, "when": { "axis": "z", "bottom_north_west": true } },
{ "apply": { "model": "unicopia:block/hay_bale_tse", "x": 90 }, "when": { "axis": "z", "top_north_east": true } },
{ "apply": { "model": "unicopia:block/hay_bale_tsw", "x": 90 }, "when": { "axis": "z", "top_north_west": true } }
]
}

View file

@ -1,16 +0,0 @@
{
"variants": {
"age=0": { "model": "unicopia:block/oats_stage0" },
"age=1": { "model": "unicopia:block/oats_stage1" },
"age=2": { "model": "unicopia:block/oats_stage2" },
"age=3": { "model": "unicopia:block/oats_stage3" },
"age=4": { "model": "unicopia:block/oats_stage4" },
"age=5": { "model": "unicopia:block/oats_stage5_lower" },
"age=6": { "model": "unicopia:block/oats_stage6_lower" },
"age=7": { "model": "unicopia:block/oats_stage7_lower" },
"age=8": { "model": "unicopia:block/oats_stage8_lower" },
"age=9": { "model": "unicopia:block/oats_stage9_lower" },
"age=10": { "model": "unicopia:block/oats_stage10_lower" },
"age=11": { "model": "unicopia:block/oats_stage11_lower" }
}
}

View file

@ -1,6 +0,0 @@
{
"variants": {
"age=0": { "model": "unicopia:block/oats_stage10_upper" },
"age=1": { "model": "unicopia:block/oats_stage11_upper" }
}
}

View file

@ -1,11 +0,0 @@
{
"variants": {
"age=0": { "model": "unicopia:block/oats_stage5_upper" },
"age=1": { "model": "unicopia:block/oats_stage6_upper" },
"age=2": { "model": "unicopia:block/oats_stage7_upper" },
"age=3": { "model": "unicopia:block/oats_stage8_upper" },
"age=4": { "model": "unicopia:block/oats_stage9_upper" },
"age=5": { "model": "unicopia:block/oats_stage10_mid" },
"age=6": { "model": "unicopia:block/oats_stage11_mid" }
}
}

View file

@ -1,21 +0,0 @@
{
"variants": {
"age=0,half=bottom": { "model": "unicopia:block/pineapple_stem_stage0" },
"age=1,half=bottom": { "model": "unicopia:block/pineapple_stem_stage1" },
"age=2,half=bottom": { "model": "unicopia:block/pineapple_stem_stage2" },
"age=3,half=bottom": { "model": "unicopia:block/pineapple_stem_stage3" },
"age=4,half=bottom": { "model": "unicopia:block/pineapple_stem_stage4" },
"age=5,half=bottom": { "model": "unicopia:block/pineapple_stem_stage5" },
"age=6,half=bottom": { "model": "unicopia:block/pineapple_stem_stage5" },
"age=7,half=bottom": { "model": "unicopia:block/pineapple_stem_stage6" },
"age=0,half=top": { "model": "unicopia:block/pineapple_stage0" },
"age=1,half=top": { "model": "unicopia:block/pineapple_stage0" },
"age=2,half=top": { "model": "unicopia:block/pineapple_stage1" },
"age=3,half=top": { "model": "unicopia:block/pineapple_stage2" },
"age=4,half=top": { "model": "unicopia:block/pineapple_stage3" },
"age=5,half=top": { "model": "unicopia:block/pineapple_stage4" },
"age=6,half=top": { "model": "unicopia:block/pineapple_stage5" },
"age=7,half=top": { "model": "unicopia:block/pineapple_stage6" }
}
}

View file

@ -1,31 +0,0 @@
{
"multipart": [
{ "apply": { "model": "unicopia:block/rice_bale_bne", "x": 90, "y": 90 }, "when": { "axis": "x", "bottom_south_west": true } },
{ "apply": { "model": "unicopia:block/rice_bale_bnw", "x": 90, "y": 90 }, "when": { "axis": "x", "bottom_north_west": true } },
{ "apply": { "model": "unicopia:block/rice_bale_bse", "x": 90, "y": 90 }, "when": { "axis": "x", "top_south_west": true } },
{ "apply": { "model": "unicopia:block/rice_bale_bsw", "x": 90, "y": 90 }, "when": { "axis": "x", "top_north_west": true } },
{ "apply": { "model": "unicopia:block/rice_bale_tne", "x": 90, "y": 90 }, "when": { "axis": "x", "bottom_south_east": true } },
{ "apply": { "model": "unicopia:block/rice_bale_tnw", "x": 90, "y": 90 }, "when": { "axis": "x", "bottom_north_east": true } },
{ "apply": { "model": "unicopia:block/rice_bale_tse", "x": 90, "y": 90 }, "when": { "axis": "x", "top_south_east": true } },
{ "apply": { "model": "unicopia:block/rice_bale_tsw", "x": 90, "y": 90 }, "when": { "axis": "x", "top_north_east": true } },
{ "apply": { "model": "unicopia:block/rice_bale_bne" }, "when": { "axis": "y", "bottom_north_east": true } },
{ "apply": { "model": "unicopia:block/rice_bale_bnw" }, "when": { "axis": "y", "bottom_north_west": true } },
{ "apply": { "model": "unicopia:block/rice_bale_bse" }, "when": { "axis": "y", "bottom_south_east": true } },
{ "apply": { "model": "unicopia:block/rice_bale_bsw" }, "when": { "axis": "y", "bottom_south_west": true } },
{ "apply": { "model": "unicopia:block/rice_bale_tne" }, "when": { "axis": "y", "top_north_east": true } },
{ "apply": { "model": "unicopia:block/rice_bale_tnw" }, "when": { "axis": "y", "top_north_west": true } },
{ "apply": { "model": "unicopia:block/rice_bale_tse" }, "when": { "axis": "y", "top_south_east": true } },
{ "apply": { "model": "unicopia:block/rice_bale_tsw" }, "when": { "axis": "y", "top_south_west": true } },
{ "apply": { "model": "unicopia:block/rice_bale_bne", "x": 90 }, "when": { "axis": "z", "bottom_south_east": true } },
{ "apply": { "model": "unicopia:block/rice_bale_bnw", "x": 90 }, "when": { "axis": "z", "bottom_south_west": true } },
{ "apply": { "model": "unicopia:block/rice_bale_bse", "x": 90 }, "when": { "axis": "z", "top_south_east": true } },
{ "apply": { "model": "unicopia:block/rice_bale_bsw", "x": 90 }, "when": { "axis": "z", "top_south_west": true } },
{ "apply": { "model": "unicopia:block/rice_bale_tne", "x": 90 }, "when": { "axis": "z", "bottom_north_east": true } },
{ "apply": { "model": "unicopia:block/rice_bale_tnw", "x": 90 }, "when": { "axis": "z", "bottom_north_west": true } },
{ "apply": { "model": "unicopia:block/rice_bale_tse", "x": 90 }, "when": { "axis": "z", "top_north_east": true } },
{ "apply": { "model": "unicopia:block/rice_bale_tsw", "x": 90 }, "when": { "axis": "z", "top_north_west": true } }
]
}

View file

@ -1,11 +0,0 @@
{
"multipart": [
{
"apply": { "model": "unicopia:block/sour_apple_leaves" }
},
{
"apply": { "model": "unicopia:block/sour_apple_leaves_flowering" },
"when": { "stage": "flowering" }
}
]
}

View file

@ -1,28 +0,0 @@
{
"variants": {
"age=0": {
"model": "unicopia:block/apple_sprout_stage0"
},
"age=1": {
"model": "unicopia:block/apple_sprout_stage1"
},
"age=2": {
"model": "unicopia:block/apple_sprout_stage2"
},
"age=3": {
"model": "unicopia:block/apple_sprout_stage3"
},
"age=4": {
"model": "unicopia:block/apple_sprout_stage4"
},
"age=5": {
"model": "unicopia:block/apple_sprout_stage5"
},
"age=6": {
"model": "unicopia:block/apple_sprout_stage6"
},
"age=7": {
"model": "unicopia:block/apple_sprout_stage7"
}
}
}

View file

@ -1,31 +0,0 @@
{
"multipart": [
{ "apply": { "model": "unicopia:block/straw_bale_bne", "x": 90, "y": 90 }, "when": { "axis": "x", "bottom_south_west": true } },
{ "apply": { "model": "unicopia:block/straw_bale_bnw", "x": 90, "y": 90 }, "when": { "axis": "x", "bottom_north_west": true } },
{ "apply": { "model": "unicopia:block/straw_bale_bse", "x": 90, "y": 90 }, "when": { "axis": "x", "top_south_west": true } },
{ "apply": { "model": "unicopia:block/straw_bale_bsw", "x": 90, "y": 90 }, "when": { "axis": "x", "top_north_west": true } },
{ "apply": { "model": "unicopia:block/straw_bale_tne", "x": 90, "y": 90 }, "when": { "axis": "x", "bottom_south_east": true } },
{ "apply": { "model": "unicopia:block/straw_bale_tnw", "x": 90, "y": 90 }, "when": { "axis": "x", "bottom_north_east": true } },
{ "apply": { "model": "unicopia:block/straw_bale_tse", "x": 90, "y": 90 }, "when": { "axis": "x", "top_south_east": true } },
{ "apply": { "model": "unicopia:block/straw_bale_tsw", "x": 90, "y": 90 }, "when": { "axis": "x", "top_north_east": true } },
{ "apply": { "model": "unicopia:block/straw_bale_bne" }, "when": { "axis": "y", "bottom_north_east": true } },
{ "apply": { "model": "unicopia:block/straw_bale_bnw" }, "when": { "axis": "y", "bottom_north_west": true } },
{ "apply": { "model": "unicopia:block/straw_bale_bse" }, "when": { "axis": "y", "bottom_south_east": true } },
{ "apply": { "model": "unicopia:block/straw_bale_bsw" }, "when": { "axis": "y", "bottom_south_west": true } },
{ "apply": { "model": "unicopia:block/straw_bale_tne" }, "when": { "axis": "y", "top_north_east": true } },
{ "apply": { "model": "unicopia:block/straw_bale_tnw" }, "when": { "axis": "y", "top_north_west": true } },
{ "apply": { "model": "unicopia:block/straw_bale_tse" }, "when": { "axis": "y", "top_south_east": true } },
{ "apply": { "model": "unicopia:block/straw_bale_tsw" }, "when": { "axis": "y", "top_south_west": true } },
{ "apply": { "model": "unicopia:block/straw_bale_bne", "x": 90 }, "when": { "axis": "z", "bottom_south_east": true } },
{ "apply": { "model": "unicopia:block/straw_bale_bnw", "x": 90 }, "when": { "axis": "z", "bottom_south_west": true } },
{ "apply": { "model": "unicopia:block/straw_bale_bse", "x": 90 }, "when": { "axis": "z", "top_south_east": true } },
{ "apply": { "model": "unicopia:block/straw_bale_bsw", "x": 90 }, "when": { "axis": "z", "top_south_west": true } },
{ "apply": { "model": "unicopia:block/straw_bale_tne", "x": 90 }, "when": { "axis": "z", "bottom_north_east": true } },
{ "apply": { "model": "unicopia:block/straw_bale_tnw", "x": 90 }, "when": { "axis": "z", "bottom_north_west": true } },
{ "apply": { "model": "unicopia:block/straw_bale_tse", "x": 90 }, "when": { "axis": "z", "top_north_east": true } },
{ "apply": { "model": "unicopia:block/straw_bale_tsw", "x": 90 }, "when": { "axis": "z", "top_north_west": true } }
]
}

View file

@ -1,11 +0,0 @@
{
"multipart": [
{
"apply": { "model": "unicopia:block/sweet_apple_leaves" }
},
{
"apply": { "model": "unicopia:block/sweet_apple_leaves_flowering" },
"when": { "stage": "flowering" }
}
]
}

View file

@ -1,28 +0,0 @@
{
"variants": {
"age=0": {
"model": "unicopia:block/apple_sprout_stage0"
},
"age=1": {
"model": "unicopia:block/apple_sprout_stage1"
},
"age=2": {
"model": "unicopia:block/apple_sprout_stage2"
},
"age=3": {
"model": "unicopia:block/apple_sprout_stage3"
},
"age=4": {
"model": "unicopia:block/apple_sprout_stage4"
},
"age=5": {
"model": "unicopia:block/apple_sprout_stage5"
},
"age=6": {
"model": "unicopia:block/apple_sprout_stage6"
},
"age=7": {
"model": "unicopia:block/apple_sprout_stage7"
}
}
}

View file

@ -1,19 +0,0 @@
{
"variants": {
"stage=hibernating": {
"model": "unicopia:block/zap_leaves"
},
"stage=greening": {
"model": "unicopia:block/zap_leaves"
},
"stage=flowering": {
"model": "unicopia:block/flowering_zap_leaves"
},
"stage=fruiting": {
"model": "unicopia:block/zap_leaves"
},
"stage=ripe": {
"model": "unicopia:block/zap_leaves"
}
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "minecraft:block/stem_growth0",
"textures": {
"stem": "minecraft:block/melon_stem"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "minecraft:block/stem_growth1",
"textures": {
"stem": "minecraft:block/melon_stem"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "minecraft:block/stem_growth2",
"textures": {
"stem": "minecraft:block/melon_stem"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "minecraft:block/stem_growth3",
"textures": {
"stem": "minecraft:block/melon_stem"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "minecraft:block/stem_growth4",
"textures": {
"stem": "minecraft:block/melon_stem"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "minecraft:block/stem_growth5",
"textures": {
"stem": "minecraft:block/melon_stem"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "minecraft:block/stem_growth6",
"textures": {
"stem": "minecraft:block/melon_stem"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "minecraft:block/stem_growth7",
"textures": {
"stem": "minecraft:block/melon_stem"
}
}

View file

@ -1,5 +0,0 @@
{
"textures": {
"particle": "minecraft:block/spruce_planks"
}
}

View file

@ -1,5 +0,0 @@
{
"textures": {
"particle": "unicopia:block/cloud"
}
}

View file

@ -1,5 +0,0 @@
{
"textures": {
"particle": "unicopia:block/cloud"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "unicopia:block/flattened_cloud_corner_full",
"textures": {
"all": "unicopia:block/dense_cloud"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "unicopia:block/flattened_cloud_corner_x",
"textures": {
"all": "unicopia:block/dense_cloud"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "unicopia:block/flattened_cloud_corner_xy",
"textures": {
"all": "unicopia:block/dense_cloud"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "unicopia:block/flattened_cloud_corner_xyz",
"textures": {
"all": "unicopia:block/dense_cloud"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "unicopia:block/flattened_cloud_corner_xz",
"textures": {
"all": "unicopia:block/dense_cloud"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "unicopia:block/flattened_cloud_corner_y",
"textures": {
"all": "unicopia:block/dense_cloud"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "unicopia:block/flattened_cloud_corner_yz",
"textures": {
"all": "unicopia:block/dense_cloud"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "unicopia:block/flattened_cloud_corner_z",
"textures": {
"all": "unicopia:block/dense_cloud"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "unicopia:block/flattened_cloud_corner_full",
"textures": {
"all": "unicopia:block/dense_cloud"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "unicopia:block/flattened_cloud_corner_x",
"textures": {
"all": "unicopia:block/dense_cloud"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "unicopia:block/flattened_cloud_corner_xy",
"textures": {
"all": "unicopia:block/dense_cloud"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "unicopia:block/flattened_cloud_corner_xyz",
"textures": {
"all": "unicopia:block/dense_cloud"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "unicopia:block/flattened_cloud_corner_xz",
"textures": {
"all": "unicopia:block/dense_cloud"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "unicopia:block/flattened_cloud_corner_y",
"textures": {
"all": "unicopia:block/dense_cloud"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "unicopia:block/flattened_cloud_corner_yz",
"textures": {
"all": "unicopia:block/dense_cloud"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "unicopia:block/flattened_cloud_corner_z",
"textures": {
"all": "unicopia:block/dense_cloud"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "minecraft:block/leaves",
"textures": {
"all": "unicopia:block/flowering_zap_leaves"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "minecraft:block/crop",
"textures": {
"crop": "unicopia:block/gold_root_stage0"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "minecraft:block/crop",
"textures": {
"crop": "unicopia:block/gold_root_stage1"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "minecraft:block/crop",
"textures": {
"crop": "unicopia:block/gold_root_stage2"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "minecraft:block/crop",
"textures": {
"crop": "unicopia:block/gold_root_stage3"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "minecraft:block/leaves",
"textures": {
"all": "unicopia:block/green_apple_leaves"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "minecraft:block/cube_all",
"textures": {
"all": "unicopia:block/green_apple_leaves_flowering"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "block/crop",
"textures": {
"crop": "unicopia:block/oats_stage0"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "block/crop",
"textures": {
"crop": "unicopia:block/oats_stage1"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "block/crop",
"textures": {
"crop": "unicopia:block/oats_stage10_lower"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "block/crop",
"textures": {
"crop": "unicopia:block/oats_stage10_mid"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "block/crop",
"textures": {
"crop": "unicopia:block/oats_stage10_upper"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "block/crop",
"textures": {
"crop": "unicopia:block/oats_stage11_lower"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "block/crop",
"textures": {
"crop": "unicopia:block/oats_stage11_mid"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "block/crop",
"textures": {
"crop": "unicopia:block/oats_stage11_upper"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "block/crop",
"textures": {
"crop": "unicopia:block/oats_stage2"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "block/crop",
"textures": {
"crop": "unicopia:block/oats_stage3"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "block/crop",
"textures": {
"crop": "unicopia:block/oats_stage4"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "block/crop",
"textures": {
"crop": "unicopia:block/oats_stage5_lower"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "block/crop",
"textures": {
"crop": "unicopia:block/oats_stage5_upper"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "block/crop",
"textures": {
"crop": "unicopia:block/oats_stage6_lower"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "block/crop",
"textures": {
"crop": "unicopia:block/oats_stage6_upper"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "block/crop",
"textures": {
"crop": "unicopia:block/oats_stage7_lower"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "block/crop",
"textures": {
"crop": "unicopia:block/oats_stage7_upper"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "block/crop",
"textures": {
"crop": "unicopia:block/oats_stage8_lower"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "block/crop",
"textures": {
"crop": "unicopia:block/oats_stage8_upper"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "block/crop",
"textures": {
"crop": "unicopia:block/oats_stage9_lower"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "block/crop",
"textures": {
"crop": "unicopia:block/oats_stage9_upper"
}
}

View file

@ -1,350 +0,0 @@
{
"textures": {
"bananas": "unicopia:block/bananas",
"particle": "#bananas"
},
"elements": [
{
"from": [3, 1, 4],
"to": [13, 11, 14],
"faces": {
"north": {"uv": [0.25, 0.25, 10.25, 10.25], "texture": "#bananas"},
"east": {"uv": [1.25, 0.25, 11.25, 10.25], "texture": "#bananas"},
"south": {"uv": [2.25, 0.25, 12.25, 10.25], "texture": "#bananas"},
"west": {"uv": [3.25, 0.25, 13.25, 10.25], "texture": "#bananas"},
"up": {"uv": [4.25, 0.25, 14.25, 10.25], "texture": "#bananas"},
"down": {"uv": [5.25, 0.25, 15.25, 10.25], "texture": "#bananas"}
}
},
{
"from": [8, -3, 5],
"to": [10, 3, 7],
"faces": {
"north": {"uv": [0, 6, 2, 12], "texture": "#bananas"},
"east": {"uv": [2, 6, 4, 12], "texture": "#bananas"},
"south": {"uv": [0, 0, 2, 6], "texture": "#bananas"},
"west": {"uv": [2, 0, 4, 6], "texture": "#bananas"},
"down": {"uv": [2, 12, 0, 14], "texture": "#bananas"}
}
},
{
"from": [10, 0, 6],
"to": [12, 6, 8],
"faces": {
"north": {"uv": [0, 6, 2, 12], "texture": "#bananas"},
"east": {"uv": [2, 6, 4, 12], "texture": "#bananas"},
"south": {"uv": [0, 0, 2, 6], "texture": "#bananas"},
"west": {"uv": [2, 0, 4, 6], "texture": "#bananas"},
"down": {"uv": [2, 12, 0, 14], "texture": "#bananas"}
}
},
{
"from": [10, 4, 7],
"to": [12, 10, 9],
"faces": {
"north": {"uv": [0, 6, 2, 12], "texture": "#bananas"},
"east": {"uv": [2, 6, 4, 12], "texture": "#bananas"},
"south": {"uv": [0, 0, 2, 6], "texture": "#bananas"},
"west": {"uv": [2, 0, 4, 6], "texture": "#bananas"},
"down": {"uv": [2, 12, 0, 14], "texture": "#bananas"}
}
},
{
"from": [8, 4, 7],
"to": [10, 10, 9],
"faces": {
"north": {"uv": [0, 6, 2, 12], "texture": "#bananas"},
"east": {"uv": [2, 6, 4, 12], "texture": "#bananas"},
"south": {"uv": [0, 0, 2, 6], "texture": "#bananas"},
"west": {"uv": [2, 0, 4, 6], "texture": "#bananas"},
"down": {"uv": [2, 12, 0, 14], "texture": "#bananas"}
}
},
{
"from": [12, 5, 10],
"to": [14, 11, 12],
"faces": {
"north": {"uv": [0, 6, 2, 12], "texture": "#bananas"},
"east": {"uv": [2, 6, 4, 12], "texture": "#bananas"},
"south": {"uv": [0, 0, 2, 6], "texture": "#bananas"},
"west": {"uv": [2, 0, 4, 6], "texture": "#bananas"},
"down": {"uv": [2, 12, 0, 14], "texture": "#bananas"}
}
},
{
"from": [7, 0, 6],
"to": [9, 6, 8],
"faces": {
"north": {"uv": [0, 6, 2, 12], "texture": "#bananas"},
"east": {"uv": [2, 6, 4, 12], "texture": "#bananas"},
"south": {"uv": [0, 0, 2, 6], "texture": "#bananas"},
"west": {"uv": [2, 0, 4, 6], "texture": "#bananas"},
"down": {"uv": [2, 12, 0, 14], "texture": "#bananas"}
}
},
{
"from": [8, 5, 2],
"to": [10, 11, 4],
"faces": {
"north": {"uv": [0, 6, 2, 12], "texture": "#bananas"},
"east": {"uv": [2, 6, 4, 12], "texture": "#bananas"},
"south": {"uv": [0, 0, 2, 6], "texture": "#bananas"},
"west": {"uv": [2, 0, 4, 6], "texture": "#bananas"},
"down": {"uv": [2, 12, 0, 14], "texture": "#bananas"}
}
},
{
"from": [6, -2, 4],
"to": [8, 4, 6],
"faces": {
"north": {"uv": [0, 6, 2, 12], "texture": "#bananas"},
"east": {"uv": [2, 6, 4, 12], "texture": "#bananas"},
"south": {"uv": [0, 0, 2, 6], "texture": "#bananas"},
"west": {"uv": [2, 0, 4, 6], "texture": "#bananas"},
"down": {"uv": [2, 12, 0, 14], "texture": "#bananas"}
}
},
{
"from": [10, -3, 6],
"to": [12, 3, 8],
"faces": {
"north": {"uv": [0, 6, 2, 12], "texture": "#bananas"},
"east": {"uv": [2, 6, 4, 12], "texture": "#bananas"},
"south": {"uv": [0, 0, 2, 6], "texture": "#bananas"},
"west": {"uv": [2, 0, 4, 6], "texture": "#bananas"},
"down": {"uv": [2, 12, 0, 14], "texture": "#bananas"}
}
},
{
"from": [11, 2, 4],
"to": [13, 8, 6],
"faces": {
"north": {"uv": [0, 6, 2, 12], "texture": "#bananas"},
"east": {"uv": [2, 6, 4, 12], "texture": "#bananas"},
"south": {"uv": [0, 0, 2, 6], "texture": "#bananas"},
"west": {"uv": [2, 0, 4, 6], "texture": "#bananas"},
"down": {"uv": [2, 12, 0, 14], "texture": "#bananas"}
}
},
{
"from": [13, 5, 6],
"to": [15, 11, 8],
"faces": {
"north": {"uv": [0, 6, 2, 12], "texture": "#bananas"},
"east": {"uv": [2, 6, 4, 12], "texture": "#bananas"},
"south": {"uv": [0, 0, 2, 6], "texture": "#bananas"},
"west": {"uv": [2, 0, 4, 6], "texture": "#bananas"},
"down": {"uv": [2, 12, 0, 14], "texture": "#bananas"}
}
},
{
"from": [5, 5, 14],
"to": [11, 11, 16],
"faces": {
"north": {"uv": [0, 6, 2, 12], "texture": "#bananas"},
"east": {"uv": [2, 6, 4, 12], "texture": "#bananas"},
"south": {"uv": [0, 0, 2, 6], "texture": "#bananas"},
"west": {"uv": [2, 0, 4, 6], "texture": "#bananas"},
"down": {"uv": [2, 12, 0, 14], "texture": "#bananas"}
}
},
{
"from": [1, 5, 6],
"to": [3, 11, 11],
"faces": {
"north": {"uv": [0, 6, 2, 12], "texture": "#bananas"},
"east": {"uv": [2, 6, 4, 12], "texture": "#bananas"},
"south": {"uv": [0, 0, 2, 6], "texture": "#bananas"},
"west": {"uv": [2, 0, 4, 6], "texture": "#bananas"},
"down": {"uv": [2, 12, 0, 14], "texture": "#bananas"}
}
},
{
"from": [4, 2, 3],
"to": [6, 8, 5],
"faces": {
"north": {"uv": [0, 6, 2, 12], "texture": "#bananas"},
"east": {"uv": [2, 6, 4, 12], "texture": "#bananas"},
"south": {"uv": [0, 0, 2, 6], "texture": "#bananas"},
"west": {"uv": [2, 0, 4, 6], "texture": "#bananas"},
"down": {"uv": [2, 12, 0, 14], "texture": "#bananas"}
}
},
{
"from": [5, 2, 6],
"to": [7, 8, 8],
"faces": {
"north": {"uv": [0, 6, 2, 12], "texture": "#bananas"},
"east": {"uv": [2, 6, 4, 12], "texture": "#bananas"},
"south": {"uv": [0, 0, 2, 6], "texture": "#bananas"},
"west": {"uv": [2, 0, 4, 6], "texture": "#bananas"},
"down": {"uv": [2, 12, 0, 14], "texture": "#bananas"}
}
},
{
"from": [7, -10, 9],
"to": [9, -1, 11],
"faces": {
"north": {"uv": [0, 6, 2, 12], "texture": "#bananas"},
"east": {"uv": [2, 6, 4, 12], "texture": "#bananas"},
"south": {"uv": [0, 0, 2, 6], "texture": "#bananas"},
"west": {"uv": [2, 0, 4, 6], "texture": "#bananas"},
"down": {"uv": [2, 12, 0, 14], "texture": "#bananas"}
}
},
{
"from": [9, -7, 10],
"to": [11, -1, 12],
"faces": {
"north": {"uv": [0, 6, 2, 12], "texture": "#bananas"},
"east": {"uv": [2, 6, 4, 12], "texture": "#bananas"},
"south": {"uv": [0, 0, 2, 6], "texture": "#bananas"},
"west": {"uv": [2, 0, 4, 6], "texture": "#bananas"},
"down": {"uv": [2, 12, 0, 14], "texture": "#bananas"}
}
},
{
"from": [9, -3, 11],
"to": [11, 3, 13],
"faces": {
"north": {"uv": [0, 6, 2, 12], "texture": "#bananas"},
"east": {"uv": [2, 6, 4, 12], "texture": "#bananas"},
"south": {"uv": [0, 0, 2, 6], "texture": "#bananas"},
"west": {"uv": [2, 0, 4, 6], "texture": "#bananas"},
"down": {"uv": [2, 12, 0, 14], "texture": "#bananas"}
}
},
{
"from": [7, -3, 11],
"to": [9, 3, 13],
"faces": {
"north": {"uv": [0, 6, 2, 12], "texture": "#bananas"},
"east": {"uv": [2, 6, 4, 12], "texture": "#bananas"},
"south": {"uv": [0, 0, 2, 6], "texture": "#bananas"},
"west": {"uv": [2, 0, 4, 6], "texture": "#bananas"},
"down": {"uv": [2, 12, 0, 14], "texture": "#bananas"}
}
},
{
"from": [11, -1, 9],
"to": [13, 5, 11],
"faces": {
"north": {"uv": [0, 6, 2, 12], "texture": "#bananas"},
"east": {"uv": [2, 6, 4, 12], "texture": "#bananas"},
"south": {"uv": [0, 0, 2, 6], "texture": "#bananas"},
"west": {"uv": [2, 0, 4, 6], "texture": "#bananas"},
"down": {"uv": [2, 12, 0, 14], "texture": "#bananas"}
}
},
{
"from": [6, -7, 10],
"to": [8, 2, 12],
"faces": {
"north": {"uv": [0, 6, 2, 12], "texture": "#bananas"},
"east": {"uv": [2, 6, 4, 12], "texture": "#bananas"},
"south": {"uv": [0, 0, 2, 6], "texture": "#bananas"},
"west": {"uv": [2, 0, 4, 6], "texture": "#bananas"},
"down": {"uv": [2, 12, 0, 14], "texture": "#bananas"}
}
},
{
"from": [7, -8, 6],
"to": [9, -2, 8],
"faces": {
"north": {"uv": [0, 6, 2, 12], "texture": "#bananas"},
"east": {"uv": [2, 6, 4, 12], "texture": "#bananas"},
"south": {"uv": [0, 0, 2, 6], "texture": "#bananas"},
"west": {"uv": [2, 0, 4, 6], "texture": "#bananas"},
"down": {"uv": [2, 12, 0, 14], "texture": "#bananas"}
}
},
{
"from": [5, -9, 8],
"to": [7, -3, 10],
"faces": {
"north": {"uv": [0, 6, 2, 12], "texture": "#bananas"},
"east": {"uv": [2, 6, 4, 12], "texture": "#bananas"},
"south": {"uv": [0, 0, 2, 6], "texture": "#bananas"},
"west": {"uv": [2, 0, 4, 6], "texture": "#bananas"},
"down": {"uv": [2, 12, 0, 14], "texture": "#bananas"}
}
},
{
"from": [9, -10, 7],
"to": [11, -1, 9],
"faces": {
"north": {"uv": [0, 6, 2, 12], "texture": "#bananas"},
"east": {"uv": [2, 6, 4, 12], "texture": "#bananas"},
"south": {"uv": [0, 0, 2, 6], "texture": "#bananas"},
"west": {"uv": [2, 0, 4, 6], "texture": "#bananas"},
"down": {"uv": [2, 12, 0, 14], "texture": "#bananas"}
}
},
{
"from": [10, -6, 8],
"to": [12, 1, 10],
"faces": {
"north": {"uv": [0, 6, 2, 12], "texture": "#bananas"},
"east": {"uv": [2, 6, 4, 12], "texture": "#bananas"},
"south": {"uv": [0, 0, 2, 6], "texture": "#bananas"},
"west": {"uv": [2, 0, 4, 6], "texture": "#bananas"},
"down": {"uv": [2, 12, 0, 14], "texture": "#bananas"}
}
},
{
"from": [9, -5, 5],
"to": [11, 1, 7],
"faces": {
"north": {"uv": [0, 6, 2, 12], "texture": "#bananas"},
"east": {"uv": [2, 6, 4, 12], "texture": "#bananas"},
"south": {"uv": [0, 0, 2, 6], "texture": "#bananas"},
"west": {"uv": [2, 0, 4, 6], "texture": "#bananas"},
"down": {"uv": [2, 12, 0, 14], "texture": "#bananas"}
}
},
{
"from": [6, 0, 3],
"to": [8, 6, 5],
"faces": {
"north": {"uv": [0, 6, 2, 12], "texture": "#bananas"},
"east": {"uv": [2, 6, 4, 12], "texture": "#bananas"},
"south": {"uv": [0, 0, 2, 6], "texture": "#bananas"},
"west": {"uv": [2, 0, 4, 6], "texture": "#bananas"},
"down": {"uv": [2, 12, 0, 14], "texture": "#bananas"}
}
},
{
"from": [4, -5, 5],
"to": [6, 1, 7],
"faces": {
"north": {"uv": [0, 6, 2, 12], "texture": "#bananas"},
"east": {"uv": [2, 6, 4, 12], "texture": "#bananas"},
"south": {"uv": [0, 0, 2, 6], "texture": "#bananas"},
"west": {"uv": [2, 0, 4, 6], "texture": "#bananas"},
"down": {"uv": [2, 12, 0, 14], "texture": "#bananas"}
}
},
{
"from": [3, -5, 7],
"to": [5, 1, 9],
"faces": {
"north": {"uv": [0, 6, 2, 12], "texture": "#bananas"},
"east": {"uv": [2, 6, 4, 12], "texture": "#bananas"},
"south": {"uv": [0, 0, 2, 6], "texture": "#bananas"},
"west": {"uv": [2, 0, 4, 6], "texture": "#bananas"},
"down": {"uv": [2, 12, 0, 14], "texture": "#bananas"}
}
},
{
"from": [4, -3, 9],
"to": [6, 3, 11],
"faces": {
"north": {"uv": [0, 6, 2, 12], "texture": "#bananas"},
"east": {"uv": [2, 6, 4, 12], "texture": "#bananas"},
"south": {"uv": [0, 0, 2, 6], "texture": "#bananas"},
"west": {"uv": [2, 0, 4, 6], "texture": "#bananas"},
"down": {"uv": [2, 12, 0, 14], "texture": "#bananas"}
}
}
]
}

View file

@ -1,6 +0,0 @@
{
"parent": "minecraft:block/cross",
"textures": {
"cross": "unicopia:block/pineapple_stage0"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "minecraft:block/cross",
"textures": {
"cross": "unicopia:block/pineapple_stage1"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "minecraft:block/cross",
"textures": {
"cross": "unicopia:block/pineapple_stage2"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "minecraft:block/cross",
"textures": {
"cross": "unicopia:block/pineapple_stage3"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "minecraft:block/cross",
"textures": {
"cross": "unicopia:block/pineapple_stage4"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "minecraft:block/cross",
"textures": {
"cross": "unicopia:block/pineapple_stage5"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "minecraft:block/cross",
"textures": {
"cross": "unicopia:block/pineapple_stage6"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "minecraft:block/cross",
"textures": {
"cross": "unicopia:block/pineapple_stem_stage0"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "minecraft:block/cross",
"textures": {
"cross": "unicopia:block/pineapple_stem_stage1"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "minecraft:block/cross",
"textures": {
"cross": "unicopia:block/pineapple_stem_stage2"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "minecraft:block/cross",
"textures": {
"cross": "unicopia:block/pineapple_stem_stage3"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "minecraft:block/cross",
"textures": {
"cross": "unicopia:block/pineapple_stem_stage4"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "minecraft:block/cross",
"textures": {
"cross": "unicopia:block/pineapple_stem_stage5"
}
}

View file

@ -1,6 +0,0 @@
{
"parent": "minecraft:block/cross",
"textures": {
"cross": "unicopia:block/pineapple_stem_stage6"
}
}

View file

@ -1,8 +0,0 @@
{
"parent": "unicopia:block/hay_bale_bne",
"textures": {
"top": "farmersdelight:block/rice_bale_top",
"particle": "farmersdelight:block/rice_bale_side",
"side": "farmersdelight:block/rice_bale_side"
}
}

View file

@ -1,8 +0,0 @@
{
"parent": "unicopia:block/hay_bale_bnw",
"textures": {
"top": "farmersdelight:block/rice_bale_top",
"particle": "farmersdelight:block/rice_bale_side",
"side": "farmersdelight:block/rice_bale_side"
}
}

View file

@ -1,8 +0,0 @@
{
"parent": "unicopia:block/hay_bale_bse",
"textures": {
"top": "farmersdelight:block/rice_bale_top",
"particle": "farmersdelight:block/rice_bale_side",
"side": "farmersdelight:block/rice_bale_side"
}
}

View file

@ -1,8 +0,0 @@
{
"parent": "unicopia:block/hay_bale_bsw",
"textures": {
"top": "farmersdelight:block/rice_bale_top",
"particle": "farmersdelight:block/rice_bale_side",
"side": "farmersdelight:block/rice_bale_side"
}
}

View file

@ -1,8 +0,0 @@
{
"parent": "unicopia:block/hay_bale_tne",
"textures": {
"top": "farmersdelight:block/rice_bale_top",
"particle": "farmersdelight:block/rice_bale_side",
"side": "farmersdelight:block/rice_bale_side"
}
}

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