From 62a8aff4e05353e74684f3ed1b74405a7f968a0f Mon Sep 17 00:00:00 2001 From: Sollace Date: Thu, 2 Sep 2021 19:11:51 +0200 Subject: [PATCH] Added pebbles, rocks, and rock stew --- .../unicopia/EquinePredicates.java | 1 + .../com/minelittlepony/unicopia/Unicopia.java | 2 + .../ability/EarthPonyStompAbility.java | 13 +++ .../unicopia/block/RockCropBlock.java | 100 ++++++++++++++++++ .../unicopia/block/UBlocks.java | 24 +++++ .../item/RacePredicatedAliasedBlockItem.java | 31 ++++++ .../minelittlepony/unicopia/item/UItems.java | 7 +- .../assets/unicopia/blockstates/rocks.json | 28 +++++ .../resources/assets/unicopia/lang/en_us.json | 6 ++ .../unicopia/models/block/rocks_stage0.json | 46 ++++++++ .../unicopia/models/block/rocks_stage1.json | 46 ++++++++ .../unicopia/models/block/rocks_stage2.json | 46 ++++++++ .../unicopia/models/block/rocks_stage3.json | 46 ++++++++ .../unicopia/models/block/rocks_stage4.json | 46 ++++++++ .../unicopia/models/block/rocks_stage5.json | 46 ++++++++ .../unicopia/models/block/rocks_stage6.json | 46 ++++++++ .../unicopia/models/block/rocks_stage7.json | 46 ++++++++ .../assets/unicopia/models/item/pebbles.json | 6 ++ .../assets/unicopia/models/item/rock.json | 6 ++ .../unicopia/models/item/rock_stew.json | 6 ++ .../assets/unicopia/textures/item/pebbles.png | Bin 0 -> 3243 bytes .../assets/unicopia/textures/item/rock.png | Bin 0 -> 3158 bytes .../unicopia/textures/item/rock_stew.png | Bin 0 -> 2976 bytes .../data/minecraft/tags/blocks/crops.json | 6 ++ .../unicopia/sweet_apple_acres.json | 2 +- .../unicopia/loot_tables/blocks/rocks.json | 68 ++++++++++++ .../data/unicopia/recipes/rock_stew.json | 10 ++ 27 files changed, 682 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/minelittlepony/unicopia/block/RockCropBlock.java create mode 100644 src/main/java/com/minelittlepony/unicopia/block/UBlocks.java create mode 100644 src/main/java/com/minelittlepony/unicopia/item/RacePredicatedAliasedBlockItem.java create mode 100644 src/main/resources/assets/unicopia/blockstates/rocks.json create mode 100644 src/main/resources/assets/unicopia/models/block/rocks_stage0.json create mode 100644 src/main/resources/assets/unicopia/models/block/rocks_stage1.json create mode 100644 src/main/resources/assets/unicopia/models/block/rocks_stage2.json create mode 100644 src/main/resources/assets/unicopia/models/block/rocks_stage3.json create mode 100644 src/main/resources/assets/unicopia/models/block/rocks_stage4.json create mode 100644 src/main/resources/assets/unicopia/models/block/rocks_stage5.json create mode 100644 src/main/resources/assets/unicopia/models/block/rocks_stage6.json create mode 100644 src/main/resources/assets/unicopia/models/block/rocks_stage7.json create mode 100644 src/main/resources/assets/unicopia/models/item/pebbles.json create mode 100644 src/main/resources/assets/unicopia/models/item/rock.json create mode 100644 src/main/resources/assets/unicopia/models/item/rock_stew.json create mode 100644 src/main/resources/assets/unicopia/textures/item/pebbles.png create mode 100644 src/main/resources/assets/unicopia/textures/item/rock.png create mode 100644 src/main/resources/assets/unicopia/textures/item/rock_stew.png create mode 100644 src/main/resources/data/minecraft/tags/blocks/crops.json create mode 100644 src/main/resources/data/unicopia/loot_tables/blocks/rocks.json create mode 100644 src/main/resources/data/unicopia/recipes/rock_stew.json diff --git a/src/main/java/com/minelittlepony/unicopia/EquinePredicates.java b/src/main/java/com/minelittlepony/unicopia/EquinePredicates.java index c1dee993..7cf6d718 100644 --- a/src/main/java/com/minelittlepony/unicopia/EquinePredicates.java +++ b/src/main/java/com/minelittlepony/unicopia/EquinePredicates.java @@ -26,6 +26,7 @@ public interface EquinePredicates { Predicate PLAYER_CHANGELING = IS_PLAYER.and(ofRace(Race.CHANGELING)); Predicate PLAYER_PEGASUS = IS_PLAYER.and(e -> ((PlayerEntity)e).getAbilities().creativeMode || RACE_INTERACT_WITH_CLOUDS.test(e)); + Predicate PLAYER_CAN_USE_EARTH = IS_PLAYER.and(raceMatches(Race::canUseEarth)); Predicate IS_CASTER = e -> !e.isRemoved() && (e instanceof Caster || PLAYER_UNICORN.test(e)); Predicate HAS_WANT_IT_NEED_IT = e -> EnchantmentHelper.getEquipmentLevel(UEnchantments.WANT_IT_NEED_IT, e) > 0; diff --git a/src/main/java/com/minelittlepony/unicopia/Unicopia.java b/src/main/java/com/minelittlepony/unicopia/Unicopia.java index 2c4665f0..1fd31966 100644 --- a/src/main/java/com/minelittlepony/unicopia/Unicopia.java +++ b/src/main/java/com/minelittlepony/unicopia/Unicopia.java @@ -12,6 +12,7 @@ import org.apache.logging.log4j.Logger; import com.minelittlepony.unicopia.ability.data.tree.TreeTypeLoader; import com.minelittlepony.unicopia.advancement.UCriteria; +import com.minelittlepony.unicopia.block.UBlocks; import com.minelittlepony.unicopia.command.Commands; import com.minelittlepony.unicopia.entity.UEntities; import com.minelittlepony.unicopia.entity.effect.UPotions; @@ -54,6 +55,7 @@ public class Unicopia implements ModInitializer { ResourceManagerHelper.get(ResourceType.SERVER_DATA).registerReloadListener(TreeTypeLoader.INSTANCE); ResourceManagerHelper.get(ResourceType.SERVER_DATA).registerReloadListener(UEnchantments.POISONED_JOKE); + UBlocks.bootstrap(); UItems.bootstrap(); UPotions.bootstrap(); } diff --git a/src/main/java/com/minelittlepony/unicopia/ability/EarthPonyStompAbility.java b/src/main/java/com/minelittlepony/unicopia/ability/EarthPonyStompAbility.java index c380aff8..6bc67621 100644 --- a/src/main/java/com/minelittlepony/unicopia/ability/EarthPonyStompAbility.java +++ b/src/main/java/com/minelittlepony/unicopia/ability/EarthPonyStompAbility.java @@ -6,6 +6,7 @@ import com.minelittlepony.unicopia.BlockDestructionManager; import com.minelittlepony.unicopia.Race; import com.minelittlepony.unicopia.ability.data.Hit; import com.minelittlepony.unicopia.entity.player.Pony; +import com.minelittlepony.unicopia.item.UItems; import com.minelittlepony.unicopia.item.enchantment.UEnchantments; import com.minelittlepony.unicopia.particle.ParticleUtils; import com.minelittlepony.unicopia.particle.UParticles; @@ -14,11 +15,14 @@ import com.minelittlepony.unicopia.util.PosHelper; import net.minecraft.block.Block; import net.minecraft.block.BlockState; +import net.minecraft.block.Material; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.attribute.EntityAttributes; import net.minecraft.entity.damage.DamageSource; import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.ItemStack; +import net.minecraft.server.world.ServerWorld; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Box; import net.minecraft.util.math.MathHelper; @@ -163,6 +167,15 @@ public class EarthPonyStompAbility implements Ability { if (destr.damageBlock(pos, damage) >= BlockDestructionManager.MAX_DAMAGE) { w.breakBlock(pos, true); + + if (w instanceof ServerWorld) { + if (state.getMaterial() == Material.STONE && w.getRandom().nextInt(4) == 0) { + ItemStack stack = UItems.PEBBLES.getDefaultStack(); + stack.setCount(1 + w.getRandom().nextInt(2)); + Block.dropStack(w, pos, stack); + state.onStacksDropped((ServerWorld)w, pos, stack); + } + } } else { w.syncWorldEvent(WorldEvents.BLOCK_BROKEN, pos, Block.getRawIdFromState(state)); } diff --git a/src/main/java/com/minelittlepony/unicopia/block/RockCropBlock.java b/src/main/java/com/minelittlepony/unicopia/block/RockCropBlock.java new file mode 100644 index 00000000..048815a9 --- /dev/null +++ b/src/main/java/com/minelittlepony/unicopia/block/RockCropBlock.java @@ -0,0 +1,100 @@ +package com.minelittlepony.unicopia.block; + +import java.util.Random; + +import com.minelittlepony.unicopia.EquinePredicates; +import com.minelittlepony.unicopia.item.UItems; + +import net.minecraft.block.BlockState; +import net.minecraft.block.CropBlock; +import net.minecraft.block.ShapeContext; +import net.minecraft.item.ItemConvertible; +import net.minecraft.server.world.ServerWorld; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.shape.VoxelShape; +import net.minecraft.util.shape.VoxelShapes; +import net.minecraft.world.BlockView; +import net.minecraft.world.World; +import net.minecraft.world.WorldEvents; + +public class RockCropBlock extends CropBlock { + private static final VoxelShape[] AGE_TO_SHAPE = new VoxelShape[] { + VoxelShapes.union( + createCuboidShape(7, -1, 11, 8, 0, 12), + createCuboidShape(3.5F, -1, 3.5F, 5, 0, 5), + createCuboidShape(11.5F, -1, 5.5F, 13, 0, 7) + ), + VoxelShapes.union( + createCuboidShape(6, -1, 10, 9, 1, 13), + createCuboidShape(2.5F, -1, 2.5F, 6.5F, 2, 6.5F), + createCuboidShape(10.5F, -1, 4.5F, 14.5F, 2, 8.5F) + ), + VoxelShapes.union( + createCuboidShape(4, -1, 9, 10, 2, 14), + createCuboidShape(1.5F, -1, 1.5F, 7.5F, 3, 7.5F), + createCuboidShape(9, -1, 3.5F, 15.5F, 3, 9.5F) + ), + VoxelShapes.union( + createCuboidShape(4, -1, 9, 10, 2, 14), + createCuboidShape(1.5F, -1, 1.5F, 7.5F, 4, 7.5F), + createCuboidShape(9, -1, 3.5F, 15.5F, 3, 9.5F) + ), + VoxelShapes.union( + createCuboidShape(3, -1, 8, 11, 3, 15), + createCuboidShape(0.5F, -1, 0.5F, 8.5F, 5, 8.5F), + createCuboidShape(7.5F, -1, 2, 17, 5, 10.5F) + ), + VoxelShapes.union( + createCuboidShape(3, -1, 8, 11, 4, 15), + createCuboidShape(0.5F, -1, 0.5F, 8.5F, 5, 8.5F), + createCuboidShape(7.5F, -1, 2, 17, 7, 10.5F) + ), + VoxelShapes.union( + createCuboidShape(3, -1, 8, 11, 4, 15), + createCuboidShape(0.5F, -1, 0.5F, 8.5F, 7, 8.5F), + createCuboidShape(7.5F, -1, 2, 17, 9, 10.5F) + ), + VoxelShapes.union( + createCuboidShape(3, -1, 8, 11, 4, 15), + createCuboidShape(0.5F, -1, 0.5F, 8.5F, 9, 8.5F), + createCuboidShape(7.5F, -1, 2, 17, 13, 10.5F) + ) + }; + + protected RockCropBlock(Settings settings) { + super(settings); + } + + @Override + public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { + return AGE_TO_SHAPE[state.get(getAgeProperty())]; + } + + @Override + public void randomTick(BlockState state, ServerWorld world, BlockPos pos, Random random) { + if (canGrow(world, random, pos, state)) { + super.randomTick(state, world, pos, random); + } + } + + @Override + @Deprecated + public void onStateReplaced(BlockState state, World world, BlockPos pos, BlockState newState, boolean moved) { + super.onStateReplaced(state, world, pos, newState, moved); + if (!moved && !(state.getBlock() == this && newState.getBlock() == this)) { + if (!world.isClient) { + world.syncWorldEvent(WorldEvents.BONE_MEAL_USED, pos, 0); + } + } + } + + @Override + public boolean canGrow(World world, Random random, BlockPos pos, BlockState state) { + return world.getClosestPlayer(pos.getX(), pos.getY(), pos.getZ(), 20, EquinePredicates.PLAYER_CAN_USE_EARTH) != null; + } + + @Override + protected ItemConvertible getSeedsItem() { + return UItems.PEBBLES; + } +} diff --git a/src/main/java/com/minelittlepony/unicopia/block/UBlocks.java b/src/main/java/com/minelittlepony/unicopia/block/UBlocks.java new file mode 100644 index 00000000..3b356266 --- /dev/null +++ b/src/main/java/com/minelittlepony/unicopia/block/UBlocks.java @@ -0,0 +1,24 @@ +package com.minelittlepony.unicopia.block; + +import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.fabricmc.fabric.api.object.builder.v1.block.FabricMaterialBuilder; +import net.minecraft.block.Block; +import net.minecraft.block.MapColor; +import net.minecraft.sound.BlockSoundGroup; +import net.minecraft.util.Identifier; +import net.minecraft.util.registry.Registry; + +public interface UBlocks { + Block ROCKS = register("rocks", new RockCropBlock(FabricBlockSettings.of( + new FabricMaterialBuilder(MapColor.STONE_GRAY).allowsMovement().lightPassesThrough().notSolid().destroyedByPiston().build() + ) + .ticksRandomly() + .strength(2) + .sounds(BlockSoundGroup.STONE))); + + private static T register(String name, T item) { + return Registry.register(Registry.BLOCK, new Identifier("unicopia", name), item); + } + + static void bootstrap() {} +} diff --git a/src/main/java/com/minelittlepony/unicopia/item/RacePredicatedAliasedBlockItem.java b/src/main/java/com/minelittlepony/unicopia/item/RacePredicatedAliasedBlockItem.java new file mode 100644 index 00000000..e4bf9179 --- /dev/null +++ b/src/main/java/com/minelittlepony/unicopia/item/RacePredicatedAliasedBlockItem.java @@ -0,0 +1,31 @@ +package com.minelittlepony.unicopia.item; + +import java.util.function.Predicate; + +import com.minelittlepony.unicopia.Race; +import com.minelittlepony.unicopia.entity.player.Pony; + +import net.minecraft.block.Block; +import net.minecraft.item.AliasedBlockItem; +import net.minecraft.item.ItemUsageContext; +import net.minecraft.util.ActionResult; + +public class RacePredicatedAliasedBlockItem extends AliasedBlockItem { + + private Predicate predicate; + + public RacePredicatedAliasedBlockItem(Block block, Settings settings, Predicate predicate) { + super(block, settings); + this.predicate = predicate; + } + + @Override + public ActionResult useOnBlock(ItemUsageContext context) { + Pony pony = Pony.of(context.getPlayer()); + if (pony == null || !predicate.test(pony.getSpecies())) { + return ActionResult.FAIL; + } + + return super.useOnBlock(context); + } +} diff --git a/src/main/java/com/minelittlepony/unicopia/item/UItems.java b/src/main/java/com/minelittlepony/unicopia/item/UItems.java index a29d36c6..ba81296c 100644 --- a/src/main/java/com/minelittlepony/unicopia/item/UItems.java +++ b/src/main/java/com/minelittlepony/unicopia/item/UItems.java @@ -3,7 +3,9 @@ package com.minelittlepony.unicopia.item; import java.util.ArrayList; import java.util.List; +import com.minelittlepony.unicopia.Race; import com.minelittlepony.unicopia.USounds; +import com.minelittlepony.unicopia.block.UBlocks; import com.minelittlepony.unicopia.entity.UEntities; import com.minelittlepony.unicopia.item.enchantment.UEnchantments; import com.minelittlepony.unicopia.item.toxin.UFoodComponents; @@ -66,6 +68,10 @@ public interface UItems { Item HAY_FRIES = register("hay_fries", new Item(new Item.Settings().group(ItemGroup.FOOD).maxCount(16).food(UFoodComponents.HAY_FRIES))); Item WHEAT_WORMS = register("wheat_worms", new Item(new Item.Settings().group(ItemGroup.MISC).maxCount(16).food(UFoodComponents.INSECTS))); + Item PEBBLES = register("pebbles", new RacePredicatedAliasedBlockItem(UBlocks.ROCKS, new Item.Settings().group(ItemGroup.MATERIALS), Race::canUseEarth)); + Item ROCK = register("rock", new Item(new Item.Settings().group(ItemGroup.MATERIALS))); + Item ROCK_STEW = register("rock_stew", new Item(new Item.Settings().group(ItemGroup.FOOD))); + Item MUG = register("mug", new Item(new Settings().group(ItemGroup.MATERIALS).maxCount(16))); Item CIDER = register("cider", new DrinkableItem(new Item.Settings().group(ItemGroup.FOOD).food(UFoodComponents.CIDER).maxCount(1).recipeRemainder(MUG))); Item JUICE = register("juice", new DrinkableItem(new Item.Settings().group(ItemGroup.FOOD).recipeRemainder(Items.GLASS_BOTTLE).maxCount(1).food(UFoodComponents.JUICE))); @@ -93,7 +99,6 @@ public interface UItems { if (item instanceof BlockItem) { ((BlockItem)item).appendBlocks(Item.BLOCK_ITEMS, item); } - Items.MILK_BUCKET.appendStacks(null, null); return Registry.register(Registry.ITEM, new Identifier("unicopia", name), item); } diff --git a/src/main/resources/assets/unicopia/blockstates/rocks.json b/src/main/resources/assets/unicopia/blockstates/rocks.json new file mode 100644 index 00000000..67c465f4 --- /dev/null +++ b/src/main/resources/assets/unicopia/blockstates/rocks.json @@ -0,0 +1,28 @@ +{ + "variants": { + "age=0": { + "model": "unicopia:block/rocks_stage0" + }, + "age=1": { + "model": "unicopia:block/rocks_stage1" + }, + "age=2": { + "model": "unicopia:block/rocks_stage2" + }, + "age=3": { + "model": "unicopia:block/rocks_stage3" + }, + "age=4": { + "model": "unicopia:block/rocks_stage4" + }, + "age=5": { + "model": "unicopia:block/rocks_stage5" + }, + "age=6": { + "model": "unicopia:block/rocks_stage6" + }, + "age=7": { + "model": "unicopia:block/rocks_stage7" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/lang/en_us.json b/src/main/resources/assets/unicopia/lang/en_us.json index 836124df..8c4df720 100644 --- a/src/main/resources/assets/unicopia/lang/en_us.json +++ b/src/main/resources/assets/unicopia/lang/en_us.json @@ -48,6 +48,10 @@ "item.unicopia.juice": "Juice", "item.unicopia.burned_juice": "Burned Juice", + "item.unicopia.pebbles": "Pebbles", + "item.unicopia.rock": "Rock", + "item.unicopia.rock_stew": "Rock Stew", + "item.unicopia.daffodil_daisy_sandwich": "Daffodil Daisy Sandwich", "item.unicopia.hay_burger": "Hay Burger", "item.unicopia.hay_fries": "Hay Fries", @@ -69,6 +73,8 @@ "item.unicopia.music_disc_funk": "Music Disc", "item.unicopia.music_disc_funk.desc": "funk, just funk", + "block.unicopia.rocks": "Rocks", + "entity.unicopia.butterfly": "Butterfly", "entity.unicopia.cast_spell": "Cast Spell", "entity.unicopia.cast_spell.by": "a spell cast by %s", diff --git a/src/main/resources/assets/unicopia/models/block/rocks_stage0.json b/src/main/resources/assets/unicopia/models/block/rocks_stage0.json new file mode 100644 index 00000000..c7c5a793 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/block/rocks_stage0.json @@ -0,0 +1,46 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "block/stone" + }, + "elements": [ + { + "from": [4, -1, 4], + "to": [5, 0, 5], + "rotation": {"angle": -22.5, "axis": "y", "origin": [5, 0, 4]}, + "faces": { + "north": {"uv": [11, 0, 12, 1], "texture": "#all"}, + "east": {"uv": [11, 0, 12, 1], "texture": "#all"}, + "south": {"uv": [4, 0, 5, 1], "texture": "#all"}, + "west": {"uv": [4, 0, 5, 1], "texture": "#all"}, + "up": {"uv": [4, 4, 5, 5], "texture": "#all"}, + "down": {"uv": [4, 11, 5, 12], "texture": "#all"} + } + }, + { + "from": [7, -1, 11], + "to": [8, 0, 12], + "faces": { + "north": {"uv": [8, 0, 9, 1], "texture": "#all"}, + "east": {"uv": [4, 0, 5, 1], "texture": "#all"}, + "south": {"uv": [7, 0, 8, 1], "texture": "#all"}, + "west": {"uv": [11, 0, 12, 1], "texture": "#all"}, + "up": {"uv": [7, 11, 8, 12], "texture": "#all"}, + "down": {"uv": [7, 4, 8, 5], "texture": "#all"} + } + }, + { + "from": [12, -1, 6], + "to": [13, 0, 7], + "rotation": {"angle": 22.5, "axis": "y", "origin": [12, 0, 7]}, + "faces": { + "north": {"uv": [3, 0, 4, 1], "texture": "#all"}, + "east": {"uv": [9, 0, 10, 1], "texture": "#all"}, + "south": {"uv": [12, 0, 13, 1], "texture": "#all"}, + "west": {"uv": [6, 0, 7, 1], "texture": "#all"}, + "up": {"uv": [12, 6, 13, 7], "texture": "#all"}, + "down": {"uv": [12, 9, 13, 10], "texture": "#all"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/block/rocks_stage1.json b/src/main/resources/assets/unicopia/models/block/rocks_stage1.json new file mode 100644 index 00000000..259a6297 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/block/rocks_stage1.json @@ -0,0 +1,46 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "block/stone" + }, + "elements": [ + { + "from": [3, -1, 3], + "to": [6, 2, 6], + "rotation": {"angle": -22.5, "axis": "y", "origin": [5, 0, 4]}, + "faces": { + "north": {"uv": [10, 14, 13, 16], "texture": "#all"}, + "east": {"uv": [10, 14, 13, 16], "texture": "#all"}, + "south": {"uv": [3, 14, 6, 16], "texture": "#all"}, + "west": {"uv": [3, 14, 6, 16], "texture": "#all"}, + "up": {"uv": [3, 3, 6, 6], "texture": "#all"}, + "down": {"uv": [3, 10, 6, 13], "texture": "#all"} + } + }, + { + "from": [6, -2, 10], + "to": [9, 1, 13], + "faces": { + "north": {"uv": [7, 15, 10, 16], "texture": "#all"}, + "east": {"uv": [3, 15, 6, 16], "texture": "#all"}, + "south": {"uv": [6, 15, 9, 16], "texture": "#all"}, + "west": {"uv": [10, 15, 13, 16], "texture": "#all"}, + "up": {"uv": [6, 10, 9, 13], "texture": "#all"}, + "down": {"uv": [6, 3, 9, 6], "texture": "#all"} + } + }, + { + "from": [11, -1, 5], + "to": [14, 2, 8], + "rotation": {"angle": 22.5, "axis": "y", "origin": [12, 0, 7]}, + "faces": { + "north": {"uv": [2, 14, 5, 16], "texture": "#all"}, + "east": {"uv": [8, 14, 11, 16], "texture": "#all"}, + "south": {"uv": [11, 14, 14, 16], "texture": "#all"}, + "west": {"uv": [5, 14, 8, 16], "texture": "#all"}, + "up": {"uv": [11, 5, 14, 8], "texture": "#all"}, + "down": {"uv": [11, 8, 14, 11], "texture": "#all"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/block/rocks_stage2.json b/src/main/resources/assets/unicopia/models/block/rocks_stage2.json new file mode 100644 index 00000000..ee2f6251 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/block/rocks_stage2.json @@ -0,0 +1,46 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "block/stone" + }, + "elements": [ + { + "from": [2, -1, 2], + "to": [7, 3, 7], + "rotation": {"angle": -22.5, "axis": "y", "origin": [5, 0, 4]}, + "faces": { + "north": {"uv": [9, 13, 14, 16], "texture": "#all"}, + "east": {"uv": [9, 13, 14, 16], "texture": "#all"}, + "south": {"uv": [2, 13, 7, 16], "texture": "#all"}, + "west": {"uv": [2, 13, 7, 16], "texture": "#all"}, + "up": {"uv": [2, 2, 7, 7], "texture": "#all"}, + "down": {"uv": [2, 9, 7, 14], "texture": "#all"} + } + }, + { + "from": [4, -2, 9], + "to": [10, 2, 14], + "faces": { + "north": {"uv": [6, 14, 12, 16], "texture": "#all"}, + "east": {"uv": [2, 14, 7, 16], "texture": "#all"}, + "south": {"uv": [4, 14, 10, 16], "texture": "#all"}, + "west": {"uv": [9, 14, 14, 16], "texture": "#all"}, + "up": {"uv": [4, 9, 10, 14], "texture": "#all"}, + "down": {"uv": [4, 2, 10, 7], "texture": "#all"} + } + }, + { + "from": [10, -1, 4], + "to": [15, 3, 9], + "rotation": {"angle": 22.5, "axis": "y", "origin": [12, 0, 7]}, + "faces": { + "north": {"uv": [1, 13, 6, 16], "texture": "#all"}, + "east": {"uv": [7, 13, 12, 16], "texture": "#all"}, + "south": {"uv": [10, 13, 15, 16], "texture": "#all"}, + "west": {"uv": [4, 13, 9, 16], "texture": "#all"}, + "up": {"uv": [10, 4, 15, 9], "texture": "#all"}, + "down": {"uv": [10, 7, 15, 12], "texture": "#all"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/block/rocks_stage3.json b/src/main/resources/assets/unicopia/models/block/rocks_stage3.json new file mode 100644 index 00000000..4c48c887 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/block/rocks_stage3.json @@ -0,0 +1,46 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "block/stone" + }, + "elements": [ + { + "from": [2, -1, 2], + "to": [7, 4, 7], + "rotation": {"angle": -22.5, "axis": "y", "origin": [5, 0, 4]}, + "faces": { + "north": {"uv": [9, 12, 14, 16], "texture": "#all"}, + "east": {"uv": [9, 12, 14, 16], "texture": "#all"}, + "south": {"uv": [2, 12, 7, 16], "texture": "#all"}, + "west": {"uv": [2, 12, 7, 16], "texture": "#all"}, + "up": {"uv": [2, 2, 7, 7], "texture": "#all"}, + "down": {"uv": [2, 9, 7, 14], "texture": "#all"} + } + }, + { + "from": [4, -2, 9], + "to": [10, 2, 14], + "faces": { + "north": {"uv": [6, 14, 12, 16], "texture": "#all"}, + "east": {"uv": [2, 14, 7, 16], "texture": "#all"}, + "south": {"uv": [4, 14, 10, 16], "texture": "#all"}, + "west": {"uv": [9, 14, 14, 16], "texture": "#all"}, + "up": {"uv": [4, 9, 10, 14], "texture": "#all"}, + "down": {"uv": [4, 2, 10, 7], "texture": "#all"} + } + }, + { + "from": [10, -1, 4], + "to": [15, 3, 9], + "rotation": {"angle": 22.5, "axis": "y", "origin": [12, 0, 7]}, + "faces": { + "north": {"uv": [1, 13, 6, 16], "texture": "#all"}, + "east": {"uv": [7, 13, 12, 16], "texture": "#all"}, + "south": {"uv": [10, 13, 15, 16], "texture": "#all"}, + "west": {"uv": [4, 13, 9, 16], "texture": "#all"}, + "up": {"uv": [10, 4, 15, 9], "texture": "#all"}, + "down": {"uv": [10, 7, 15, 12], "texture": "#all"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/block/rocks_stage4.json b/src/main/resources/assets/unicopia/models/block/rocks_stage4.json new file mode 100644 index 00000000..426b8a98 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/block/rocks_stage4.json @@ -0,0 +1,46 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "block/stone" + }, + "elements": [ + { + "from": [1, -1, 1], + "to": [8, 5, 8], + "rotation": {"angle": -22.5, "axis": "y", "origin": [5, 0, 4]}, + "faces": { + "north": {"uv": [8, 11, 15, 16], "texture": "#all"}, + "east": {"uv": [8, 11, 15, 16], "texture": "#all"}, + "south": {"uv": [1, 11, 8, 16], "texture": "#all"}, + "west": {"uv": [1, 11, 8, 16], "texture": "#all"}, + "up": {"uv": [1, 1, 8, 8], "texture": "#all"}, + "down": {"uv": [1, 8, 8, 15], "texture": "#all"} + } + }, + { + "from": [3, -2, 8], + "to": [11, 3, 15], + "faces": { + "north": {"uv": [5, 13, 13, 16], "texture": "#all"}, + "east": {"uv": [1, 13, 8, 16], "texture": "#all"}, + "south": {"uv": [3, 13, 11, 16], "texture": "#all"}, + "west": {"uv": [8, 13, 15, 16], "texture": "#all"}, + "up": {"uv": [3, 8, 11, 15], "texture": "#all"}, + "down": {"uv": [3, 1, 11, 8], "texture": "#all"} + } + }, + { + "from": [9, -1, 3], + "to": [16, 5, 10], + "rotation": {"angle": 22.5, "axis": "y", "origin": [12, 0, 7]}, + "faces": { + "north": {"uv": [0, 11, 7, 16], "texture": "#all"}, + "east": {"uv": [6, 11, 13, 16], "texture": "#all"}, + "south": {"uv": [9, 11, 16, 16], "texture": "#all"}, + "west": {"uv": [3, 11, 10, 16], "texture": "#all"}, + "up": {"uv": [9, 3, 16, 10], "texture": "#all"}, + "down": {"uv": [9, 6, 16, 13], "texture": "#all"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/block/rocks_stage5.json b/src/main/resources/assets/unicopia/models/block/rocks_stage5.json new file mode 100644 index 00000000..7da929d1 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/block/rocks_stage5.json @@ -0,0 +1,46 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "block/stone" + }, + "elements": [ + { + "from": [1, -1, 1], + "to": [8, 5, 8], + "rotation": {"angle": -22.5, "axis": "y", "origin": [5, 0, 4]}, + "faces": { + "north": {"uv": [8, 11, 15, 16], "texture": "#all"}, + "east": {"uv": [8, 11, 15, 16], "texture": "#all"}, + "south": {"uv": [1, 11, 8, 16], "texture": "#all"}, + "west": {"uv": [1, 11, 8, 16], "texture": "#all"}, + "up": {"uv": [1, 1, 8, 8], "texture": "#all"}, + "down": {"uv": [1, 8, 8, 15], "texture": "#all"} + } + }, + { + "from": [3, -2, 8], + "to": [11, 4, 15], + "faces": { + "north": {"uv": [5, 12, 13, 16], "texture": "#all"}, + "east": {"uv": [1, 12, 8, 16], "texture": "#all"}, + "south": {"uv": [3, 12, 11, 16], "texture": "#all"}, + "west": {"uv": [8, 12, 15, 16], "texture": "#all"}, + "up": {"uv": [3, 8, 11, 15], "texture": "#all"}, + "down": {"uv": [3, 1, 11, 8], "texture": "#all"} + } + }, + { + "from": [9, -1, 3], + "to": [16, 7, 10], + "rotation": {"angle": 22.5, "axis": "y", "origin": [12, 0, 7]}, + "faces": { + "north": {"uv": [0, 9, 7, 16], "texture": "#all"}, + "east": {"uv": [6, 9, 13, 16], "texture": "#all"}, + "south": {"uv": [9, 9, 16, 16], "texture": "#all"}, + "west": {"uv": [3, 9, 10, 16], "texture": "#all"}, + "up": {"uv": [9, 3, 16, 10], "texture": "#all"}, + "down": {"uv": [9, 6, 16, 13], "texture": "#all"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/block/rocks_stage6.json b/src/main/resources/assets/unicopia/models/block/rocks_stage6.json new file mode 100644 index 00000000..13f507a9 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/block/rocks_stage6.json @@ -0,0 +1,46 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "block/stone" + }, + "elements": [ + { + "from": [1, -1, 1], + "to": [8, 7, 8], + "rotation": {"angle": -22.5, "axis": "y", "origin": [5, 0, 4]}, + "faces": { + "north": {"uv": [8, 9, 15, 16], "texture": "#all"}, + "east": {"uv": [8, 9, 15, 16], "texture": "#all"}, + "south": {"uv": [1, 9, 8, 16], "texture": "#all"}, + "west": {"uv": [1, 9, 8, 16], "texture": "#all"}, + "up": {"uv": [1, 1, 8, 8], "texture": "#all"}, + "down": {"uv": [1, 8, 8, 15], "texture": "#all"} + } + }, + { + "from": [3, -2, 8], + "to": [11, 4, 15], + "faces": { + "north": {"uv": [5, 12, 13, 16], "texture": "#all"}, + "east": {"uv": [1, 12, 8, 16], "texture": "#all"}, + "south": {"uv": [3, 12, 11, 16], "texture": "#all"}, + "west": {"uv": [8, 12, 15, 16], "texture": "#all"}, + "up": {"uv": [3, 8, 11, 15], "texture": "#all"}, + "down": {"uv": [3, 1, 11, 8], "texture": "#all"} + } + }, + { + "from": [9, -1, 3], + "to": [16, 9, 10], + "rotation": {"angle": 22.5, "axis": "y", "origin": [12, 0, 7]}, + "faces": { + "north": {"uv": [0, 7, 7, 16], "texture": "#all"}, + "east": {"uv": [6, 7, 13, 16], "texture": "#all"}, + "south": {"uv": [9, 7, 16, 16], "texture": "#all"}, + "west": {"uv": [3, 7, 10, 16], "texture": "#all"}, + "up": {"uv": [9, 3, 16, 10], "texture": "#all"}, + "down": {"uv": [9, 6, 16, 13], "texture": "#all"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/block/rocks_stage7.json b/src/main/resources/assets/unicopia/models/block/rocks_stage7.json new file mode 100644 index 00000000..af93b0d5 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/block/rocks_stage7.json @@ -0,0 +1,46 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "block/stone" + }, + "elements": [ + { + "from": [1, -1, 1], + "to": [8, 9, 8], + "rotation": {"angle": -22.5, "axis": "y", "origin": [5, 0, 4]}, + "faces": { + "north": {"uv": [8, 7, 15, 16], "texture": "#all"}, + "east": {"uv": [8, 7, 15, 16], "texture": "#all"}, + "south": {"uv": [1, 7, 8, 16], "texture": "#all"}, + "west": {"uv": [1, 7, 8, 16], "texture": "#all"}, + "up": {"uv": [1, 1, 8, 8], "texture": "#all"}, + "down": {"uv": [1, 8, 8, 15], "texture": "#all"} + } + }, + { + "from": [3, -2, 8], + "to": [11, 4, 15], + "faces": { + "north": {"uv": [5, 12, 13, 16], "texture": "#all"}, + "east": {"uv": [1, 12, 8, 16], "texture": "#all"}, + "south": {"uv": [3, 12, 11, 16], "texture": "#all"}, + "west": {"uv": [8, 12, 15, 16], "texture": "#all"}, + "up": {"uv": [3, 8, 11, 15], "texture": "#all"}, + "down": {"uv": [3, 1, 11, 8], "texture": "#all"} + } + }, + { + "from": [9, -1, 3], + "to": [16, 13, 10], + "rotation": {"angle": 22.5, "axis": "y", "origin": [12, 0, 7]}, + "faces": { + "north": {"uv": [0, 3, 7, 16], "texture": "#all"}, + "east": {"uv": [6, 3, 13, 16], "texture": "#all"}, + "south": {"uv": [9, 3, 16, 16], "texture": "#all"}, + "west": {"uv": [3, 3, 10, 16], "texture": "#all"}, + "up": {"uv": [9, 3, 16, 10], "texture": "#all"}, + "down": {"uv": [9, 6, 16, 13], "texture": "#all"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/item/pebbles.json b/src/main/resources/assets/unicopia/models/item/pebbles.json new file mode 100644 index 00000000..b97fe49f --- /dev/null +++ b/src/main/resources/assets/unicopia/models/item/pebbles.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "unicopia:item/pebbles" + } +} diff --git a/src/main/resources/assets/unicopia/models/item/rock.json b/src/main/resources/assets/unicopia/models/item/rock.json new file mode 100644 index 00000000..f959182a --- /dev/null +++ b/src/main/resources/assets/unicopia/models/item/rock.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "unicopia:item/rock" + } +} diff --git a/src/main/resources/assets/unicopia/models/item/rock_stew.json b/src/main/resources/assets/unicopia/models/item/rock_stew.json new file mode 100644 index 00000000..632b6863 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/item/rock_stew.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "unicopia:item/rock_stew" + } +} diff --git a/src/main/resources/assets/unicopia/textures/item/pebbles.png b/src/main/resources/assets/unicopia/textures/item/pebbles.png new file mode 100644 index 0000000000000000000000000000000000000000..1a3b1428a08750b7efbd5ad24d2f0421b7ddb415 GIT binary patch literal 3243 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/unicopia/textures/item/rock_stew.png b/src/main/resources/assets/unicopia/textures/item/rock_stew.png new file mode 100644 index 0000000000000000000000000000000000000000..a89cbb418ba31efaf7d79a0e5bd6671a52277215 GIT binary patch literal 2976 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 W#$5kuaSB`j0000