diff --git a/CHANGELOG.md b/CHANGELOG.md index 3a4a27c..d1f0689 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,9 @@ After publishing, the action prepares the next development version and archives ## Unreleased +- The villager faces sit in the barrel instead of sticking out. The market opening is an oval. The automaton opening is an oval over a square cut, and its bottom stays solid. The nose is narrower. +- Simplified Chinese covers the Market Automaton and its window. +- The mod description mentions the Market Automaton as well as the market block. - A Market Automaton trades on its own, at the same speed as a hopper. Choose an offer, put the payment in the two slots or let a hopper fill them, and take the result from the bottom. The choice stays when the trade locks, and you can take the payment back out of the window. - The furnace arrow sits between the payment and the result. A button on the right side of the window chooses whether the block ignores redstone, runs only while powered, or runs only while unpowered. - Each automaton offer shows `[max: uses left]`, or `[locked]` once none remain. That label updates while the window stays open. diff --git a/README.md b/README.md index 2b79dbc..d2f4dbc 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Villager Market -One block for trading with nearby villagers. +Trade with nearby villagers from one block, or let a Market Automaton trade for you. The Villager Market looks for villagers within 48 blocks, and 16 blocks up or down. Their offers are grouped by a custom name when they have one, and by profession otherwise. Show All, on by default, lists offers you cannot pay for yet. x1 buys the selected offer once. xN buys as many as you can pay for and the offer still has left. The window closes when you walk more than 8 blocks away. diff --git a/fabric/src/main/java/net/modcrafters/minecraft/villagermarket/fabric/gametest/FabricMarketGameTests.java b/fabric/src/main/java/net/modcrafters/minecraft/villagermarket/fabric/gametest/FabricMarketGameTests.java index 3f4ddc2..3534887 100644 --- a/fabric/src/main/java/net/modcrafters/minecraft/villagermarket/fabric/gametest/FabricMarketGameTests.java +++ b/fabric/src/main/java/net/modcrafters/minecraft/villagermarket/fabric/gametest/FabricMarketGameTests.java @@ -5,47 +5,47 @@ import net.minecraft.gametest.framework.GameTestHelper; public class FabricMarketGameTests { - @GameTest(structure = "minecraft:empty") + @GameTest(structure = "villagermarket:wide") public void oneEmeraldBuysBread(GameTestHelper helper) { MarketGameTests.oneEmeraldBuysBread(helper); } - @GameTest(structure = "minecraft:empty") + @GameTest(structure = "villagermarket:wide") public void componentsMustMatch(GameTestHelper helper) { MarketGameTests.componentsMustMatch(helper); } - @GameTest(structure = "minecraft:empty") + @GameTest(structure = "villagermarket:wide") public void villagerOutsideTheBoxIsNotTraded(GameTestHelper helper) { MarketGameTests.villagerOutsideTheBoxIsNotTraded(helper); } - @GameTest(structure = "minecraft:empty") + @GameTest(structure = "villagermarket:wide") public void adjustedPriceIsWhatIsCharged(GameTestHelper helper) { MarketGameTests.adjustedPriceIsWhatIsCharged(helper); } - @GameTest(structure = "minecraft:empty") + @GameTest(structure = "villagermarket:wide") public void experienceLandsOnThePlayer(GameTestHelper helper) { MarketGameTests.experienceLandsOnThePlayer(helper); } - @GameTest(structure = "minecraft:empty") + @GameTest(structure = "villagermarket:wide") public void automatonTradesFromItsSlots(GameTestHelper helper) { MarketGameTests.automatonTradesFromItsSlots(helper); } - @GameTest(structure = "minecraft:empty") + @GameTest(structure = "villagermarket:wide") public void automatonRejectsADifferentBook(GameTestHelper helper) { MarketGameTests.automatonRejectsADifferentBook(helper); } - @GameTest(structure = "minecraft:empty") + @GameTest(structure = "villagermarket:wide") public void automatonStopsWithoutRedstone(GameTestHelper helper) { MarketGameTests.automatonStopsWithoutRedstone(helper); } - @GameTest(structure = "minecraft:empty") + @GameTest(structure = "villagermarket:wide") public void automatonBuysTheCheapestSimilar(GameTestHelper helper) { MarketGameTests.automatonBuysTheCheapestSimilar(helper); } diff --git a/gradle.properties b/gradle.properties index ee4f527..96e1ad3 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,7 +11,7 @@ mod_author=Face_of_Cat mod_id=villagermarket license=MIT credits= -description=One block for trading with nearby villagers. +description=Trade with nearby villagers from one block, or let a Market Automaton trade for you. # Stonecutter refuses to run when the generated sources are not the VCS version. dev.kikugie.stonecutter.hard_mode=true diff --git a/neoforge/src/main/java/net/modcrafters/minecraft/villagermarket/neoforge/gametest/NeoForgeMarketGameTests.java b/neoforge/src/main/java/net/modcrafters/minecraft/villagermarket/neoforge/gametest/NeoForgeMarketGameTests.java index 45c83c8..7d07c23 100644 --- a/neoforge/src/main/java/net/modcrafters/minecraft/villagermarket/neoforge/gametest/NeoForgeMarketGameTests.java +++ b/neoforge/src/main/java/net/modcrafters/minecraft/villagermarket/neoforge/gametest/NeoForgeMarketGameTests.java @@ -51,7 +51,7 @@ private static void registerTests(RegisterGameTestsEvent event) { for (MarketGameTests.Case test : MarketGameTests.CASES) { event.registerTest(id(test.name()), new FunctionGameTestInstance( ResourceKey.create(Registries.TEST_FUNCTION, id(test.name())), - new TestData<>(environment, Identifier.withDefaultNamespace("empty"), 100, 0, true) + new TestData<>(environment, id("wide"), 100, 0, true) )); } } diff --git a/src/main/java/net/modcrafters/minecraft/villagermarket/gametest/MarketGameTests.java b/src/main/java/net/modcrafters/minecraft/villagermarket/gametest/MarketGameTests.java index 61f9bc7..07b5355 100644 --- a/src/main/java/net/modcrafters/minecraft/villagermarket/gametest/MarketGameTests.java +++ b/src/main/java/net/modcrafters/minecraft/villagermarket/gametest/MarketGameTests.java @@ -22,14 +22,17 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; import net.minecraft.world.item.trading.ItemCost; +import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Blocks; //? if >=26.1 import net.minecraft.world.level.GameType; import net.minecraft.world.item.trading.MerchantOffer; import net.minecraft.world.item.trading.MerchantOffers; +import java.util.HashSet; import java.util.List; import java.util.Optional; +import java.util.Set; import java.util.function.Consumer; public final class MarketGameTests { @@ -58,7 +61,7 @@ public static void oneEmeraldBuysBread(GameTestHelper helper) { TradeExecutor.Result result = TradeExecutor.execute(player, villager.blockPosition(), villager.getId(), 0, 1); - helper.assertTrue(result.performed() == 1, "performed " + result.performed()); + helper.assertTrue(result.performed() == 1, "performed " + result.performed() + " outOfRange " + result.outOfRange()); helper.assertTrue(count(player, Items.BREAD) == 1, "bread " + count(player, Items.BREAD)); helper.assertTrue(count(player, Items.EMERALD) == 0, "emeralds left " + count(player, Items.EMERALD)); helper.succeed(); @@ -114,23 +117,13 @@ public static void experienceLandsOnThePlayer(GameTestHelper helper) { ServerPlayer player = player(helper); player.setPos(villager.getX() + 8, villager.getY(), villager.getZ()); player.getInventory().add(new ItemStack(Items.EMERALD)); + AABB area = villager.getBoundingBox().minmax(player.getBoundingBox()).inflate(2); + Set before = orbIds(helper.getLevel(), area); TradeExecutor.Result result = TradeExecutor.execute(player, villager.blockPosition(), villager.getId(), 0, 1); helper.assertTrue(result.performed() == 1, "performed " + result.performed()); - AABB area = villager.getBoundingBox().minmax(player.getBoundingBox()).inflate(2); - boolean onPlayer = false; - boolean onVillager = false; - for (ExperienceOrb orb : player.level().getEntitiesOfClass(ExperienceOrb.class, area)) { - if (orb.distanceToSqr(player) < 4) { - onPlayer = true; - } - if (orb.distanceToSqr(villager) < 4) { - onVillager = true; - } - } - helper.assertTrue(onPlayer, "the experience orb was not on the player"); - helper.assertTrue(!onVillager, "the experience orb stayed on the villager"); + assertRewardMoved(helper, area, before, player.position(), villager.position(), "player"); helper.succeed(); } @@ -144,24 +137,14 @@ public static void automatonTradesFromItsSlots(GameTestHelper helper) { machine.arm(deal.getCostA(), ItemStack.EMPTY, deal.getResult()); machine.setItem(MachineSlots.INPUT_A, new ItemStack(Items.DIAMOND, 3)); BlockPos absolute = helper.absolutePos(at); + AABB area = new AABB(absolute).inflate(8); + Set before = orbIds(helper.getLevel(), area); tick(helper, machine, absolute); helper.assertTrue(machine.getItem(MachineSlots.OUTPUT).is(Items.BREAD) && machine.getItem(MachineSlots.OUTPUT).getCount() == 1, "first bread"); helper.assertTrue(machine.getItem(MachineSlots.INPUT_A).getCount() == 2, "diamonds after one trade"); helper.assertTrue(!machine.canTakeItemThroughFace(MachineSlots.INPUT_A, machine.getItem(MachineSlots.INPUT_A), Direction.NORTH), "a side hopper pulled the payment"); helper.assertTrue(machine.canTakeItemThroughFace(MachineSlots.OUTPUT, machine.getItem(MachineSlots.OUTPUT), Direction.DOWN), "the bottom could not take the result"); - AABB area = new AABB(absolute).inflate(8); - boolean onBlock = false; - boolean onVillager = false; - for (ExperienceOrb orb : helper.getLevel().getEntitiesOfClass(ExperienceOrb.class, area)) { - if (orb.distanceToSqr(Vec3.atCenterOf(absolute)) < 4) { - onBlock = true; - } - if (orb.distanceToSqr(villager) < 4) { - onVillager = true; - } - } - helper.assertTrue(onBlock, "the experience orb was not on the automaton"); - helper.assertTrue(!onVillager, "the experience orb stayed on the villager"); + assertRewardMoved(helper, area, before, Vec3.atCenterOf(absolute), villager.position(), "automaton"); tick(helper, machine, absolute); helper.assertTrue(machine.getItem(MachineSlots.OUTPUT).getCount() == 2, "second bread"); helper.assertTrue(machine.getItem(MachineSlots.INPUT_A).getCount() == 1, "the locked trade kept spending"); @@ -232,6 +215,32 @@ public static void automatonBuysTheCheapestSimilar(GameTestHelper helper) { helper.succeed(); } + private static Set orbIds(Level level, AABB area) { + Set ids = new HashSet<>(); + for (ExperienceOrb orb : level.getEntitiesOfClass(ExperienceOrb.class, area)) { + ids.add(orb.getId()); + } + return ids; + } + + private static void assertRewardMoved(GameTestHelper helper, AABB area, Set before, Vec3 destination, Vec3 origin, String where) { + boolean arrived = false; + boolean stayed = false; + for (ExperienceOrb orb : helper.getLevel().getEntitiesOfClass(ExperienceOrb.class, area)) { + if (before.contains(orb.getId())) { + continue; + } + if (orb.distanceToSqr(destination) < 4.0) { + arrived = true; + } + if (orb.distanceToSqr(origin) < 4.0) { + stayed = true; + } + } + helper.assertTrue(arrived, "the experience orb was not on the " + where); + helper.assertTrue(!stayed, "the experience orb stayed on the villager"); + } + private static MarketAutomatonBlockEntity machine(GameTestHelper helper, BlockPos at) { //? if >=26.1 { return helper.getBlockEntity(at, MarketAutomatonBlockEntity.class); diff --git a/src/main/resources/assets/villagermarket/lang/zh_cn.json b/src/main/resources/assets/villagermarket/lang/zh_cn.json index 47a8389..c1d16d6 100644 --- a/src/main/resources/assets/villagermarket/lang/zh_cn.json +++ b/src/main/resources/assets/villagermarket/lang/zh_cn.json @@ -1,9 +1,17 @@ { "block.villagermarket.villager_market": "村民市场方块", + "block.villagermarket.market_automaton": "市场自动机方块", "itemGroup.villagermarket": "村民市场", "gui.villagermarket.all": "[ 全部 ]", "gui.villagermarket.show_all": "显示全部", "gui.villagermarket.available": "可购买", "gui.villagermarket.once": "x 1", - "gui.villagermarket.offer_count": "[可购买 / 锁定前剩余]" + "gui.villagermarket.offer_count": "[可购买 / 锁定前剩余]", + "gui.villagermarket.max_uses": "[上限: %s]", + "gui.villagermarket.locked": "[已锁定]", + "gui.villagermarket.redstone.ignored": "忽略红石", + "gui.villagermarket.redstone.powered": "充能时运行", + "gui.villagermarket.redstone.unpowered": "未充能时运行", + "gui.villagermarket.similar.on": "包含相似交易,并购买当前能支付的最便宜的一项", + "gui.villagermarket.similar.off": "仅限所选交易" } diff --git a/src/main/resources/assets/villagermarket/models/block/market_automaton.json b/src/main/resources/assets/villagermarket/models/block/market_automaton.json index 4a1fea3..75509ed 100644 --- a/src/main/resources/assets/villagermarket/models/block/market_automaton.json +++ b/src/main/resources/assets/villagermarket/models/block/market_automaton.json @@ -9,137 +9,421 @@ "mouth": "minecraft:block/hopper_inside" }, "elements": [ - { - "from": [0, 0, 0], - "to": [16, 16, 16], - "faces": { - "north": { "texture": "#side", "cullface": "north" }, - "south": { "texture": "#side", "cullface": "south" }, - "east": { "texture": "#side", "cullface": "east" }, - "west": { "texture": "#side", "cullface": "west" }, - "up": { "texture": "#lid", "cullface": "up" }, - "down": { "texture": "#lid", "cullface": "down" } - } - }, - { "from": [4, 6, -1], "to": [12, 16, 0], "faces": { + { "from": [2, 0, 2], "to": [14, 16, 14], "faces": { + "north": { "texture": "#side" }, + "south": { "texture": "#side" }, + "east": { "texture": "#side" }, + "west": { "texture": "#side" }, + "up": { "texture": "#lid", "cullface": "up" }, + "down": { "texture": "#lid", "cullface": "down" } + }}, + { "from": [0, 0, 0], "to": [2, 16, 2], "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "west": { "texture": "#side", "cullface": "west" }, + "up": { "texture": "#lid", "cullface": "up" }, + "down": { "texture": "#lid", "cullface": "down" } + }}, + { "from": [14, 0, 0], "to": [16, 16, 2], "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "east": { "texture": "#side", "cullface": "east" }, + "up": { "texture": "#lid", "cullface": "up" }, + "down": { "texture": "#lid", "cullface": "down" } + }}, + { "from": [0, 0, 14], "to": [2, 16, 16], "faces": { + "south": { "texture": "#side", "cullface": "south" }, + "west": { "texture": "#side", "cullface": "west" }, + "up": { "texture": "#lid", "cullface": "up" }, + "down": { "texture": "#lid", "cullface": "down" } + }}, + { "from": [14, 0, 14], "to": [16, 16, 16], "faces": { + "south": { "texture": "#side", "cullface": "south" }, + "east": { "texture": "#side", "cullface": "east" }, + "up": { "texture": "#lid", "cullface": "up" }, + "down": { "texture": "#lid", "cullface": "down" } + }}, + { "from": [2, 0, 0], "to": [3, 1, 2], "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "down": { "texture": "#lid", "cullface": "down" } + }}, + { "from": [3, 0, 0], "to": [13, 1, 2], "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "up": { "texture": "#side" }, + "down": { "texture": "#lid", "cullface": "down" } + }}, + { "from": [13, 0, 0], "to": [14, 1, 2], "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "down": { "texture": "#lid", "cullface": "down" } + }}, + { "from": [2, 1, 0], "to": [3, 13, 2], "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "east": { "texture": "#side" } + }}, + { "from": [13, 1, 0], "to": [14, 13, 2], "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "west": { "texture": "#side" } + }}, + { "from": [2, 13, 0], "to": [3, 14, 2], "faces": { + "north": { "texture": "#side", "cullface": "north" } + }}, + { "from": [3, 13, 0], "to": [4, 14, 2], "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "east": { "texture": "#side" }, + "down": { "texture": "#side" } + }}, + { "from": [12, 13, 0], "to": [13, 14, 2], "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "west": { "texture": "#side" }, + "down": { "texture": "#side" } + }}, + { "from": [13, 13, 0], "to": [14, 14, 2], "faces": { + "north": { "texture": "#side", "cullface": "north" } + }}, + { "from": [2, 14, 0], "to": [4, 15, 2], "faces": { + "north": { "texture": "#side", "cullface": "north" } + }}, + { "from": [4, 14, 0], "to": [5, 15, 2], "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "east": { "texture": "#side" }, + "down": { "texture": "#side" } + }}, + { "from": [11, 14, 0], "to": [12, 15, 2], "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "west": { "texture": "#side" }, + "down": { "texture": "#side" } + }}, + { "from": [12, 14, 0], "to": [14, 15, 2], "faces": { + "north": { "texture": "#side", "cullface": "north" } + }}, + { "from": [2, 15, 0], "to": [5, 16, 2], "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "up": { "texture": "#lid", "cullface": "up" } + }}, + { "from": [5, 15, 0], "to": [11, 16, 2], "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "up": { "texture": "#lid", "cullface": "up" }, + "down": { "texture": "#side" } + }}, + { "from": [11, 15, 0], "to": [14, 16, 2], "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "up": { "texture": "#lid", "cullface": "up" } + }}, + { "from": [2, 0, 14], "to": [3, 1, 16], "faces": { + "south": { "texture": "#side", "cullface": "south" }, + "down": { "texture": "#lid", "cullface": "down" } + }}, + { "from": [3, 0, 14], "to": [13, 1, 16], "faces": { + "south": { "texture": "#side", "cullface": "south" }, + "up": { "texture": "#side" }, + "down": { "texture": "#lid", "cullface": "down" } + }}, + { "from": [13, 0, 14], "to": [14, 1, 16], "faces": { + "south": { "texture": "#side", "cullface": "south" }, + "down": { "texture": "#lid", "cullface": "down" } + }}, + { "from": [2, 1, 14], "to": [3, 13, 16], "faces": { + "south": { "texture": "#side", "cullface": "south" }, + "east": { "texture": "#side" } + }}, + { "from": [13, 1, 14], "to": [14, 13, 16], "faces": { + "south": { "texture": "#side", "cullface": "south" }, + "west": { "texture": "#side" } + }}, + { "from": [2, 13, 14], "to": [3, 14, 16], "faces": { + "south": { "texture": "#side", "cullface": "south" } + }}, + { "from": [3, 13, 14], "to": [4, 14, 16], "faces": { + "south": { "texture": "#side", "cullface": "south" }, + "east": { "texture": "#side" }, + "down": { "texture": "#side" } + }}, + { "from": [12, 13, 14], "to": [13, 14, 16], "faces": { + "south": { "texture": "#side", "cullface": "south" }, + "west": { "texture": "#side" }, + "down": { "texture": "#side" } + }}, + { "from": [13, 13, 14], "to": [14, 14, 16], "faces": { + "south": { "texture": "#side", "cullface": "south" } + }}, + { "from": [2, 14, 14], "to": [4, 15, 16], "faces": { + "south": { "texture": "#side", "cullface": "south" } + }}, + { "from": [4, 14, 14], "to": [5, 15, 16], "faces": { + "south": { "texture": "#side", "cullface": "south" }, + "east": { "texture": "#side" }, + "down": { "texture": "#side" } + }}, + { "from": [11, 14, 14], "to": [12, 15, 16], "faces": { + "south": { "texture": "#side", "cullface": "south" }, + "west": { "texture": "#side" }, + "down": { "texture": "#side" } + }}, + { "from": [12, 14, 14], "to": [14, 15, 16], "faces": { + "south": { "texture": "#side", "cullface": "south" } + }}, + { "from": [2, 15, 14], "to": [5, 16, 16], "faces": { + "south": { "texture": "#side", "cullface": "south" }, + "up": { "texture": "#lid", "cullface": "up" } + }}, + { "from": [5, 15, 14], "to": [11, 16, 16], "faces": { + "south": { "texture": "#side", "cullface": "south" }, + "up": { "texture": "#lid", "cullface": "up" }, + "down": { "texture": "#side" } + }}, + { "from": [11, 15, 14], "to": [14, 16, 16], "faces": { + "south": { "texture": "#side", "cullface": "south" }, + "up": { "texture": "#lid", "cullface": "up" } + }}, + { "from": [0, 0, 2], "to": [2, 1, 3], "faces": { + "west": { "texture": "#side", "cullface": "west" }, + "down": { "texture": "#lid", "cullface": "down" } + }}, + { "from": [0, 0, 3], "to": [2, 1, 13], "faces": { + "west": { "texture": "#side", "cullface": "west" }, + "up": { "texture": "#side" }, + "down": { "texture": "#lid", "cullface": "down" } + }}, + { "from": [0, 0, 13], "to": [2, 1, 14], "faces": { + "west": { "texture": "#side", "cullface": "west" }, + "down": { "texture": "#lid", "cullface": "down" } + }}, + { "from": [0, 1, 2], "to": [2, 13, 3], "faces": { + "south": { "texture": "#side" }, + "west": { "texture": "#side", "cullface": "west" } + }}, + { "from": [0, 1, 13], "to": [2, 13, 14], "faces": { + "north": { "texture": "#side" }, + "west": { "texture": "#side", "cullface": "west" } + }}, + { "from": [0, 13, 2], "to": [2, 14, 3], "faces": { + "west": { "texture": "#side", "cullface": "west" } + }}, + { "from": [0, 13, 3], "to": [2, 14, 4], "faces": { + "south": { "texture": "#side" }, + "west": { "texture": "#side", "cullface": "west" }, + "down": { "texture": "#side" } + }}, + { "from": [0, 13, 12], "to": [2, 14, 13], "faces": { + "north": { "texture": "#side" }, + "west": { "texture": "#side", "cullface": "west" }, + "down": { "texture": "#side" } + }}, + { "from": [0, 13, 13], "to": [2, 14, 14], "faces": { + "west": { "texture": "#side", "cullface": "west" } + }}, + { "from": [0, 14, 2], "to": [2, 15, 4], "faces": { + "west": { "texture": "#side", "cullface": "west" } + }}, + { "from": [0, 14, 4], "to": [2, 15, 5], "faces": { + "south": { "texture": "#side" }, + "west": { "texture": "#side", "cullface": "west" }, + "down": { "texture": "#side" } + }}, + { "from": [0, 14, 11], "to": [2, 15, 12], "faces": { + "north": { "texture": "#side" }, + "west": { "texture": "#side", "cullface": "west" }, + "down": { "texture": "#side" } + }}, + { "from": [0, 14, 12], "to": [2, 15, 14], "faces": { + "west": { "texture": "#side", "cullface": "west" } + }}, + { "from": [0, 15, 2], "to": [2, 16, 5], "faces": { + "west": { "texture": "#side", "cullface": "west" }, + "up": { "texture": "#lid", "cullface": "up" } + }}, + { "from": [0, 15, 5], "to": [2, 16, 11], "faces": { + "west": { "texture": "#side", "cullface": "west" }, + "up": { "texture": "#lid", "cullface": "up" }, + "down": { "texture": "#side" } + }}, + { "from": [0, 15, 11], "to": [2, 16, 14], "faces": { + "west": { "texture": "#side", "cullface": "west" }, + "up": { "texture": "#lid", "cullface": "up" } + }}, + { "from": [14, 0, 2], "to": [16, 1, 3], "faces": { + "east": { "texture": "#side", "cullface": "east" }, + "down": { "texture": "#lid", "cullface": "down" } + }}, + { "from": [14, 0, 3], "to": [16, 1, 13], "faces": { + "east": { "texture": "#side", "cullface": "east" }, + "up": { "texture": "#side" }, + "down": { "texture": "#lid", "cullface": "down" } + }}, + { "from": [14, 0, 13], "to": [16, 1, 14], "faces": { + "east": { "texture": "#side", "cullface": "east" }, + "down": { "texture": "#lid", "cullface": "down" } + }}, + { "from": [14, 1, 2], "to": [16, 13, 3], "faces": { + "south": { "texture": "#side" }, + "east": { "texture": "#side", "cullface": "east" } + }}, + { "from": [14, 1, 13], "to": [16, 13, 14], "faces": { + "north": { "texture": "#side" }, + "east": { "texture": "#side", "cullface": "east" } + }}, + { "from": [14, 13, 2], "to": [16, 14, 3], "faces": { + "east": { "texture": "#side", "cullface": "east" } + }}, + { "from": [14, 13, 3], "to": [16, 14, 4], "faces": { + "south": { "texture": "#side" }, + "east": { "texture": "#side", "cullface": "east" }, + "down": { "texture": "#side" } + }}, + { "from": [14, 13, 12], "to": [16, 14, 13], "faces": { + "north": { "texture": "#side" }, + "east": { "texture": "#side", "cullface": "east" }, + "down": { "texture": "#side" } + }}, + { "from": [14, 13, 13], "to": [16, 14, 14], "faces": { + "east": { "texture": "#side", "cullface": "east" } + }}, + { "from": [14, 14, 2], "to": [16, 15, 4], "faces": { + "east": { "texture": "#side", "cullface": "east" } + }}, + { "from": [14, 14, 4], "to": [16, 15, 5], "faces": { + "south": { "texture": "#side" }, + "east": { "texture": "#side", "cullface": "east" }, + "down": { "texture": "#side" } + }}, + { "from": [14, 14, 11], "to": [16, 15, 12], "faces": { + "north": { "texture": "#side" }, + "east": { "texture": "#side", "cullface": "east" }, + "down": { "texture": "#side" } + }}, + { "from": [14, 14, 12], "to": [16, 15, 14], "faces": { + "east": { "texture": "#side", "cullface": "east" } + }}, + { "from": [14, 15, 2], "to": [16, 16, 5], "faces": { + "east": { "texture": "#side", "cullface": "east" }, + "up": { "texture": "#lid", "cullface": "up" } + }}, + { "from": [14, 15, 5], "to": [16, 16, 11], "faces": { + "east": { "texture": "#side", "cullface": "east" }, + "up": { "texture": "#lid", "cullface": "up" }, + "down": { "texture": "#side" } + }}, + { "from": [14, 15, 11], "to": [16, 16, 14], "faces": { + "east": { "texture": "#side", "cullface": "east" }, + "up": { "texture": "#lid", "cullface": "up" } + }}, + { "from": [4, 7, 1], "to": [12, 13, 2], "faces": { "north": { "texture": "#face", "uv": [0, 0, 8, 10] }, - "up": { "texture": "#face", "uv": [15, 0, 16, 1] }, - "down": { "texture": "#face", "uv": [15, 15, 16, 16] }, "east": { "texture": "#face", "uv": [15, 0, 16, 1] }, - "west": { "texture": "#face", "uv": [15, 0, 16, 1] } - }}, - { "from": [6, 6, -2], "to": [10, 10, -1], "faces": { - "north": { "texture": "#face", "uv": [2, 6, 6, 10] }, - "up": { "texture": "#face", "uv": [15, 15, 16, 16] }, - "down": { "texture": "#face", "uv": [15, 15, 16, 16] }, - "east": { "texture": "#face", "uv": [15, 15, 16, 16] }, - "west": { "texture": "#face", "uv": [15, 15, 16, 16] } + "west": { "texture": "#face", "uv": [15, 0, 16, 1] }, + "up": { "texture": "#face", "uv": [15, 0, 16, 1] }, + "down": { "texture": "#face", "uv": [15, 15, 16, 16] } }}, - { "from": [4, 6, 16], "to": [12, 16, 17], "faces": { + { "from": [4, 7, 14], "to": [12, 13, 15], "faces": { "south": { "texture": "#face", "uv": [0, 0, 8, 10] }, - "up": { "texture": "#face", "uv": [15, 0, 16, 1] }, - "down": { "texture": "#face", "uv": [15, 15, 16, 16] }, "east": { "texture": "#face", "uv": [15, 0, 16, 1] }, - "west": { "texture": "#face", "uv": [15, 0, 16, 1] } - }}, - { "from": [6, 6, 17], "to": [10, 10, 18], "faces": { - "south": { "texture": "#face", "uv": [2, 6, 6, 10] }, - "up": { "texture": "#face", "uv": [15, 15, 16, 16] }, - "down": { "texture": "#face", "uv": [15, 15, 16, 16] }, - "east": { "texture": "#face", "uv": [15, 15, 16, 16] }, - "west": { "texture": "#face", "uv": [15, 15, 16, 16] } + "west": { "texture": "#face", "uv": [15, 0, 16, 1] }, + "up": { "texture": "#face", "uv": [15, 0, 16, 1] }, + "down": { "texture": "#face", "uv": [15, 15, 16, 16] } }}, - { "from": [-1, 6, 4], "to": [0, 16, 12], "faces": { + { "from": [1, 7, 4], "to": [2, 13, 12], "faces": { + "north": { "texture": "#face", "uv": [15, 0, 16, 1] }, + "south": { "texture": "#face", "uv": [15, 0, 16, 1] }, "west": { "texture": "#face", "uv": [0, 0, 8, 10] }, "up": { "texture": "#face", "uv": [15, 0, 16, 1] }, - "down": { "texture": "#face", "uv": [15, 15, 16, 16] }, + "down": { "texture": "#face", "uv": [15, 15, 16, 16] } + }}, + { "from": [14, 7, 4], "to": [15, 13, 12], "faces": { "north": { "texture": "#face", "uv": [15, 0, 16, 1] }, - "south": { "texture": "#face", "uv": [15, 0, 16, 1] } + "south": { "texture": "#face", "uv": [15, 0, 16, 1] }, + "east": { "texture": "#face", "uv": [0, 0, 8, 10] }, + "up": { "texture": "#face", "uv": [15, 0, 16, 1] }, + "down": { "texture": "#face", "uv": [15, 15, 16, 16] } }}, - { "from": [-2, 6, 6], "to": [-1, 10, 10], "faces": { - "west": { "texture": "#face", "uv": [2, 6, 6, 10] }, + { "from": [7, 7, 0], "to": [9, 11, 1], "faces": { + "north": { "texture": "#face", "uv": [3, 6, 5, 10] }, + "east": { "texture": "#face", "uv": [15, 15, 16, 16] }, + "west": { "texture": "#face", "uv": [15, 15, 16, 16] }, "up": { "texture": "#face", "uv": [15, 15, 16, 16] }, - "down": { "texture": "#face", "uv": [15, 15, 16, 16] }, - "north": { "texture": "#face", "uv": [15, 15, 16, 16] }, - "south": { "texture": "#face", "uv": [15, 15, 16, 16] } + "down": { "texture": "#face", "uv": [15, 15, 16, 16] } }}, - { "from": [16, 6, 4], "to": [17, 16, 12], "faces": { - "east": { "texture": "#face", "uv": [0, 0, 8, 10] }, - "up": { "texture": "#face", "uv": [15, 0, 16, 1] }, - "down": { "texture": "#face", "uv": [15, 15, 16, 16] }, - "north": { "texture": "#face", "uv": [15, 0, 16, 1] }, - "south": { "texture": "#face", "uv": [15, 0, 16, 1] } + { "from": [7, 7, 15], "to": [9, 11, 16], "faces": { + "south": { "texture": "#face", "uv": [3, 6, 5, 10] }, + "east": { "texture": "#face", "uv": [15, 15, 16, 16] }, + "west": { "texture": "#face", "uv": [15, 15, 16, 16] }, + "up": { "texture": "#face", "uv": [15, 15, 16, 16] }, + "down": { "texture": "#face", "uv": [15, 15, 16, 16] } }}, - { "from": [17, 6, 6], "to": [18, 10, 10], "faces": { - "east": { "texture": "#face", "uv": [2, 6, 6, 10] }, + { "from": [0, 7, 7], "to": [1, 11, 9], "faces": { + "north": { "texture": "#face", "uv": [15, 15, 16, 16] }, + "south": { "texture": "#face", "uv": [15, 15, 16, 16] }, + "west": { "texture": "#face", "uv": [3, 6, 5, 10] }, "up": { "texture": "#face", "uv": [15, 15, 16, 16] }, - "down": { "texture": "#face", "uv": [15, 15, 16, 16] }, + "down": { "texture": "#face", "uv": [15, 15, 16, 16] } + }}, + { "from": [15, 7, 7], "to": [16, 11, 9], "faces": { "north": { "texture": "#face", "uv": [15, 15, 16, 16] }, - "south": { "texture": "#face", "uv": [15, 15, 16, 16] } + "south": { "texture": "#face", "uv": [15, 15, 16, 16] }, + "east": { "texture": "#face", "uv": [3, 6, 5, 10] }, + "up": { "texture": "#face", "uv": [15, 15, 16, 16] }, + "down": { "texture": "#face", "uv": [15, 15, 16, 16] } }}, - { "from": [1, 3, -2], "to": [15, 5, 2], "faces": { - "north": { "texture": "#hopper", "uv": [1, 6, 15, 8] }, + { "from": [4, 4, 0], "to": [12, 6, 4], "faces": { + "north": { "texture": "#hopper", "uv": [4, 6, 12, 8] }, "east": { "texture": "#hopper", "uv": [0, 6, 4, 8] }, "west": { "texture": "#hopper", "uv": [0, 6, 4, 8] }, - "up": { "texture": "#mouth", "uv": [1, 1, 15, 5] } + "up": { "texture": "#mouth", "uv": [4, 1, 12, 5] } }}, - { "from": [4, 1, -2], "to": [12, 3, 3], "faces": { - "north": { "texture": "#hopper", "uv": [4, 8, 12, 10] }, + { "from": [5, 2, 0], "to": [11, 4, 5], "faces": { + "north": { "texture": "#hopper", "uv": [5, 8, 11, 10] }, "east": { "texture": "#hopper", "uv": [0, 8, 5, 10] }, "west": { "texture": "#hopper", "uv": [0, 8, 5, 10] } }}, - { "from": [6, 0, -2], "to": [10, 1, 4], "faces": { + { "from": [6, 1, 0], "to": [10, 2, 6], "faces": { "north": { "texture": "#hopper", "uv": [6, 11, 10, 12] }, "east": { "texture": "#hopper", "uv": [0, 11, 6, 12] }, "west": { "texture": "#hopper", "uv": [0, 11, 6, 12] } }}, - { "from": [1, 3, 14], "to": [15, 5, 18], "faces": { - "south": { "texture": "#hopper", "uv": [1, 6, 15, 8] }, + { "from": [4, 4, 12], "to": [12, 6, 16], "faces": { + "south": { "texture": "#hopper", "uv": [4, 6, 12, 8] }, "east": { "texture": "#hopper", "uv": [0, 6, 4, 8] }, "west": { "texture": "#hopper", "uv": [0, 6, 4, 8] }, - "up": { "texture": "#mouth", "uv": [1, 1, 15, 5] } + "up": { "texture": "#mouth", "uv": [4, 1, 12, 5] } }}, - { "from": [4, 1, 13], "to": [12, 3, 18], "faces": { - "south": { "texture": "#hopper", "uv": [4, 8, 12, 10] }, + { "from": [5, 2, 11], "to": [11, 4, 16], "faces": { + "south": { "texture": "#hopper", "uv": [5, 8, 11, 10] }, "east": { "texture": "#hopper", "uv": [0, 8, 5, 10] }, "west": { "texture": "#hopper", "uv": [0, 8, 5, 10] } }}, - { "from": [6, 0, 12], "to": [10, 1, 18], "faces": { + { "from": [6, 1, 10], "to": [10, 2, 16], "faces": { "south": { "texture": "#hopper", "uv": [6, 11, 10, 12] }, "east": { "texture": "#hopper", "uv": [0, 11, 6, 12] }, "west": { "texture": "#hopper", "uv": [0, 11, 6, 12] } }}, - { "from": [-2, 3, 1], "to": [2, 5, 15], "faces": { - "west": { "texture": "#hopper", "uv": [1, 6, 15, 8] }, + { "from": [0, 4, 4], "to": [4, 6, 12], "faces": { "north": { "texture": "#hopper", "uv": [0, 6, 4, 8] }, "south": { "texture": "#hopper", "uv": [0, 6, 4, 8] }, - "up": { "texture": "#mouth", "uv": [1, 1, 15, 5] } + "west": { "texture": "#hopper", "uv": [4, 6, 12, 8] }, + "up": { "texture": "#mouth", "uv": [4, 1, 12, 5] } }}, - { "from": [-2, 1, 4], "to": [3, 3, 12], "faces": { - "west": { "texture": "#hopper", "uv": [4, 8, 12, 10] }, + { "from": [0, 2, 5], "to": [5, 4, 11], "faces": { "north": { "texture": "#hopper", "uv": [0, 8, 5, 10] }, - "south": { "texture": "#hopper", "uv": [0, 8, 5, 10] } + "south": { "texture": "#hopper", "uv": [0, 8, 5, 10] }, + "west": { "texture": "#hopper", "uv": [5, 8, 11, 10] } }}, - { "from": [-2, 0, 6], "to": [4, 1, 10], "faces": { - "west": { "texture": "#hopper", "uv": [6, 11, 10, 12] }, + { "from": [0, 1, 6], "to": [6, 2, 10], "faces": { "north": { "texture": "#hopper", "uv": [0, 11, 6, 12] }, - "south": { "texture": "#hopper", "uv": [0, 11, 6, 12] } + "south": { "texture": "#hopper", "uv": [0, 11, 6, 12] }, + "west": { "texture": "#hopper", "uv": [6, 11, 10, 12] } }}, - { "from": [14, 3, 1], "to": [18, 5, 15], "faces": { - "east": { "texture": "#hopper", "uv": [1, 6, 15, 8] }, + { "from": [12, 4, 4], "to": [16, 6, 12], "faces": { "north": { "texture": "#hopper", "uv": [0, 6, 4, 8] }, "south": { "texture": "#hopper", "uv": [0, 6, 4, 8] }, - "up": { "texture": "#mouth", "uv": [1, 1, 15, 5] } + "east": { "texture": "#hopper", "uv": [4, 6, 12, 8] }, + "up": { "texture": "#mouth", "uv": [4, 1, 12, 5] } }}, - { "from": [13, 1, 4], "to": [18, 3, 12], "faces": { - "east": { "texture": "#hopper", "uv": [4, 8, 12, 10] }, + { "from": [11, 2, 5], "to": [16, 4, 11], "faces": { "north": { "texture": "#hopper", "uv": [0, 8, 5, 10] }, - "south": { "texture": "#hopper", "uv": [0, 8, 5, 10] } + "south": { "texture": "#hopper", "uv": [0, 8, 5, 10] }, + "east": { "texture": "#hopper", "uv": [5, 8, 11, 10] } }}, - { "from": [12, 0, 6], "to": [18, 1, 10], "faces": { - "east": { "texture": "#hopper", "uv": [6, 11, 10, 12] }, + { "from": [10, 1, 6], "to": [16, 2, 10], "faces": { "north": { "texture": "#hopper", "uv": [0, 11, 6, 12] }, - "south": { "texture": "#hopper", "uv": [0, 11, 6, 12] } + "south": { "texture": "#hopper", "uv": [0, 11, 6, 12] }, + "east": { "texture": "#hopper", "uv": [6, 11, 10, 12] } }} ] } diff --git a/src/main/resources/assets/villagermarket/models/block/villager_market.json b/src/main/resources/assets/villagermarket/models/block/villager_market.json index 4ed483e..d8ef46c 100644 --- a/src/main/resources/assets/villagermarket/models/block/villager_market.json +++ b/src/main/resources/assets/villagermarket/models/block/villager_market.json @@ -7,105 +7,485 @@ "face": "villagermarket:block/face" }, "elements": [ - { - "from": [0, 0, 0], - "to": [16, 16, 16], - "faces": { - "north": { "texture": "#side", "cullface": "north" }, - "south": { "texture": "#side", "cullface": "south" }, - "east": { "texture": "#side", "cullface": "east" }, - "west": { "texture": "#side", "cullface": "west" }, - "up": { "texture": "#lid", "cullface": "up" }, - "down": { "texture": "#lid", "cullface": "down" } - } - }, - { - "from": [4, 1, -1], - "to": [12, 11, 0], - "faces": { - "north": { "texture": "#face", "uv": [0, 0, 8, 10] }, - "up": { "texture": "#face", "uv": [15, 0, 16, 1] }, - "down": { "texture": "#face", "uv": [15, 15, 16, 16] }, - "east": { "texture": "#face", "uv": [15, 0, 16, 1] }, - "west": { "texture": "#face", "uv": [15, 0, 16, 1] } - } - }, - { - "from": [6, 1, -2], - "to": [10, 5, -1], - "faces": { - "north": { "texture": "#face", "uv": [2, 6, 6, 10] }, - "up": { "texture": "#face", "uv": [15, 15, 16, 16] }, - "down": { "texture": "#face", "uv": [15, 15, 16, 16] }, - "east": { "texture": "#face", "uv": [15, 15, 16, 16] }, - "west": { "texture": "#face", "uv": [15, 15, 16, 16] } - } - }, - { - "from": [4, 1, 16], - "to": [12, 11, 17], - "faces": { - "south": { "texture": "#face", "uv": [0, 0, 8, 10] }, - "up": { "texture": "#face", "uv": [15, 0, 16, 1] }, - "down": { "texture": "#face", "uv": [15, 15, 16, 16] }, - "east": { "texture": "#face", "uv": [15, 0, 16, 1] }, - "west": { "texture": "#face", "uv": [15, 0, 16, 1] } - } - }, - { - "from": [6, 1, 17], - "to": [10, 5, 18], - "faces": { - "south": { "texture": "#face", "uv": [2, 6, 6, 10] }, - "up": { "texture": "#face", "uv": [15, 15, 16, 16] }, - "down": { "texture": "#face", "uv": [15, 15, 16, 16] }, - "east": { "texture": "#face", "uv": [15, 15, 16, 16] }, - "west": { "texture": "#face", "uv": [15, 15, 16, 16] } - } - }, - { - "from": [-1, 1, 4], - "to": [0, 11, 12], - "faces": { - "west": { "texture": "#face", "uv": [0, 0, 8, 10] }, - "up": { "texture": "#face", "uv": [15, 0, 16, 1] }, - "down": { "texture": "#face", "uv": [15, 15, 16, 16] }, - "north": { "texture": "#face", "uv": [15, 0, 16, 1] }, - "south": { "texture": "#face", "uv": [15, 0, 16, 1] } - } - }, - { - "from": [-2, 1, 6], - "to": [-1, 5, 10], - "faces": { - "west": { "texture": "#face", "uv": [2, 6, 6, 10] }, - "up": { "texture": "#face", "uv": [15, 15, 16, 16] }, - "down": { "texture": "#face", "uv": [15, 15, 16, 16] }, - "north": { "texture": "#face", "uv": [15, 15, 16, 16] }, - "south": { "texture": "#face", "uv": [15, 15, 16, 16] } - } - }, - { - "from": [16, 1, 4], - "to": [17, 11, 12], - "faces": { - "east": { "texture": "#face", "uv": [0, 0, 8, 10] }, - "up": { "texture": "#face", "uv": [15, 0, 16, 1] }, - "down": { "texture": "#face", "uv": [15, 15, 16, 16] }, - "north": { "texture": "#face", "uv": [15, 0, 16, 1] }, - "south": { "texture": "#face", "uv": [15, 0, 16, 1] } - } - }, - { - "from": [17, 1, 6], - "to": [18, 5, 10], - "faces": { - "east": { "texture": "#face", "uv": [2, 6, 6, 10] }, - "up": { "texture": "#face", "uv": [15, 15, 16, 16] }, - "down": { "texture": "#face", "uv": [15, 15, 16, 16] }, - "north": { "texture": "#face", "uv": [15, 15, 16, 16] }, - "south": { "texture": "#face", "uv": [15, 15, 16, 16] } - } - } + { "from": [2, 0, 2], "to": [14, 16, 14], "faces": { + "north": { "texture": "#side" }, + "south": { "texture": "#side" }, + "east": { "texture": "#side" }, + "west": { "texture": "#side" }, + "up": { "texture": "#lid", "cullface": "up" }, + "down": { "texture": "#lid", "cullface": "down" } + }}, + { "from": [0, 0, 0], "to": [2, 16, 2], "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "west": { "texture": "#side", "cullface": "west" }, + "up": { "texture": "#lid", "cullface": "up" }, + "down": { "texture": "#lid", "cullface": "down" } + }}, + { "from": [14, 0, 0], "to": [16, 16, 2], "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "east": { "texture": "#side", "cullface": "east" }, + "up": { "texture": "#lid", "cullface": "up" }, + "down": { "texture": "#lid", "cullface": "down" } + }}, + { "from": [0, 0, 14], "to": [2, 16, 16], "faces": { + "south": { "texture": "#side", "cullface": "south" }, + "west": { "texture": "#side", "cullface": "west" }, + "up": { "texture": "#lid", "cullface": "up" }, + "down": { "texture": "#lid", "cullface": "down" } + }}, + { "from": [14, 0, 14], "to": [16, 16, 16], "faces": { + "south": { "texture": "#side", "cullface": "south" }, + "east": { "texture": "#side", "cullface": "east" }, + "up": { "texture": "#lid", "cullface": "up" }, + "down": { "texture": "#lid", "cullface": "down" } + }}, + { "from": [2, 0, 0], "to": [6, 1, 2], "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "down": { "texture": "#lid", "cullface": "down" } + }}, + { "from": [6, 0, 0], "to": [10, 1, 2], "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "up": { "texture": "#side" }, + "down": { "texture": "#lid", "cullface": "down" } + }}, + { "from": [10, 0, 0], "to": [14, 1, 2], "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "down": { "texture": "#lid", "cullface": "down" } + }}, + { "from": [2, 1, 0], "to": [4, 2, 2], "faces": { + "north": { "texture": "#side", "cullface": "north" } + }}, + { "from": [4, 1, 0], "to": [6, 2, 2], "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "east": { "texture": "#side" }, + "up": { "texture": "#side" } + }}, + { "from": [10, 1, 0], "to": [12, 2, 2], "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "west": { "texture": "#side" }, + "up": { "texture": "#side" } + }}, + { "from": [12, 1, 0], "to": [14, 2, 2], "faces": { + "north": { "texture": "#side", "cullface": "north" } + }}, + { "from": [2, 2, 0], "to": [3, 3, 2], "faces": { + "north": { "texture": "#side", "cullface": "north" } + }}, + { "from": [3, 2, 0], "to": [4, 3, 2], "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "east": { "texture": "#side" }, + "up": { "texture": "#side" } + }}, + { "from": [12, 2, 0], "to": [13, 3, 2], "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "west": { "texture": "#side" }, + "up": { "texture": "#side" } + }}, + { "from": [13, 2, 0], "to": [14, 3, 2], "faces": { + "north": { "texture": "#side", "cullface": "north" } + }}, + { "from": [2, 3, 0], "to": [3, 13, 2], "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "east": { "texture": "#side" } + }}, + { "from": [13, 3, 0], "to": [14, 13, 2], "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "west": { "texture": "#side" } + }}, + { "from": [2, 13, 0], "to": [3, 14, 2], "faces": { + "north": { "texture": "#side", "cullface": "north" } + }}, + { "from": [3, 13, 0], "to": [4, 14, 2], "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "east": { "texture": "#side" }, + "down": { "texture": "#side" } + }}, + { "from": [12, 13, 0], "to": [13, 14, 2], "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "west": { "texture": "#side" }, + "down": { "texture": "#side" } + }}, + { "from": [13, 13, 0], "to": [14, 14, 2], "faces": { + "north": { "texture": "#side", "cullface": "north" } + }}, + { "from": [2, 14, 0], "to": [4, 15, 2], "faces": { + "north": { "texture": "#side", "cullface": "north" } + }}, + { "from": [4, 14, 0], "to": [6, 15, 2], "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "east": { "texture": "#side" }, + "down": { "texture": "#side" } + }}, + { "from": [10, 14, 0], "to": [12, 15, 2], "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "west": { "texture": "#side" }, + "down": { "texture": "#side" } + }}, + { "from": [12, 14, 0], "to": [14, 15, 2], "faces": { + "north": { "texture": "#side", "cullface": "north" } + }}, + { "from": [2, 15, 0], "to": [6, 16, 2], "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "up": { "texture": "#lid", "cullface": "up" } + }}, + { "from": [6, 15, 0], "to": [10, 16, 2], "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "up": { "texture": "#lid", "cullface": "up" }, + "down": { "texture": "#side" } + }}, + { "from": [10, 15, 0], "to": [14, 16, 2], "faces": { + "north": { "texture": "#side", "cullface": "north" }, + "up": { "texture": "#lid", "cullface": "up" } + }}, + { "from": [2, 0, 14], "to": [6, 1, 16], "faces": { + "south": { "texture": "#side", "cullface": "south" }, + "down": { "texture": "#lid", "cullface": "down" } + }}, + { "from": [6, 0, 14], "to": [10, 1, 16], "faces": { + "south": { "texture": "#side", "cullface": "south" }, + "up": { "texture": "#side" }, + "down": { "texture": "#lid", "cullface": "down" } + }}, + { "from": [10, 0, 14], "to": [14, 1, 16], "faces": { + "south": { "texture": "#side", "cullface": "south" }, + "down": { "texture": "#lid", "cullface": "down" } + }}, + { "from": [2, 1, 14], "to": [4, 2, 16], "faces": { + "south": { "texture": "#side", "cullface": "south" } + }}, + { "from": [4, 1, 14], "to": [6, 2, 16], "faces": { + "south": { "texture": "#side", "cullface": "south" }, + "east": { "texture": "#side" }, + "up": { "texture": "#side" } + }}, + { "from": [10, 1, 14], "to": [12, 2, 16], "faces": { + "south": { "texture": "#side", "cullface": "south" }, + "west": { "texture": "#side" }, + "up": { "texture": "#side" } + }}, + { "from": [12, 1, 14], "to": [14, 2, 16], "faces": { + "south": { "texture": "#side", "cullface": "south" } + }}, + { "from": [2, 2, 14], "to": [3, 3, 16], "faces": { + "south": { "texture": "#side", "cullface": "south" } + }}, + { "from": [3, 2, 14], "to": [4, 3, 16], "faces": { + "south": { "texture": "#side", "cullface": "south" }, + "east": { "texture": "#side" }, + "up": { "texture": "#side" } + }}, + { "from": [12, 2, 14], "to": [13, 3, 16], "faces": { + "south": { "texture": "#side", "cullface": "south" }, + "west": { "texture": "#side" }, + "up": { "texture": "#side" } + }}, + { "from": [13, 2, 14], "to": [14, 3, 16], "faces": { + "south": { "texture": "#side", "cullface": "south" } + }}, + { "from": [2, 3, 14], "to": [3, 13, 16], "faces": { + "south": { "texture": "#side", "cullface": "south" }, + "east": { "texture": "#side" } + }}, + { "from": [13, 3, 14], "to": [14, 13, 16], "faces": { + "south": { "texture": "#side", "cullface": "south" }, + "west": { "texture": "#side" } + }}, + { "from": [2, 13, 14], "to": [3, 14, 16], "faces": { + "south": { "texture": "#side", "cullface": "south" } + }}, + { "from": [3, 13, 14], "to": [4, 14, 16], "faces": { + "south": { "texture": "#side", "cullface": "south" }, + "east": { "texture": "#side" }, + "down": { "texture": "#side" } + }}, + { "from": [12, 13, 14], "to": [13, 14, 16], "faces": { + "south": { "texture": "#side", "cullface": "south" }, + "west": { "texture": "#side" }, + "down": { "texture": "#side" } + }}, + { "from": [13, 13, 14], "to": [14, 14, 16], "faces": { + "south": { "texture": "#side", "cullface": "south" } + }}, + { "from": [2, 14, 14], "to": [4, 15, 16], "faces": { + "south": { "texture": "#side", "cullface": "south" } + }}, + { "from": [4, 14, 14], "to": [6, 15, 16], "faces": { + "south": { "texture": "#side", "cullface": "south" }, + "east": { "texture": "#side" }, + "down": { "texture": "#side" } + }}, + { "from": [10, 14, 14], "to": [12, 15, 16], "faces": { + "south": { "texture": "#side", "cullface": "south" }, + "west": { "texture": "#side" }, + "down": { "texture": "#side" } + }}, + { "from": [12, 14, 14], "to": [14, 15, 16], "faces": { + "south": { "texture": "#side", "cullface": "south" } + }}, + { "from": [2, 15, 14], "to": [6, 16, 16], "faces": { + "south": { "texture": "#side", "cullface": "south" }, + "up": { "texture": "#lid", "cullface": "up" } + }}, + { "from": [6, 15, 14], "to": [10, 16, 16], "faces": { + "south": { "texture": "#side", "cullface": "south" }, + "up": { "texture": "#lid", "cullface": "up" }, + "down": { "texture": "#side" } + }}, + { "from": [10, 15, 14], "to": [14, 16, 16], "faces": { + "south": { "texture": "#side", "cullface": "south" }, + "up": { "texture": "#lid", "cullface": "up" } + }}, + { "from": [0, 0, 2], "to": [2, 1, 6], "faces": { + "west": { "texture": "#side", "cullface": "west" }, + "down": { "texture": "#lid", "cullface": "down" } + }}, + { "from": [0, 0, 6], "to": [2, 1, 10], "faces": { + "west": { "texture": "#side", "cullface": "west" }, + "up": { "texture": "#side" }, + "down": { "texture": "#lid", "cullface": "down" } + }}, + { "from": [0, 0, 10], "to": [2, 1, 14], "faces": { + "west": { "texture": "#side", "cullface": "west" }, + "down": { "texture": "#lid", "cullface": "down" } + }}, + { "from": [0, 1, 2], "to": [2, 2, 4], "faces": { + "west": { "texture": "#side", "cullface": "west" } + }}, + { "from": [0, 1, 4], "to": [2, 2, 6], "faces": { + "south": { "texture": "#side" }, + "west": { "texture": "#side", "cullface": "west" }, + "up": { "texture": "#side" } + }}, + { "from": [0, 1, 10], "to": [2, 2, 12], "faces": { + "north": { "texture": "#side" }, + "west": { "texture": "#side", "cullface": "west" }, + "up": { "texture": "#side" } + }}, + { "from": [0, 1, 12], "to": [2, 2, 14], "faces": { + "west": { "texture": "#side", "cullface": "west" } + }}, + { "from": [0, 2, 2], "to": [2, 3, 3], "faces": { + "west": { "texture": "#side", "cullface": "west" } + }}, + { "from": [0, 2, 3], "to": [2, 3, 4], "faces": { + "south": { "texture": "#side" }, + "west": { "texture": "#side", "cullface": "west" }, + "up": { "texture": "#side" } + }}, + { "from": [0, 2, 12], "to": [2, 3, 13], "faces": { + "north": { "texture": "#side" }, + "west": { "texture": "#side", "cullface": "west" }, + "up": { "texture": "#side" } + }}, + { "from": [0, 2, 13], "to": [2, 3, 14], "faces": { + "west": { "texture": "#side", "cullface": "west" } + }}, + { "from": [0, 3, 2], "to": [2, 13, 3], "faces": { + "south": { "texture": "#side" }, + "west": { "texture": "#side", "cullface": "west" } + }}, + { "from": [0, 3, 13], "to": [2, 13, 14], "faces": { + "north": { "texture": "#side" }, + "west": { "texture": "#side", "cullface": "west" } + }}, + { "from": [0, 13, 2], "to": [2, 14, 3], "faces": { + "west": { "texture": "#side", "cullface": "west" } + }}, + { "from": [0, 13, 3], "to": [2, 14, 4], "faces": { + "south": { "texture": "#side" }, + "west": { "texture": "#side", "cullface": "west" }, + "down": { "texture": "#side" } + }}, + { "from": [0, 13, 12], "to": [2, 14, 13], "faces": { + "north": { "texture": "#side" }, + "west": { "texture": "#side", "cullface": "west" }, + "down": { "texture": "#side" } + }}, + { "from": [0, 13, 13], "to": [2, 14, 14], "faces": { + "west": { "texture": "#side", "cullface": "west" } + }}, + { "from": [0, 14, 2], "to": [2, 15, 4], "faces": { + "west": { "texture": "#side", "cullface": "west" } + }}, + { "from": [0, 14, 4], "to": [2, 15, 6], "faces": { + "south": { "texture": "#side" }, + "west": { "texture": "#side", "cullface": "west" }, + "down": { "texture": "#side" } + }}, + { "from": [0, 14, 10], "to": [2, 15, 12], "faces": { + "north": { "texture": "#side" }, + "west": { "texture": "#side", "cullface": "west" }, + "down": { "texture": "#side" } + }}, + { "from": [0, 14, 12], "to": [2, 15, 14], "faces": { + "west": { "texture": "#side", "cullface": "west" } + }}, + { "from": [0, 15, 2], "to": [2, 16, 6], "faces": { + "west": { "texture": "#side", "cullface": "west" }, + "up": { "texture": "#lid", "cullface": "up" } + }}, + { "from": [0, 15, 6], "to": [2, 16, 10], "faces": { + "west": { "texture": "#side", "cullface": "west" }, + "up": { "texture": "#lid", "cullface": "up" }, + "down": { "texture": "#side" } + }}, + { "from": [0, 15, 10], "to": [2, 16, 14], "faces": { + "west": { "texture": "#side", "cullface": "west" }, + "up": { "texture": "#lid", "cullface": "up" } + }}, + { "from": [14, 0, 2], "to": [16, 1, 6], "faces": { + "east": { "texture": "#side", "cullface": "east" }, + "down": { "texture": "#lid", "cullface": "down" } + }}, + { "from": [14, 0, 6], "to": [16, 1, 10], "faces": { + "east": { "texture": "#side", "cullface": "east" }, + "up": { "texture": "#side" }, + "down": { "texture": "#lid", "cullface": "down" } + }}, + { "from": [14, 0, 10], "to": [16, 1, 14], "faces": { + "east": { "texture": "#side", "cullface": "east" }, + "down": { "texture": "#lid", "cullface": "down" } + }}, + { "from": [14, 1, 2], "to": [16, 2, 4], "faces": { + "east": { "texture": "#side", "cullface": "east" } + }}, + { "from": [14, 1, 4], "to": [16, 2, 6], "faces": { + "south": { "texture": "#side" }, + "east": { "texture": "#side", "cullface": "east" }, + "up": { "texture": "#side" } + }}, + { "from": [14, 1, 10], "to": [16, 2, 12], "faces": { + "north": { "texture": "#side" }, + "east": { "texture": "#side", "cullface": "east" }, + "up": { "texture": "#side" } + }}, + { "from": [14, 1, 12], "to": [16, 2, 14], "faces": { + "east": { "texture": "#side", "cullface": "east" } + }}, + { "from": [14, 2, 2], "to": [16, 3, 3], "faces": { + "east": { "texture": "#side", "cullface": "east" } + }}, + { "from": [14, 2, 3], "to": [16, 3, 4], "faces": { + "south": { "texture": "#side" }, + "east": { "texture": "#side", "cullface": "east" }, + "up": { "texture": "#side" } + }}, + { "from": [14, 2, 12], "to": [16, 3, 13], "faces": { + "north": { "texture": "#side" }, + "east": { "texture": "#side", "cullface": "east" }, + "up": { "texture": "#side" } + }}, + { "from": [14, 2, 13], "to": [16, 3, 14], "faces": { + "east": { "texture": "#side", "cullface": "east" } + }}, + { "from": [14, 3, 2], "to": [16, 13, 3], "faces": { + "south": { "texture": "#side" }, + "east": { "texture": "#side", "cullface": "east" } + }}, + { "from": [14, 3, 13], "to": [16, 13, 14], "faces": { + "north": { "texture": "#side" }, + "east": { "texture": "#side", "cullface": "east" } + }}, + { "from": [14, 13, 2], "to": [16, 14, 3], "faces": { + "east": { "texture": "#side", "cullface": "east" } + }}, + { "from": [14, 13, 3], "to": [16, 14, 4], "faces": { + "south": { "texture": "#side" }, + "east": { "texture": "#side", "cullface": "east" }, + "down": { "texture": "#side" } + }}, + { "from": [14, 13, 12], "to": [16, 14, 13], "faces": { + "north": { "texture": "#side" }, + "east": { "texture": "#side", "cullface": "east" }, + "down": { "texture": "#side" } + }}, + { "from": [14, 13, 13], "to": [16, 14, 14], "faces": { + "east": { "texture": "#side", "cullface": "east" } + }}, + { "from": [14, 14, 2], "to": [16, 15, 4], "faces": { + "east": { "texture": "#side", "cullface": "east" } + }}, + { "from": [14, 14, 4], "to": [16, 15, 6], "faces": { + "south": { "texture": "#side" }, + "east": { "texture": "#side", "cullface": "east" }, + "down": { "texture": "#side" } + }}, + { "from": [14, 14, 10], "to": [16, 15, 12], "faces": { + "north": { "texture": "#side" }, + "east": { "texture": "#side", "cullface": "east" }, + "down": { "texture": "#side" } + }}, + { "from": [14, 14, 12], "to": [16, 15, 14], "faces": { + "east": { "texture": "#side", "cullface": "east" } + }}, + { "from": [14, 15, 2], "to": [16, 16, 6], "faces": { + "east": { "texture": "#side", "cullface": "east" }, + "up": { "texture": "#lid", "cullface": "up" } + }}, + { "from": [14, 15, 6], "to": [16, 16, 10], "faces": { + "east": { "texture": "#side", "cullface": "east" }, + "up": { "texture": "#lid", "cullface": "up" }, + "down": { "texture": "#side" } + }}, + { "from": [14, 15, 10], "to": [16, 16, 14], "faces": { + "east": { "texture": "#side", "cullface": "east" }, + "up": { "texture": "#lid", "cullface": "up" } + }}, + { "from": [4, 3, 1], "to": [12, 13, 2], "faces": { + "north": { "texture": "#face", "uv": [0, 0, 8, 10] }, + "east": { "texture": "#face", "uv": [15, 0, 16, 1] }, + "west": { "texture": "#face", "uv": [15, 0, 16, 1] }, + "up": { "texture": "#face", "uv": [15, 0, 16, 1] }, + "down": { "texture": "#face", "uv": [15, 15, 16, 16] } + }}, + { "from": [4, 3, 14], "to": [12, 13, 15], "faces": { + "south": { "texture": "#face", "uv": [0, 0, 8, 10] }, + "east": { "texture": "#face", "uv": [15, 0, 16, 1] }, + "west": { "texture": "#face", "uv": [15, 0, 16, 1] }, + "up": { "texture": "#face", "uv": [15, 0, 16, 1] }, + "down": { "texture": "#face", "uv": [15, 15, 16, 16] } + }}, + { "from": [1, 3, 4], "to": [2, 13, 12], "faces": { + "north": { "texture": "#face", "uv": [15, 0, 16, 1] }, + "south": { "texture": "#face", "uv": [15, 0, 16, 1] }, + "west": { "texture": "#face", "uv": [0, 0, 8, 10] }, + "up": { "texture": "#face", "uv": [15, 0, 16, 1] }, + "down": { "texture": "#face", "uv": [15, 15, 16, 16] } + }}, + { "from": [14, 3, 4], "to": [15, 13, 12], "faces": { + "north": { "texture": "#face", "uv": [15, 0, 16, 1] }, + "south": { "texture": "#face", "uv": [15, 0, 16, 1] }, + "east": { "texture": "#face", "uv": [0, 0, 8, 10] }, + "up": { "texture": "#face", "uv": [15, 0, 16, 1] }, + "down": { "texture": "#face", "uv": [15, 15, 16, 16] } + }}, + { "from": [7, 3, 0], "to": [9, 7, 1], "faces": { + "north": { "texture": "#face", "uv": [3, 6, 5, 10] }, + "east": { "texture": "#face", "uv": [15, 15, 16, 16] }, + "west": { "texture": "#face", "uv": [15, 15, 16, 16] }, + "up": { "texture": "#face", "uv": [15, 15, 16, 16] }, + "down": { "texture": "#face", "uv": [15, 15, 16, 16] } + }}, + { "from": [7, 3, 15], "to": [9, 7, 16], "faces": { + "south": { "texture": "#face", "uv": [3, 6, 5, 10] }, + "east": { "texture": "#face", "uv": [15, 15, 16, 16] }, + "west": { "texture": "#face", "uv": [15, 15, 16, 16] }, + "up": { "texture": "#face", "uv": [15, 15, 16, 16] }, + "down": { "texture": "#face", "uv": [15, 15, 16, 16] } + }}, + { "from": [0, 3, 7], "to": [1, 7, 9], "faces": { + "north": { "texture": "#face", "uv": [15, 15, 16, 16] }, + "south": { "texture": "#face", "uv": [15, 15, 16, 16] }, + "west": { "texture": "#face", "uv": [3, 6, 5, 10] }, + "up": { "texture": "#face", "uv": [15, 15, 16, 16] }, + "down": { "texture": "#face", "uv": [15, 15, 16, 16] } + }}, + { "from": [15, 3, 7], "to": [16, 7, 9], "faces": { + "north": { "texture": "#face", "uv": [15, 15, 16, 16] }, + "south": { "texture": "#face", "uv": [15, 15, 16, 16] }, + "east": { "texture": "#face", "uv": [3, 6, 5, 10] }, + "up": { "texture": "#face", "uv": [15, 15, 16, 16] }, + "down": { "texture": "#face", "uv": [15, 15, 16, 16] } + }} ] } diff --git a/src/main/resources/data/villagermarket/gametest/structure/wide.snbt b/src/main/resources/data/villagermarket/gametest/structure/wide.snbt new file mode 100644 index 0000000..2534f6a --- /dev/null +++ b/src/main/resources/data/villagermarket/gametest/structure/wide.snbt @@ -0,0 +1,7 @@ +{ + DataVersion: 3955, + size: [112, 6, 112], + palette: [{Name: "minecraft:air"}], + blocks: [], + entities: [] +} diff --git a/src/main/resources/data/villagermarket/structure/wide.nbt b/src/main/resources/data/villagermarket/structure/wide.nbt new file mode 100644 index 0000000..2d53e07 Binary files /dev/null and b/src/main/resources/data/villagermarket/structure/wide.nbt differ