diff --git a/gm4/modeldata_registry.json b/gm4/modeldata_registry.json index 1711506250..da3f0afb8e 100644 --- a/gm4/modeldata_registry.json +++ b/gm4/modeldata_registry.json @@ -226,7 +226,11 @@ "gm4_metallurgy:shamir/infinitas": 100 }, "command_block": { - "gm4:gui/advancement/root": 1 + "gm4:gui/advancement/root": 1, + "gm4_furniture:item/furniture/set_tool/cloth_set": 2, + "gm4_furniture:item/furniture/set_tool/metal_set": 3, + "gm4_furniture:item/furniture/set_tool/stone_set": 4, + "gm4_furniture:item/furniture/set_tool/wood_set": 5 }, "compass": { "gm4_metallurgy:shamir/sensus": 101, @@ -970,6 +974,33 @@ "gm4_metallurgy:shamir/defuse": 106, "gm4_animi_shamir:shamir/animi": 124 }, + "leather_horse_armor": { + "gm4_furniture:item/furniture/paintbrush": 1, + "gm4_furniture:block/furniture/cloth_set/paper_lantern_1": 11, + "gm4_furniture:block/furniture/cloth_set/horizontal_flag_1": 16, + "gm4_furniture:block/furniture/metal_set/iron/3_candelabra_1": 18, + "gm4_furniture:block/furniture/metal_set/gold/3_candelabra_1": 30, + "gm4_furniture:block/furniture/metal_set/gold/skull_1": 31, + "gm4_furniture:block/furniture/stone_set/statues/frog": 32, + "gm4_furniture:block/furniture/stone_set/statues/bee": 33, + "gm4_furniture:block/furniture/stone_set/statues/pufferfish": 34, + "gm4_furniture:block/furniture/stone_set/statues/axolotl": 35, + "gm4_furniture:block/furniture/stone_set/statues/allay": 36, + "gm4_furniture:block/furniture/wood_set/plain/1x1_table_1": 37, + "gm4_furniture:block/furniture/wood_set/plain/2x2_table_1": 38, + "gm4_furniture:block/furniture/wood_set/plain/bench_1": 39, + "gm4_furniture:block/furniture/wood_set/plain/chair_1": 52, + "gm4_furniture:block/furniture/wood_set/plain/stool_1": 53, + "gm4_furniture:block/furniture/wood_set/plain/light_1": 59, + "gm4_furniture:block/furniture/wood_set/fancy/1x1_table_1": 60, + "gm4_furniture:block/furniture/wood_set/fancy/2x2_table_1": 62, + "gm4_furniture:block/furniture/wood_set/fancy/bench_1": 63, + "gm4_furniture:block/furniture/wood_set/fancy/chair_1": 64, + "gm4_furniture:block/furniture/wood_set/fancy/stool_1": 65, + "gm4_furniture:block/furniture/wood_set/fancy/light_1": 66, + "gm4_furniture:block/furniture/furniture_station": 67, + "gm4_furniture:block/furniture/metal_set/iron/lantern_1": 68 + }, "leather_leggings": { "gm4_washing_tanks:guidebook_icon/washing_tanks": 1, "gm4_weighted_armour:shamir/helious": 103, @@ -1256,11 +1287,14 @@ "gm4_heart_canisters:item/heart_canister_tier_2": 8, "gm4_scuba_gear:item/scuba_helmet": 9, "gm4_heart_canisters:guidebook_icon/heart_canisters": 10, + "gm4_furniture:block/furniture/cloth_set/paper_lantern_1": 11, "gm4_zauber_cauldrons:item/crystal/speed": 12, "gm4_zauber_cauldrons:item/crystal/regeneration": 13, "gm4_end_fishing:item/enderpuff": 14, "gm4_tinkering_compressors:gui/advancement/tinkering_compressors": 15, + "gm4_furniture:block/furniture/cloth_set/horizontal_flag_1": 16, "gm4_metallurgy:item/lump/bismutite": 17, + "gm4_furniture:block/furniture/metal_set/iron/3_candelabra_1": 18, "gm4_metallurgy:item/lump/baryte": 19, "gm4_metallurgy:item/lump/thorianite": 20, "gm4_metallurgy:item/lump/bauxite": 21, @@ -1272,6 +1306,16 @@ "gm4_relocators:item/relocator_empty": 27, "gm4_ender_hoppers:block/ender_hopper_side": 28, "gm4_ender_hoppers:block/ender_hopper_minecart": 29, + "gm4_furniture:block/furniture/metal_set/gold/3_candelabra_1": 30, + "gm4_furniture:block/furniture/metal_set/gold/skull_1": 31, + "gm4_furniture:block/furniture/stone_set/statues/frog": 32, + "gm4_furniture:block/furniture/stone_set/statues/bee": 33, + "gm4_furniture:block/furniture/stone_set/statues/pufferfish": 34, + "gm4_furniture:block/furniture/stone_set/statues/axolotl": 35, + "gm4_furniture:block/furniture/stone_set/statues/allay": 36, + "gm4_furniture:block/furniture/wood_set/plain/1x1_table_1": 37, + "gm4_furniture:block/furniture/wood_set/plain/2x2_table_1": 38, + "gm4_furniture:block/furniture/wood_set/plain/bench_1": 39, "gm4_tnt_landmines:item/tnt_landmine": 40, "gm4_tnt_landmines:item/tnt_landmine_grass": 41, "gm4_tnt_landmines:item/tnt_landmine_dirt": 42, @@ -1284,12 +1328,23 @@ "gm4_metallurgy:gui/advancement/metallurgy_blast_ore": 49, "gm4_metallurgy:gui/advancement/metallurgy_cast": 50, "gm4_relocators:gui/advancement/relocators": 51, + "gm4_furniture:block/furniture/wood_set/plain/chair_1": 52, + "gm4_furniture:block/furniture/wood_set/plain/stool_1": 53, "gm4_zauber_cauldrons:item/crystal/instant_damage": 54, "gm4_zauber_cauldrons:item/crystal/instant_health": 55, "gm4_zauber_cauldrons:item/crystal/jump_boost": 56, "gm4_zauber_cauldrons:item/crystal/poison": 57, "gm4_zauber_cauldrons:item/crystal/strength": 58, + "gm4_furniture:block/furniture/wood_set/plain/light_1": 59, + "gm4_furniture:block/furniture/wood_set/fancy/1x1_table_1": 60, "gm4_relocators:item/relocator_full": 61, + "gm4_furniture:block/furniture/wood_set/fancy/2x2_table_1": 62, + "gm4_furniture:block/furniture/wood_set/fancy/bench_1": 63, + "gm4_furniture:block/furniture/wood_set/fancy/chair_1": 64, + "gm4_furniture:block/furniture/wood_set/fancy/stool_1": 65, + "gm4_furniture:block/furniture/wood_set/fancy/light_1": 66, + "gm4_furniture:block/furniture/furniture_station": 67, + "gm4_furniture:block/furniture/metal_set/iron/lantern_1": 68, "gm4_metallurgy:shamir/infinitas": 100, "gm4_metallurgy:shamir/sensus": 101, "gm4_weighted_armour:shamir/helious": 103, diff --git a/gm4_furniture/README.md b/gm4_furniture/README.md new file mode 100644 index 0000000000..7a86e8f4b7 --- /dev/null +++ b/gm4_furniture/README.md @@ -0,0 +1,6 @@ +# Furniture + +Add Furniture TODO: improve this readme! + +### Features +- Add Furniture diff --git a/gm4_furniture/assets/gm4/font/container_gui.json b/gm4_furniture/assets/gm4/font/container_gui.json new file mode 100644 index 0000000000..a343831830 --- /dev/null +++ b/gm4_furniture/assets/gm4/font/container_gui.json @@ -0,0 +1,14 @@ +{ + "providers": [ + { + "type": "space", + "advances": { + "\u8100": -1, + "\u8020": -224, + "\u8021": -128, + "\u8022": 39 + + } + } + ] +} diff --git a/gm4_furniture/assets/gm4/lang/en_us.json b/gm4_furniture/assets/gm4/lang/en_us.json new file mode 100644 index 0000000000..4df8a8373b --- /dev/null +++ b/gm4_furniture/assets/gm4/lang/en_us.json @@ -0,0 +1,5 @@ +{ + "OLDgui.gm4.furniture_station": "\u9021\u9020\u9100\u9022\u9023", + "OLDgui.gm4.furniture_station.offset": "\u9024", + "gui.gm4.furniture_station.offset": "\u8022" +} diff --git a/gm4_furniture/assets/gm4_furniture/font/container_gui.json b/gm4_furniture/assets/gm4_furniture/font/container_gui.json new file mode 100644 index 0000000000..a343831830 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/font/container_gui.json @@ -0,0 +1,14 @@ +{ + "providers": [ + { + "type": "space", + "advances": { + "\u8100": -1, + "\u8020": -224, + "\u8021": -128, + "\u8022": 39 + + } + } + ] +} diff --git a/gm4_furniture/assets/gm4_furniture/font/default.json b/gm4_furniture/assets/gm4_furniture/font/default.json new file mode 100644 index 0000000000..cb0ad84f41 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/font/default.json @@ -0,0 +1,18 @@ +{ + "providers": [ + { + "type": "space", + "advances": { + " ": 4, + "\u200c": 0 + } + }, + { + "type": "ttf", + "file": "gm4_furniture:minecraft.ttf", + "shift": [0,-0.5], + "size": 13, + "oversample": 7 + } + ] +} diff --git a/gm4_furniture/assets/gm4_furniture/font/guidebook.json b/gm4_furniture/assets/gm4_furniture/font/guidebook.json new file mode 100644 index 0000000000..cd490fb2a2 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/font/guidebook.json @@ -0,0 +1,8527 @@ +{ + "providers": [ + { + "comment": "Many thanks to AmberW#4615 for this invaluable concept", + "type": "bitmap", + "file": "gm4_furniture:font_magic/pixel.png", + "ascent": -32768, + "height": -3, + "chars": [ + "\uf801" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:font_magic/pixel.png", + "ascent": -32768, + "height": -4, + "chars": [ + "\uf802" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:font_magic/pixel.png", + "ascent": -32768, + "height": -5, + "chars": [ + "\uf803" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:font_magic/pixel.png", + "ascent": -32768, + "height": -6, + "chars": [ + "\uf804" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:font_magic/pixel.png", + "ascent": -32768, + "height": -7, + "chars": [ + "\uf805" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:font_magic/pixel.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\uf806" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:font_magic/pixel.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\uf807" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:font_magic/pixel.png", + "ascent": -32768, + "height": -10, + "chars": [ + "\uf808" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:font_magic/pixel.png", + "ascent": -32768, + "height": -18, + "chars": [ + "\uf809" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:font_magic/pixel.png", + "ascent": -32768, + "height": -34, + "chars": [ + "\uf80a" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:font_magic/pixel.png", + "ascent": -32768, + "height": -66, + "chars": [ + "\uf80b" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:font_magic/pixel.png", + "ascent": -32768, + "height": -130, + "chars": [ + "\uf80c" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:font_magic/pixel.png", + "ascent": -32768, + "height": -258, + "chars": [ + "\uf80d" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:font_magic/pixel.png", + "ascent": -32768, + "height": -514, + "chars": [ + "\uf80e" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:font_magic/pixel.png", + "ascent": -32768, + "height": -1026, + "chars": [ + "\uf80f" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:font_magic/pixel.png", + "ascent": -32768, + "height": 0, + "chars": [ + "\uf821" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:font_magic/pixel.png", + "ascent": -32768, + "height": 1, + "chars": [ + "\uf822" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:font_magic/pixel.png", + "ascent": -32768, + "height": 2, + "chars": [ + "\uf823" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:font_magic/pixel.png", + "ascent": -32768, + "height": 3, + "chars": [ + "\uf824" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:font_magic/pixel.png", + "ascent": -32768, + "height": 4, + "chars": [ + "\uf825" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:font_magic/pixel.png", + "ascent": -32768, + "height": 5, + "chars": [ + "\uf826" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:font_magic/pixel.png", + "ascent": -32768, + "height": 6, + "chars": [ + "\uf827" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:font_magic/pixel.png", + "ascent": -32768, + "height": 7, + "chars": [ + "\uf828" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:font_magic/pixel.png", + "ascent": -32768, + "height": 15, + "chars": [ + "\uf829" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:font_magic/pixel.png", + "ascent": -32768, + "height": 31, + "chars": [ + "\uf82a" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:font_magic/pixel.png", + "ascent": -32768, + "height": 63, + "chars": [ + "\uf82b" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:font_magic/pixel.png", + "ascent": -32768, + "height": 127, + "chars": [ + "\uf82c" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:font_magic/pixel.png", + "ascent": -32768, + "height": 255, + "chars": [ + "\uf82d" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:font_magic/pixel.png", + "ascent": -32768, + "height": 511, + "chars": [ + "\uf82e" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:font_magic/pixel.png", + "ascent": -32768, + "height": 1023, + "chars": [ + "\uf82f" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:font_magic/pixel.png", + "ascent": -32770, + "height": -32770, + "chars": [ + "\uf800" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:font_magic/pixel.png", + "ascent": -32768, + "height": 32767, + "chars": [ + "\uf820" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/acacia_boat.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0903" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/acacia_door.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0904" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/acacia_sapling.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0905" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/acacia_sign.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0906" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/activator_rail.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0907" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/allium.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0908" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/amethyst_cluster.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0909" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/amethyst_shard.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u090a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/apple.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u090b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/armor_stand.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u090c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/arrow.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u090d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/axolotl_bucket.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u090e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/azure_bluet.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u090f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/baked_potato.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0910" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/bamboo.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0911" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/barrier.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0912" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/beef.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0913" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/beetroot.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0914" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/beetroot_seeds.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0915" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/beetroot_soup.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0916" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/bell.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0917" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/birch_boat.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0918" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/birch_door.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0919" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/birch_sapling.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u091a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/birch_sign.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u091b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/black_candle.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u091c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/black_dye.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u091d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/black_stained_glass.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u091e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/blaze_powder.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u091f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/blaze_rod.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0920" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/blue_candle.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0921" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/blue_dye.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0922" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/blue_orchid.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0923" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/blue_stained_glass.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0924" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/bone.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0925" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/bone_meal.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0926" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/book.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0927" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/bow.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0928" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/bowl.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0929" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/brain_coral.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u092a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/brain_coral_fan.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u092b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/bread.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u092c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/brewing_stand.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u092d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/brick.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u092e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/broken_elytra.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u092f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/brown_candle.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0930" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/brown_dye.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0931" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/brown_mushroom.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0932" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/brown_stained_glass.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0933" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/bubble_coral.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0934" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/bubble_coral_fan.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0935" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/bucket.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0936" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/bundle.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0937" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/bundle_filled.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0938" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cake.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0939" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/campfire.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u093a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/candle.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u093b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/carrot.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u093c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/carrot_on_a_stick.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u093d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cauldron.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u093e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/chain.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u093f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/chainmail_boots.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0940" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/chainmail_chestplate.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0941" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/chainmail_helmet.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0942" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/chainmail_leggings.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0943" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/charcoal.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0944" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/chest_minecart.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0945" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/chicken.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0946" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/chorus_fruit.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0947" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/clay_ball.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0948" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/clock_00.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0949" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/coal.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u094a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/cobweb.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u094b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cocoa_beans.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u094c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cod.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u094d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cod_bucket.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u094e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/command_block_minecart.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u094f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/comparator.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0950" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/compass_16.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0951" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cooked_beef.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0952" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cooked_chicken.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0953" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cooked_cod.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0954" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cooked_mutton.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0955" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cooked_porkchop.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0956" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cooked_rabbit.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0957" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cooked_salmon.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0958" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cookie.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0959" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/copper_ingot.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u095a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/cornflower.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u095b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/creeper_banner_pattern.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u095c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/crimson_door.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u095d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/crimson_fungus.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u095e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/crimson_roots.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u095f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/crimson_sign.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0960" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/crossbow_standby.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0961" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/crossbow_arrow.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0962" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/crossbow_firework.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0963" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cyan_candle.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0964" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cyan_dye.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0965" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/cyan_stained_glass.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0966" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dandelion.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0967" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/dark_oak_boat.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0968" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/dark_oak_door.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0969" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dark_oak_sapling.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u096a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/dark_oak_sign.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u096b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dead_brain_coral.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u096c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dead_brain_coral_fan.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u096d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dead_bubble_coral.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u096e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dead_bubble_coral_fan.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u096f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dead_bush.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0970" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dead_fire_coral.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0971" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dead_fire_coral_fan.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0972" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dead_horn_coral.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0973" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dead_horn_coral_fan.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0974" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dead_tube_coral.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0975" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dead_tube_coral_fan.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0976" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/detector_rail.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0977" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/diamond.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0978" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/diamond_axe.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0979" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/diamond_boots.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u097a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/diamond_chestplate.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u097b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/diamond_helmet.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u097c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/diamond_hoe.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u097d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/diamond_horse_armor.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u097e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/diamond_leggings.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u097f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/diamond_pickaxe.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0980" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/diamond_shovel.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0981" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/diamond_sword.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0982" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/dragon_breath.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0983" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/dried_kelp.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0984" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/egg.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0985" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/elytra.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0986" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/emerald.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0987" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/enchanted_book.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0988" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/end_crystal.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0989" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/ender_eye.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u098a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/ender_pearl.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u098b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/experience_bottle.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u098c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/feather.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u098d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/fermented_spider_eye.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u098e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/fern.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u098f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/filled_map.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0990" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/filled_map_markings.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0991" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/fire_charge.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0992" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/fire_coral.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0993" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/fire_coral_fan.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0994" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/firework_rocket.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0995" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/firework_star.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0996" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/firework_star_overlay.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0997" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/fishing_rod.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0998" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/flint.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0999" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/flint_and_steel.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u099a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/flower_banner_pattern.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u099b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/flower_pot.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u099c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/furnace_minecart.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u099d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/ghast_tear.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u099e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/glass_bottle.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u099f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/glass.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09a0" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/glistering_melon_slice.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09a1" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/globe_banner_pattern.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09a2" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/glow_berries.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09a3" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/glow_ink_sac.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09a4" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/glow_item_frame.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09a5" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/glow_lichen.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09a6" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/glowstone_dust.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09a7" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/gold_ingot.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09a8" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/gold_nugget.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09a9" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_apple.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09aa" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_axe.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09ab" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_boots.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09ac" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_carrot.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09ad" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_chestplate.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09ae" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_helmet.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09af" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_hoe.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09b0" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_horse_armor.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09b1" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_leggings.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09b2" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_pickaxe.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09b3" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_shovel.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09b4" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_sword.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09b5" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/grass.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09b6" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/gray_candle.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09b7" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/gray_dye.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09b8" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/gray_stained_glass.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09b9" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/green_candle.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09ba" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/green_dye.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09bb" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/green_stained_glass.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09bc" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/gunpowder.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09bd" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/hanging_roots.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09be" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/heart_of_the_sea.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09bf" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/honey_bottle.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09c0" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/honeycomb.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09c1" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/hopper.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09c2" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/hopper_minecart.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09c3" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/horn_coral.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09c4" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/horn_coral_fan.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09c5" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/ink_sac.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09c6" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_axe.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09c7" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/iron_bars.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09c8" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_boots.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09c9" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_chestplate.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09ca" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_door.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09cb" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_helmet.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09cc" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_hoe.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09cd" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_horse_armor.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09ce" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_ingot.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09cf" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_leggings.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09d0" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_nugget.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09d1" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_pickaxe.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09d2" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_shovel.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09d3" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_sword.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09d4" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/item_frame.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09d5" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/jungle_boat.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09d6" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/jungle_door.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09d7" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/jungle_sapling.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09d8" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/jungle_sign.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09d9" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/kelp.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09da" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/knowledge_book.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09db" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/ladder.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09dc" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/lantern.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09dd" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/lapis_lazuli.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09de" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/large_amethyst_bud.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09df" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/large_fern_top.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09e0" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/lava_bucket.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09e1" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/lead.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09e2" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/leather.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09e3" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/leather_boots.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09e4" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/leather_boots_overlay.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09e5" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/leather_chestplate.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09e6" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/leather_chestplate_overlay.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09e7" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/leather_helmet.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09e8" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/leather_helmet_overlay.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09e9" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/leather_horse_armor.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09ea" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/leather_leggings.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09eb" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/leather_leggings_overlay.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09ec" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/lever.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09ed" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09ee" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_00.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09ef" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_01.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09f0" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_02.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09f1" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_03.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09f2" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_04.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09f3" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_05.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09f4" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_06.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09f5" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_07.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09f6" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_08.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09f7" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_09.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09f8" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_10.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09f9" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_11.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09fa" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_12.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09fb" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_13.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09fc" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_14.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09fd" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_15.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09fe" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_blue_candle.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u09ff" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_blue_dye.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a00" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/light_blue_stained_glass.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a01" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_gray_candle.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a02" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_gray_dye.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a03" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/light_gray_stained_glass.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a04" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/lilac_top.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a05" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/lily_of_the_valley.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a06" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/lily_pad.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a07" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/lime_candle.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a08" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/lime_dye.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a09" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/lime_stained_glass.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a0a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/lingering_potion.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a0b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/magenta_candle.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a0c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/magenta_dye.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a0d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/magenta_stained_glass.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a0e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/magma_cream.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a0f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/map.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a10" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/medium_amethyst_bud.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a11" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/melon_seeds.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a12" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/melon_slice.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a13" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/milk_bucket.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a14" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/minecart.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a15" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/mojang_banner_pattern.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a16" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/mushroom_stew.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a17" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_11.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a18" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_13.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a19" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_blocks.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a1a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_cat.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a1b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_chirp.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a1c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_far.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a1d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_mall.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a1e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_mellohi.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a1f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_pigstep.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a20" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_stal.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a21" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_strad.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a22" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_wait.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a23" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_ward.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a24" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/mutton.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a25" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/name_tag.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a26" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/nautilus_shell.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a27" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/nether_brick.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a28" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/nether_sprouts.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a29" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/nether_star.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a2a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/nether_wart.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a2b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/netherite_axe.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a2c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/netherite_boots.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a2d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/netherite_chestplate.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a2e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/netherite_helmet.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a2f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/netherite_hoe.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a30" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/netherite_ingot.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a31" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/netherite_leggings.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a32" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/netherite_pickaxe.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a33" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/netherite_scrap.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a34" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/netherite_shovel.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a35" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/netherite_sword.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a36" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/oak_boat.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a37" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/oak_door.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a38" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/oak_sapling.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a39" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/oak_sign.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a3a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/orange_candle.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a3b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/orange_dye.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a3c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/orange_stained_glass.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a3d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/orange_tulip.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a3e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/oxeye_daisy.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a3f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/painting.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a40" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/paper.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a41" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/peony_top.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a42" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/phantom_membrane.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a43" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/piglin_banner_pattern.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a44" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/pink_candle.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a45" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/pink_dye.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a46" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/pink_stained_glass.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a47" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/pink_tulip.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a48" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/pointed_dripstone.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a49" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/poisonous_potato.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a4a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/popped_chorus_fruit.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a4b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/poppy.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a4c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/porkchop.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a4d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/potato.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a4e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/potion.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a4f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/potion_overlay.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a50" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/powder_snow_bucket.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a51" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/powered_rail.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a52" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/prismarine_crystals.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a53" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/prismarine_shard.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a54" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/pufferfish.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a55" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/pufferfish_bucket.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a56" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/pumpkin_pie.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a57" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/pumpkin_seeds.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a58" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/purple_candle.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a59" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/purple_dye.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a5a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/purple_stained_glass.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a5b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/quartz.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a5c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/rabbit.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a5d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/rabbit_foot.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a5e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/rabbit_hide.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a5f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/rabbit_stew.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a60" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/rail.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a61" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/raw_copper.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a62" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/raw_gold.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a63" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/raw_iron.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a64" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/red_candle.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a65" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/red_dye.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a66" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/red_mushroom.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a67" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/red_stained_glass.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a68" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/red_tulip.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a69" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/redstone.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a6a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/redstone_torch.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a6b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/repeater.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a6c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/rose_bush_top.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a6d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/rotten_flesh.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a6e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/saddle.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a6f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/salmon.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a70" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/salmon_bucket.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a71" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/scute.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a72" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/sea_pickle.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a73" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/seagrass.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a74" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/shears.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a75" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/shulker_shell.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a76" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/skull_banner_pattern.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a77" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/slime_ball.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a78" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/small_amethyst_bud.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a79" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/snowball.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a7a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/soul_campfire.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a7b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/soul_lantern.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a7c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/soul_torch.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a7d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/spawn_egg.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a7e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/spawn_egg_overlay.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a7f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/spectral_arrow.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a80" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/spider_eye.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a81" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/splash_potion.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a82" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/spruce_boat.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a83" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/spruce_door.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a84" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/spruce_sapling.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a85" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/spruce_sign.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a86" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/spyglass.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a87" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/stick.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a88" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/stone_axe.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a89" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/stone_hoe.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a8a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/stone_pickaxe.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a8b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/stone_shovel.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a8c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/stone_sword.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a8d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/string.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a8e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/structure_void.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a8f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/sugar.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a90" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/sugar_cane.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a91" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/sunflower_front.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a92" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/suspicious_stew.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a93" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/sweet_berries.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a94" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/tall_grass_top.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a95" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/tipped_arrow_base.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a96" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/tipped_arrow_base.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a97" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/tipped_arrow_head.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a98" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/tnt_minecart.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a99" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/torch.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a9a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/totem_of_undying.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a9b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/trident.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a9c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/tripwire_hook.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a9d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/tropical_fish.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a9e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/tropical_fish_bucket.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0a9f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/tube_coral.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0aa0" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/tube_coral_fan.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0aa1" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/turtle_egg.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0aa2" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/turtle_helmet.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0aa3" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/twisting_vines_plant.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0aa4" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/vine.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0aa5" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/warped_door.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0aa6" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/warped_fungus.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0aa7" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/warped_fungus_on_a_stick.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0aa8" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/warped_roots.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0aa9" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/warped_sign.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0aaa" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/water_bucket.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0aab" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/weeping_vines_plant.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0aac" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/wheat.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0aad" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/wheat_seeds.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0aae" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/white_candle.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0aaf" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/white_dye.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0ab0" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/white_stained_glass.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0ab1" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/white_tulip.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0ab2" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/wither_rose.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0ab3" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/wooden_axe.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0ab4" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/wooden_hoe.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0ab5" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/wooden_pickaxe.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0ab6" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/wooden_shovel.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0ab7" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/wooden_sword.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0ab8" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/writable_book.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0ab9" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/written_book.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0aba" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/yellow_candle.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0abb" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/yellow_dye.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0abc" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/yellow_stained_glass.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u0abd" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:font_magic/numbers.png", + "ascent": 3, + "height": 4, + "chars": [ + "\u0abf\u0ac0\u0ac1\u0ac2\u0ac3\u0ac4\u0ac5\u0ac6\u0ac7\u0ac8" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:font_magic/block_sheet.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ad7\u0ad8\u0ad9\u0ada\u0adb\u0adc\u0add\u0ade\u0adf\u0ae0\u0ae1\u0ae2\u0ae3\u0ae4\u0ae5\u0ae6\u0ae7\u0ae8\u0ae9\u0aea\u0aeb\u0aec\u0aed\u0aee\u0aef\u0af0\u0af1", + "\u0af2\u0af3\u0af4\u0af5\u0af6\u0af7\u0af8\u0af9\u0afa\u0afb\u0afc\u0afd\u0afe\u0aff\u0b00\u0b01\u0b02\u0b03\u0b04\u0b05\u0b06\u0b07\u0b08\u0b09\u0b0a\u0b0b\u0b0c", + "\u0b0d\u0b0e\u0b0f\u0b10\u0b11\u0b12\u0b13\u0b14\u0b15\u0b16\u0b17\u0b18\u0b19\u0b1a\u0b1b\u0b1c\u0b1d\u0b1e\u0b1f\u0b20\u0b21\u0b22\u0b23\u0b24\u0b25\u0b26\u0b27", + "\u0b28\u0b29\u0b2a\u0b2b\u0b2c\u0b2d\u0b2e\u0b2f\u0b30\u0b31\u0b32\u0b33\u0b34\u0b35\u0b36\u0b37\u0b38\u0b39\u0b3a\u0b3b\u0b3c\u0b3d\u0b3e\u0b3f\u0b40\u0b41\u0b42", + "\u0b43\u0b44\u0b45\u0b46\u0b47\u0b48\u0b49\u0b4a\u0b4b\u0b4c\u0b4d\u0b4e\u0b4f\u0b50\u0b51\u0b52\u0b53\u0b54\u0b55\u0b56\u0b57\u0b58\u0b59\u0b5a\u0b5b\u0b5c\u0b5d", + "\u0b5e\u0b5f\u0b60\u0b61\u0b62\u0b63\u0b64\u0b65\u0b66\u0b67\u0b68\u0b69\u0b6a\u0b6b\u0b6c\u0b6d\u0b6e\u0b6f\u0b70\u0b71\u0b72\u0b73\u0b74\u0b75\u0b76\u0b77\u0b78", + "\u0b79\u0b7a\u0b7b\u0b7c\u0b7d\u0b7e\u0b7f\u0b80\u0b81\u0b82\u0b83\u0b84\u0b85\u0b86\u0b87\u0b88\u0b89\u0b8a\u0b8b\u0b8c\u0b8d\u0b8e\u0b8f\u0b90\u0b91\u0b92\u0b93", + "\u0b94\u0b95\u0b96\u0b97\u0b98\u0b99\u0b9a\u0b9b\u0b9c\u0b9d\u0b9e\u0b9f\u0ba0\u0ba1\u0ba2\u0ba3\u0ba4\u0ba5\u0ba6\u0ba7\u0ba8\u0ba9\u0baa\u0bab\u0bac\u0bad\u0bae", + "\u0baf\u0bb0\u0bb1\u0bb2\u0bb3\u0bb4\u0bb5\u0bb6\u0bb7\u0bb8\u0bb9\u0bba\u0bbb\u0bbc\u0bbd\u0bbe\u0bbf\u0bc0\u0bc1\u0bc2\u0bc3\u0bc4\u0bc5\u0bc6\u0bc7\u0bc8\u0bc9", + "\u0bca\u0bcb\u0bcc\u0bcd\u0bce\u0bcf\u0bd0\u0bd1\u0bd2\u0bd3\u0bd4\u0bd5\u0bd6\u0bd7\u0bd8\u0bd9\u0bda\u0bdb\u0bdc\u0bdd\u0bde\u0bdf\u0be0\u0be1\u0be2\u0be3\u0be4", + "\u0be5\u0be6\u0be7\u0be8\u0be9\u0bea\u0beb\u0bec\u0bed\u0bee\u0bef\u0bf0\u0bf1\u0bf2\u0bf3\u0bf4\u0bf5\u0bf6\u0bf7\u0bf8\u0bf9\u0bfa\u0bfb\u0bfc\u0bfd\u0bfe\u0bff", + "\u0c00\u0c01\u0c02\u0c03\u0c04\u0c05\u0c06\u0c07\u0c08\u0c09\u0c0a\u0c0b\u0c0c\u0c0d\u0c0e\u0c0f\u0c10\u0c11\u0c12\u0c13\u0c14\u0c15\u0c16\u0c17\u0c18\u0c19\u0c1a", + "\u0c1b\u0c1c\u0c1d\u0c1e\u0c1f\u0c20\u0c21\u0c22\u0c23\u0c24\u0c25\u0c26\u0c27\u0c28\u0c29\u0c2a\u0c2b\u0c2c\u0c2d\u0c2e\u0c2f\u0c30\u0c31\u0c32\u0c33\u0c34\u0c35", + "\u0c36\u0c37\u0c38\u0c39\u0c3a\u0c3b\u0c3c\u0c3d\u0c3e\u0c3f\u0c40\u0c41\u0c42\u0c43\u0c44\u0c45\u0c46\u0c47\u0c48\u0c49\u0c4a\u0c4b\u0c4c\u0c4d\u0c4e\u0c4f\u0c50", + "\u0c51\u0c52\u0c53\u0c54\u0c55\u0c56\u0c57\u0c58\u0c59\u0c5a\u0c5b\u0c5c\u0c5d\u0c5e\u0c5f\u0c60\u0c61\u0c62\u0c63\u0c64\u0c65\u0c66\u0c67\u0c68\u0c69\u0c6a\u0c6b", + "\u0c6c\u0c6d\u0c6e\u0c6f\u0c70\u0c71\u0c72\u0c73\u0c74\u0c75\u0c76\u0c77\u0c78\u0c79\u0c7a\u0c7b\u0c7c\u0c7d\u0c7e\u0c7f\u0c80\u0c81\u0c82\u0c83\u0c84\u0c85\u0c86", + "\u0c87\u0c88\u0c89\u0c8a\u0c8b\u0c8c\u0c8d\u0c8e\u0c8f\u0c90\u0c91\u0c92\u0c93\u0c94\u0c95\u0c96\u0c97\u0c98\u0c99\u0c9a\u0c9b\u0c9c\u0c9d\u0c9e\u0c9f\u0ca0\u0ca1", + "\u0ca2\u0ca3\u0ca4\u0ca5\u0ca6\u0ca7\u0ca8\u0ca9\u0caa\u0cab\u0cac\u0cad\u0cae\u0caf\u0cb0\u0cb1\u0cb2\u0cb3\u0cb4\u0cb5\u0cb6\u0cb7\u0cb8\u0cb9\u0cba\u0cbb\u0cbc", + "\u0cbd\u0cbe\u0cbf\u0cc0\u0cc1\u0cc2\u0cc3\u0cc4\u0cc5\u0cc6\u0cc7\u0cc8\u0cc9\u0cca\u0ccb\u0ccc\u0ccd\u0cce\u0ccf\u0cd0\u0cd1\u0cd2\u0cd3\u0cd4\u0cd5\u0cd6\u0cd7", + "\u0cd8\u0cd9\u0cda\u0cdb\u0cdc\u0cdd\u0cde\u0cdf\u0ce0\u0ce1\u0ce2\u0ce3\u0ce4\u0ce5\u0ce6\u0ce7\u0ce8\u0ce9\u0cea\u0ceb\u0cec\u0ced\u0cee\u0cef\u0cf0\u0cf1\u0cf2", + "\u0cf3\u0cf4\u0cf5\u0cf6\u0cf7\u0cf8\u0cf9\u0cfa\u0cfb\u0cfc\u0cfd\u0cfe\u0cff\u0d00\u0d01\u0d02\u0d03\u0d04\u0d05\u0d06\u0d07\u0d08\u0d09\u0d0a\u0d0b\u0d0c\u0d0d", + "\u0d0e\u0d0f\u0d10\u0d11\u0d12\u0d13\u0d14\u0d15\u0d16\u0d17\u0d18\u0d19\u0d1a\u0d1b\u0d1c\u0d1d\u0d1e\u0d1f\u0d20\u0d21\u0d22\u0d23\u0d24\u0d25\u0d26\u0d27\u0d28", + "\u0d29\u0d2a\u0d2b\u0d2c\u0d2d\u0d2e\u0d2f\u0d30\u0d31\u0d32\u0d33\u0d34\u0d35\u0d36\u0d37\u0d38\u0d39\u0d3a\u0d3b\u0d3c\u0d3d\u0d3e\u0d3f\u0d40\u0d41\u0d42\u0d43", + "\u0d44\u0d45\u0d46\u0d47\u0d48\u0d49\u0d4a\u0d4b\u0d4c\u0d4d\u0d4e\u0d4f\u0d50\u0d51\u0d52\u0d53\u0d54\u0d55\u0d56\u0d57\u0d58\u0d59\u0d5a\u0d5b\u0d5c\u0d5d\u0d5e", + "\u0d5f\u0d60\u0d61\u0d62\u0d63\u0d64\u0d65\u0d66\u0d67\u0d68\u0d69\u0d6a\u0d6b\u0d6c\u0d6d\u0d6e\u0d6f\u0d70\u0d71\u0d72\u0d73\u0d74\u0d75\u0d76\u0d77\u0d78\u0d79", + "\u0d7a\u0d7b\u0d7c\u0d7d\u0d7e\u0d7f\u0d80\u0d81\u0d82\u0d83\u0d84\u0d85\u0d86\u0d87\u0d88\u0d89\u0d8a\u0d8b\u0d8c\u0d8d\u0d8e\u0d8f\u0d90\u0d91\u0000\u0000\u0000", + "\u4001\u4002\u4003\u4004\u4005\u4006\u4007\u4008\u4009\u4010\u4011\u4012\u4013\u4014\u4015\u4016\u4017\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/acacia_boat.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0d92" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/acacia_door.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0d93" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/acacia_sapling.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0d94" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/acacia_sign.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0d95" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/activator_rail.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0d96" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/allium.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0d97" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/amethyst_cluster.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0d98" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/amethyst_shard.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0d99" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/apple.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0d9a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/armor_stand.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0d9b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/arrow.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0d9c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/axolotl_bucket.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0d9d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/azure_bluet.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0d9e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/baked_potato.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0d9f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/bamboo.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0da0" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/barrier.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0da1" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/beef.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0da2" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/beetroot.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0da3" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/beetroot_seeds.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0da4" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/beetroot_soup.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0da5" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/bell.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0da6" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/birch_boat.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0da7" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/birch_door.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0da8" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/birch_sapling.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0da9" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/birch_sign.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0daa" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/black_candle.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dab" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/black_dye.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dac" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/black_stained_glass.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dad" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/blaze_powder.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dae" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/blaze_rod.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0daf" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/blue_candle.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0db0" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/blue_dye.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0db1" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/blue_orchid.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0db2" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/blue_stained_glass.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0db3" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/bone.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0db4" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/bone_meal.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0db5" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/book.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0db6" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/bow.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0db7" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/bowl.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0db8" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/brain_coral.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0db9" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/brain_coral_fan.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dba" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/bread.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dbb" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/brewing_stand.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dbc" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/brick.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dbd" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/broken_elytra.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dbe" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/brown_candle.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dbf" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/brown_dye.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dc0" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/brown_mushroom.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dc1" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/brown_stained_glass.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dc2" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/bubble_coral.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dc3" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/bubble_coral_fan.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dc4" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/bucket.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dc5" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/bundle.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dc6" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/bundle_filled.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dc7" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cake.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dc8" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/campfire.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dc9" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/candle.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dca" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/carrot.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dcb" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/carrot_on_a_stick.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dcc" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cauldron.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dcd" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/chain.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dce" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/chainmail_boots.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dcf" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/chainmail_chestplate.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dd0" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/chainmail_helmet.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dd1" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/chainmail_leggings.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dd2" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/charcoal.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dd3" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/chest_minecart.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dd4" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/chicken.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dd5" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/chorus_fruit.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dd6" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/clay_ball.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dd7" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/clock_00.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dd8" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/coal.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dd9" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/cobweb.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dda" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cocoa_beans.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ddb" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cod.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ddc" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cod_bucket.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ddd" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/command_block_minecart.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dde" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/comparator.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ddf" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/compass_16.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0de0" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cooked_beef.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0de1" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cooked_chicken.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0de2" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cooked_cod.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0de3" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cooked_mutton.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0de4" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cooked_porkchop.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0de5" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cooked_rabbit.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0de6" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cooked_salmon.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0de7" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cookie.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0de8" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/copper_ingot.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0de9" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/cornflower.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dea" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/creeper_banner_pattern.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0deb" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/crimson_door.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dec" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/crimson_fungus.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ded" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/crimson_roots.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dee" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/crimson_sign.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0def" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/crossbow_standby.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0df0" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/crossbow_arrow.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0df1" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/crossbow_firework.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0df2" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cyan_candle.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0df3" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/cyan_dye.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0df4" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/cyan_stained_glass.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0df5" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dandelion.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0df6" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/dark_oak_boat.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0df7" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/dark_oak_door.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0df8" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dark_oak_sapling.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0df9" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/dark_oak_sign.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dfa" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dead_brain_coral.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dfb" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dead_brain_coral_fan.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dfc" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dead_bubble_coral.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dfd" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dead_bubble_coral_fan.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dfe" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dead_bush.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0dff" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dead_fire_coral.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e00" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dead_fire_coral_fan.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e01" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dead_horn_coral.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e02" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dead_horn_coral_fan.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e03" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dead_tube_coral.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e04" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/dead_tube_coral_fan.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e05" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/detector_rail.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e06" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/diamond.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e07" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/diamond_axe.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e08" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/diamond_boots.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e09" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/diamond_chestplate.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e0a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/diamond_helmet.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e0b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/diamond_hoe.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e0c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/diamond_horse_armor.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e0d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/diamond_leggings.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e0e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/diamond_pickaxe.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e0f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/diamond_shovel.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e10" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/diamond_sword.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e11" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/dragon_breath.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e12" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/dried_kelp.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e13" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/egg.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e14" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/elytra.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e15" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/emerald.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e16" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/enchanted_book.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e17" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/end_crystal.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e18" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/ender_eye.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e19" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/ender_pearl.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e1a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/experience_bottle.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e1b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/feather.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e1c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/fermented_spider_eye.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e1d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/fern.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e1e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/filled_map.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e1f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/filled_map_markings.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e20" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/fire_charge.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e21" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/fire_coral.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e22" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/fire_coral_fan.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e23" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/firework_rocket.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e24" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/firework_star.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e25" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/firework_star_overlay.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e26" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/fishing_rod.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e27" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/flint.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e28" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/flint_and_steel.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e29" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/flower_banner_pattern.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e2a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/flower_pot.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e2b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/furnace_minecart.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e2c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/ghast_tear.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e2d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/glass_bottle.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e2e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/glass.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e2f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/glistering_melon_slice.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e30" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/globe_banner_pattern.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e31" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/glow_berries.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e32" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/glow_ink_sac.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e33" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/glow_item_frame.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e34" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/glow_lichen.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e35" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/glowstone_dust.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e36" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/gold_ingot.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e37" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/gold_nugget.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e38" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_apple.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e39" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_axe.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e3a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_boots.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e3b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_carrot.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e3c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_chestplate.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e3d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_helmet.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e3e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_hoe.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e3f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_horse_armor.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e40" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_leggings.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e41" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_pickaxe.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e42" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_shovel.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e43" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/golden_sword.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e44" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/grass.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e45" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/gray_candle.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e46" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/gray_dye.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e47" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/gray_stained_glass.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e48" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/green_candle.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e49" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/green_dye.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e4a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/green_stained_glass.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e4b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/gunpowder.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e4c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/hanging_roots.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e4d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/heart_of_the_sea.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e4e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/honey_bottle.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e4f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/honeycomb.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e50" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/hopper.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e51" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/hopper_minecart.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e52" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/horn_coral.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e53" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/horn_coral_fan.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e54" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/ink_sac.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e55" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_axe.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e56" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/iron_bars.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e57" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_boots.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e58" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_chestplate.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e59" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_door.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e5a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_helmet.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e5b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_hoe.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e5c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_horse_armor.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e5d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_ingot.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e5e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_leggings.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e5f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_nugget.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e60" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_pickaxe.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e61" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_shovel.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e62" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/iron_sword.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e63" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/item_frame.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e64" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/jungle_boat.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e65" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/jungle_door.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e66" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/jungle_sapling.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e67" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/jungle_sign.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e68" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/kelp.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e69" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/knowledge_book.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e6a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/ladder.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e6b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/lantern.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e6c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/lapis_lazuli.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e6d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/large_amethyst_bud.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e6e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/large_fern_top.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e6f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/lava_bucket.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e70" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/lead.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e71" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/leather.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e72" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/leather_boots.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e73" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/leather_boots_overlay.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e74" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/leather_chestplate.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e75" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/leather_chestplate_overlay.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e76" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/leather_helmet.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e77" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/leather_helmet_overlay.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e78" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/leather_horse_armor.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e79" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/leather_leggings.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e7a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/leather_leggings_overlay.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e7b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/lever.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e7c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e7d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_00.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e7e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_01.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e7f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_02.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e80" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_03.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e81" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_04.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e82" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_05.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e83" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_06.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e84" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_07.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e85" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_08.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e86" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_09.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e87" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_10.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e88" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_11.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e89" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_12.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e8a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_13.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e8b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_14.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e8c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_15.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e8d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_blue_candle.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e8e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_blue_dye.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e8f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/light_blue_stained_glass.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e90" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_gray_candle.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e91" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/light_gray_dye.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e92" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/light_gray_stained_glass.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e93" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/lilac_top.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e94" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/lily_of_the_valley.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e95" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/lily_pad.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e96" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/lime_candle.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e97" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/lime_dye.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e98" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/lime_stained_glass.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e99" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/lingering_potion.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e9a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/magenta_candle.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e9b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/magenta_dye.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e9c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/magenta_stained_glass.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e9d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/magma_cream.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e9e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/map.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0e9f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/medium_amethyst_bud.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ea0" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/melon_seeds.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ea1" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/melon_slice.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ea2" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/milk_bucket.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ea3" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/minecart.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ea4" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/mojang_banner_pattern.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ea5" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/mushroom_stew.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ea6" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_11.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ea7" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_13.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ea8" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_blocks.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ea9" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_cat.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0eaa" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_chirp.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0eab" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_far.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0eac" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_mall.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ead" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_mellohi.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0eae" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_pigstep.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0eaf" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_stal.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0eb0" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_strad.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0eb1" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_wait.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0eb2" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/music_disc_ward.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0eb3" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/mutton.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0eb4" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/name_tag.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0eb5" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/nautilus_shell.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0eb6" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/nether_brick.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0eb7" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/nether_sprouts.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0eb8" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/nether_star.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0eb9" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/nether_wart.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0eba" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/netherite_axe.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ebb" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/netherite_boots.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ebc" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/netherite_chestplate.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ebd" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/netherite_helmet.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ebe" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/netherite_hoe.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ebf" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/netherite_ingot.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ec0" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/netherite_leggings.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ec1" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/netherite_pickaxe.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ec2" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/netherite_scrap.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ec3" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/netherite_shovel.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ec4" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/netherite_sword.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ec5" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/oak_boat.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ec6" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/oak_door.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ec7" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/oak_sapling.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ec8" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/oak_sign.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ec9" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/orange_candle.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0eca" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/orange_dye.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ecb" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/orange_stained_glass.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ecc" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/orange_tulip.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ecd" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/oxeye_daisy.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ece" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/painting.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ecf" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/paper.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ed0" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/peony_top.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ed1" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/phantom_membrane.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ed2" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/piglin_banner_pattern.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ed3" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/pink_candle.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ed4" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/pink_dye.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ed5" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/pink_stained_glass.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ed6" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/pink_tulip.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ed7" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/pointed_dripstone.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ed8" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/poisonous_potato.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ed9" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/popped_chorus_fruit.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0eda" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/poppy.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0edb" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/porkchop.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0edc" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/potato.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0edd" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/potion.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ede" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/potion_overlay.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0edf" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/powder_snow_bucket.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ee0" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/powered_rail.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ee1" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/prismarine_crystals.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ee2" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/prismarine_shard.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ee3" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/pufferfish.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ee4" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/pufferfish_bucket.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ee5" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/pumpkin_pie.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ee6" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/pumpkin_seeds.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ee7" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/purple_candle.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ee8" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/purple_dye.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ee9" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/purple_stained_glass.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0eea" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/quartz.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0eeb" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/rabbit.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0eec" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/rabbit_foot.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0eed" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/rabbit_hide.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0eee" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/rabbit_stew.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0eef" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/rail.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ef0" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/raw_copper.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ef1" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/raw_gold.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ef2" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/raw_iron.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ef3" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/red_candle.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ef4" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/red_dye.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ef5" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/red_mushroom.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ef6" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/red_stained_glass.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ef7" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/red_tulip.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ef8" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/redstone.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0ef9" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/redstone_torch.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0efa" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/repeater.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0efb" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/rose_bush_top.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0efc" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/rotten_flesh.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0efd" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/saddle.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0efe" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/salmon.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0eff" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/salmon_bucket.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f00" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/scute.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f01" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/sea_pickle.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f02" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/seagrass.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f03" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/shears.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f04" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/shulker_shell.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f05" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/skull_banner_pattern.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f06" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/slime_ball.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f07" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/small_amethyst_bud.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f08" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/snowball.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f09" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/soul_campfire.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f0a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/soul_lantern.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f0b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/soul_torch.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f0c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/spawn_egg.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f0d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/spawn_egg_overlay.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f0e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/spectral_arrow.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f0f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/spider_eye.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f10" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/splash_potion.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f11" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/spruce_boat.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f12" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/spruce_door.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f13" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/spruce_sapling.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f14" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/spruce_sign.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f15" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/spyglass.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f16" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/stick.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f17" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/stone_axe.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f18" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/stone_hoe.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f19" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/stone_pickaxe.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f1a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/stone_shovel.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f1b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/stone_sword.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f1c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/string.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f1d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/structure_void.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f1e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/sugar.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f1f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/sugar_cane.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f20" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/sunflower_front.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f21" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/suspicious_stew.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f22" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/sweet_berries.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f23" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/tall_grass_top.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f24" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/tipped_arrow_base.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f25" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/tipped_arrow_base.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f26" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/tipped_arrow_head.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f27" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/tnt_minecart.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f28" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/torch.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f29" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/totem_of_undying.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f2a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/trident.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f2b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/tripwire_hook.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f2c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/tropical_fish.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f2d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/tropical_fish_bucket.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f2e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/tube_coral.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f2f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/tube_coral_fan.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f30" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/turtle_egg.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f31" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/turtle_helmet.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f32" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/twisting_vines_plant.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f33" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/vine.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f34" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/warped_door.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f35" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/warped_fungus.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f36" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/warped_fungus_on_a_stick.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f37" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/warped_roots.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f38" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/warped_sign.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f39" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/water_bucket.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f3a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/weeping_vines_plant.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f3b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/wheat.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f3c" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/wheat_seeds.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f3d" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/white_candle.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f3e" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/white_dye.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f3f" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/white_stained_glass.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f40" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/white_tulip.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f41" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/wither_rose.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f42" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/wooden_axe.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f43" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/wooden_hoe.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f44" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/wooden_pickaxe.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f45" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/wooden_shovel.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f46" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/wooden_sword.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f47" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/writable_book.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f48" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/written_book.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f49" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/yellow_candle.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f4a" + ] + }, + { + "type": "bitmap", + "file": "minecraft:item/yellow_dye.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f4b" + ] + }, + { + "type": "bitmap", + "file": "minecraft:block/yellow_stained_glass.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u0f4c" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:item/boots_of_ostara/boots_of_ostara_overlay.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u4101" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:item/boots_of_ostara/boots_of_ostara.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u4102" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:item/scuba_gear/flippers_overlay.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u4103" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:item/scuba_gear/flippers.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u4104" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:item/scuba_gear/scuba_helmet.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u4105" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:item/scuba_gear/scuba_tank.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u4106" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:item/trapped_signs/secret_trapped_oak_sign.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u4107" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:item/trapped_signs/trapped_oak_sign.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u4108" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:item/heart_canisters/heart_canister_tier_1.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u4109" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:item/tunnel_bores/piston_minecart.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u4110" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:item/orb_of_ankou/orb_of_ankou_overlay.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u4111" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:item/orb_of_ankou/orb_of_ankou.png", + "ascent": 8, + "height": 9, + "chars": [ + "\u4112" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:item/boots_of_ostara/boots_of_ostara_overlay.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u4201" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:item/boots_of_ostara/boots_of_ostara.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u4202" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:item/scuba_gear/flippers_overlay.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u4203" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:item/scuba_gear/flippers.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u4204" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:item/scuba_gear/scuba_helmet.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u4205" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:item/scuba_gear/scuba_tank.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u4206" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:item/trapped_signs/secret_trapped_oak_sign.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u4207" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:item/trapped_signs/trapped_oak_sign.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u4208" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:item/heart_canisters/heart_canister_tier_1.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u4209" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:item/tunnel_bores/piston_minecart.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u4210" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:item/orb_of_ankou/orb_of_ankou_overlay.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u4211" + ] + }, + { + "type": "bitmap", + "file": "gm4_furniture:item/orb_of_ankou/orb_of_ankou.png", + "ascent": -32768, + "height": -9, + "chars": [ + "\u4212" + ] + } + ] +} diff --git a/gm4_furniture/assets/gm4_furniture/font/half_invert.json b/gm4_furniture/assets/gm4_furniture/font/half_invert.json new file mode 100644 index 0000000000..06efacd978 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/font/half_invert.json @@ -0,0 +1,18 @@ +{ + "providers": [ + { + "type": "space", + "advances": { + " ": -2, + "\u200c": 0 + } + }, + { + "type": "ttf", + "file": "gm4_furniture:minecraft.ttf", + "shift": [0, -32768], + "size": -6.5, + "oversample": 1.0 + } + ] +} diff --git a/gm4_furniture/assets/gm4_furniture/font/minecraft.ttf b/gm4_furniture/assets/gm4_furniture/font/minecraft.ttf new file mode 100644 index 0000000000..079171abb3 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/font/minecraft.ttf differ diff --git a/gm4_furniture/assets/gm4_furniture/font/offscreen.json b/gm4_furniture/assets/gm4_furniture/font/offscreen.json new file mode 100644 index 0000000000..62de0741a0 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/font/offscreen.json @@ -0,0 +1,18 @@ +{ + "providers": [ + { + "type": "space", + "advances": { + " ": 4, + "\u200c": 0 + } + }, + { + "type": "ttf", + "file": "gm4_furniture:minecraft.ttf", + "shift": [0, -32768], + "size": 13, + "oversample": 1.0 + } + ] +} diff --git a/gm4_furniture/assets/gm4_furniture/font/shift_name.json b/gm4_furniture/assets/gm4_furniture/font/shift_name.json new file mode 100644 index 0000000000..e6ba71eb13 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/font/shift_name.json @@ -0,0 +1,18 @@ +{ + "providers": [ + { + "type": "space", + "advances": { + " ": 4, + "\u200c": 0 + } + }, + { + "type": "ttf", + "file": "gm4_furniture:minecraft.ttf", + "shift": [0,7], + "size": 8, + "oversample": 7 + } + ] +} diff --git a/gm4_furniture/assets/gm4_furniture/lang/en_us.json b/gm4_furniture/assets/gm4_furniture/lang/en_us.json new file mode 100644 index 0000000000..4df8a8373b --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/lang/en_us.json @@ -0,0 +1,5 @@ +{ + "OLDgui.gm4.furniture_station": "\u9021\u9020\u9100\u9022\u9023", + "OLDgui.gm4.furniture_station.offset": "\u9024", + "gui.gm4.furniture_station.offset": "\u8022" +} diff --git a/gm4_furniture/assets/gm4_furniture/models/block/furniture/cloth_set/horizontal_flag_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/cloth_set/horizontal_flag_1.json new file mode 100644 index 0000000000..4203e6da6e --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/cloth_set/horizontal_flag_1.json @@ -0,0 +1,67 @@ +{ + "textures": { + "1": "gm4_furniture:block/furniture/cloth_set/horizontal_flag_1", + "2": "gm4_furniture:block/furniture/cloth_set/horizontal_flag_1_pole", + "particle": "gm4_furniture:block/furniture/cloth_set/horizontal_flag_1_pole" + }, + "elements": [ + { + "from": [19.5, 4, 7.5], + "to": [20.5, 12, 8.5], + "rotation": {"angle": 0, "axis": "y", "origin": [12.75, 3.875, 8]}, + "faces": { + "north": {"uv": [0, 0, 2, 16], "texture": "#2"}, + "east": {"uv": [8, 0, 6, 16], "texture": "#2"}, + "south": {"uv": [2, 0, 0, 16], "texture": "#2"}, + "west": {"uv": [5, 0, 3, 16], "texture": "#2"}, + "up": {"uv": [9, 0, 11, 2], "texture": "#2"}, + "down": {"uv": [9, 3, 11, 5], "texture": "#2"} + } + }, + { + "from": [-4.5, 3.75, 8], + "to": [19.5, 11.75, 8], + "rotation": {"angle": 0, "axis": "y", "origin": [6.5, 3.75, 8]}, + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#1", "tintindex": 0}, + "south": {"uv": [16, 0, 0, 16], "texture": "#1", "tintindex": 0} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [90, 0, 90], + "translation": [0, -1.75, -4.5], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [90, 0, -90], + "translation": [0, -1.75, -4.5], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, 0, 90], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 0, -90], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 135, 0], + "translation": [0, -2, 0], + "scale": [0.625, 0.625, 0.625] + }, + "head": { + "translation": [-24, 0, 0], + "scale": [2, 2, 2] + }, + "fixed": { + "scale": [0.5, 0.5, 0.5] + } + } +} diff --git a/gm4_furniture/assets/gm4_furniture/models/block/furniture/cloth_set/paper_lantern_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/cloth_set/paper_lantern_1.json new file mode 100644 index 0000000000..3ffbdfadbc --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/cloth_set/paper_lantern_1.json @@ -0,0 +1,114 @@ +{ + "texture_size": [32, 32], + "textures": { + "0": "gm4_furniture:block/furniture/cloth_set/paper_lantern_1", + "particle": "gm4_furniture:block/furniture/cloth_set/paper_lantern_1" + }, + "elements": [ + { + "from": [3, 5, 3], + "to": [13, 14, 13], + "faces": { + "north": {"uv": [0, 0, 5, 4.5], "texture": "#0", "tintindex": 0}, + "east": {"uv": [0, 0, 5, 4.5], "texture": "#0", "tintindex": 0}, + "south": {"uv": [0, 0, 5, 4.5], "texture": "#0", "tintindex": 0}, + "west": {"uv": [0, 0, 5, 4.5], "texture": "#0", "tintindex": 0}, + "up": {"uv": [5.5, 0, 10.5, 5], "texture": "#0", "tintindex": 0}, + "down": {"uv": [11, 0, 16, 5], "texture": "#0", "tintindex": 0} + } + }, + { + "from": [6, 4, 6], + "to": [10, 5, 10], + "faces": { + "north": {"uv": [0, 11, 2, 11.5], "texture": "#0"}, + "east": {"uv": [0, 11, 2, 11.5], "texture": "#0"}, + "south": {"uv": [0, 11, 2, 11.5], "texture": "#0"}, + "west": {"uv": [0, 11, 2, 11.5], "texture": "#0"}, + "down": {"uv": [0, 8.5, 2, 10.5], "texture": "#0"} + } + }, + { + "from": [6, 15, 6], + "to": [10, 16, 10], + "faces": { + "north": {"uv": [0, 7.5, 2, 8], "texture": "#0"}, + "east": {"uv": [0, 7.5, 2, 8], "texture": "#0"}, + "south": {"uv": [0, 7.5, 2, 8], "texture": "#0"}, + "west": {"uv": [0, 7.5, 2, 8], "texture": "#0"}, + "up": {"uv": [0, 5, 2, 7], "texture": "#0"}, + "down": {"uv": [0, 5, 2, 7], "texture": "#0"} + } + }, + { + "from": [7, 2, 7], + "to": [9, 4, 9], + "faces": { + "north": {"uv": [2.5, 8.5, 3.5, 9.5], "texture": "#0"}, + "east": {"uv": [2.5, 8.5, 3.5, 9.5], "texture": "#0"}, + "south": {"uv": [2.5, 8.5, 3.5, 9.5], "texture": "#0"}, + "west": {"uv": [2.5, 8.5, 3.5, 9.5], "texture": "#0"}, + "down": {"uv": [4, 8.5, 5, 9.5], "texture": "#0"} + } + }, + { + "from": [8, -5, 5.5], + "to": [8, 2, 10.5], + "rotation": {"angle": 45, "axis": "y", "origin": [8, -1.5, 8]}, + "faces": { + "east": {"uv": [5, 5.5, 7.5, 9], "texture": "#0", "tintindex": 0}, + "west": {"uv": [5, 5.5, 7.5, 9], "texture": "#0", "tintindex": 0} + } + }, + { + "from": [8, -5, 5.5], + "to": [8, 2, 10.5], + "rotation": {"angle": -45, "axis": "y", "origin": [8, -1.5, 8]}, + "faces": { + "east": {"uv": [5, 5.5, 7.5, 9], "texture": "#0", "tintindex": 0}, + "west": {"uv": [5, 5.5, 7.5, 9], "texture": "#0", "tintindex": 0} + } + }, + { + "from": [7, 14, 7], + "to": [9, 15, 9], + "faces": { + "north": {"uv": [2.5, 5, 3.5, 5.5], "texture": "#0"}, + "east": {"uv": [2.5, 5, 3.5, 5.5], "texture": "#0"}, + "south": {"uv": [2.5, 5, 3.5, 5.5], "texture": "#0"}, + "west": {"uv": [2.5, 5, 3.5, 5.5], "texture": "#0"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 225, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "scale": [0.625, 0.625, 0.625] + }, + "fixed": { + "scale": [0.5, 0.5, 0.5] + } + } +} diff --git a/gm4_furniture/assets/gm4_furniture/models/block/furniture/furniture_station.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/furniture_station.json new file mode 100644 index 0000000000..51686eb0dc --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/furniture_station.json @@ -0,0 +1,115 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "gm4_furniture:block/furniture/furniture_station", + "particle": "gm4_furniture:block/furniture/furniture_station" + }, + "elements": [ + { + "from": [0, 14, 0], + "to": [16, 16, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 11, 8]}, + "faces": { + "north": {"uv": [0, 4.25, 4, 4.75], "texture": "#0"}, + "east": {"uv": [0, 4.25, 4, 4.75], "texture": "#0"}, + "south": {"uv": [0, 4.25, 4, 4.75], "texture": "#0"}, + "west": {"uv": [0, 4.25, 4, 4.75], "texture": "#0"}, + "up": {"uv": [0, 0, 4, 4], "rotation": 270, "texture": "#0"}, + "down": {"uv": [0, 5, 4, 9], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [1, 10, 1], + "to": [15, 12, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 11, 8]}, + "faces": { + "north": {"uv": [4.25, 3.75, 7.75, 4.25], "texture": "#0"}, + "east": {"uv": [8, 0, 8.5, 3.5], "rotation": 90, "texture": "#0"}, + "south": {"uv": [4.25, 3.75, 7.75, 4.25], "texture": "#0"}, + "west": {"uv": [8, 0, 8.5, 3.5], "rotation": 90, "texture": "#0"}, + "up": {"uv": [4.25, 0, 7.75, 3.5], "texture": "#0"}, + "down": {"uv": [4.25, 8, 7.75, 4.5], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [2, 0, 12], + "to": [4, 14, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 11, 8]}, + "faces": { + "north": {"uv": [9.5, 0, 10, 3.5], "texture": "#0"}, + "east": {"uv": [8.75, 0, 9.25, 3.5], "texture": "#0"}, + "south": {"uv": [9.5, 0, 10, 3.5], "texture": "#0"}, + "west": {"uv": [8.75, 0, 9.25, 3.5], "texture": "#0"}, + "down": {"uv": [8.75, 3.75, 9.25, 4.25], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [2, 0, 2], + "to": [4, 14, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 11, 8]}, + "faces": { + "north": {"uv": [10, 0, 9.5, 3.5], "texture": "#0"}, + "east": {"uv": [9.25, 0, 8.75, 3.5], "texture": "#0"}, + "south": {"uv": [10, 0, 9.5, 3.5], "texture": "#0"}, + "west": {"uv": [9.25, 0, 8.75, 3.5], "texture": "#0"}, + "down": {"uv": [8.75, 4.25, 9.25, 3.75], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [12, 0, 12], + "to": [14, 14, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 11, 8]}, + "faces": { + "north": {"uv": [10, 0, 9.5, 3.5], "texture": "#0"}, + "east": {"uv": [9.25, 0, 8.75, 3.5], "texture": "#0"}, + "south": {"uv": [10, 0, 9.5, 3.5], "texture": "#0"}, + "west": {"uv": [9.25, 0, 8.75, 3.5], "texture": "#0"}, + "down": {"uv": [8.75, 4.25, 9.25, 3.75], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [12, 0, 2], + "to": [14, 14, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 11, 8]}, + "faces": { + "north": {"uv": [9.5, 0, 10, 3.5], "texture": "#0"}, + "east": {"uv": [8.75, 0, 9.25, 3.5], "texture": "#0"}, + "south": {"uv": [9.5, 0, 10, 3.5], "texture": "#0"}, + "west": {"uv": [8.75, 0, 9.25, 3.5], "texture": "#0"}, + "down": {"uv": [8.75, 3.75, 9.25, 4.25], "rotation": 90, "texture": "#0"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 225, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "scale": [0.625, 0.625, 0.625] + }, + "fixed": { + "scale": [0.5, 0.5, 0.5] + } + } +} diff --git a/gm4_furniture/assets/gm4_furniture/models/block/furniture/metal_set/gold/3_candelabra_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/metal_set/gold/3_candelabra_1.json new file mode 100644 index 0000000000..892f1df8f0 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/metal_set/gold/3_candelabra_1.json @@ -0,0 +1,292 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "2": "gm4_furniture:block/furniture/misc/candle_1", + "3": "gm4_furniture:block/furniture/misc/candle_fire_1", + "4": "gm4_furniture:block/furniture/metal_set/gold/3_candelabra_1", + "particle": "gm4_furniture:block/furniture/metal_set/gold/3_candelabra_1" + }, + "elements": [ + { + "from": [6, 0, 6], + "to": [10, 1, 10], + "faces": { + "north": {"uv": [12, 0, 10, 0.5], "texture": "#4"}, + "east": {"uv": [11.5, 0, 12, 2], "rotation": 90, "texture": "#4"}, + "south": {"uv": [10, 1.5, 12, 2], "texture": "#4"}, + "west": {"uv": [10.5, 0, 10, 2], "rotation": 90, "texture": "#4"}, + "up": {"uv": [10, 0, 12, 2], "texture": "#4"}, + "down": {"uv": [12, 0, 10, 2], "texture": "#4"} + } + }, + { + "from": [7, 10, 7], + "to": [9, 11, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 16, 0]}, + "faces": { + "north": {"uv": [8.5, 3, 7.5, 2.5], "texture": "#4"}, + "east": {"uv": [8.5, 2.5, 8, 3.5], "rotation": 90, "texture": "#4"}, + "south": {"uv": [7.5, 3.5, 8.5, 3], "texture": "#4"}, + "west": {"uv": [8, 3.5, 7.5, 2.5], "rotation": 90, "texture": "#4"}, + "down": {"uv": [7.5, 3.5, 8.5, 2.5], "texture": "#4"} + } + }, + { + "from": [11, 10, 6], + "to": [15, 11, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 16, 0]}, + "faces": { + "north": {"uv": [9.5, 0.5, 7.5, 0], "texture": "#4"}, + "east": {"uv": [9.5, 0, 9, 2], "rotation": 90, "texture": "#4"}, + "south": {"uv": [7.5, 2, 9.5, 1.5], "texture": "#4"}, + "west": {"uv": [7.5, 0, 8, 2], "rotation": 90, "texture": "#4"}, + "up": {"uv": [9.5, 2, 7.5, 0], "texture": "#4"}, + "down": {"uv": [7.5, 2, 9.5, 0], "texture": "#4"} + } + }, + { + "from": [12, 9, 7], + "to": [14, 10, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 16, 0]}, + "faces": { + "north": {"uv": [8.5, 3, 7.5, 2.5], "texture": "#4"}, + "east": {"uv": [8.5, 2.5, 8, 3.5], "rotation": 90, "texture": "#4"}, + "south": {"uv": [7.5, 3.5, 8.5, 3], "texture": "#4"}, + "west": {"uv": [8, 3.5, 7.5, 2.5], "rotation": 90, "texture": "#4"}, + "down": {"uv": [7.5, 3.5, 8.5, 2.5], "texture": "#4"} + } + }, + { + "from": [1, 10, 6], + "to": [5, 11, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 16, 0]}, + "faces": { + "north": {"uv": [9.5, 0.5, 7.5, 0], "texture": "#4"}, + "east": {"uv": [9.5, 0, 9, 2], "rotation": 90, "texture": "#4"}, + "south": {"uv": [7.5, 2, 9.5, 1.5], "texture": "#4"}, + "west": {"uv": [7.5, 0, 8, 2], "rotation": 90, "texture": "#4"}, + "up": {"uv": [9.5, 2, 7.5, 0], "texture": "#4"}, + "down": {"uv": [7.5, 2, 9.5, 0], "texture": "#4"} + } + }, + { + "from": [2, 9, 7], + "to": [4, 10, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 16, 0]}, + "faces": { + "north": {"uv": [8.5, 3, 7.5, 2.5], "texture": "#4"}, + "east": {"uv": [8.5, 2.5, 8, 3.5], "rotation": 90, "texture": "#4"}, + "south": {"uv": [7.5, 3.5, 8.5, 3], "texture": "#4"}, + "west": {"uv": [8, 3.5, 7.5, 2.5], "rotation": 90, "texture": "#4"}, + "down": {"uv": [7.5, 3.5, 8.5, 2.5], "texture": "#4"} + } + }, + { + "from": [6, 11, 6], + "to": [10, 12, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 16, 0]}, + "faces": { + "north": {"uv": [9.5, 0.5, 7.5, 0], "texture": "#4"}, + "east": {"uv": [9.5, 0, 9, 2], "rotation": 90, "texture": "#4"}, + "south": {"uv": [7.5, 2, 9.5, 1.5], "texture": "#4"}, + "west": {"uv": [7.5, 0, 8, 2], "rotation": 90, "texture": "#4"}, + "up": {"uv": [9.5, 2, 7.5, 0], "texture": "#4"}, + "down": {"uv": [7.5, 2, 9.5, 0], "texture": "#4"} + } + }, + { + "from": [7, 1, 7], + "to": [9, 2, 9], + "faces": { + "north": {"uv": [11, 2.5, 10, 3], "texture": "#4"}, + "east": {"uv": [10.5, 2.5, 11, 3.5], "rotation": 90, "texture": "#4"}, + "south": {"uv": [10, 3, 11, 3.5], "texture": "#4"}, + "west": {"uv": [10, 3.5, 10.5, 2.5], "rotation": 90, "texture": "#4"}, + "up": {"uv": [10, 2.5, 11, 3.5], "texture": "#4"} + } + }, + { + "from": [1, 2, 8], + "to": [15, 11, 8], + "faces": { + "north": {"uv": [0, 0, 7, 4.5], "texture": "#4"}, + "south": {"uv": [0, 0, 7, 4.5], "texture": "#4"} + } + }, + { + "from": [8, 2, 6], + "to": [8, 11, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "east": {"uv": [12.5, 0, 14.5, 4.5], "texture": "#4"}, + "west": {"uv": [12.5, 0, 14.5, 4.5], "texture": "#4"} + } + }, + { + "from": [6.5, 17.25, 8], + "to": [9.5, 21.25, 8], + "shade": false, + "rotation": {"angle": 45, "axis": "y", "origin": [8, 17.25, 8], "rescale": true}, + "faces": { + "north": {"uv": [8, 0, 11, 4], "texture": "#3"}, + "south": {"uv": [8, 0, 11, 4], "texture": "#3"} + } + }, + { + "from": [12, 11, 7], + "to": [14, 16, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [5, 4, -4]}, + "faces": { + "north": {"uv": [0, 0, 2, 5], "texture": "#2", "tintindex": 0}, + "east": {"uv": [3, 0, 5, 5], "texture": "#2", "tintindex": 0}, + "south": {"uv": [0, 0, 2, 5], "texture": "#2", "tintindex": 0}, + "west": {"uv": [3, 0, 5, 5], "texture": "#2", "tintindex": 0}, + "up": {"uv": [0, 6, 2, 8], "texture": "#2", "tintindex": 0} + } + }, + { + "from": [11.75, 10.75, 6.75], + "to": [14.25, 16.25, 9.25], + "rotation": {"angle": 0, "axis": "y", "origin": [5.25, 4.25, -3.75]}, + "faces": { + "north": {"uv": [6, 0, 8, 5], "texture": "#2", "tintindex": 0}, + "east": {"uv": [9, 0, 11, 5], "texture": "#2", "tintindex": 0}, + "south": {"uv": [6, 0, 8, 5], "texture": "#2", "tintindex": 0}, + "west": {"uv": [9, 0, 11, 5], "texture": "#2", "tintindex": 0}, + "up": {"uv": [6, 6, 8, 8], "texture": "#2", "tintindex": 0} + } + }, + { + "from": [11.5, 16.25, 8], + "to": [14.5, 20.25, 8], + "shade": false, + "rotation": {"angle": -45, "axis": "y", "origin": [13, 16.25, 8], "rescale": true}, + "faces": { + "north": {"uv": [0, 0, 3, 4], "texture": "#3"}, + "south": {"uv": [0, 0, 3, 4], "texture": "#3"} + } + }, + { + "from": [11.5, 16.25, 8], + "to": [14.5, 20.25, 8], + "shade": false, + "rotation": {"angle": 45, "axis": "y", "origin": [13, 16.25, 8], "rescale": true}, + "faces": { + "north": {"uv": [8, 0, 11, 4], "texture": "#3"}, + "south": {"uv": [8, 0, 11, 4], "texture": "#3"} + } + }, + { + "from": [2, 11, 7], + "to": [4, 16, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [-5, 4, -4]}, + "faces": { + "north": {"uv": [0, 0, 2, 5], "texture": "#2", "tintindex": 0}, + "east": {"uv": [3, 0, 5, 5], "texture": "#2", "tintindex": 0}, + "south": {"uv": [0, 0, 2, 5], "texture": "#2", "tintindex": 0}, + "west": {"uv": [3, 0, 5, 5], "texture": "#2", "tintindex": 0}, + "up": {"uv": [0, 6, 2, 8], "texture": "#2", "tintindex": 0} + } + }, + { + "from": [1.75, 10.75, 6.75], + "to": [4.25, 16.25, 9.25], + "rotation": {"angle": 0, "axis": "y", "origin": [-4.75, 4.25, -3.75]}, + "faces": { + "north": {"uv": [6, 0, 8, 5], "texture": "#2", "tintindex": 0}, + "east": {"uv": [9, 0, 11, 5], "texture": "#2", "tintindex": 0}, + "south": {"uv": [6, 0, 8, 5], "texture": "#2", "tintindex": 0}, + "west": {"uv": [9, 0, 11, 5], "texture": "#2", "tintindex": 0}, + "up": {"uv": [6, 6, 8, 8], "texture": "#2", "tintindex": 0} + } + }, + { + "from": [1.5, 16.25, 8], + "to": [4.5, 20.25, 8], + "shade": false, + "rotation": {"angle": -45, "axis": "y", "origin": [3, 16.25, 8], "rescale": true}, + "faces": { + "north": {"uv": [0, 0, 3, 4], "texture": "#3"}, + "south": {"uv": [0, 0, 3, 4], "texture": "#3"} + } + }, + { + "from": [1.5, 16.25, 8], + "to": [4.5, 20.25, 8], + "shade": false, + "rotation": {"angle": 45, "axis": "y", "origin": [3, 16.25, 8], "rescale": true}, + "faces": { + "north": {"uv": [8, 0, 11, 4], "texture": "#3"}, + "south": {"uv": [8, 0, 11, 4], "texture": "#3"} + } + }, + { + "from": [6.5, 17.25, 8], + "to": [9.5, 21.25, 8], + "shade": false, + "rotation": {"angle": -45, "axis": "y", "origin": [8, 17.25, 8], "rescale": true}, + "faces": { + "north": {"uv": [4, 0, 7, 4], "texture": "#3"}, + "south": {"uv": [4, 0, 7, 4], "texture": "#3"} + } + }, + { + "from": [6.75, 11.75, 6.75], + "to": [9.25, 17.25, 9.25], + "rotation": {"angle": 0, "axis": "y", "origin": [0.25, 5.25, -3.75]}, + "faces": { + "north": {"uv": [6, 0, 8, 5], "texture": "#2", "tintindex": 0}, + "east": {"uv": [9, 0, 11, 5], "texture": "#2", "tintindex": 0}, + "south": {"uv": [6, 0, 8, 5], "texture": "#2", "tintindex": 0}, + "west": {"uv": [9, 0, 11, 5], "texture": "#2", "tintindex": 0}, + "up": {"uv": [6, 6, 8, 8], "texture": "#2", "tintindex": 0} + } + }, + { + "from": [7, 12, 7], + "to": [9, 17, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 5, -4]}, + "faces": { + "north": {"uv": [0, 0, 2, 5], "texture": "#2", "tintindex": 0}, + "east": {"uv": [3, 0, 5, 5], "texture": "#2", "tintindex": 0}, + "south": {"uv": [0, 0, 2, 5], "texture": "#2", "tintindex": 0}, + "west": {"uv": [3, 0, 5, 5], "texture": "#2", "tintindex": 0}, + "up": {"uv": [0, 6, 2, 8], "texture": "#2", "tintindex": 0} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 225, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "scale": [0.625, 0.625, 0.625] + }, + "fixed": { + "rotation": [-90, 0, 0], + "translation": [0, 0, -3], + "scale": [0.5, 0.5, 0.5] + } + } +} diff --git a/gm4_furniture/assets/gm4_furniture/models/block/furniture/metal_set/gold/skull_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/metal_set/gold/skull_1.json new file mode 100644 index 0000000000..c413abfc26 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/metal_set/gold/skull_1.json @@ -0,0 +1,63 @@ +{ + "textures": { + "0": "gm4_furniture:block/furniture/metal_set/gold/skull_1", + "particle": "gm4_furniture:block/furniture/metal_set/gold/skull_1" + }, + "elements": [ + { + "from": [4, 2, 4], + "to": [12, 8, 12], + "faces": { + "north": {"uv": [4, 4, 8, 7], "texture": "#0"}, + "east": {"uv": [0, 4, 4, 7], "texture": "#0"}, + "south": {"uv": [12, 4, 16, 7], "texture": "#0"}, + "west": {"uv": [8, 4, 12, 7], "texture": "#0"}, + "up": {"uv": [4, 4, 8, 0], "texture": "#0"}, + "down": {"uv": [8, 0, 12, 4], "texture": "#0"} + } + }, + { + "from": [5, 0, 4], + "to": [11, 2, 10], + "faces": { + "north": {"uv": [4.5, 7, 7.5, 8], "texture": "#0"}, + "east": {"uv": [1.5, 7, 4.5, 8], "texture": "#0"}, + "south": {"uv": [10.5, 7, 13.5, 8], "texture": "#0"}, + "west": {"uv": [7.5, 7, 10.5, 8], "texture": "#0"}, + "up": {"uv": [0, 0, 6, 6], "texture": "#0"}, + "down": {"uv": [12.5, 0.5, 15.5, 3.5], "texture": "#0"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 225, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "scale": [0.625, 0.625, 0.625] + }, + "fixed": { + "scale": [0.5, 0.5, 0.5] + } + } +} diff --git a/gm4_furniture/assets/gm4_furniture/models/block/furniture/metal_set/iron/3_candelabra_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/metal_set/iron/3_candelabra_1.json new file mode 100644 index 0000000000..5d74fc04d4 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/metal_set/iron/3_candelabra_1.json @@ -0,0 +1,292 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "2": "gm4_furniture:block/furniture/misc/candle_1", + "3": "gm4_furniture:block/furniture/misc/candle_fire_1", + "4": "gm4_furniture:block/furniture/metal_set/iron/3_candelabra_1", + "particle": "gm4_furniture:block/furniture/metal_set/iron/3_candelabra_1" + }, + "elements": [ + { + "from": [6, 0, 6], + "to": [10, 1, 10], + "faces": { + "north": {"uv": [12, 0, 10, 0.5], "texture": "#4"}, + "east": {"uv": [11.5, 0, 12, 2], "rotation": 90, "texture": "#4"}, + "south": {"uv": [10, 1.5, 12, 2], "texture": "#4"}, + "west": {"uv": [10.5, 0, 10, 2], "rotation": 90, "texture": "#4"}, + "up": {"uv": [10, 0, 12, 2], "texture": "#4"}, + "down": {"uv": [12, 0, 10, 2], "texture": "#4"} + } + }, + { + "from": [7, 10, 7], + "to": [9, 11, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 16, 0]}, + "faces": { + "north": {"uv": [8.5, 3, 7.5, 2.5], "texture": "#4"}, + "east": {"uv": [8.5, 2.5, 8, 3.5], "rotation": 90, "texture": "#4"}, + "south": {"uv": [7.5, 3.5, 8.5, 3], "texture": "#4"}, + "west": {"uv": [8, 3.5, 7.5, 2.5], "rotation": 90, "texture": "#4"}, + "down": {"uv": [7.5, 3.5, 8.5, 2.5], "texture": "#4"} + } + }, + { + "from": [11, 10, 6], + "to": [15, 11, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 16, 0]}, + "faces": { + "north": {"uv": [9.5, 0.5, 7.5, 0], "texture": "#4"}, + "east": {"uv": [9.5, 0, 9, 2], "rotation": 90, "texture": "#4"}, + "south": {"uv": [7.5, 2, 9.5, 1.5], "texture": "#4"}, + "west": {"uv": [7.5, 0, 8, 2], "rotation": 90, "texture": "#4"}, + "up": {"uv": [9.5, 2, 7.5, 0], "texture": "#4"}, + "down": {"uv": [7.5, 2, 9.5, 0], "texture": "#4"} + } + }, + { + "from": [12, 9, 7], + "to": [14, 10, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 16, 0]}, + "faces": { + "north": {"uv": [8.5, 3, 7.5, 2.5], "texture": "#4"}, + "east": {"uv": [8.5, 2.5, 8, 3.5], "rotation": 90, "texture": "#4"}, + "south": {"uv": [7.5, 3.5, 8.5, 3], "texture": "#4"}, + "west": {"uv": [8, 3.5, 7.5, 2.5], "rotation": 90, "texture": "#4"}, + "down": {"uv": [7.5, 3.5, 8.5, 2.5], "texture": "#4"} + } + }, + { + "from": [1, 10, 6], + "to": [5, 11, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 16, 0]}, + "faces": { + "north": {"uv": [9.5, 0.5, 7.5, 0], "texture": "#4"}, + "east": {"uv": [9.5, 0, 9, 2], "rotation": 90, "texture": "#4"}, + "south": {"uv": [7.5, 2, 9.5, 1.5], "texture": "#4"}, + "west": {"uv": [7.5, 0, 8, 2], "rotation": 90, "texture": "#4"}, + "up": {"uv": [9.5, 2, 7.5, 0], "texture": "#4"}, + "down": {"uv": [7.5, 2, 9.5, 0], "texture": "#4"} + } + }, + { + "from": [2, 9, 7], + "to": [4, 10, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 16, 0]}, + "faces": { + "north": {"uv": [8.5, 3, 7.5, 2.5], "texture": "#4"}, + "east": {"uv": [8.5, 2.5, 8, 3.5], "rotation": 90, "texture": "#4"}, + "south": {"uv": [7.5, 3.5, 8.5, 3], "texture": "#4"}, + "west": {"uv": [8, 3.5, 7.5, 2.5], "rotation": 90, "texture": "#4"}, + "down": {"uv": [7.5, 3.5, 8.5, 2.5], "texture": "#4"} + } + }, + { + "from": [6, 11, 6], + "to": [10, 12, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 16, 0]}, + "faces": { + "north": {"uv": [9.5, 0.5, 7.5, 0], "texture": "#4"}, + "east": {"uv": [9.5, 0, 9, 2], "rotation": 90, "texture": "#4"}, + "south": {"uv": [7.5, 2, 9.5, 1.5], "texture": "#4"}, + "west": {"uv": [7.5, 0, 8, 2], "rotation": 90, "texture": "#4"}, + "up": {"uv": [9.5, 2, 7.5, 0], "texture": "#4"}, + "down": {"uv": [7.5, 2, 9.5, 0], "texture": "#4"} + } + }, + { + "from": [7, 1, 7], + "to": [9, 2, 9], + "faces": { + "north": {"uv": [11, 2.5, 10, 3], "texture": "#4"}, + "east": {"uv": [10.5, 2.5, 11, 3.5], "rotation": 90, "texture": "#4"}, + "south": {"uv": [10, 3, 11, 3.5], "texture": "#4"}, + "west": {"uv": [10, 3.5, 10.5, 2.5], "rotation": 90, "texture": "#4"}, + "up": {"uv": [10, 2.5, 11, 3.5], "texture": "#4"} + } + }, + { + "from": [1, 2, 8], + "to": [15, 11, 8], + "faces": { + "north": {"uv": [0, 0, 7, 4.5], "texture": "#4"}, + "south": {"uv": [0, 0, 7, 4.5], "texture": "#4"} + } + }, + { + "from": [8, 2, 6], + "to": [8, 11, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "east": {"uv": [12.5, 0, 14.5, 4.5], "texture": "#4"}, + "west": {"uv": [12.5, 0, 14.5, 4.5], "texture": "#4"} + } + }, + { + "from": [6.5, 17.25, 8], + "to": [9.5, 21.25, 8], + "shade": false, + "rotation": {"angle": 45, "axis": "y", "origin": [8, 17.25, 8], "rescale": true}, + "faces": { + "north": {"uv": [4, 0, 7, 4], "texture": "#3"}, + "south": {"uv": [4, 0, 7, 4], "texture": "#3"} + } + }, + { + "from": [12, 11, 7], + "to": [14, 16, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [5, 4, -4]}, + "faces": { + "north": {"uv": [0, 0, 2, 5], "texture": "#2", "tintindex": 0}, + "east": {"uv": [3, 0, 5, 5], "texture": "#2", "tintindex": 0}, + "south": {"uv": [0, 0, 2, 5], "texture": "#2", "tintindex": 0}, + "west": {"uv": [3, 0, 5, 5], "texture": "#2", "tintindex": 0}, + "up": {"uv": [0, 6, 2, 8], "texture": "#2", "tintindex": 0} + } + }, + { + "from": [11.75, 10.75, 6.75], + "to": [14.25, 16.25, 9.25], + "rotation": {"angle": 0, "axis": "y", "origin": [5.25, 4.25, -3.75]}, + "faces": { + "north": {"uv": [6, 0, 8, 5], "texture": "#2", "tintindex": 0}, + "east": {"uv": [9, 0, 11, 5], "texture": "#2", "tintindex": 0}, + "south": {"uv": [6, 0, 8, 5], "texture": "#2", "tintindex": 0}, + "west": {"uv": [9, 0, 11, 5], "texture": "#2", "tintindex": 0}, + "up": {"uv": [6, 6, 8, 8], "texture": "#2", "tintindex": 0} + } + }, + { + "from": [11.5, 16.25, 8], + "to": [14.5, 20.25, 8], + "shade": false, + "rotation": {"angle": -45, "axis": "y", "origin": [13, 16.25, 8], "rescale": true}, + "faces": { + "north": {"uv": [4, 0, 7, 4], "texture": "#3"}, + "south": {"uv": [4, 0, 7, 4], "texture": "#3"} + } + }, + { + "from": [11.5, 16.25, 8], + "to": [14.5, 20.25, 8], + "shade": false, + "rotation": {"angle": 45, "axis": "y", "origin": [13, 16.25, 8], "rescale": true}, + "faces": { + "north": {"uv": [12, 0, 15, 4], "texture": "#3"}, + "south": {"uv": [12, 0, 15, 4], "texture": "#3"} + } + }, + { + "from": [2, 11, 7], + "to": [4, 16, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [-5, 4, -4]}, + "faces": { + "north": {"uv": [0, 0, 2, 5], "texture": "#2", "tintindex": 0}, + "east": {"uv": [3, 0, 5, 5], "texture": "#2", "tintindex": 0}, + "south": {"uv": [0, 0, 2, 5], "texture": "#2", "tintindex": 0}, + "west": {"uv": [3, 0, 5, 5], "texture": "#2", "tintindex": 0}, + "up": {"uv": [0, 6, 2, 8], "texture": "#2", "tintindex": 0} + } + }, + { + "from": [1.75, 10.75, 6.75], + "to": [4.25, 16.25, 9.25], + "rotation": {"angle": 0, "axis": "y", "origin": [-4.75, 4.25, -3.75]}, + "faces": { + "north": {"uv": [6, 0, 8, 5], "texture": "#2", "tintindex": 0}, + "east": {"uv": [9, 0, 11, 5], "texture": "#2", "tintindex": 0}, + "south": {"uv": [6, 0, 8, 5], "texture": "#2", "tintindex": 0}, + "west": {"uv": [9, 0, 11, 5], "texture": "#2", "tintindex": 0}, + "up": {"uv": [6, 6, 8, 8], "texture": "#2", "tintindex": 0} + } + }, + { + "from": [1.5, 16.25, 8], + "to": [4.5, 20.25, 8], + "shade": false, + "rotation": {"angle": -45, "axis": "y", "origin": [3, 16.25, 8], "rescale": true}, + "faces": { + "north": {"uv": [0, 0, 3, 4], "texture": "#3"}, + "south": {"uv": [0, 0, 3, 4], "texture": "#3"} + } + }, + { + "from": [1.5, 16.25, 8], + "to": [4.5, 20.25, 8], + "shade": false, + "rotation": {"angle": 45, "axis": "y", "origin": [3, 16.25, 8], "rescale": true}, + "faces": { + "north": {"uv": [12, 0, 15, 4], "texture": "#3"}, + "south": {"uv": [12, 0, 15, 4], "texture": "#3"} + } + }, + { + "from": [6.5, 17.25, 8], + "to": [9.5, 21.25, 8], + "shade": false, + "rotation": {"angle": -45, "axis": "y", "origin": [8, 17.25, 8], "rescale": true}, + "faces": { + "north": {"uv": [0, 0, 3, 4], "texture": "#3"}, + "south": {"uv": [0, 0, 3, 4], "texture": "#3"} + } + }, + { + "from": [6.75, 11.75, 6.75], + "to": [9.25, 17.25, 9.25], + "rotation": {"angle": 0, "axis": "y", "origin": [0.25, 5.25, -3.75]}, + "faces": { + "north": {"uv": [6, 0, 8, 5], "texture": "#2", "tintindex": 0}, + "east": {"uv": [9, 0, 11, 5], "texture": "#2", "tintindex": 0}, + "south": {"uv": [6, 0, 8, 5], "texture": "#2", "tintindex": 0}, + "west": {"uv": [9, 0, 11, 5], "texture": "#2", "tintindex": 0}, + "up": {"uv": [6, 6, 8, 8], "texture": "#2", "tintindex": 0} + } + }, + { + "from": [7, 12, 7], + "to": [9, 17, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 5, -4]}, + "faces": { + "north": {"uv": [0, 0, 2, 5], "texture": "#2", "tintindex": 0}, + "east": {"uv": [3, 0, 5, 5], "texture": "#2", "tintindex": 0}, + "south": {"uv": [0, 0, 2, 5], "texture": "#2", "tintindex": 0}, + "west": {"uv": [3, 0, 5, 5], "texture": "#2", "tintindex": 0}, + "up": {"uv": [0, 6, 2, 8], "texture": "#2", "tintindex": 0} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 225, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "scale": [0.625, 0.625, 0.625] + }, + "fixed": { + "rotation": [-90, 0, 0], + "translation": [0, 0, -3], + "scale": [0.5, 0.5, 0.5] + } + } +} diff --git a/gm4_furniture/assets/gm4_furniture/models/block/furniture/metal_set/iron/lantern_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/metal_set/iron/lantern_1.json new file mode 100644 index 0000000000..0c7a013e4a --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/metal_set/iron/lantern_1.json @@ -0,0 +1,138 @@ +{ + "texture_size": [32, 32], + "textures": { + "0": "gm4_furniture:block/furniture/metal_set/iron/lantern_1", + "particle": "gm4_furniture:block/furniture/metal_set/iron/lantern_1" + }, + "elements": [ + { + "from": [4, 0, 4], + "to": [12, 2, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, + "faces": { + "north": {"uv": [0, 4, 4, 5], "texture": "#0"}, + "east": {"uv": [0, 4, 4, 5], "texture": "#0"}, + "south": {"uv": [0, 4, 4, 5], "texture": "#0"}, + "west": {"uv": [0, 4, 4, 5], "texture": "#0"}, + "up": {"uv": [0, 0, 4, 4], "texture": "#0"}, + "down": {"uv": [0, 5, 4, 9], "texture": "#0"} + } + }, + { + "from": [4, 10, 4], + "to": [12, 11, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 10, 7]}, + "faces": { + "north": {"uv": [4, 4, 8, 4.5], "texture": "#0"}, + "east": {"uv": [4, 4, 8, 4.5], "texture": "#0"}, + "south": {"uv": [4, 4, 8, 4.5], "texture": "#0"}, + "west": {"uv": [4, 4, 8, 4.5], "texture": "#0"}, + "up": {"uv": [4, 0, 8, 4], "texture": "#0"}, + "down": {"uv": [4, 4.5, 8, 8.5], "texture": "#0"} + } + }, + { + "from": [6, 11, 6], + "to": [10, 13, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 11, 7]}, + "faces": { + "north": {"uv": [8, 2, 10, 3], "texture": "#0"}, + "east": {"uv": [8, 2, 10, 3], "texture": "#0"}, + "south": {"uv": [8, 2, 10, 3], "texture": "#0"}, + "west": {"uv": [8, 2, 10, 3], "texture": "#0"}, + "up": {"uv": [8, 0, 10, 2], "texture": "#0"} + } + }, + { + "from": [4, 11, 8], + "to": [12, 15, 8], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 11, 8]}, + "faces": { + "north": {"uv": [10, 1, 14, 3], "texture": "#0"}, + "south": {"uv": [14, 1, 10, 3], "texture": "#0"} + } + }, + { + "from": [11, 10, 11], + "to": [5, 2, 5], + "rotation": {"angle": 0, "axis": "y", "origin": [14, 0, 14]}, + "faces": { + "north": {"uv": [3, 13, 6, 9], "texture": "#0"}, + "east": {"uv": [3, 13, 6, 9], "texture": "#0"}, + "south": {"uv": [3, 13, 6, 9], "texture": "#0"}, + "west": {"uv": [3, 13, 6, 9], "texture": "#0"} + } + }, + { + "from": [5, 2, 5], + "to": [11, 10, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [19, 0, 8]}, + "faces": { + "north": {"uv": [0, 9, 3, 13], "texture": "#0"}, + "east": {"uv": [0, 9, 3, 13], "texture": "#0"}, + "south": {"uv": [0, 9, 3, 13], "texture": "#0"}, + "west": {"uv": [0, 9, 3, 13], "texture": "#0"} + } + }, + { + "from": [6, 2, 6], + "to": [10, 8, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 2, 7]}, + "faces": { + "north": {"uv": [8, 5, 10, 8], "texture": "#0"}, + "east": {"uv": [8, 5, 10, 8], "texture": "#0"}, + "south": {"uv": [8, 5, 10, 8], "texture": "#0"}, + "west": {"uv": [8, 5, 10, 8], "texture": "#0"}, + "up": {"uv": [8, 3, 10, 5], "texture": "#0"} + } + }, + { + "from": [4, 15, 7], + "to": [12, 17, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [4, 15, 7]}, + "faces": { + "north": {"uv": [10, 0, 14, 1], "texture": "#0"}, + "east": {"uv": [10, 0, 10.5, 1], "texture": "#0"}, + "south": {"uv": [14, 0, 10, 1], "texture": "#0"}, + "west": {"uv": [13.5, 0, 14, 1], "texture": "#0"}, + "up": {"uv": [14, 0, 10, 0.5], "texture": "#0"}, + "down": {"uv": [14, 0.5, 10, 1], "texture": "#0"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [70, 0, 0], + "translation": [0, -3.25, -4.25], + "scale": [0.64, 0.64, 0.64] + }, + "thirdperson_lefthand": { + "rotation": [70, 0, 0], + "translation": [0, -3.25, -4.25], + "scale": [0.64, 0.64, 0.64] + }, + "firstperson_righthand": { + "rotation": [0, 15, 0], + "translation": [1, 2, 0], + "scale": [0.5, 0.5, 0.5] + }, + "firstperson_lefthand": { + "rotation": [0, 15, 0], + "translation": [1, 2, 0], + "scale": [0.5, 0.5, 0.5] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "scale": [0.625, 0.625, 0.625] + }, + "fixed": { + "rotation": [-90, 0, 0], + "translation": [0, 0, -3], + "scale": [0.5, 0.5, 0.5] + } + } +} \ No newline at end of file diff --git a/gm4_furniture/assets/gm4_furniture/models/block/furniture/stone_set/statues/allay.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/stone_set/statues/allay.json new file mode 100644 index 0000000000..a7c3611df8 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/stone_set/statues/allay.json @@ -0,0 +1,174 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "gm4_furniture:block/furniture/stone_set/statues/stone_statue_base_1", + "1": "gm4_furniture:block/furniture/stone_set/statues/allay", + "particle": "gm4_furniture:block/furniture/stone_set/statues/stone_statue_base_1" + }, + "elements": [ + { + "from": [2, 4, 2], + "to": [14, 6, 14], + "faces": { + "north": {"uv": [0, 6.5, 6, 7.5], "texture": "#0"}, + "east": {"uv": [0, 6.5, 6, 7.5], "texture": "#0"}, + "south": {"uv": [0, 6.5, 6, 7.5], "texture": "#0"}, + "west": {"uv": [0, 6.5, 6, 7.5], "texture": "#0"}, + "up": {"uv": [0, 0, 6, 6], "texture": "#0"}, + "down": {"uv": [0, 8, 6, 14], "texture": "#0"} + } + }, + { + "from": [3, 2, 3], + "to": [13, 4, 13], + "faces": { + "north": {"uv": [0, 14.5, 5, 15.5], "texture": "#0"}, + "east": {"uv": [0, 14.5, 5, 15.5], "texture": "#0"}, + "south": {"uv": [0, 14.5, 5, 15.5], "texture": "#0"}, + "west": {"uv": [0, 14.5, 5, 15.5], "texture": "#0"} + } + }, + { + "from": [2, 0, 2], + "to": [14, 2, 14], + "faces": { + "north": {"uv": [6.5, 6.5, 12.5, 7.5], "texture": "#0"}, + "east": {"uv": [6.5, 6.5, 12.5, 7.5], "texture": "#0"}, + "south": {"uv": [6.5, 6.5, 12.5, 7.5], "texture": "#0"}, + "west": {"uv": [6.5, 6.5, 12.5, 7.5], "texture": "#0"}, + "up": {"uv": [6.5, 0, 12.5, 6], "texture": "#0"}, + "down": {"uv": [6.5, 8, 12.5, 14], "texture": "#0"} + } + }, + { + "name": "head", + "from": [5.5, 12.01, 3.5], + "to": [10.5, 17.01, 8.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -1, 8]}, + "faces": { + "north": {"uv": [2.5, 2.5, 5, 5], "texture": "#1"}, + "east": {"uv": [0, 2.5, 2.5, 5], "texture": "#1"}, + "south": {"uv": [7.5, 2.5, 10, 5], "texture": "#1"}, + "west": {"uv": [5, 2.5, 7.5, 5], "texture": "#1"}, + "up": {"uv": [5, 2.5, 2.5, 0], "texture": "#1"}, + "down": {"uv": [7.5, 0, 5, 2.5], "texture": "#1"} + } + }, + { + "name": "body", + "from": [6.5, 8, 5], + "to": [9.5, 12, 7], + "rotation": {"angle": -22.5, "axis": "x", "origin": [8, 12, 6]}, + "faces": { + "north": {"uv": [1, 6, 2.5, 8], "texture": "#1"}, + "east": {"uv": [0, 6, 1, 8], "texture": "#1"}, + "south": {"uv": [3.5, 6, 5, 8], "texture": "#1"}, + "west": {"uv": [2.5, 6, 3.5, 8], "texture": "#1"}, + "up": {"uv": [2.5, 6, 1, 5], "texture": "#1"}, + "down": {"uv": [4, 5, 2.5, 6], "texture": "#1"} + } + }, + { + "name": "body", + "from": [6.7, 7.2, 5.2], + "to": [9.3, 11.8, 6.8], + "rotation": {"angle": -22.5, "axis": "x", "origin": [8, 12, 6]}, + "faces": { + "north": {"uv": [1, 9, 2.5, 11.5], "texture": "#1"}, + "east": {"uv": [0, 9, 1, 11.5], "texture": "#1"}, + "south": {"uv": [3.5, 9, 5, 11.5], "texture": "#1"}, + "west": {"uv": [2.5, 9, 3.5, 11.5], "texture": "#1"}, + "up": {"uv": [2.5, 9, 1, 8], "texture": "#1"}, + "down": {"uv": [4, 8, 2.5, 9], "texture": "#1"} + } + }, + { + "name": "right_arm", + "from": [9.5, 8, 5], + "to": [10.5, 12, 7], + "rotation": {"angle": 22.5, "axis": "z", "origin": [9.5, 12, 6]}, + "faces": { + "north": {"uv": [12.5, 1, 13, 3], "texture": "#1"}, + "east": {"uv": [11.5, 1, 12.5, 3], "texture": "#1"}, + "south": {"uv": [14, 1, 14.5, 3], "texture": "#1"}, + "west": {"uv": [13, 1, 14, 3], "texture": "#1"}, + "up": {"uv": [13, 1, 12.5, 0], "texture": "#1"}, + "down": {"uv": [13.5, 0, 13, 1], "texture": "#1"} + } + }, + { + "name": "left_arm", + "from": [5.5, 8, 5], + "to": [6.5, 12, 7], + "rotation": {"angle": -22.5, "axis": "z", "origin": [6.5, 12, 6]}, + "faces": { + "north": {"uv": [12.5, 4, 13, 6], "texture": "#1"}, + "east": {"uv": [11.5, 4, 12.5, 6], "texture": "#1"}, + "south": {"uv": [14, 4, 14.5, 6], "texture": "#1"}, + "west": {"uv": [13, 4, 14, 6], "texture": "#1"}, + "up": {"uv": [13, 4, 12.5, 3], "texture": "#1"}, + "down": {"uv": [13.5, 3, 13, 4], "texture": "#1"} + } + }, + { + "name": "left_wing", + "from": [7.5, 7, 7], + "to": [7.5, 12, 15], + "rotation": {"angle": -22.5, "axis": "y", "origin": [7.5, 11.5, 7]}, + "faces": { + "north": {"uv": [12, 11, 12, 13.5], "texture": "#1"}, + "east": {"uv": [16, 11, 12, 13.5], "texture": "#1"}, + "south": {"uv": [16, 11, 16, 13.5], "texture": "#1"}, + "west": {"uv": [12, 11, 8, 13.5], "texture": "#1"}, + "up": {"uv": [12, 11, 12, 7], "texture": "#1"}, + "down": {"uv": [12, 7, 12, 11], "texture": "#1"} + } + }, + { + "name": "right_wing", + "from": [8.5, 7, 7], + "to": [8.5, 12, 15], + "rotation": {"angle": 22.5, "axis": "y", "origin": [8.5, 12.42984, 7.20879]}, + "faces": { + "north": {"uv": [12, 11, 12, 13.5], "texture": "#1"}, + "east": {"uv": [8, 11, 12, 13.5], "texture": "#1"}, + "south": {"uv": [16, 11, 16, 13.5], "texture": "#1"}, + "west": {"uv": [12, 11, 16, 13.5], "texture": "#1"}, + "up": {"uv": [12, 11, 12, 7], "texture": "#1"}, + "down": {"uv": [12, 7, 12, 11], "texture": "#1"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 225, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "scale": [0.625, 0.625, 0.625] + }, + "fixed": { + "scale": [0.5, 0.5, 0.5] + } + } +} diff --git a/gm4_furniture/assets/gm4_furniture/models/block/furniture/stone_set/statues/axolotl.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/stone_set/statues/axolotl.json new file mode 100644 index 0000000000..a371527173 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/stone_set/statues/axolotl.json @@ -0,0 +1,210 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "0": "gm4_furniture:block/furniture/stone_set/statues/stone_statue_base_1", + "1": "gm4_furniture:block/furniture/stone_set/statues/axolotl", + "particle": "gm4_furniture:block/furniture/stone_set/statues/stone_statue_base_1" + }, + "elements": [ + { + "from": [2, 4, 2], + "to": [14, 6, 14], + "faces": { + "north": {"uv": [0, 6.5, 6, 7.5], "texture": "#0"}, + "east": {"uv": [0, 6.5, 6, 7.5], "texture": "#0"}, + "south": {"uv": [0, 6.5, 6, 7.5], "texture": "#0"}, + "west": {"uv": [0, 6.5, 6, 7.5], "texture": "#0"}, + "up": {"uv": [0, 0, 6, 6], "texture": "#0"}, + "down": {"uv": [0, 8, 6, 14], "texture": "#0"} + } + }, + { + "from": [3, 2, 3], + "to": [13, 4, 13], + "faces": { + "north": {"uv": [0, 14.5, 5, 15.5], "texture": "#0"}, + "east": {"uv": [0, 14.5, 5, 15.5], "texture": "#0"}, + "south": {"uv": [0, 14.5, 5, 15.5], "texture": "#0"}, + "west": {"uv": [0, 14.5, 5, 15.5], "texture": "#0"} + } + }, + { + "from": [2, 0, 2], + "to": [14, 2, 14], + "faces": { + "north": {"uv": [6.5, 6.5, 12.5, 7.5], "texture": "#0"}, + "east": {"uv": [6.5, 6.5, 12.5, 7.5], "texture": "#0"}, + "south": {"uv": [6.5, 6.5, 12.5, 7.5], "texture": "#0"}, + "west": {"uv": [6.5, 6.5, 12.5, 7.5], "texture": "#0"}, + "up": {"uv": [6.5, 0, 12.5, 6], "texture": "#0"}, + "down": {"uv": [6.5, 8, 12.5, 14], "texture": "#0"} + } + }, + { + "name": "body", + "from": [4, 6.575, 3], + "to": [12, 10.575, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -4.425, 8]}, + "faces": { + "north": {"uv": [2.5, 5.25, 4.5, 6.25], "texture": "#1"}, + "east": {"uv": [0, 5.25, 2.5, 6.25], "texture": "#1"}, + "south": {"uv": [7, 5.25, 9, 6.25], "texture": "#1"}, + "west": {"uv": [4.5, 5.25, 7, 6.25], "texture": "#1"}, + "up": {"uv": [4.5, 5.25, 2.5, 2.75], "texture": "#1"}, + "down": {"uv": [6.5, 2.75, 4.5, 5.25], "texture": "#1"} + } + }, + { + "name": "body", + "from": [8, 6.575, 3], + "to": [8, 11.575, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -4.425, 8]}, + "faces": { + "north": {"uv": [2.75, 6.5, 2.75, 7.75], "texture": "#1"}, + "east": {"uv": [0.5, 6.5, 2.75, 7.75], "texture": "#1"}, + "south": {"uv": [5, 6.5, 5, 7.75], "texture": "#1"}, + "west": {"uv": [2.75, 6.5, 5, 7.75], "texture": "#1"}, + "up": {"uv": [2.75, 6.5, 2.75, 4.25], "texture": "#1"}, + "down": {"uv": [2.75, 4.25, 2.75, 6.5], "texture": "#1"} + } + }, + { + "name": "tail", + "from": [8, 6.575, 12], + "to": [8, 11.575, 24], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -4.425, 8]}, + "faces": { + "north": {"uv": [3.5, 7.75, 3.5, 9], "texture": "#1"}, + "east": {"uv": [0.5, 7.75, 3.5, 9], "texture": "#1"}, + "south": {"uv": [6.5, 7.75, 6.5, 9], "texture": "#1"}, + "west": {"uv": [3.5, 7.75, 6.5, 9], "texture": "#1"}, + "up": {"uv": [3.5, 7.75, 3.5, 4.75], "texture": "#1"}, + "down": {"uv": [3.5, 4.75, 3.5, 7.75], "texture": "#1"} + } + }, + { + "name": "head", + "from": [4, 6.575, -2], + "to": [12, 11.575, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -4.425, 8]}, + "faces": { + "north": {"uv": [1.25, 1.5, 3.25, 2.75], "texture": "#1"}, + "east": {"uv": [0, 1.5, 1.25, 2.75], "texture": "#1"}, + "south": {"uv": [4.5, 1.5, 6.5, 2.75], "texture": "#1"}, + "west": {"uv": [3.25, 1.5, 4.5, 2.75], "texture": "#1"}, + "up": {"uv": [3.25, 1.5, 1.25, 0.25], "texture": "#1"}, + "down": {"uv": [5.25, 0.25, 3.25, 1.5], "texture": "#1"} + } + }, + { + "name": "left_gills", + "from": [1, 6.575, 2], + "to": [4, 13.575, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -4.425, 8]}, + "faces": { + "north": {"uv": [2.75, 10, 3.5, 11.75], "texture": "#1"}, + "east": {"uv": [2.75, 10, 2.75, 11.75], "texture": "#1"}, + "south": {"uv": [3.5, 10, 4.25, 11.75], "texture": "#1"}, + "west": {"uv": [3.5, 10, 3.5, 11.75], "texture": "#1"}, + "up": {"uv": [3.5, 10, 2.75, 10], "texture": "#1"}, + "down": {"uv": [4.25, 10, 3.5, 10], "texture": "#1"} + } + }, + { + "name": "right_gills", + "from": [12, 6.575, 2], + "to": [15, 13.575, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -4.425, 8]}, + "faces": { + "north": {"uv": [0, 10, 0.75, 11.75], "texture": "#1"}, + "east": {"uv": [0, 10, 0, 11.75], "texture": "#1"}, + "south": {"uv": [0.75, 10, 1.5, 11.75], "texture": "#1"}, + "west": {"uv": [0.75, 10, 0.75, 11.75], "texture": "#1"}, + "up": {"uv": [0.75, 10, 0, 10], "texture": "#1"}, + "down": {"uv": [1.5, 10, 0.75, 10], "texture": "#1"} + } + }, + { + "name": "top_gills", + "from": [4, 11.575, 2], + "to": [12, 14.575, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -4.425, 8]}, + "faces": { + "north": {"uv": [0.75, 9.25, 2.75, 10], "texture": "#1"}, + "east": {"uv": [0.75, 9.25, 0.75, 10], "texture": "#1"}, + "south": {"uv": [2.75, 9.25, 4.75, 10], "texture": "#1"}, + "west": {"uv": [2.75, 9.25, 2.75, 10], "texture": "#1"}, + "up": {"uv": [2.75, 9.25, 0.75, 9.25], "texture": "#1"}, + "down": {"uv": [4.75, 9.25, 2.75, 9.25], "texture": "#1"} + } + }, + { + "from": [-1, 7.075, 2.5], + "to": [4, 7.075, 5.5], + "rotation": {"angle": 22.5, "axis": "z", "origin": [3.5, 7.075, 4]}, + "faces": { + "up": {"uv": [0.5, 3.25, 1.25, 4.5], "rotation": 90, "texture": "#1"}, + "down": {"uv": [1.25, 3.25, 2, 4.5], "rotation": 90, "texture": "#1"} + } + }, + { + "from": [11, 7.075, 10.5], + "to": [16, 7.075, 13.5], + "rotation": {"angle": -22.5, "axis": "z", "origin": [11.5, 7.075, 12]}, + "faces": { + "up": {"uv": [0.5, 4.5, 1.25, 3.25], "rotation": 90, "texture": "#1"}, + "down": {"uv": [1.25, 4.5, 2, 3.25], "rotation": 90, "texture": "#1"} + } + }, + { + "from": [12, 7.075, 2.5], + "to": [17, 7.075, 5.5], + "rotation": {"angle": -22.5, "axis": "z", "origin": [12.5, 7.075, 4]}, + "faces": { + "up": {"uv": [0.5, 4.5, 1.25, 3.25], "rotation": 90, "texture": "#1"}, + "down": {"uv": [1.25, 4.5, 2, 3.25], "rotation": 90, "texture": "#1"} + } + }, + { + "from": [0, 7.075, 10.5], + "to": [5, 7.075, 13.5], + "rotation": {"angle": 22.5, "axis": "z", "origin": [4.5, 7.075, 12]}, + "faces": { + "up": {"uv": [0.5, 3.25, 1.25, 4.5], "rotation": 90, "texture": "#1"}, + "down": {"uv": [1.25, 3.25, 2, 4.5], "rotation": 90, "texture": "#1"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 225, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "scale": [0.625, 0.625, 0.625] + }, + "fixed": { + "scale": [0.5, 0.5, 0.5] + } + } +} diff --git a/gm4_furniture/assets/gm4_furniture/models/block/furniture/stone_set/statues/bee.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/stone_set/statues/bee.json new file mode 100644 index 0000000000..677f4fe131 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/stone_set/statues/bee.json @@ -0,0 +1,243 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "0": "gm4_furniture:block/furniture/stone_set/statues/stone_statue_base_1", + "1": "gm4_furniture:block/furniture/stone_set/statues/bee", + "particle": "gm4_furniture:block/furniture/stone_set/statues/stone_statue_base_1" + }, + "elements": [ + { + "from": [2, 4, 2], + "to": [14, 6, 14], + "faces": { + "north": {"uv": [0, 6.5, 6, 7.5], "texture": "#0"}, + "east": {"uv": [0, 6.5, 6, 7.5], "texture": "#0"}, + "south": {"uv": [0, 6.5, 6, 7.5], "texture": "#0"}, + "west": {"uv": [0, 6.5, 6, 7.5], "texture": "#0"}, + "up": {"uv": [0, 0, 6, 6], "texture": "#0"}, + "down": {"uv": [0, 8, 6, 14], "texture": "#0"} + } + }, + { + "from": [3, 2, 3], + "to": [13, 4, 13], + "faces": { + "north": {"uv": [0, 14.5, 5, 15.5], "texture": "#0"}, + "east": {"uv": [0, 14.5, 5, 15.5], "texture": "#0"}, + "south": {"uv": [0, 14.5, 5, 15.5], "texture": "#0"}, + "west": {"uv": [0, 14.5, 5, 15.5], "texture": "#0"} + } + }, + { + "from": [2, 0, 2], + "to": [14, 2, 14], + "faces": { + "north": {"uv": [6.5, 6.5, 12.5, 7.5], "texture": "#0"}, + "east": {"uv": [6.5, 6.5, 12.5, 7.5], "texture": "#0"}, + "south": {"uv": [6.5, 6.5, 12.5, 7.5], "texture": "#0"}, + "west": {"uv": [6.5, 6.5, 12.5, 7.5], "texture": "#0"}, + "up": {"uv": [6.5, 0, 12.5, 6], "texture": "#0"}, + "down": {"uv": [6.5, 8, 12.5, 14], "texture": "#0"} + } + }, + { + "name": "body", + "from": [4.5, 9, 3], + "to": [11.5, 16, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8.5, 0, 8]}, + "faces": { + "north": {"uv": [2.5, 2.5, 4.25, 4.25], "texture": "#1"}, + "east": {"uv": [0, 2.5, 2.5, 4.25], "texture": "#1"}, + "south": {"uv": [6.75, 2.5, 8.5, 4.25], "texture": "#1"}, + "west": {"uv": [4.25, 2.5, 6.75, 4.25], "texture": "#1"}, + "up": {"uv": [4.25, 2.5, 2.5, 0], "texture": "#1"}, + "down": {"uv": [6, 0, 4.25, 2.5], "texture": "#1"} + } + }, + { + "name": "stinger", + "from": [8, 12, 13], + "to": [8, 13, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [8.5, 0, 8]}, + "faces": { + "north": {"uv": [7, 2.25, 7, 2.5], "texture": "#1"}, + "east": {"uv": [6.5, 2.25, 7, 2.5], "texture": "#1"}, + "south": {"uv": [7.5, 2.25, 7.5, 2.5], "texture": "#1"}, + "west": {"uv": [7, 2.25, 7.5, 2.5], "texture": "#1"}, + "up": {"uv": [7, 2.25, 7, 1.75], "texture": "#1"}, + "down": {"uv": [7, 1.75, 7, 2.25], "texture": "#1"} + } + }, + { + "name": "rightwing_bone", + "from": [9.5, 16, 5], + "to": [18.5, 16, 11], + "rotation": {"angle": 22.5, "axis": "z", "origin": [9.5, 16, 8]}, + "faces": { + "north": {"uv": [1.5, 6, 3.75, 6], "texture": "#1"}, + "east": {"uv": [0, 6, 1.5, 6], "texture": "#1"}, + "south": {"uv": [5.25, 6, 7.5, 6], "texture": "#1"}, + "west": {"uv": [3.75, 6, 5.25, 6], "texture": "#1"}, + "up": {"uv": [3.75, 6, 1.5, 4.5], "texture": "#1"}, + "down": {"uv": [6, 4.5, 3.75, 6], "texture": "#1"} + } + }, + { + "name": "leftwing_bone", + "from": [-2.5, 16, 5], + "to": [6.5, 16, 11], + "rotation": {"angle": -22.5, "axis": "z", "origin": [6.5, 16, 8]}, + "faces": { + "north": {"uv": [3.75, 7.5, 6, 7.5], "texture": "#1"}, + "east": {"uv": [2.25, 7.5, 3.75, 7.5], "texture": "#1"}, + "south": {"uv": [7.5, 7.5, 9.75, 7.5], "texture": "#1"}, + "west": {"uv": [6, 7.5, 7.5, 7.5], "texture": "#1"}, + "up": {"uv": [6, 7.5, 3.75, 6], "texture": "#1"}, + "down": {"uv": [8.25, 6, 6, 7.5], "texture": "#1"} + } + }, + { + "name": "leg_front", + "from": [4.5, 7, 6], + "to": [11.5, 9, 6], + "rotation": {"angle": -22.5, "axis": "x", "origin": [8, 9, 6]}, + "faces": { + "north": {"uv": [6.5, 0.25, 8.25, 0.75], "texture": "#1"}, + "east": {"uv": [6.5, 0.25, 6.5, 0.75], "texture": "#1"}, + "south": {"uv": [8.25, 0.25, 10, 0.75], "texture": "#1"}, + "west": {"uv": [8.25, 0.25, 8.25, 0.75], "texture": "#1"}, + "up": {"uv": [8.25, 0.25, 6.5, 0.25], "texture": "#1"}, + "down": {"uv": [10, 0.25, 8.25, 0.25], "texture": "#1"} + } + }, + { + "name": "leg_mid", + "from": [4.5, 7, 8], + "to": [11.5, 9, 8], + "rotation": {"angle": -22.5, "axis": "x", "origin": [8, 9, 8]}, + "faces": { + "north": {"uv": [6.5, 0.75, 8.25, 1.25], "texture": "#1"}, + "east": {"uv": [6.5, 0.75, 6.5, 1.25], "texture": "#1"}, + "south": {"uv": [8.25, 0.75, 10, 1.25], "texture": "#1"}, + "west": {"uv": [8.25, 0.75, 8.25, 1.25], "texture": "#1"}, + "up": {"uv": [8.25, 0.75, 6.5, 0.75], "texture": "#1"}, + "down": {"uv": [10, 0.75, 8.25, 0.75], "texture": "#1"} + } + }, + { + "name": "leg_back", + "from": [4.5, 7, 10], + "to": [11.5, 9, 10], + "rotation": {"angle": -22.5, "axis": "x", "origin": [8, 9, 10]}, + "faces": { + "north": {"uv": [6.5, 1.25, 8.25, 1.75], "texture": "#1"}, + "east": {"uv": [6.5, 1.25, 6.5, 1.75], "texture": "#1"}, + "south": {"uv": [8.25, 1.25, 10, 1.75], "texture": "#1"}, + "west": {"uv": [8.25, 1.25, 8.25, 1.75], "texture": "#1"}, + "up": {"uv": [8.25, 1.25, 6.5, 1.25], "texture": "#1"}, + "down": {"uv": [10, 1.25, 8.25, 1.25], "texture": "#1"} + } + }, + { + "from": [9.5, 14, 0], + "to": [9.5, 16, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [0.5, 0, 0]}, + "faces": { + "east": {"uv": [0.5, 1.5, 1.25, 2], "texture": "#1"}, + "west": {"uv": [1.5, 1.5, 2.25, 2], "texture": "#1"} + } + }, + { + "from": [6.5, 14, 0], + "to": [6.5, 16, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [0.5, 0, 0]}, + "faces": { + "east": {"uv": [0.5, 0.75, 1.25, 1.25], "texture": "#1"}, + "west": {"uv": [1.5, 0.75, 2.25, 1.25], "texture": "#1"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 225, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "scale": [0.625, 0.625, 0.625] + }, + "fixed": { + "scale": [0.5, 0.5, 0.5] + } + }, + "groups": [ + 0, + 1, + 2, + { + "name": "body", + "origin": [-0.5, 5, 0], + "color": 0, + "children": [ + 3, + { + "name": "stinger", + "origin": [-0.5, 6, 1], + "color": 0, + "children": [4] + }, + { + "name": "rightwing_bone", + "origin": [1, 9, -3], + "color": 0, + "children": [5] + }, + { + "name": "leftwing_bone", + "origin": [-2, 9, -3], + "color": 0, + "children": [6] + }, + { + "name": "leg_front", + "origin": [-2, 2, -2], + "color": 0, + "children": [7] + }, + { + "name": "leg_mid", + "origin": [-2, 2, 0], + "color": 0, + "children": [8] + }, + { + "name": "leg_back", + "origin": [-2, 2, 2], + "color": 0, + "children": [9] + }, + 10, + 11 + ] + } + ] +} diff --git a/gm4_furniture/assets/gm4_furniture/models/block/furniture/stone_set/statues/frog.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/stone_set/statues/frog.json new file mode 100644 index 0000000000..b67b25686e --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/stone_set/statues/frog.json @@ -0,0 +1,195 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "0": "gm4_furniture:block/furniture/stone_set/statues/stone_statue_base_1", + "1": "gm4_furniture:block/furniture/stone_set/statues/frog", + "particle": "gm4_furniture:block/furniture/stone_set/statues/stone_statue_base_1" + }, + "elements": [ + { + "from": [4.5, 7, 3], + "to": [11.5, 12, 12], + "faces": { + "north": {"uv": [0, 0, 1.75, 1.25], "texture": "#1"}, + "east": {"uv": [4.25, 0, 2, 1.25], "texture": "#1"}, + "south": {"uv": [4.5, 0, 6.25, 1.25], "texture": "#1"}, + "west": {"uv": [2, 0, 4.25, 1.25], "texture": "#1"}, + "up": {"uv": [0, 1.5, 1.75, 3.75], "texture": "#1"}, + "down": {"uv": [2, 3.75, 3.75, 1.5], "texture": "#1"} + } + }, + { + "from": [10.5, 6, 4], + "to": [12.5, 9, 7], + "faces": { + "north": {"uv": [1, 4, 1.5, 4.75], "texture": "#1"}, + "east": {"uv": [0, 4, 0.75, 4.75], "texture": "#1"}, + "south": {"uv": [2.75, 4, 3.25, 4.75], "texture": "#1"}, + "west": {"uv": [1.75, 4, 2.5, 4.75], "texture": "#1"}, + "up": {"uv": [0.75, 5.5, 0, 5], "rotation": 90, "texture": "#1"}, + "down": {"uv": [1, 5.5, 1.75, 5], "rotation": 90, "texture": "#1"} + } + }, + { + "from": [3.5, 6, 4], + "to": [5.5, 9, 7], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [1.5, 4, 1, 4.75], "texture": "#1"}, + "east": {"uv": [2.5, 4, 1.75, 4.75], "texture": "#1"}, + "south": {"uv": [3.25, 4, 2.75, 4.75], "texture": "#1"}, + "west": {"uv": [0.75, 4, 0, 4.75], "texture": "#1"}, + "up": {"uv": [0.75, 5, 0, 5.5], "rotation": 90, "texture": "#1"}, + "down": {"uv": [1, 5, 1.75, 5.5], "rotation": 90, "texture": "#1"} + } + }, + { + "from": [8.5, 12, 4], + "to": [11.5, 14, 7], + "faces": { + "north": {"uv": [6.5, 0, 7.25, 0.5], "texture": "#1"}, + "east": {"uv": [9.5, 0, 10.25, 0.5], "texture": "#1"}, + "south": {"uv": [8.5, 0, 9.25, 0.5], "texture": "#1"}, + "west": {"uv": [7.5, 0, 8.25, 0.5], "texture": "#1"}, + "up": {"uv": [7.25, 1.5, 6.5, 0.75], "texture": "#1"} + } + }, + { + "from": [4.5, 12, 4], + "to": [7.5, 14, 7], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [7.25, 0, 6.5, 0.5], "texture": "#1"}, + "east": {"uv": [8.25, 0, 7.5, 0.5], "texture": "#1"}, + "south": {"uv": [9.25, 0, 8.5, 0.5], "texture": "#1"}, + "west": {"uv": [10.25, 0, 9.5, 0.5], "texture": "#1"}, + "up": {"uv": [6.5, 1.5, 7.25, 0.75], "texture": "#1"} + } + }, + { + "from": [10.5, 6, 9], + "to": [13.5, 9, 13], + "faces": { + "north": {"uv": [1.25, 5.75, 2, 6.5], "texture": "#1"}, + "east": {"uv": [0, 5.75, 1, 6.5], "texture": "#1"}, + "south": {"uv": [3.5, 5.75, 4.25, 6.5], "texture": "#1"}, + "west": {"uv": [2.25, 5.75, 3.25, 6.5], "texture": "#1"}, + "up": {"uv": [1, 7.5, 0, 6.75], "rotation": 90, "texture": "#1"}, + "down": {"uv": [1.25, 7.5, 2.25, 6.75], "rotation": 90, "texture": "#1"} + } + }, + { + "from": [2.5, 6, 9], + "to": [5.5, 9, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [2, 5.75, 1.25, 6.5], "texture": "#1"}, + "east": {"uv": [3.25, 5.75, 2.25, 6.5], "texture": "#1"}, + "south": {"uv": [4.25, 5.75, 3.5, 6.5], "texture": "#1"}, + "west": {"uv": [1, 5.75, 0, 6.5], "texture": "#1"}, + "up": {"uv": [1, 6.75, 0, 7.5], "rotation": 90, "texture": "#1"}, + "down": {"uv": [1.25, 6.75, 2.25, 7.5], "rotation": 90, "texture": "#1"} + } + }, + { + "from": [8.5, 6.1, 3], + "to": [12.5, 6.1, 7], + "faces": { + "up": {"uv": [1, 7.75, 0, 8.75], "texture": "#1"}, + "down": {"uv": [1, 8.75, 0, 7.75], "texture": "#1"} + } + }, + { + "from": [0.5, 6.1, 8], + "to": [4.5, 6.1, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "up": {"uv": [0, 9, 1, 10], "texture": "#1"}, + "down": {"uv": [0, 10, 1, 9], "texture": "#1"} + } + }, + { + "from": [11.5, 6.1, 8], + "to": [15.5, 6.1, 12], + "faces": { + "up": {"uv": [1, 9, 0, 10], "texture": "#1"}, + "down": {"uv": [1, 10, 0, 9], "texture": "#1"} + } + }, + { + "from": [3.5, 6.1, 3], + "to": [7.5, 6.1, 7], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "up": {"uv": [0, 7.75, 1, 8.75], "texture": "#1"}, + "down": {"uv": [0, 8.75, 1, 7.75], "texture": "#1"} + } + }, + { + "from": [2, 4, 2], + "to": [14, 6, 14], + "faces": { + "north": {"uv": [0, 6.5, 6, 7.5], "texture": "#0"}, + "east": {"uv": [0, 6.5, 6, 7.5], "texture": "#0"}, + "south": {"uv": [0, 6.5, 6, 7.5], "texture": "#0"}, + "west": {"uv": [0, 6.5, 6, 7.5], "texture": "#0"}, + "up": {"uv": [0, 0, 6, 6], "texture": "#0"}, + "down": {"uv": [0, 8, 6, 14], "texture": "#0"} + } + }, + { + "from": [3, 2, 3], + "to": [13, 4, 13], + "faces": { + "north": {"uv": [0, 14.5, 5, 15.5], "texture": "#0"}, + "east": {"uv": [0, 14.5, 5, 15.5], "texture": "#0"}, + "south": {"uv": [0, 14.5, 5, 15.5], "texture": "#0"}, + "west": {"uv": [0, 14.5, 5, 15.5], "texture": "#0"} + } + }, + { + "from": [2, 0, 2], + "to": [14, 2, 14], + "faces": { + "north": {"uv": [6.5, 6.5, 12.5, 7.5], "texture": "#0"}, + "east": {"uv": [6.5, 6.5, 12.5, 7.5], "texture": "#0"}, + "south": {"uv": [6.5, 6.5, 12.5, 7.5], "texture": "#0"}, + "west": {"uv": [6.5, 6.5, 12.5, 7.5], "texture": "#0"}, + "up": {"uv": [6.5, 0, 12.5, 6], "texture": "#0"}, + "down": {"uv": [6.5, 8, 12.5, 14], "texture": "#0"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 225, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "scale": [0.625, 0.625, 0.625] + }, + "fixed": { + "scale": [0.5, 0.5, 0.5] + } + } +} diff --git a/gm4_furniture/assets/gm4_furniture/models/block/furniture/stone_set/statues/pufferfish.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/stone_set/statues/pufferfish.json new file mode 100644 index 0000000000..0deb23a7a8 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/stone_set/statues/pufferfish.json @@ -0,0 +1,226 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "gm4_furniture:block/furniture/stone_set/statues/stone_statue_base_1", + "1": "gm4_furniture:block/furniture/stone_set/statues/pufferfish", + "particle": "gm4_furniture:block/furniture/stone_set/statues/stone_statue_base_1" + }, + "elements": [ + { + "from": [2, 4, 2], + "to": [14, 6, 14], + "faces": { + "north": {"uv": [0, 6.5, 6, 7.5], "texture": "#0"}, + "east": {"uv": [0, 6.5, 6, 7.5], "texture": "#0"}, + "south": {"uv": [0, 6.5, 6, 7.5], "texture": "#0"}, + "west": {"uv": [0, 6.5, 6, 7.5], "texture": "#0"}, + "up": {"uv": [0, 0, 6, 6], "texture": "#0"}, + "down": {"uv": [0, 8, 6, 14], "texture": "#0"} + } + }, + { + "from": [3, 2, 3], + "to": [13, 4, 13], + "faces": { + "north": {"uv": [0, 14.5, 5, 15.5], "texture": "#0"}, + "east": {"uv": [0, 14.5, 5, 15.5], "texture": "#0"}, + "south": {"uv": [0, 14.5, 5, 15.5], "texture": "#0"}, + "west": {"uv": [0, 14.5, 5, 15.5], "texture": "#0"} + } + }, + { + "from": [2, 0, 2], + "to": [14, 2, 14], + "faces": { + "north": {"uv": [6.5, 6.5, 12.5, 7.5], "texture": "#0"}, + "east": {"uv": [6.5, 6.5, 12.5, 7.5], "texture": "#0"}, + "south": {"uv": [6.5, 6.5, 12.5, 7.5], "texture": "#0"}, + "west": {"uv": [6.5, 6.5, 12.5, 7.5], "texture": "#0"}, + "up": {"uv": [6.5, 0, 12.5, 6], "texture": "#0"}, + "down": {"uv": [6.5, 8, 12.5, 14], "texture": "#0"} + } + }, + { + "name": "body", + "from": [4, 6, 4], + "to": [12, 14, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -1, 8]}, + "faces": { + "north": {"uv": [4, 4, 8, 8], "texture": "#1"}, + "east": {"uv": [0, 4, 4, 8], "texture": "#1"}, + "south": {"uv": [12, 4, 16, 8], "texture": "#1"}, + "west": {"uv": [8, 4, 12, 8], "texture": "#1"}, + "up": {"uv": [8, 4, 4, 0], "texture": "#1"}, + "down": {"uv": [12, 0, 8, 4], "texture": "#1"} + } + }, + { + "name": "leftFin", + "from": [2, 13, 5.0096], + "to": [4, 13, 7.0096], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -1, 8]}, + "faces": { + "north": {"uv": [13, 2.5, 14, 2.5], "texture": "#1"}, + "east": {"uv": [12, 2.5, 13, 2.5], "texture": "#1"}, + "south": {"uv": [15, 2.5, 16, 2.5], "texture": "#1"}, + "west": {"uv": [14, 2.5, 15, 2.5], "texture": "#1"}, + "up": {"uv": [14, 2.5, 13, 1.5], "texture": "#1"}, + "down": {"uv": [15, 1.5, 14, 2.5], "texture": "#1"} + } + }, + { + "name": "rightFin", + "from": [11.9968, 13, 5.008], + "to": [13.9968, 13, 7.008], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -1, 8]}, + "faces": { + "north": {"uv": [13, 1, 14, 1], "texture": "#1"}, + "east": {"uv": [12, 1, 13, 1], "texture": "#1"}, + "south": {"uv": [15, 1, 16, 1], "texture": "#1"}, + "west": {"uv": [14, 1, 15, 1], "texture": "#1"}, + "up": {"uv": [14, 1, 13, 0], "texture": "#1"}, + "down": {"uv": [15, 0, 14, 1], "texture": "#1"} + } + }, + { + "from": [4, 5, 4], + "to": [12, 6, 4], + "rotation": {"angle": 45, "axis": "x", "origin": [8, 6, 4]}, + "faces": { + "north": {"uv": [7.5, 10, 11.5, 10.5], "texture": "#1"}, + "south": {"uv": [11.5, 10, 7.5, 10.5], "texture": "#1"} + } + }, + { + "from": [4, 5, 12], + "to": [12, 6, 12], + "rotation": {"angle": -45, "axis": "x", "origin": [8, 6, 12]}, + "faces": { + "north": {"uv": [7.5, 10, 11.5, 10.5], "texture": "#1"}, + "south": {"uv": [11.5, 10, 7.5, 10.5], "texture": "#1"} + } + }, + { + "from": [4, 5, 8], + "to": [12, 6, 8], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 6, 4]}, + "faces": { + "north": {"uv": [7.5, 10, 11.5, 10.5], "texture": "#1"}, + "south": {"uv": [11.5, 10, 7.5, 10.5], "texture": "#1"} + } + }, + { + "from": [3, 6, 4], + "to": [4, 14, 4], + "rotation": {"angle": -45, "axis": "y", "origin": [4, 10, 4]}, + "faces": { + "north": {"uv": [0.5, 8.5, 1, 12.5], "texture": "#1"}, + "south": {"uv": [0.5, 8.5, 1, 12.5], "texture": "#1"} + } + }, + { + "from": [12, 6, 3], + "to": [12, 14, 4], + "rotation": {"angle": -45, "axis": "y", "origin": [12, 10, 4]}, + "faces": { + "east": {"uv": [2.5, 8.5, 3, 12.5], "texture": "#1"}, + "west": {"uv": [2.5, 8.5, 3, 12.5], "texture": "#1"} + } + }, + { + "from": [3, 6, 8], + "to": [4, 14, 8], + "rotation": {"angle": 0, "axis": "y", "origin": [0, -1, 0]}, + "faces": { + "north": {"uv": [2.5, 8.5, 3, 12.5], "texture": "#1"}, + "south": {"uv": [2.5, 8.5, 3, 12.5], "texture": "#1"} + } + }, + { + "from": [12, 6, 12], + "to": [13, 14, 12], + "rotation": {"angle": -45, "axis": "y", "origin": [12, 10, 12]}, + "faces": { + "north": {"uv": [4.5, 8.5, 5, 12.5], "texture": "#1"}, + "south": {"uv": [4.5, 8.5, 5, 12.5], "texture": "#1"} + } + }, + { + "from": [3, 6, 12], + "to": [4, 14, 12], + "rotation": {"angle": 45, "axis": "y", "origin": [4, 10, 12]}, + "faces": { + "north": {"uv": [4.5, 8.5, 5, 12.5], "texture": "#1"}, + "south": {"uv": [4.5, 8.5, 5, 12.5], "texture": "#1"} + } + }, + { + "from": [12, 6, 8], + "to": [13, 14, 8], + "rotation": {"angle": 0, "axis": "y", "origin": [0, -1, 0]}, + "faces": { + "north": {"uv": [4.5, 8.5, 5, 12.5], "texture": "#1"}, + "south": {"uv": [4.5, 8.5, 5, 12.5], "texture": "#1"} + } + }, + { + "from": [4, 14, 4], + "to": [12, 15, 4], + "rotation": {"angle": -45, "axis": "x", "origin": [8, 14, 4]}, + "faces": { + "north": {"uv": [7.5, 9, 11.5, 8.5], "texture": "#1"}, + "south": {"uv": [11.5, 9, 7.5, 8.5], "texture": "#1"} + } + }, + { + "from": [4, 14, 12], + "to": [12, 15, 12], + "rotation": {"angle": 45, "axis": "x", "origin": [8, 14, 12]}, + "faces": { + "north": {"uv": [7.5, 9, 11.5, 8.5], "texture": "#1"}, + "south": {"uv": [11.5, 9, 7.5, 8.5], "texture": "#1"} + } + }, + { + "from": [4, 14, 8], + "to": [12, 15, 8], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 14, 4]}, + "faces": { + "north": {"uv": [7.5, 9, 11.5, 8.5], "texture": "#1"}, + "south": {"uv": [11.5, 9, 7.5, 8.5], "texture": "#1"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 225, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "scale": [0.625, 0.625, 0.625] + }, + "fixed": { + "scale": [0.5, 0.5, 0.5] + } + } +} diff --git a/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/fancy/1x1_table_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/fancy/1x1_table_1.json new file mode 100644 index 0000000000..fb66ad1e75 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/fancy/1x1_table_1.json @@ -0,0 +1,164 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "0": "gm4_furniture:block/furniture/wood_set/fancy/1x1_table_1", + "particle": "gm4_furniture:block/furniture/wood_set/fancy/1x1_table_1" + }, + "elements": [ + { + "from": [0, 14, 0], + "to": [16, 16, 16], + "faces": { + "north": {"uv": [0, 4.25, 4, 4.75], "texture": "#0"}, + "east": {"uv": [4.25, 0, 4.75, 4], "rotation": 90, "texture": "#0"}, + "south": {"uv": [0, 4.25, 4, 4.75], "texture": "#0"}, + "west": {"uv": [4.25, 0, 4.75, 4], "rotation": 90, "texture": "#0"}, + "up": {"uv": [0, 0, 4, 4], "texture": "#0"}, + "down": {"uv": [0, 5, 4, 9], "texture": "#0"} + } + }, + { + "from": [6, 12, 6], + "to": [10, 14, 10], + "faces": { + "north": {"uv": [5, 0, 6, 0.5], "texture": "#0"}, + "east": {"uv": [5, 0, 6, 0.5], "texture": "#0"}, + "south": {"uv": [5, 0, 6, 0.5], "texture": "#0"}, + "west": {"uv": [5, 0, 6, 0.5], "texture": "#0"}, + "down": {"uv": [5, 0.75, 6, 1.75], "texture": "#0"} + } + }, + { + "from": [7, 2, 7], + "to": [9, 12, 9], + "faces": { + "north": {"uv": [6.25, 0, 6.75, 2.5], "texture": "#0"}, + "east": {"uv": [7, 0, 7.5, 2.5], "texture": "#0"}, + "south": {"uv": [6.25, 0, 6.75, 2.5], "texture": "#0"}, + "west": {"uv": [7, 0, 7.5, 2.5], "texture": "#0"}, + "down": {"uv": [6.25, 2.75, 6.75, 3.25], "texture": "#0"} + } + }, + { + "from": [12, 0, 7], + "to": [14, 2, 9], + "faces": { + "north": {"uv": [8.75, 3, 9.25, 3.5], "texture": "#0"}, + "east": {"uv": [8, 3, 8.5, 3.5], "texture": "#0"}, + "south": {"uv": [9.25, 3, 8.75, 3.5], "texture": "#0"}, + "west": {"uv": [9.5, 3, 10, 3.5], "texture": "#0"}, + "up": {"uv": [9.25, 2.25, 8.75, 2.75], "texture": "#0"}, + "down": {"uv": [9.25, 3.75, 8.75, 4.25], "texture": "#0"} + } + }, + { + "from": [2, 0, 7], + "to": [4, 2, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [9.25, 3, 8.75, 3.5], "texture": "#0"}, + "east": {"uv": [10, 3, 9.5, 3.5], "texture": "#0"}, + "south": {"uv": [8.75, 3, 9.25, 3.5], "texture": "#0"}, + "west": {"uv": [8.5, 3, 8, 3.5], "texture": "#0"}, + "up": {"uv": [8.75, 2.25, 9.25, 2.75], "texture": "#0"}, + "down": {"uv": [8.75, 3.75, 9.25, 4.25], "texture": "#0"} + } + }, + { + "from": [7, 0, 12], + "to": [9, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 8]}, + "faces": { + "north": {"uv": [9.5, 3, 10, 3.5], "texture": "#0"}, + "east": {"uv": [8.75, 3, 9.25, 3.5], "texture": "#0"}, + "south": {"uv": [8, 3, 8.5, 3.5], "texture": "#0"}, + "west": {"uv": [9.25, 3, 8.75, 3.5], "texture": "#0"}, + "up": {"uv": [9.25, 2.25, 8.75, 2.75], "rotation": 90, "texture": "#0"}, + "down": {"uv": [9.25, 3.75, 8.75, 4.25], "rotation": 270, "texture": "#0"} + } + }, + { + "from": [7, 2, 3], + "to": [9, 4, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 8]}, + "faces": { + "north": {"uv": [10.5, 0.75, 11, 1.25], "texture": "#0"}, + "east": {"uv": [7.75, 0.75, 10.25, 1.25], "texture": "#0"}, + "south": {"uv": [10.5, 0.75, 11, 1.25], "texture": "#0"}, + "west": {"uv": [7.75, 0.75, 10.25, 1.25], "texture": "#0"}, + "up": {"uv": [7.75, 0, 10.25, 0.5], "rotation": 90, "texture": "#0"}, + "down": {"uv": [7.75, 1.5, 10.25, 2], "rotation": 270, "texture": "#0"} + } + }, + { + "from": [7, 0, 2], + "to": [9, 2, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 8]}, + "faces": { + "north": {"uv": [8.5, 3, 8, 3.5], "texture": "#0"}, + "east": {"uv": [9.25, 3, 8.75, 3.5], "texture": "#0"}, + "south": {"uv": [10, 3, 9.5, 3.5], "texture": "#0"}, + "west": {"uv": [8.75, 3, 9.25, 3.5], "texture": "#0"}, + "up": {"uv": [8.75, 2.25, 9.25, 2.75], "rotation": 90, "texture": "#0"}, + "down": {"uv": [8.75, 3.75, 9.25, 4.25], "rotation": 270, "texture": "#0"} + } + }, + { + "from": [3, 2, 7], + "to": [13, 4, 9], + "faces": { + "north": {"uv": [7.75, 0.75, 10.25, 1.25], "texture": "#0"}, + "east": {"uv": [10.5, 0.75, 11, 1.25], "texture": "#0"}, + "south": {"uv": [7.75, 0.75, 10.25, 1.25], "texture": "#0"}, + "west": {"uv": [10.5, 0.75, 11, 1.25], "texture": "#0"}, + "up": {"uv": [7.75, 0, 10.25, 0.5], "texture": "#0"}, + "down": {"uv": [7.75, 1.5, 10.25, 2], "texture": "#0"} + } + }, + { + "from": [-0.1, 12, -0.1], + "to": [16.1, 16.2, 16.1], + "faces": { + "north": {"uv": [4.25, 8.5, 8.25, 9.5], "texture": "#0", "tintindex": 0}, + "east": {"uv": [4.25, 8.5, 8.25, 9.5], "texture": "#0", "tintindex": 0}, + "south": {"uv": [4.25, 8.5, 8.25, 9.5], "texture": "#0", "tintindex": 0}, + "west": {"uv": [4.25, 8.5, 8.25, 9.5], "texture": "#0", "tintindex": 0}, + "up": {"uv": [4.25, 4.25, 8.25, 8.25], "texture": "#0", "tintindex": 0} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 225, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "scale": [0.625, 0.625, 0.625] + }, + "fixed": { + "rotation": [-90, 0, 0], + "translation": [0, 0, -3.25], + "scale": [0.5, 0.5, 0.5] + } + } +} diff --git a/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/fancy/2x2_table_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/fancy/2x2_table_1.json new file mode 100644 index 0000000000..d0f505809c --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/fancy/2x2_table_1.json @@ -0,0 +1,223 @@ +{ + "texture_size": [128, 128], + "textures": { + "0": "gm4_furniture:block/furniture/wood_set/fancy/2x2_table_1", + "particle": "gm4_furniture:block/furniture/wood_set/fancy/2x2_table_1" + }, + "elements": [ + { + "from": [-8, 14, -8], + "to": [24, 16, 24], + "faces": { + "north": {"uv": [0, 8.25, 8, 8.75], "texture": "#0"}, + "east": {"uv": [0, 8.25, 8, 8.75], "texture": "#0"}, + "south": {"uv": [0, 8.25, 8, 8.75], "texture": "#0"}, + "west": {"uv": [0, 8.25, 8, 8.75], "texture": "#0"}, + "up": {"uv": [0, 0, 8, 8], "texture": "#0"}, + "down": {"uv": [8, 0, 16, 8], "texture": "#0"} + } + }, + { + "from": [-4, 11, -6], + "to": [22, 14, -4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [0, 9, 6.5, 9.75], "texture": "#0"}, + "east": {"uv": [0, 0, 0.5, 0.75], "texture": "#0"}, + "south": {"uv": [6.5, 10.75, 0, 11.5], "texture": "#0"}, + "west": {"uv": [0, 0, 0.5, 0.75], "texture": "#0"}, + "down": {"uv": [6.5, 10.5, 0, 10], "texture": "#0"} + } + }, + { + "from": [20, 11, -4], + "to": [22, 14, 22], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [0, 0, 0.5, 0.75], "texture": "#0"}, + "east": {"uv": [0, 9, 6.5, 9.75], "texture": "#0"}, + "south": {"uv": [0, 0, 0.5, 0.75], "texture": "#0"}, + "west": {"uv": [6.5, 10.75, 0, 11.5], "texture": "#0"}, + "down": {"uv": [6.5, 10.5, 0, 10], "rotation": 270, "texture": "#0"} + } + }, + { + "from": [-6, 11, 20], + "to": [20, 14, 22], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [6.5, 10.75, 0, 11.5], "texture": "#0"}, + "east": {"uv": [0, 0, 0.5, 0.75], "texture": "#0"}, + "south": {"uv": [0, 9, 6.5, 9.75], "texture": "#0"}, + "west": {"uv": [0, 0, 0.5, 0.75], "texture": "#0"}, + "down": {"uv": [6.5, 10.5, 0, 10], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [-6, 11, -6], + "to": [-4, 14, 20], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [0, 0, 0.5, 0.75], "texture": "#0"}, + "east": {"uv": [6.5, 10.75, 0, 11.5], "texture": "#0"}, + "south": {"uv": [0, 0, 0.5, 0.75], "texture": "#0"}, + "west": {"uv": [0, 9, 6.5, 9.75], "texture": "#0"}, + "down": {"uv": [6.5, 10.5, 0, 10], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [18, 0, -4], + "to": [20, 14, -2], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [9, 8.25, 9.5, 11.75], "texture": "#0"}, + "east": {"uv": [8.25, 8.25, 8.75, 11.75], "texture": "#0"}, + "south": {"uv": [9, 8.25, 9.5, 11.75], "texture": "#0"}, + "west": {"uv": [8.25, 8.25, 8.75, 11.75], "texture": "#0"}, + "down": {"uv": [9.75, 9, 10.25, 9.5], "texture": "#0"} + } + }, + { + "from": [-5, 0, -5], + "to": [-3, 2, -3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [10.5, 8.25, 11, 8.75], "texture": "#0"}, + "east": {"uv": [9.75, 8.25, 10.25, 8.75], "texture": "#0"}, + "south": {"uv": [10.25, 8.25, 9.75, 8.75], "texture": "#0"}, + "west": {"uv": [11, 8.25, 10.5, 8.75], "texture": "#0"}, + "up": {"uv": [10.5, 8.75, 11, 8.25], "rotation": 180, "texture": "#0"}, + "down": {"uv": [11.75, 8.25, 11.25, 8.75], "rotation": 270, "texture": "#0"} + } + }, + { + "from": [-4, 0, -4], + "to": [-2, 14, -2], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [8.25, 8.25, 8.75, 11.75], "texture": "#0"}, + "east": {"uv": [9, 8.25, 9.5, 11.75], "texture": "#0"}, + "south": {"uv": [8.25, 8.25, 8.75, 11.75], "texture": "#0"}, + "west": {"uv": [9, 8.25, 9.5, 11.75], "texture": "#0"}, + "down": {"uv": [9.75, 9, 10.25, 9.5], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [-5, 0, 19], + "to": [-3, 2, 21], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [9.75, 8.25, 10.25, 8.75], "texture": "#0"}, + "east": {"uv": [10.25, 8.25, 9.75, 8.75], "texture": "#0"}, + "south": {"uv": [11, 8.25, 10.5, 8.75], "texture": "#0"}, + "west": {"uv": [10.5, 8.25, 11, 8.75], "texture": "#0"}, + "up": {"uv": [10.5, 8.75, 11, 8.25], "rotation": 90, "texture": "#0"}, + "down": {"uv": [11.75, 8.25, 11.25, 8.75], "texture": "#0"} + } + }, + { + "from": [-4, 0, 18], + "to": [-2, 14, 20], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [9, 8.25, 9.5, 11.75], "texture": "#0"}, + "east": {"uv": [8.25, 8.25, 8.75, 11.75], "texture": "#0"}, + "south": {"uv": [9, 8.25, 9.5, 11.75], "texture": "#0"}, + "west": {"uv": [8.25, 8.25, 8.75, 11.75], "texture": "#0"}, + "down": {"uv": [9.75, 9, 10.25, 9.5], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [19, 0, 19], + "to": [21, 2, 21], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [10.25, 8.25, 9.75, 8.75], "texture": "#0"}, + "east": {"uv": [11, 8.25, 10.5, 8.75], "texture": "#0"}, + "south": {"uv": [10.5, 8.25, 11, 8.75], "texture": "#0"}, + "west": {"uv": [9.75, 8.25, 10.25, 8.75], "texture": "#0"}, + "up": {"uv": [10.5, 8.75, 11, 8.25], "texture": "#0"}, + "down": {"uv": [11.75, 8.25, 11.25, 8.75], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [18, 0, 18], + "to": [20, 14, 20], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [8.25, 8.25, 8.75, 11.75], "texture": "#0"}, + "east": {"uv": [9, 8.25, 9.5, 11.75], "texture": "#0"}, + "south": {"uv": [8.25, 8.25, 8.75, 11.75], "texture": "#0"}, + "west": {"uv": [9, 8.25, 9.5, 11.75], "texture": "#0"}, + "down": {"uv": [9.75, 9, 10.25, 9.5], "rotation": 270, "texture": "#0"} + } + }, + { + "from": [19, 0, -5], + "to": [21, 2, -3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [11, 8.25, 10.5, 8.75], "texture": "#0"}, + "east": {"uv": [10.5, 8.25, 11, 8.75], "texture": "#0"}, + "south": {"uv": [9.75, 8.25, 10.25, 8.75], "texture": "#0"}, + "west": {"uv": [10.25, 8.25, 9.75, 8.75], "texture": "#0"}, + "up": {"uv": [10.5, 8.75, 11, 8.25], "rotation": 270, "texture": "#0"}, + "down": {"uv": [11.75, 8.25, 11.25, 8.75], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [-8.1, 7.9, -0.1], + "to": [24.1, 16.1, 16.1], + "faces": { + "east": {"uv": [8.25, 12, 10.25, 16], "rotation": 90, "texture": "#0", "tintindex": 0}, + "west": {"uv": [8.25, 12, 10.25, 16], "rotation": 90, "texture": "#0", "tintindex": 0}, + "up": {"uv": [0, 12, 8, 16], "texture": "#0", "tintindex": 0} + } + }, + { + "from": [24.1, 16.1, 16.1], + "to": [-8.1, 7.9, -0.1], + "faces": { + "east": {"uv": [10.25, 12, 8.25, 16], "rotation": 90, "texture": "#0", "tintindex": 0}, + "west": {"uv": [10.25, 12, 8.25, 16], "rotation": 90, "texture": "#0", "tintindex": 0}, + "down": {"uv": [0, 12, 8, 16], "texture": "#0", "tintindex": 0} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.75, 0], + "scale": [0.1875, 0.1875, 0.1875] + }, + "thirdperson_lefthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.75, 0], + "scale": [0.1875, 0.1875, 0.1875] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "scale": [0.2, 0.2, 0.2] + }, + "firstperson_lefthand": { + "rotation": [0, 45, 0], + "scale": [0.2, 0.2, 0.2] + }, + "ground": { + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "translation": [0, -2, 0], + "scale": [0.3125, 0.3125, 0.3125] + }, + "head": { + "translation": [-8, 0, 8] + }, + "fixed": { + "rotation": [-90, 0, 0], + "translation": [0, 0, -3.25], + "scale": [0.5, 0.5, 0.5] + } + } +} diff --git a/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/fancy/bench_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/fancy/bench_1.json new file mode 100644 index 0000000000..236afaeb91 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/fancy/bench_1.json @@ -0,0 +1,385 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [128, 128], + "textures": { + "0": "gm4_furniture:block/furniture/wood_set/fancy/bench_1", + "particle": "gm4_furniture:block/furniture/wood_set/fancy/bench_1" + }, + "elements": [ + { + "from": [-14, 5, 0], + "to": [30, 8, 2], + "faces": { + "north": {"uv": [0, 1.875, 5.5, 2.25], "texture": "#0", "tintindex": 0}, + "east": {"uv": [0.25, 1.875, 0, 2.25], "texture": "#0", "tintindex": 0}, + "south": {"uv": [0, 2.375, 5.5, 2.625], "texture": "#0", "tintindex": 0}, + "west": {"uv": [5.5, 1.875, 5.25, 2.25], "texture": "#0", "tintindex": 0}, + "up": {"uv": [0, 1.75, 5.5, 1.5], "texture": "#0", "tintindex": 0}, + "down": {"uv": [0, 2.375, 5.5, 2.625], "texture": "#0", "tintindex": 0} + } + }, + { + "from": [-13, 7, 2], + "to": [29, 8, 13], + "faces": { + "up": {"uv": [0.125, 1.375, 5.375, 0], "texture": "#0", "tintindex": 0} + } + }, + { + "from": [1, 7, 12], + "to": [15, 25, 16], + "faces": { + "north": {"uv": [3.5, 5.125, 5.25, 7.375], "texture": "#0", "tintindex": 0}, + "east": {"uv": [5.125, 2.75, 5.25, 5], "texture": "#0", "tintindex": 0}, + "south": {"uv": [3.5, 2.75, 5.25, 5], "texture": "#0", "tintindex": 0}, + "west": {"uv": [3.5, 2.75, 3.625, 5], "texture": "#0", "tintindex": 0}, + "up": {"uv": [3.5, 2.75, 5.25, 2.875], "texture": "#0", "tintindex": 0}, + "down": {"uv": [3.5, 4.875, 5.25, 5], "texture": "#0", "tintindex": 0} + } + }, + { + "from": [16, 7, 12], + "to": [30, 21, 16], + "faces": { + "north": {"uv": [1.625, 4.625, 3.375, 6.375], "texture": "#0", "tintindex": 0}, + "east": {"uv": [1.625, 7.75, 3.375, 8.25], "rotation": 270, "texture": "#0", "tintindex": 0}, + "south": {"uv": [1.625, 2.75, 3.375, 4.5], "texture": "#0", "tintindex": 0}, + "west": {"uv": [1.625, 7.625, 3.375, 7.125], "rotation": 270, "texture": "#0", "tintindex": 0}, + "up": {"uv": [1.625, 6.5, 3.375, 7], "texture": "#0", "tintindex": 0}, + "down": {"uv": [1.625, 4.5, 3.375, 4], "texture": "#0", "tintindex": 0} + } + }, + { + "from": [-14, 7, 12], + "to": [0, 21, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [3.375, 4.625, 1.625, 6.375], "texture": "#0", "tintindex": 0}, + "east": {"uv": [1.625, 7.125, 3.375, 7.625], "rotation": 270, "texture": "#0", "tintindex": 0}, + "south": {"uv": [3.375, 2.75, 1.625, 4.5], "texture": "#0", "tintindex": 0}, + "west": {"uv": [1.625, 8.25, 3.375, 7.75], "rotation": 270, "texture": "#0", "tintindex": 0}, + "up": {"uv": [3.375, 6.5, 1.625, 7], "texture": "#0", "tintindex": 0}, + "down": {"uv": [3.375, 4.5, 1.625, 4], "texture": "#0", "tintindex": 0} + } + }, + { + "from": [-15, 0, 13], + "to": [-13, 6, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [7, 0, 6.75, 0.75], "texture": "#0"}, + "east": {"uv": [6.625, 0, 6.375, 0.75], "texture": "#0"}, + "south": {"uv": [7, 0, 6.75, 0.75], "texture": "#0"}, + "west": {"uv": [6.625, 0, 6.375, 0.75], "texture": "#0"}, + "down": {"uv": [6.625, 0.875, 6.375, 1.125], "texture": "#0"} + } + }, + { + "from": [-1, 0, 14], + "to": [1, 2, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 16]}, + "faces": { + "north": {"uv": [7.375, 0, 7.125, 0.25], "texture": "#0"}, + "east": {"uv": [7.375, 0, 7.125, 0.25], "texture": "#0"}, + "south": {"uv": [7.75, 0, 7.5, 0.25], "texture": "#0"}, + "west": {"uv": [7.5, 0, 7.75, 0.25], "texture": "#0"}, + "up": {"uv": [7.75, 0.25, 7.5, 0], "texture": "#0"}, + "down": {"uv": [8.125, 0, 7.875, 0.25], "texture": "#0"} + } + }, + { + "from": [0, 0, 13], + "to": [2, 6, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [7, 0, 6.75, 0.75], "texture": "#0"}, + "east": {"uv": [6.625, 0, 6.375, 0.75], "texture": "#0"}, + "south": {"uv": [7, 0, 6.75, 0.75], "texture": "#0"}, + "west": {"uv": [6.625, 0, 6.375, 0.75], "texture": "#0"}, + "down": {"uv": [6.625, 0.875, 6.375, 1.125], "texture": "#0"} + } + }, + { + "from": [15, 0, 0], + "to": [17, 2, 2], + "faces": { + "north": {"uv": [7.75, 0, 7.5, 0.25], "texture": "#0"}, + "east": {"uv": [7.5, 0, 7.75, 0.25], "texture": "#0"}, + "south": {"uv": [7.375, 0, 7.125, 0.25], "texture": "#0"}, + "west": {"uv": [7.375, 0, 7.125, 0.25], "texture": "#0"}, + "up": {"uv": [7.5, 0, 7.75, 0.25], "texture": "#0"}, + "down": {"uv": [7.875, 0.25, 8.125, 0], "texture": "#0"} + } + }, + { + "from": [14, 0, 1], + "to": [16, 6, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 16]}, + "faces": { + "north": {"uv": [7, 0, 6.75, 0.75], "texture": "#0"}, + "east": {"uv": [6.625, 0, 6.375, 0.75], "texture": "#0"}, + "south": {"uv": [7, 0, 6.75, 0.75], "texture": "#0"}, + "west": {"uv": [6.625, 0, 6.375, 0.75], "texture": "#0"}, + "down": {"uv": [6.375, 1.125, 6.625, 0.875], "texture": "#0"} + } + }, + { + "from": [-1, 0, 0], + "to": [1, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [7.5, 0, 7.75, 0.25], "texture": "#0"}, + "east": {"uv": [7.125, 0, 7.375, 0.25], "texture": "#0"}, + "south": {"uv": [7.125, 0, 7.375, 0.25], "texture": "#0"}, + "west": {"uv": [7.75, 0, 7.5, 0.25], "texture": "#0"}, + "up": {"uv": [7.75, 0, 7.5, 0.25], "texture": "#0"}, + "down": {"uv": [8.125, 0.25, 7.875, 0], "texture": "#0"} + } + }, + { + "from": [0, 0, 1], + "to": [2, 6, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 16]}, + "faces": { + "north": {"uv": [6.75, 0, 7, 0.75], "texture": "#0"}, + "east": {"uv": [6.375, 0, 6.625, 0.75], "texture": "#0"}, + "south": {"uv": [6.75, 0, 7, 0.75], "texture": "#0"}, + "west": {"uv": [6.375, 0, 6.625, 0.75], "texture": "#0"}, + "down": {"uv": [6.625, 1.125, 6.375, 0.875], "texture": "#0"} + } + }, + { + "from": [-16, 0, 0], + "to": [-14, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [7.5, 0, 7.75, 0.25], "texture": "#0"}, + "east": {"uv": [7.125, 0, 7.375, 0.25], "texture": "#0"}, + "south": {"uv": [7.125, 0, 7.375, 0.25], "texture": "#0"}, + "west": {"uv": [7.75, 0, 7.5, 0.25], "texture": "#0"}, + "up": {"uv": [7.75, 0, 7.5, 0.25], "texture": "#0"}, + "down": {"uv": [8.125, 0.25, 7.875, 0], "texture": "#0"} + } + }, + { + "from": [-16, 0, 14], + "to": [-14, 2, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 16]}, + "faces": { + "north": {"uv": [7.375, 0, 7.125, 0.25], "texture": "#0"}, + "east": {"uv": [7.375, 0, 7.125, 0.25], "texture": "#0"}, + "south": {"uv": [7.75, 0, 7.5, 0.25], "texture": "#0"}, + "west": {"uv": [7.5, 0, 7.75, 0.25], "texture": "#0"}, + "up": {"uv": [7.75, 0.25, 7.5, 0], "texture": "#0"}, + "down": {"uv": [8.125, 0, 7.875, 0.25], "texture": "#0"} + } + }, + { + "from": [-15, 0, 1], + "to": [-13, 13, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [5.875, 0, 5.625, 1.625], "texture": "#0"}, + "east": {"uv": [6.25, 0, 6, 1.625], "texture": "#0"}, + "south": {"uv": [5.875, 0, 5.625, 1.625], "texture": "#0"}, + "west": {"uv": [6.25, 0, 6, 1.625], "texture": "#0"}, + "up": {"uv": [6.25, 1.75, 6, 2], "texture": "#0"}, + "down": {"uv": [5.875, 1.75, 5.625, 2], "texture": "#0"} + } + }, + { + "from": [30, 0, 14], + "to": [32, 2, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 16]}, + "faces": { + "north": {"uv": [7.125, 0, 7.375, 0.25], "texture": "#0"}, + "east": {"uv": [7.75, 0, 7.5, 0.25], "texture": "#0"}, + "south": {"uv": [7.5, 0, 7.75, 0.25], "texture": "#0"}, + "west": {"uv": [7.125, 0, 7.375, 0.25], "texture": "#0"}, + "up": {"uv": [7.5, 0.25, 7.75, 0], "texture": "#0"}, + "down": {"uv": [7.875, 0, 8.125, 0.25], "texture": "#0"} + } + }, + { + "from": [29, 0, 13], + "to": [31, 6, 15], + "faces": { + "north": {"uv": [6.75, 0, 7, 0.75], "texture": "#0"}, + "east": {"uv": [6.375, 0, 6.625, 0.75], "texture": "#0"}, + "south": {"uv": [6.75, 0, 7, 0.75], "texture": "#0"}, + "west": {"uv": [6.375, 0, 6.625, 0.75], "texture": "#0"}, + "down": {"uv": [6.375, 0.875, 6.625, 1.125], "texture": "#0"} + } + }, + { + "from": [15, 0, 13], + "to": [17, 2, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 16]}, + "faces": { + "north": {"uv": [7.125, 0, 7.375, 0.25], "texture": "#0"}, + "east": {"uv": [7.75, 0, 7.5, 0.25], "texture": "#0"}, + "south": {"uv": [7.5, 0, 7.75, 0.25], "texture": "#0"}, + "west": {"uv": [7.125, 0, 7.375, 0.25], "texture": "#0"}, + "up": {"uv": [7.5, 0.25, 7.75, 0], "texture": "#0"}, + "down": {"uv": [7.875, 0, 8.125, 0.25], "texture": "#0"} + } + }, + { + "from": [14, 0, 12], + "to": [16, 6, 14], + "faces": { + "north": {"uv": [6.75, 0, 7, 0.75], "texture": "#0"}, + "east": {"uv": [6.375, 0, 6.625, 0.75], "texture": "#0"}, + "south": {"uv": [6.75, 0, 7, 0.75], "texture": "#0"}, + "west": {"uv": [6.375, 0, 6.625, 0.75], "texture": "#0"}, + "down": {"uv": [6.375, 0.875, 6.625, 1.125], "texture": "#0"} + } + }, + { + "from": [30, 0, 0], + "to": [32, 2, 2], + "faces": { + "north": {"uv": [7.75, 0, 7.5, 0.25], "texture": "#0"}, + "east": {"uv": [7.5, 0, 7.75, 0.25], "texture": "#0"}, + "south": {"uv": [7.375, 0, 7.125, 0.25], "texture": "#0"}, + "west": {"uv": [7.375, 0, 7.125, 0.25], "texture": "#0"}, + "up": {"uv": [7.5, 0, 7.75, 0.25], "texture": "#0"}, + "down": {"uv": [7.875, 0.25, 8.125, 0], "texture": "#0"} + } + }, + { + "from": [29, 0, 1], + "to": [31, 13, 3], + "faces": { + "north": {"uv": [5.625, 0, 5.875, 1.625], "texture": "#0"}, + "east": {"uv": [6, 0, 6.25, 1.625], "texture": "#0"}, + "south": {"uv": [5.625, 0, 5.875, 1.625], "texture": "#0"}, + "west": {"uv": [6, 0, 6.25, 1.625], "texture": "#0"}, + "up": {"uv": [6, 1.75, 6.25, 2], "texture": "#0"}, + "down": {"uv": [5.625, 1.75, 5.875, 2], "texture": "#0"} + } + }, + { + "from": [-15, 6, 13], + "to": [31, 22, 15], + "faces": { + "north": {"uv": [8.25, 2.125, 14, 4.125], "texture": "#0"}, + "east": {"uv": [14.125, 0, 14.375, 2], "texture": "#0"}, + "south": {"uv": [8.25, 0, 14, 2], "texture": "#0"}, + "west": {"uv": [14.375, 0, 14.125, 2], "texture": "#0"}, + "up": {"uv": [8.25, 4.5, 14, 4.25], "texture": "#0"}, + "down": {"uv": [8, 6.5, 13.75, 6.75], "texture": "#0"} + } + }, + { + "from": [-13, 6, 2], + "to": [29, 7, 13], + "faces": { + "east": {"uv": [8.25, 8.125, 8.375, 6.875], "rotation": 90, "texture": "#0"}, + "west": {"uv": [13.375, 6.875, 13.5, 8.125], "rotation": 90, "texture": "#0"}, + "down": {"uv": [8.25, 6.875, 13.5, 8.125], "texture": "#0"} + } + }, + { + "from": [28, 11, 2], + "to": [32, 14, 14], + "faces": { + "north": {"uv": [0, 5.5, 0.5, 5.875], "texture": "#0", "tintindex": 0}, + "east": {"uv": [1.5, 4.375, 0, 4.75], "texture": "#0", "tintindex": 0}, + "south": {"uv": [1, 4.375, 1.5, 4.75], "texture": "#0", "tintindex": 0}, + "west": {"uv": [0, 2.75, 1.5, 3.125], "texture": "#0", "tintindex": 0}, + "up": {"uv": [0, 3.75, 1.5, 4.25], "rotation": 90, "texture": "#0", "tintindex": 0}, + "down": {"uv": [0, 4.875, 1.5, 5.375], "rotation": 90, "texture": "#0", "tintindex": 0} + } + }, + { + "from": [28, 7, 2], + "to": [30, 11, 13], + "faces": { + "north": {"uv": [0.25, 3.125, 0, 3.625], "texture": "#0", "tintindex": 0}, + "east": {"uv": [0, 6, 1.375, 6.5], "texture": "#0", "tintindex": 0}, + "west": {"uv": [0, 3.125, 1.375, 3.625], "texture": "#0", "tintindex": 0}, + "down": {"uv": [0, 6.5, 1.375, 6.25], "rotation": 90, "texture": "#0", "tintindex": 0} + } + }, + { + "from": [-16, 11, 2], + "to": [-12, 14, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [0.5, 5.5, 0, 5.875], "texture": "#0", "tintindex": 0}, + "east": {"uv": [1.5, 2.75, 0, 3.125], "texture": "#0", "tintindex": 0}, + "south": {"uv": [1.5, 4.375, 1, 4.75], "texture": "#0", "tintindex": 0}, + "west": {"uv": [0, 4.375, 1.5, 4.75], "texture": "#0", "tintindex": 0}, + "up": {"uv": [0, 4.25, 1.5, 3.75], "rotation": 90, "texture": "#0", "tintindex": 0}, + "down": {"uv": [0, 5.375, 1.5, 4.875], "rotation": 90, "texture": "#0", "tintindex": 0} + } + }, + { + "from": [-14, 7, 2], + "to": [-12, 11, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [0, 3.125, 0.25, 3.625], "texture": "#0", "tintindex": 0}, + "east": {"uv": [1.375, 3.125, 0, 3.625], "texture": "#0", "tintindex": 0}, + "west": {"uv": [1.375, 6, 0, 6.5], "texture": "#0", "tintindex": 0}, + "down": {"uv": [0, 6.25, 1.375, 6.5], "rotation": 90, "texture": "#0", "tintindex": 0} + } + }, + { + "from": [0, 22, 13], + "to": [16, 24, 15], + "faces": { + "north": {"uv": [8.25, 4.625, 10.25, 4.875], "texture": "#0"}, + "east": {"uv": [8.5, 5.375, 8.25, 5.625], "texture": "#0"}, + "south": {"uv": [8.25, 5, 10.25, 5.25], "texture": "#0"}, + "west": {"uv": [8.25, 5.375, 8.5, 5.625], "texture": "#0"} + } + }, + { + "from": [-1, 24, 13], + "to": [17, 26, 15], + "faces": { + "north": {"uv": [10.375, 4.625, 12.625, 4.875], "texture": "#0"}, + "east": {"uv": [10.625, 6.125, 10.375, 6.375], "texture": "#0"}, + "south": {"uv": [10.375, 5, 12.625, 5.25], "texture": "#0"}, + "west": {"uv": [10.375, 6.125, 10.625, 6.375], "texture": "#0"}, + "up": {"uv": [10.375, 5.375, 12.625, 5.625], "texture": "#0"}, + "down": {"uv": [10.375, 6, 12.625, 5.75], "texture": "#0"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, 45, 0], + "translation": [0, 1.75, 0], + "scale": [0.1875, 0.1875, 0.1875] + }, + "thirdperson_lefthand": { + "rotation": [75, 45, 0], + "translation": [0, 1.75, 0], + "scale": [0.1875, 0.1875, 0.1875] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 225, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "scale": [0.3125, 0.3125, 0.3125] + }, + "fixed": { + "rotation": [-90, 0, 0], + "translation": [0, 0.5, -3.25], + "scale": [0.5, 0.5, 0.5] + } + } +} diff --git a/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/fancy/chair_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/fancy/chair_1.json new file mode 100644 index 0000000000..262842aedf --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/fancy/chair_1.json @@ -0,0 +1,252 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "0": "gm4_furniture:block/furniture/wood_set/fancy/chair_1", + "particle": "gm4_furniture:block/furniture/wood_set/fancy/chair_1" + }, + "elements": [ + { + "from": [1, 5, 0], + "to": [15, 8, 2], + "faces": { + "north": {"uv": [0, 3.75, 3.5, 4.5], "texture": "#0", "tintindex": 0}, + "east": {"uv": [0.5, 3.75, 0, 4.5], "texture": "#0", "tintindex": 0}, + "south": {"uv": [0, 4.75, 3.5, 5.25], "texture": "#0", "tintindex": 0}, + "west": {"uv": [3.5, 3.75, 3, 4.5], "texture": "#0", "tintindex": 0}, + "up": {"uv": [0, 3.5, 3.5, 3], "texture": "#0", "tintindex": 0}, + "down": {"uv": [0, 5.25, 3.5, 4.75], "texture": "#0", "tintindex": 0} + } + }, + { + "from": [2, 6, 2], + "to": [14, 7, 13], + "faces": { + "east": {"uv": [10.75, 11.25, 11, 8.5], "rotation": 90, "texture": "#0"}, + "west": {"uv": [8, 8.5, 8.25, 11.25], "rotation": 90, "texture": "#0"}, + "down": {"uv": [8, 8.5, 11, 11.25], "texture": "#0"} + } + }, + { + "from": [0, 6, 13], + "to": [16, 20, 15], + "faces": { + "north": {"uv": [11.75, 4.25, 15.75, 7.75], "texture": "#0"}, + "east": {"uv": [12.75, 0, 13.25, 3.5], "texture": "#0"}, + "south": {"uv": [7.5, 4.25, 11.5, 7.75], "texture": "#0"}, + "west": {"uv": [13.25, 0, 12.75, 3.5], "texture": "#0"}, + "down": {"uv": [7.5, 8, 11.5, 8.5], "texture": "#0"} + } + }, + { + "from": [13, 11, 2], + "to": [17, 14, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [0, 11, 1, 11.75], "texture": "#0", "tintindex": 0}, + "east": {"uv": [3, 8.75, 0, 9.5], "texture": "#0", "tintindex": 0}, + "south": {"uv": [2, 8.75, 3, 9.5], "texture": "#0", "tintindex": 0}, + "west": {"uv": [0, 5.5, 3, 6.25], "texture": "#0", "tintindex": 0}, + "up": {"uv": [0, 7.5, 3, 8.5], "rotation": 90, "texture": "#0", "tintindex": 0}, + "down": {"uv": [0, 9.75, 3, 10.75], "rotation": 90, "texture": "#0", "tintindex": 0} + } + }, + { + "from": [13, 7, 2], + "to": [15, 11, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [0.5, 6.25, 0, 7.25], "texture": "#0", "tintindex": 0}, + "east": {"uv": [0, 12, 2.75, 13], "texture": "#0", "tintindex": 0}, + "west": {"uv": [0, 6.25, 2.75, 7.25], "texture": "#0", "tintindex": 0}, + "down": {"uv": [0, 13, 2.75, 12.5], "rotation": 90, "texture": "#0", "tintindex": 0} + } + }, + { + "from": [-1, 11, 2], + "to": [3, 14, 14], + "faces": { + "north": {"uv": [1, 11, 0, 11.75], "texture": "#0", "tintindex": 0}, + "east": {"uv": [3, 5.5, 0, 6.25], "texture": "#0", "tintindex": 0}, + "south": {"uv": [3, 8.75, 2, 9.5], "texture": "#0", "tintindex": 0}, + "west": {"uv": [0, 8.75, 3, 9.5], "texture": "#0", "tintindex": 0}, + "up": {"uv": [0, 8.5, 3, 7.5], "rotation": 90, "texture": "#0", "tintindex": 0}, + "down": {"uv": [0, 10.75, 3, 9.75], "rotation": 90, "texture": "#0", "tintindex": 0} + } + }, + { + "from": [1, 7, 2], + "to": [3, 11, 13], + "faces": { + "north": {"uv": [0, 6.25, 0.5, 7.25], "texture": "#0", "tintindex": 0}, + "east": {"uv": [2.75, 6.25, 0, 7.25], "texture": "#0", "tintindex": 0}, + "west": {"uv": [2.75, 12, 0, 13], "texture": "#0", "tintindex": 0}, + "down": {"uv": [0, 12.5, 2.75, 13], "rotation": 90, "texture": "#0", "tintindex": 0} + } + }, + { + "from": [2, 7, 2], + "to": [14, 8, 13], + "faces": { + "up": {"uv": [0.25, 2.75, 3.25, 0], "texture": "#0", "tintindex": 0} + } + }, + { + "from": [1, 7, 12], + "to": [15, 21, 16], + "faces": { + "north": {"uv": [3.75, 3.75, 7.25, 7.25], "texture": "#0", "tintindex": 0}, + "east": {"uv": [7.25, 11, 3.75, 10], "rotation": 90, "texture": "#0", "tintindex": 0}, + "south": {"uv": [3.75, 0, 7.25, 3.5], "texture": "#0", "tintindex": 0}, + "west": {"uv": [7.25, 10, 3.75, 11], "rotation": 90, "texture": "#0", "tintindex": 0}, + "up": {"uv": [3.75, 7.5, 7.25, 8.5], "texture": "#0", "tintindex": 0}, + "down": {"uv": [3.75, 3.5, 7.25, 2.5], "texture": "#0", "tintindex": 0} + } + }, + { + "from": [0, 0, 1], + "to": [2, 13, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [8, 0, 7.5, 3.25], "texture": "#0"}, + "east": {"uv": [8.75, 0, 8.25, 3.25], "texture": "#0"}, + "south": {"uv": [8, 0, 7.5, 3.25], "texture": "#0"}, + "west": {"uv": [8.75, 0, 8.25, 3.25], "texture": "#0"}, + "up": {"uv": [8.75, 3.5, 8.25, 4], "texture": "#0"}, + "down": {"uv": [8, 3.5, 7.5, 4], "texture": "#0"} + } + }, + { + "from": [15, 0, 0], + "to": [17, 2, 2], + "faces": { + "north": {"uv": [11.75, 0, 11.25, 0.5], "texture": "#0"}, + "east": {"uv": [11.25, 0, 11.75, 0.5], "texture": "#0"}, + "south": {"uv": [11, 0, 10.5, 0.5], "texture": "#0"}, + "west": {"uv": [11, 0, 10.5, 0.5], "texture": "#0"}, + "up": {"uv": [11.25, 0, 11.75, 0.5], "texture": "#0"}, + "down": {"uv": [12, 0.5, 12.5, 0], "texture": "#0"} + } + }, + { + "from": [14, 0, 1], + "to": [16, 13, 3], + "faces": { + "north": {"uv": [7.5, 0, 8, 3.25], "texture": "#0"}, + "east": {"uv": [8.25, 0, 8.75, 3.25], "texture": "#0"}, + "south": {"uv": [7.5, 0, 8, 3.25], "texture": "#0"}, + "west": {"uv": [8.25, 0, 8.75, 3.25], "texture": "#0"}, + "up": {"uv": [8.25, 3.5, 8.75, 4], "texture": "#0"}, + "down": {"uv": [7.5, 3.5, 8, 4], "texture": "#0"} + } + }, + { + "from": [-1, 0, 0], + "to": [1, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [11.25, 0, 11.75, 0.5], "texture": "#0"}, + "east": {"uv": [10.5, 0, 11, 0.5], "texture": "#0"}, + "south": {"uv": [10.5, 0, 11, 0.5], "texture": "#0"}, + "west": {"uv": [11.75, 0, 11.25, 0.5], "texture": "#0"}, + "up": {"uv": [11.75, 0, 11.25, 0.5], "texture": "#0"}, + "down": {"uv": [12.5, 0.5, 12, 0], "texture": "#0"} + } + }, + { + "from": [15, 0, 14], + "to": [17, 2, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 16]}, + "faces": { + "north": {"uv": [10.5, 0, 11, 0.5], "texture": "#0"}, + "east": {"uv": [11.75, 0, 11.25, 0.5], "texture": "#0"}, + "south": {"uv": [11.25, 0, 11.75, 0.5], "texture": "#0"}, + "west": {"uv": [10.5, 0, 11, 0.5], "texture": "#0"}, + "up": {"uv": [11.25, 0.5, 11.75, 0], "texture": "#0"}, + "down": {"uv": [12, 0, 12.5, 0.5], "texture": "#0"} + } + }, + { + "from": [0, 0, 13], + "to": [2, 6, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [10.25, 0, 9.75, 1.5], "texture": "#0"}, + "east": {"uv": [9.5, 0, 9, 1.5], "texture": "#0"}, + "south": {"uv": [10.25, 0, 9.75, 1.5], "texture": "#0"}, + "west": {"uv": [9.5, 0, 9, 1.5], "texture": "#0"}, + "down": {"uv": [9.5, 1.75, 9, 2.25], "texture": "#0"} + } + }, + { + "from": [-1, 0, 14], + "to": [1, 2, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 16]}, + "faces": { + "north": {"uv": [11, 0, 10.5, 0.5], "texture": "#0"}, + "east": {"uv": [11, 0, 10.5, 0.5], "texture": "#0"}, + "south": {"uv": [11.75, 0, 11.25, 0.5], "texture": "#0"}, + "west": {"uv": [11.25, 0, 11.75, 0.5], "texture": "#0"}, + "up": {"uv": [11.75, 0.5, 11.25, 0], "texture": "#0"}, + "down": {"uv": [12.5, 0, 12, 0.5], "texture": "#0"} + } + }, + { + "from": [14, 0, 13], + "to": [16, 6, 15], + "faces": { + "north": {"uv": [9.75, 0, 10.25, 1.5], "texture": "#0"}, + "east": {"uv": [9, 0, 9.5, 1.5], "texture": "#0"}, + "south": {"uv": [9.75, 0, 10.25, 1.5], "texture": "#0"}, + "west": {"uv": [9, 0, 9.5, 1.5], "texture": "#0"}, + "down": {"uv": [9, 1.75, 9.5, 2.25], "texture": "#0"} + } + }, + { + "from": [-1, 20, 13], + "to": [17, 22, 15], + "faces": { + "north": {"uv": [7.5, 11.5, 12, 12], "texture": "#0"}, + "east": {"uv": [8, 14.5, 7.5, 15], "texture": "#0"}, + "south": {"uv": [7.5, 12.25, 12, 12.75], "texture": "#0"}, + "west": {"uv": [7.5, 14.5, 8, 15], "texture": "#0"}, + "up": {"uv": [7.5, 13, 12, 13.5], "texture": "#0"}, + "down": {"uv": [7.5, 14.25, 12, 13.75], "texture": "#0"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 225, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "translation": [0, -1.75, 0], + "scale": [0.5, 0.5, 0.5] + }, + "fixed": { + "rotation": [-90, 0, 0], + "translation": [0, 0, -3], + "scale": [0.5, 0.5, 0.5] + } + } +} diff --git a/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/fancy/light_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/fancy/light_1.json new file mode 100644 index 0000000000..d6a3aeefa5 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/fancy/light_1.json @@ -0,0 +1,121 @@ +{ + "texture_size": [32, 32], + "textures": { + "0": "gm4_furniture:block/furniture/wood_set/fancy/light_1", + "particle": "gm4_furniture:block/furniture/wood_set/fancy/light_1" + }, + "elements": [ + { + "from": [3.025, 5, 3.025], + "to": [12.975, 11, 12.975], + "faces": { + "north": {"uv": [0, 2.5, 5, 5.5], "texture": "#0", "tintindex": 0}, + "east": {"uv": [0, 2.5, 5, 5.5], "texture": "#0", "tintindex": 0}, + "south": {"uv": [0, 2.5, 5, 5.5], "texture": "#0", "tintindex": 0}, + "west": {"uv": [0, 2.5, 5, 5.5], "texture": "#0", "tintindex": 0}, + "up": {"uv": [0, 6, 5, 11], "texture": "#0", "tintindex": 0}, + "down": {"uv": [0, 6, 5, 11], "texture": "#0", "tintindex": 0} + } + }, + { + "from": [12.975, 11, 12.975], + "to": [3.025, 5, 3.025], + "faces": { + "north": {"uv": [5, 5.5, 10, 2.5], "texture": "#0", "tintindex": 0}, + "east": {"uv": [5, 5.5, 10, 2.5], "texture": "#0", "tintindex": 0}, + "south": {"uv": [5, 5.5, 10, 2.5], "texture": "#0", "tintindex": 0}, + "west": {"uv": [5, 5.5, 10, 2.5], "texture": "#0", "tintindex": 0}, + "up": {"uv": [5, 6, 10, 11], "texture": "#0", "tintindex": 0}, + "down": {"uv": [5, 6, 10, 11], "texture": "#0", "tintindex": 0} + } + }, + { + "from": [4, 10.975, 4], + "to": [12, 15, 12], + "faces": { + "north": {"uv": [0.5, 0, 4.5, 2], "texture": "#0", "tintindex": 0}, + "east": {"uv": [0.5, 0, 4.5, 2], "texture": "#0", "tintindex": 0}, + "south": {"uv": [0.5, 0, 4.5, 2], "texture": "#0", "tintindex": 0}, + "west": {"uv": [0.5, 0, 4.5, 2], "texture": "#0", "tintindex": 0}, + "up": {"uv": [0.5, 11.5, 4.5, 15.5], "texture": "#0", "tintindex": 0} + } + }, + { + "from": [12, 15, 12], + "to": [4, 11, 4], + "faces": { + "north": {"uv": [5.5, 2, 9.5, 0], "texture": "#0", "tintindex": 0}, + "east": {"uv": [5.5, 2, 9.5, 0], "texture": "#0", "tintindex": 0}, + "south": {"uv": [5.5, 2, 9.5, 0], "texture": "#0", "tintindex": 0}, + "west": {"uv": [5.5, 2, 9.5, 0], "texture": "#0", "tintindex": 0}, + "down": {"uv": [5.5, 11.5, 9.5, 15.5], "texture": "#0", "tintindex": 0} + } + }, + { + "from": [5, 0, 5], + "to": [11, 2, 11], + "faces": { + "north": {"uv": [10.5, 7, 13.5, 8], "texture": "#0"}, + "east": {"uv": [10.5, 7, 13.5, 8], "texture": "#0"}, + "south": {"uv": [10.5, 7, 13.5, 8], "texture": "#0"}, + "west": {"uv": [10.5, 7, 13.5, 8], "texture": "#0"}, + "up": {"uv": [10.5, 0, 13.5, 3], "texture": "#0"}, + "down": {"uv": [10.5, 3.5, 13.5, 6.5], "texture": "#0"} + } + }, + { + "from": [4, 13, 4], + "to": [12, 13, 12], + "faces": { + "up": {"uv": [10.5, 8.5, 14.5, 12.5], "texture": "#0"}, + "down": {"uv": [10.5, 8.5, 14.5, 12.5], "texture": "#0"} + } + }, + { + "from": [7, 2, 7], + "to": [9, 14, 9], + "faces": { + "north": {"uv": [13.5, 0, 14.5, 6], "texture": "#0"}, + "east": {"uv": [15, 0, 16, 6], "texture": "#0"}, + "south": {"uv": [13.5, 0, 14.5, 6], "texture": "#0"}, + "west": {"uv": [15, 0, 16, 6], "texture": "#0"}, + "up": {"uv": [13.5, 6.5, 14.5, 7.5], "texture": "#0"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, 45, 0], + "translation": [0, 0.75, 2], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [75, 45, 0], + "translation": [0, 0.75, 2], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "translation": [0, 3.25, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 45, 0], + "translation": [0, 3.25, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.5, 0.5, 0.5] + }, + "gui": { + "rotation": [30, 225, 0], + "scale": [0.625, 0.625, 0.625] + }, + "fixed": { + "rotation": [-90, 0, 0], + "translation": [0, 0, -3], + "scale": [0.5, 0.5, 0.5] + } + } +} diff --git a/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/fancy/stool_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/fancy/stool_1.json new file mode 100644 index 0000000000..afe5d4ee3d --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/fancy/stool_1.json @@ -0,0 +1,167 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "gm4_furniture:block/furniture/wood_set/fancy/stool_1", + "particle": "gm4_furniture:block/furniture/wood_set/fancy/stool_1" + }, + "elements": [ + { + "from": [1, 6, 1], + "to": [15, 10, 15], + "faces": { + "north": {"uv": [0, 3.75, 3.5, 4.75], "texture": "#0", "tintindex": 0}, + "east": {"uv": [0, 3.75, 3.5, 4.75], "texture": "#0", "tintindex": 0}, + "south": {"uv": [0, 3.75, 3.5, 4.75], "texture": "#0", "tintindex": 0}, + "west": {"uv": [0, 3.75, 3.5, 4.75], "texture": "#0", "tintindex": 0}, + "up": {"uv": [0, 0, 3.5, 3.5], "texture": "#0", "tintindex": 0}, + "down": {"uv": [0, 5, 3.5, 8.5], "texture": "#0", "tintindex": 0} + } + }, + { + "from": [2, 4, 2], + "to": [14, 6, 14], + "faces": { + "north": {"uv": [3.75, 0, 6.75, 0.5], "texture": "#0"}, + "east": {"uv": [3.75, 0, 6.75, 0.5], "texture": "#0"}, + "south": {"uv": [3.75, 0, 6.75, 0.5], "texture": "#0"}, + "west": {"uv": [3.75, 0, 6.75, 0.5], "texture": "#0"}, + "down": {"uv": [3.75, 0.75, 6.75, 3.75], "texture": "#0"} + } + }, + { + "from": [3, 0, 3], + "to": [5, 4, 5], + "faces": { + "north": {"uv": [7.75, 0, 8.25, 1], "texture": "#0"}, + "east": {"uv": [7, 0, 7.5, 1], "texture": "#0"}, + "south": {"uv": [7.75, 0, 8.25, 1], "texture": "#0"}, + "west": {"uv": [7, 0, 7.5, 1], "texture": "#0"}, + "up": {"uv": [0, 0, 2, 2], "texture": "#0"}, + "down": {"uv": [7, 1.25, 7.5, 1.75], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [12, 0, 12], + "to": [14, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 16]}, + "faces": { + "north": {"uv": [9, 0, 8.5, 0.5], "texture": "#0"}, + "east": {"uv": [9.75, 0, 9.25, 0.5], "texture": "#0"}, + "south": {"uv": [9.25, 0, 9.75, 0.5], "texture": "#0"}, + "west": {"uv": [8.5, 0, 9, 0.5], "texture": "#0"}, + "up": {"uv": [9.75, 0.5, 9.25, 0], "rotation": 270, "texture": "#0"}, + "down": {"uv": [10.5, 0.5, 10, 0], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [11, 0, 11], + "to": [13, 4, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 16]}, + "faces": { + "north": {"uv": [7.75, 0, 8.25, 1], "texture": "#0"}, + "east": {"uv": [7, 0, 7.5, 1], "texture": "#0"}, + "south": {"uv": [7.75, 0, 8.25, 1], "texture": "#0"}, + "west": {"uv": [7, 0, 7.5, 1], "texture": "#0"}, + "up": {"uv": [2, 2, 0, 0], "texture": "#0"}, + "down": {"uv": [7.5, 1.75, 7, 1.25], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [12, 0, 2], + "to": [14, 2, 4], + "faces": { + "north": {"uv": [9.75, 0, 9.25, 0.5], "texture": "#0"}, + "east": {"uv": [9.25, 0, 9.75, 0.5], "texture": "#0"}, + "south": {"uv": [8.5, 0, 9, 0.5], "texture": "#0"}, + "west": {"uv": [9, 0, 8.5, 0.5], "texture": "#0"}, + "up": {"uv": [9.25, 0.5, 9.75, 0], "rotation": 270, "texture": "#0"}, + "down": {"uv": [10.5, 0, 10, 0.5], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [11, 0, 3], + "to": [13, 4, 5], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [8.25, 0, 7.75, 1], "texture": "#0"}, + "east": {"uv": [7.5, 0, 7, 1], "texture": "#0"}, + "south": {"uv": [8.25, 0, 7.75, 1], "texture": "#0"}, + "west": {"uv": [7.5, 0, 7, 1], "texture": "#0"}, + "up": {"uv": [2, 0, 0, 2], "texture": "#0"}, + "down": {"uv": [7.5, 1.25, 7, 1.75], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [2, 0, 12], + "to": [4, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 16]}, + "faces": { + "north": {"uv": [8.5, 0, 9, 0.5], "texture": "#0"}, + "east": {"uv": [9, 0, 8.5, 0.5], "texture": "#0"}, + "south": {"uv": [9.75, 0, 9.25, 0.5], "texture": "#0"}, + "west": {"uv": [9.25, 0, 9.75, 0.5], "texture": "#0"}, + "up": {"uv": [9.75, 0, 9.25, 0.5], "rotation": 270, "texture": "#0"}, + "down": {"uv": [10, 0.5, 10.5, 0], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [3, 0, 11], + "to": [5, 4, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 16]}, + "faces": { + "north": {"uv": [8.25, 0, 7.75, 1], "texture": "#0"}, + "east": {"uv": [7.5, 0, 7, 1], "texture": "#0"}, + "south": {"uv": [8.25, 0, 7.75, 1], "texture": "#0"}, + "west": {"uv": [7.5, 0, 7, 1], "texture": "#0"}, + "up": {"uv": [0, 2, 2, 0], "texture": "#0"}, + "down": {"uv": [7, 1.75, 7.5, 1.25], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [2, 0, 2], + "to": [4, 2, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [9.25, 0, 9.75, 0.5], "texture": "#0"}, + "east": {"uv": [8.5, 0, 9, 0.5], "texture": "#0"}, + "south": {"uv": [9, 0, 8.5, 0.5], "texture": "#0"}, + "west": {"uv": [9.75, 0, 9.25, 0.5], "texture": "#0"}, + "up": {"uv": [9.25, 0, 9.75, 0.5], "rotation": 270, "texture": "#0"}, + "down": {"uv": [10, 0, 10.5, 0.5], "rotation": 180, "texture": "#0"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 225, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "scale": [0.625, 0.625, 0.625] + }, + "fixed": { + "rotation": [-90, 0, 0], + "translation": [0, 0, -3.25], + "scale": [0.5, 0.5, 0.5] + } + } +} diff --git a/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/plain/1x1_table_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/plain/1x1_table_1.json new file mode 100644 index 0000000000..d8613a6d8e --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/plain/1x1_table_1.json @@ -0,0 +1,101 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "gm4_furniture:block/furniture/wood_set/plain/1x1_table_1", + "particle": "gm4_furniture:block/furniture/wood_set/plain/1x1_table_1" + }, + "elements": [ + { + "from": [0, 14, 0], + "to": [16, 16, 16], + "faces": { + "north": {"uv": [10, 0, 11, 8], "rotation": 90, "texture": "#0"}, + "east": {"uv": [8.5, 0, 9.5, 8], "rotation": 90, "texture": "#0"}, + "south": {"uv": [10, 0, 11, 8], "rotation": 90, "texture": "#0"}, + "west": {"uv": [8.5, 0, 9.5, 8], "rotation": 90, "texture": "#0"}, + "up": {"uv": [0, 0, 8, 8], "texture": "#0"}, + "down": {"uv": [0, 8, 8, 16], "texture": "#0"} + } + }, + { + "from": [13, 0, 13], + "to": [15, 14, 15], + "faces": { + "north": {"uv": [11.5, 0, 12.5, 8], "texture": "#0"}, + "east": {"uv": [13, 0, 14, 8], "texture": "#0"}, + "south": {"uv": [11.5, 0, 12.5, 8], "texture": "#0"}, + "west": {"uv": [13, 0, 14, 8], "texture": "#0"}, + "down": {"uv": [11.5, 8.5, 12.5, 9.5], "texture": "#0"} + } + }, + { + "from": [1, 0, 1], + "to": [3, 14, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 16]}, + "faces": { + "north": {"uv": [11.5, 0, 12.5, 8], "texture": "#0"}, + "east": {"uv": [13, 0, 14, 8], "texture": "#0"}, + "south": {"uv": [11.5, 0, 12.5, 8], "texture": "#0"}, + "west": {"uv": [13, 0, 14, 8], "texture": "#0"}, + "down": {"uv": [12.5, 9.5, 11.5, 8.5], "texture": "#0"} + } + }, + { + "from": [13, 0, 1], + "to": [15, 14, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 16]}, + "faces": { + "north": {"uv": [12.5, 0, 11.5, 8], "texture": "#0"}, + "east": {"uv": [14, 0, 13, 8], "texture": "#0"}, + "south": {"uv": [12.5, 0, 11.5, 8], "texture": "#0"}, + "west": {"uv": [14, 0, 13, 8], "texture": "#0"}, + "down": {"uv": [11.5, 9.5, 12.5, 8.5], "texture": "#0"} + } + }, + { + "from": [1, 0, 13], + "to": [3, 14, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [12.5, 0, 11.5, 8], "texture": "#0"}, + "east": {"uv": [14, 0, 13, 8], "texture": "#0"}, + "south": {"uv": [12.5, 0, 11.5, 8], "texture": "#0"}, + "west": {"uv": [14, 0, 13, 8], "texture": "#0"}, + "down": {"uv": [12.5, 8.5, 11.5, 9.5], "texture": "#0"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 225, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "scale": [0.625, 0.625, 0.625] + }, + "fixed": { + "rotation": [-90, 0, 0], + "translation": [0, 0, -3.25], + "scale": [0.5, 0.5, 0.5] + } + } +} diff --git a/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/plain/2x2_table_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/plain/2x2_table_1.json new file mode 100644 index 0000000000..828a3414fa --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/plain/2x2_table_1.json @@ -0,0 +1,128 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [128, 128], + "textures": { + "0": "gm4_furniture:block/furniture/wood_set/plain/2x2_table_1", + "particle": "gm4_furniture:block/furniture/wood_set/plain/2x2_table_1" + }, + "elements": [ + { + "from": [-8, 14, -8], + "to": [24, 16, 24], + "faces": { + "north": {"uv": [0, 4.125, 4, 4.375], "texture": "#0"}, + "east": {"uv": [4.125, 0, 4.375, 4], "rotation": 90, "texture": "#0"}, + "south": {"uv": [0, 4.125, 4, 4.375], "texture": "#0"}, + "west": {"uv": [4.125, 0, 4.375, 4], "rotation": 90, "texture": "#0"}, + "up": {"uv": [0, 0, 4, 4], "texture": "#0"}, + "down": {"uv": [0, 4.5, 4, 8.5], "texture": "#0"} + } + }, + { + "from": [20, 0, -6], + "to": [22, 14, -3], + "rotation": {"angle": 0, "axis": "y", "origin": [28.5, 7, 3]}, + "faces": { + "north": {"uv": [5, 0, 5.25, 1.75], "texture": "#0"}, + "east": {"uv": [4.5, 0, 4.875, 1.75], "texture": "#0"}, + "south": {"uv": [5.25, 0, 5, 1.75], "texture": "#0"}, + "west": {"uv": [5.375, 0, 5.75, 1.75], "texture": "#0"}, + "down": {"uv": [4.5, 2.125, 4.875, 1.875], "rotation": 270, "texture": "#0"} + } + }, + { + "from": [-6, 0, -6], + "to": [-4, 14, -3], + "rotation": {"angle": 0, "axis": "y", "origin": [-12.5, 7, 3]}, + "faces": { + "north": {"uv": [5.25, 0, 5, 1.75], "texture": "#0"}, + "east": {"uv": [5.75, 0, 5.375, 1.75], "texture": "#0"}, + "south": {"uv": [5, 0, 5.25, 1.75], "texture": "#0"}, + "west": {"uv": [4.875, 0, 4.5, 1.75], "texture": "#0"}, + "down": {"uv": [4.5, 1.875, 4.875, 2.125], "rotation": 270, "texture": "#0"} + } + }, + { + "from": [20, 0, 19], + "to": [22, 14, 22], + "rotation": {"angle": 0, "axis": "y", "origin": [28.5, 7, 13]}, + "faces": { + "north": {"uv": [5, 0, 5.25, 1.75], "texture": "#0"}, + "east": {"uv": [4.875, 0, 4.5, 1.75], "texture": "#0"}, + "south": {"uv": [5.25, 0, 5, 1.75], "texture": "#0"}, + "west": {"uv": [5.75, 0, 5.375, 1.75], "texture": "#0"}, + "down": {"uv": [4.875, 2.125, 4.5, 1.875], "rotation": 270, "texture": "#0"} + } + }, + { + "from": [-6, 0, 19], + "to": [-4, 14, 22], + "rotation": {"angle": 0, "axis": "y", "origin": [-12.5, 7, 13]}, + "faces": { + "north": {"uv": [5.25, 0, 5, 1.75], "texture": "#0"}, + "east": {"uv": [5.375, 0, 5.75, 1.75], "texture": "#0"}, + "south": {"uv": [5, 0, 5.25, 1.75], "texture": "#0"}, + "west": {"uv": [4.5, 0, 4.875, 1.75], "texture": "#0"}, + "down": {"uv": [4.875, 1.875, 4.5, 2.125], "rotation": 270, "texture": "#0"} + } + }, + { + "from": [-4, 8, -5], + "to": [20, 10, -4], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 9, 16]}, + "faces": { + "north": {"uv": [5.875, 0, 8.875, 0.25], "texture": "#0"}, + "south": {"uv": [8.875, 0, 5.875, 0.25], "texture": "#0"}, + "up": {"uv": [8.875, 0, 5.875, 0.125], "texture": "#0"}, + "down": {"uv": [8.875, 0.125, 5.875, 0.25], "texture": "#0"} + } + }, + { + "from": [-4, 8, 20], + "to": [20, 10, 21], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 9, 0]}, + "faces": { + "north": {"uv": [5.875, 0, 8.875, 0.25], "texture": "#0"}, + "south": {"uv": [8.875, 0, 5.875, 0.25], "texture": "#0"}, + "up": {"uv": [8.875, 0.125, 5.875, 0], "texture": "#0"}, + "down": {"uv": [8.875, 0.25, 5.875, 0.125], "texture": "#0"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.75, 0], + "scale": [0.1875, 0.1875, 0.1875] + }, + "thirdperson_lefthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.75, 0], + "scale": [0.1875, 0.1875, 0.1875] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "scale": [0.2, 0.2, 0.2] + }, + "firstperson_lefthand": { + "rotation": [0, 45, 0], + "scale": [0.2, 0.2, 0.2] + }, + "ground": { + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "translation": [0, -2, 0], + "scale": [0.3125, 0.3125, 0.3125] + }, + "head": { + "translation": [-8, 0, 8] + }, + "fixed": { + "rotation": [-90, 0, 0], + "translation": [0, 0, -3.25], + "scale": [0.5, 0.5, 0.5] + } + } +} diff --git a/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/plain/bench_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/plain/bench_1.json new file mode 100644 index 0000000000..65e291fb41 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/plain/bench_1.json @@ -0,0 +1,104 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "0": "gm4_furniture:block/furniture/wood_set/plain/bench_1", + "particle": "gm4_furniture:block/furniture/wood_set/plain/bench_1" + }, + "elements": [ + { + "from": [25, 0, 2], + "to": [28, 6, 5], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 5.25, 8]}, + "faces": { + "north": {"uv": [1, 8.5, 1.75, 10], "texture": "#0"}, + "east": {"uv": [0, 8.5, 0.75, 10], "texture": "#0"}, + "south": {"uv": [1, 8.5, 1.75, 10], "texture": "#0"}, + "west": {"uv": [0, 8.5, 0.75, 10], "texture": "#0"}, + "down": {"uv": [0, 10.25, 0.75, 11], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [-12, 0, 11], + "to": [-9, 6, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 5.25, 8]}, + "faces": { + "north": {"uv": [1, 8.5, 1.75, 10], "texture": "#0"}, + "east": {"uv": [0, 8.5, 0.75, 10], "texture": "#0"}, + "south": {"uv": [1, 8.5, 1.75, 10], "texture": "#0"}, + "west": {"uv": [0, 8.5, 0.75, 10], "texture": "#0"}, + "down": {"uv": [0.75, 11, 0, 10.25], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [-12, 0, 2], + "to": [-9, 6, 5], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 5.25, 8]}, + "faces": { + "north": {"uv": [1.75, 8.5, 1, 10], "texture": "#0"}, + "east": {"uv": [0.75, 8.5, 0, 10], "texture": "#0"}, + "south": {"uv": [1.75, 8.5, 1, 10], "texture": "#0"}, + "west": {"uv": [0.75, 8.5, 0, 10], "texture": "#0"}, + "down": {"uv": [0, 11, 0.75, 10.25], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [25, 0, 11], + "to": [28, 6, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 5.25, 8]}, + "faces": { + "north": {"uv": [1.75, 8.5, 1, 10], "texture": "#0"}, + "east": {"uv": [0.75, 8.5, 0, 10], "texture": "#0"}, + "south": {"uv": [1.75, 8.5, 1, 10], "texture": "#0"}, + "west": {"uv": [0.75, 8.5, 0, 10], "texture": "#0"}, + "down": {"uv": [0.75, 10.25, 0, 11], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [-15, 6, 1], + "to": [31, 9, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 5.25, 8]}, + "faces": { + "north": {"uv": [0, 3.75, 11.5, 4.5], "texture": "#0"}, + "east": {"uv": [11.75, 0, 12.5, 3.5], "rotation": 90, "texture": "#0"}, + "south": {"uv": [0, 3.75, 11.5, 4.5], "texture": "#0"}, + "west": {"uv": [11.75, 0, 12.5, 3.5], "rotation": 90, "texture": "#0"}, + "up": {"uv": [0, 0, 11.5, 3.5], "texture": "#0"}, + "down": {"uv": [0, 4.75, 11.5, 8.25], "rotation": 180, "texture": "#0"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, 45, 0], + "translation": [0, 1.75, 0], + "scale": [0.1875, 0.1875, 0.1875] + }, + "thirdperson_lefthand": { + "rotation": [75, 45, 0], + "translation": [0, 1.75, 0], + "scale": [0.1875, 0.1875, 0.1875] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 225, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "scale": [0.3125, 0.3125, 0.3125] + }, + "fixed": { + "rotation": [-90, 0, 0], + "translation": [0, 0.5, -3.25], + "scale": [0.5, 0.5, 0.5] + } + } +} diff --git a/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/plain/chair_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/plain/chair_1.json new file mode 100644 index 0000000000..38148654ea --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/plain/chair_1.json @@ -0,0 +1,145 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "gm4_furniture:block/furniture/wood_set/plain/chair_1", + "particle": "gm4_furniture:block/furniture/wood_set/plain/chair_1" + }, + "elements": [ + { + "from": [1, 7, 1], + "to": [15, 9, 15], + "faces": { + "north": {"uv": [0, 7.5, 7, 8.5], "texture": "#0"}, + "east": {"uv": [7.5, 0, 8.5, 7], "rotation": 90, "texture": "#0"}, + "south": {"uv": [0, 7.5, 7, 8.5], "texture": "#0"}, + "west": {"uv": [7.5, 0, 8.5, 7], "rotation": 90, "texture": "#0"}, + "up": {"uv": [0, 0, 7, 7], "texture": "#0"}, + "down": {"uv": [9, 0, 16, 7], "texture": "#0"} + } + }, + { + "from": [2, 0, 2], + "to": [4, 7, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [0, 9, 1, 12.5], "texture": "#0"}, + "east": {"uv": [1.5, 9, 2.5, 12.5], "texture": "#0"}, + "south": {"uv": [0, 9, 1, 12.5], "texture": "#0"}, + "west": {"uv": [1.5, 9, 2.5, 12.5], "texture": "#0"}, + "down": {"uv": [0, 13, 1, 14], "texture": "#0"} + } + }, + { + "from": [12, 0, 2], + "to": [14, 7, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [1.5, 9, 2.5, 12.5], "texture": "#0"}, + "east": {"uv": [0, 9, 1, 12.5], "texture": "#0"}, + "south": {"uv": [1.5, 9, 2.5, 12.5], "texture": "#0"}, + "west": {"uv": [0, 9, 1, 12.5], "texture": "#0"}, + "down": {"uv": [0, 13, 1, 14], "rotation": 270, "texture": "#0"} + } + }, + { + "from": [12, 0, 12], + "to": [14, 7, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [0, 9, 1, 12.5], "texture": "#0"}, + "east": {"uv": [1.5, 9, 2.5, 12.5], "texture": "#0"}, + "south": {"uv": [0, 9, 1, 12.5], "texture": "#0"}, + "west": {"uv": [1.5, 9, 2.5, 12.5], "texture": "#0"}, + "down": {"uv": [0, 13, 1, 14], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [2, 0, 12], + "to": [4, 7, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [1.5, 9, 2.5, 12.5], "texture": "#0"}, + "east": {"uv": [0, 9, 1, 12.5], "texture": "#0"}, + "south": {"uv": [1.5, 9, 2.5, 12.5], "texture": "#0"}, + "west": {"uv": [0, 9, 1, 12.5], "texture": "#0"}, + "down": {"uv": [0, 13, 1, 14], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [2, 9, 13], + "to": [4, 21, 14], + "faces": { + "north": {"uv": [6, 10, 7, 16], "texture": "#0"}, + "east": {"uv": [6, 10, 6.5, 16], "texture": "#0"}, + "south": {"uv": [7, 10, 6, 16], "texture": "#0"}, + "west": {"uv": [6.5, 10, 7, 16], "texture": "#0"} + } + }, + { + "from": [12, 9, 13], + "to": [14, 21, 14], + "faces": { + "north": {"uv": [3, 10, 4, 16], "texture": "#0"}, + "east": {"uv": [3, 10, 3.5, 16], "texture": "#0"}, + "south": {"uv": [4, 10, 3, 16], "texture": "#0"}, + "west": {"uv": [3.5, 10, 4, 16], "texture": "#0"} + } + }, + { + "from": [7, 9, 13], + "to": [9, 21, 14], + "faces": { + "north": {"uv": [4.5, 10, 5.5, 16], "texture": "#0"}, + "east": {"uv": [4.5, 10, 5, 16], "texture": "#0"}, + "south": {"uv": [5.5, 10, 4.5, 16], "texture": "#0"}, + "west": {"uv": [5, 10, 5.5, 16], "texture": "#0"} + } + }, + { + "from": [1, 21, 12], + "to": [15, 23, 15], + "faces": { + "north": {"uv": [7.5, 7.5, 14.5, 8.5], "texture": "#0"}, + "east": {"uv": [15, 9, 16, 10.5], "rotation": 90, "texture": "#0"}, + "south": {"uv": [7.5, 7.5, 14.5, 8.5], "texture": "#0"}, + "west": {"uv": [15, 9, 16, 10.5], "rotation": 90, "texture": "#0"}, + "up": {"uv": [7.5, 9, 14.5, 10.5], "texture": "#0"}, + "down": {"uv": [7.5, 11, 14.5, 12.5], "texture": "#0"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 225, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "translation": [0, -1.75, 0], + "scale": [0.5, 0.5, 0.5] + }, + "fixed": { + "rotation": [-90, 0, 0], + "translation": [0, 0, -3], + "scale": [0.5, 0.5, 0.5] + } + } +} diff --git a/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/plain/light_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/plain/light_1.json new file mode 100644 index 0000000000..53834f6c56 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/plain/light_1.json @@ -0,0 +1,101 @@ +{ + "textures": { + "0": "gm4_furniture:block/furniture/misc/candle_fire_1", + "1": "gm4_furniture:block/furniture/misc/candle_1", + "2": "gm4_furniture:block/furniture/wood_set/plain/light_1", + "particle": "gm4_furniture:block/furniture/misc/candle_fire_1" + }, + "elements": [ + { + "from": [6.5, 8.25, 8], + "to": [9.5, 12.25, 8], + "shade": false, + "rotation": {"angle": 45, "axis": "y", "origin": [8, 8.25, 8], "rescale": true}, + "faces": { + "north": {"uv": [12, 0, 15, 4], "texture": "#0"}, + "south": {"uv": [12, 0, 15, 4], "texture": "#0"} + } + }, + { + "from": [6.5, 8.25, 8], + "to": [9.5, 12.25, 8], + "shade": false, + "rotation": {"angle": -45, "axis": "y", "origin": [8, 8.25, 8], "rescale": true}, + "faces": { + "north": {"uv": [0, 0, 3, 4], "texture": "#0"}, + "south": {"uv": [0, 0, 3, 4], "texture": "#0"} + } + }, + { + "from": [6.75, 2.75, 6.75], + "to": [9.25, 8.25, 9.25], + "rotation": {"angle": 0, "axis": "y", "origin": [0.25, -3.75, -3.75]}, + "faces": { + "north": {"uv": [6, 0, 8, 5], "texture": "#1", "tintindex": 0}, + "east": {"uv": [9, 0, 11, 5], "texture": "#1", "tintindex": 0}, + "south": {"uv": [6, 0, 8, 5], "texture": "#1", "tintindex": 0}, + "west": {"uv": [9, 0, 11, 5], "texture": "#1", "tintindex": 0}, + "up": {"uv": [6, 6, 8, 8], "texture": "#1", "tintindex": 0} + } + }, + { + "from": [7, 3, 7], + "to": [9, 8, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [0, -4, -4]}, + "faces": { + "north": {"uv": [0, 0, 2, 5], "texture": "#1", "tintindex": 0}, + "east": {"uv": [3, 0, 5, 5], "texture": "#1", "tintindex": 0}, + "south": {"uv": [0, 0, 2, 5], "texture": "#1", "tintindex": 0}, + "west": {"uv": [3, 0, 5, 5], "texture": "#1", "tintindex": 0}, + "up": {"uv": [0, 6, 2, 8], "texture": "#1", "tintindex": 0} + } + }, + { + "from": [6, 0, 6], + "to": [10, 3, 10], + "faces": { + "north": {"uv": [0, 5, 4, 8], "texture": "#2"}, + "east": {"uv": [0, 5, 4, 8], "texture": "#2"}, + "south": {"uv": [0, 5, 4, 8], "texture": "#2"}, + "west": {"uv": [0, 5, 4, 8], "texture": "#2"}, + "up": {"uv": [0, 0, 4, 4], "texture": "#2"}, + "down": {"uv": [5, 0, 9, 4], "texture": "#2"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, 45, 0], + "translation": [0, 0.75, 2], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [75, 45, 0], + "translation": [0, 0.75, 2], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "translation": [0, 3.25, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 45, 0], + "translation": [0, 3.25, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.5, 0.5, 0.5] + }, + "gui": { + "rotation": [30, 225, 0], + "translation": [0, 2.25, 0] + }, + "fixed": { + "rotation": [-90, 0, 0], + "translation": [0, 0, -3], + "scale": [0.5, 0.5, 0.5] + } + } +} diff --git a/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/plain/stool_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/plain/stool_1.json new file mode 100644 index 0000000000..e03c3d7e8a --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/plain/stool_1.json @@ -0,0 +1,102 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "gm4_furniture:block/furniture/wood_set/plain/stool_1", + "particle": "gm4_furniture:block/furniture/wood_set/plain/stool_1" + }, + "elements": [ + { + "from": [1, 7, 1], + "to": [15, 9, 15], + "faces": { + "north": {"uv": [0, 7.5, 7, 8.5], "texture": "#0"}, + "east": {"uv": [7.5, 0, 8.5, 7], "rotation": 90, "texture": "#0"}, + "south": {"uv": [0, 7.5, 7, 8.5], "texture": "#0"}, + "west": {"uv": [7.5, 0, 8.5, 7], "rotation": 90, "texture": "#0"}, + "up": {"uv": [0, 0, 7, 7], "texture": "#0"}, + "down": {"uv": [9, 0, 16, 7], "texture": "#0"} + } + }, + { + "from": [2, 0, 2], + "to": [4, 7, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [0, 9, 1, 12.5], "texture": "#0"}, + "east": {"uv": [1.5, 9, 2.5, 12.5], "texture": "#0"}, + "south": {"uv": [0, 9, 1, 12.5], "texture": "#0"}, + "west": {"uv": [1.5, 9, 2.5, 12.5], "texture": "#0"}, + "down": {"uv": [0, 13, 1, 14], "texture": "#0"} + } + }, + { + "from": [12, 0, 2], + "to": [14, 7, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [1.5, 9, 2.5, 12.5], "texture": "#0"}, + "east": {"uv": [0, 9, 1, 12.5], "texture": "#0"}, + "south": {"uv": [1.5, 9, 2.5, 12.5], "texture": "#0"}, + "west": {"uv": [0, 9, 1, 12.5], "texture": "#0"}, + "down": {"uv": [0, 13, 1, 14], "rotation": 270, "texture": "#0"} + } + }, + { + "from": [12, 0, 12], + "to": [14, 7, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [0, 9, 1, 12.5], "texture": "#0"}, + "east": {"uv": [1.5, 9, 2.5, 12.5], "texture": "#0"}, + "south": {"uv": [0, 9, 1, 12.5], "texture": "#0"}, + "west": {"uv": [1.5, 9, 2.5, 12.5], "texture": "#0"}, + "down": {"uv": [0, 13, 1, 14], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [2, 0, 12], + "to": [4, 7, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [1.5, 9, 2.5, 12.5], "texture": "#0"}, + "east": {"uv": [0, 9, 1, 12.5], "texture": "#0"}, + "south": {"uv": [1.5, 9, 2.5, 12.5], "texture": "#0"}, + "west": {"uv": [0, 9, 1, 12.5], "texture": "#0"}, + "down": {"uv": [0, 13, 1, 14], "rotation": 90, "texture": "#0"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 225, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "scale": [0.625, 0.625, 0.625] + }, + "fixed": { + "rotation": [-90, 0, 0], + "translation": [0, 0, -3.25], + "scale": [0.5, 0.5, 0.5] + } + } +} diff --git a/gm4_furniture/assets/gm4_furniture/models/item/furniture/paintbrush.json b/gm4_furniture/assets/gm4_furniture/models/item/furniture/paintbrush.json new file mode 100644 index 0000000000..40632b874b --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/item/furniture/paintbrush.json @@ -0,0 +1,238 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "gm4_furniture:item/furniture/paintbrush", + "particle": "gm4_furniture:item/furniture/paintbrush" + }, + "elements": [ + { + "from": [1, 1, 7.5], + "to": [4, 3, 8.5], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [4, 13, 1, 15], "texture": "#0"}, + "east": {"uv": [4, 13, 3, 15], "texture": "#0"}, + "south": {"uv": [1, 13, 4, 15], "texture": "#0"}, + "west": {"uv": [2, 13, 1, 15], "texture": "#0"}, + "up": {"uv": [1, 13, 4, 14], "texture": "#0"}, + "down": {"uv": [1, 14, 4, 15], "texture": "#0"} + } + }, + { + "from": [1, 3, 7.5], + "to": [5, 4, 8.5], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [5, 12, 1, 13], "texture": "#0"}, + "east": {"uv": [5, 12, 4, 13], "texture": "#0"}, + "south": {"uv": [1, 12, 5, 13], "texture": "#0"}, + "west": {"uv": [2, 12, 1, 13], "texture": "#0"}, + "up": {"uv": [1, 12, 5, 13], "texture": "#0"}, + "down": {"uv": [1, 12, 5, 13], "texture": "#0"} + } + }, + { + "from": [3, 4, 7.5], + "to": [6, 5, 8.5], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [6, 11, 3, 12], "texture": "#0"}, + "east": {"uv": [6, 11, 5, 12], "texture": "#0"}, + "south": {"uv": [3, 11, 6, 12], "texture": "#0"}, + "west": {"uv": [4, 11, 3, 12], "texture": "#0"}, + "up": {"uv": [3, 11, 6, 12], "texture": "#0"}, + "down": {"uv": [3, 11, 6, 12], "texture": "#0"} + } + }, + { + "from": [4, 5, 7.5], + "to": [7, 6, 8.5], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [7, 10, 4, 11], "texture": "#0"}, + "east": {"uv": [7, 10, 6, 11], "texture": "#0"}, + "south": {"uv": [4, 10, 7, 11], "texture": "#0"}, + "west": {"uv": [5, 10, 4, 11], "texture": "#0"}, + "up": {"uv": [4, 10, 7, 11], "texture": "#0"}, + "down": {"uv": [4, 10, 7, 11], "texture": "#0"} + } + }, + { + "from": [5, 6, 7.5], + "to": [8, 7, 8.5], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [8, 9, 5, 10], "texture": "#0"}, + "east": {"uv": [8, 9, 7, 10], "texture": "#0"}, + "south": {"uv": [5, 9, 8, 10], "texture": "#0"}, + "west": {"uv": [6, 9, 5, 10], "texture": "#0"}, + "up": {"uv": [5, 9, 8, 10], "texture": "#0"}, + "down": {"uv": [5, 9, 8, 10], "texture": "#0"} + } + }, + { + "from": [6, 7, 7.5], + "to": [11, 8, 8.5], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [11, 8, 6, 9], "texture": "#0"}, + "east": {"uv": [11, 8, 10, 9], "texture": "#0"}, + "south": {"uv": [6, 8, 11, 9], "texture": "#0"}, + "west": {"uv": [7, 8, 6, 9], "texture": "#0"}, + "up": {"uv": [6, 8, 11, 9], "texture": "#0"}, + "down": {"uv": [6, 8, 11, 9], "texture": "#0"} + } + }, + { + "from": [7, 8, 7.5], + "to": [12, 9, 8.5], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [12, 7, 7, 8], "texture": "#0"}, + "east": {"uv": [12, 7, 11, 8], "texture": "#0"}, + "south": {"uv": [7, 7, 12, 8], "texture": "#0"}, + "west": {"uv": [8, 7, 7, 8], "texture": "#0"}, + "up": {"uv": [7, 7, 12, 8], "texture": "#0"}, + "down": {"uv": [7, 7, 12, 8], "texture": "#0"} + } + }, + { + "from": [7, 9, 7.5], + "to": [11, 10, 8.5], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [11, 6, 7, 7], "texture": "#0"}, + "east": {"uv": [11, 6, 10, 7], "texture": "#0"}, + "south": {"uv": [7, 6, 11, 7], "texture": "#0"}, + "west": {"uv": [8, 6, 7, 7], "texture": "#0"}, + "up": {"uv": [7, 6, 11, 7], "texture": "#0"}, + "down": {"uv": [7, 6, 11, 7], "texture": "#0"} + } + }, + { + "from": [7, 10, 7.5], + "to": [10, 11, 8.5], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [10, 5, 7, 6], "texture": "#0"}, + "east": {"uv": [10, 5, 9, 6], "texture": "#0"}, + "south": {"uv": [7, 5, 10, 6], "texture": "#0"}, + "west": {"uv": [8, 5, 7, 6], "texture": "#0"}, + "up": {"uv": [7, 5, 10, 6], "texture": "#0"}, + "down": {"uv": [7, 5, 10, 6], "texture": "#0"} + } + }, + { + "from": [8, 11, 7.5], + "to": [9, 12, 8.5], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [9, 4, 8, 5], "texture": "#0"}, + "east": {"uv": [9, 4, 8, 5], "texture": "#0"}, + "south": {"uv": [8, 4, 9, 5], "texture": "#0"}, + "west": {"uv": [9, 4, 8, 5], "texture": "#0"}, + "up": {"uv": [8, 4, 9, 5], "texture": "#0"}, + "down": {"uv": [8, 4, 9, 5], "texture": "#0"} + } + }, + { + "from": [11, 9, 7.5], + "to": [12, 10, 8.5], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [12, 6, 11, 7], "texture": "#0", "tintindex": 0}, + "east": {"uv": [12, 6, 11, 7], "texture": "#0", "tintindex": 0}, + "south": {"uv": [11, 6, 12, 7], "texture": "#0", "tintindex": 0}, + "west": {"uv": [12, 6, 11, 7], "texture": "#0", "tintindex": 0}, + "up": {"uv": [11, 6, 12, 7], "texture": "#0", "tintindex": 0}, + "down": {"uv": [11, 6, 12, 7], "texture": "#0", "tintindex": 0} + } + }, + { + "from": [14, 11, 7.5], + "to": [15, 12, 8.5], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [15, 4, 14, 5], "texture": "#0", "tintindex": 0}, + "east": {"uv": [15, 4, 14, 5], "texture": "#0", "tintindex": 0}, + "south": {"uv": [14, 4, 15, 5], "texture": "#0", "tintindex": 0}, + "west": {"uv": [15, 4, 14, 5], "texture": "#0", "tintindex": 0}, + "up": {"uv": [14, 4, 15, 5], "texture": "#0", "tintindex": 0}, + "down": {"uv": [14, 4, 15, 5], "texture": "#0", "tintindex": 0} + } + }, + { + "from": [10, 10, 7.5], + "to": [13, 11, 8.5], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [13, 5, 10, 6], "texture": "#0", "tintindex": 0}, + "east": {"uv": [13, 5, 12, 6], "texture": "#0", "tintindex": 0}, + "south": {"uv": [10, 5, 13, 6], "texture": "#0", "tintindex": 0}, + "west": {"uv": [11, 5, 10, 6], "texture": "#0", "tintindex": 0}, + "up": {"uv": [10, 5, 13, 6], "texture": "#0", "tintindex": 0}, + "down": {"uv": [10, 5, 13, 6], "texture": "#0", "tintindex": 0} + } + }, + { + "from": [9, 11, 7.5], + "to": [13, 12, 8.5], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [13, 4, 9, 5], "texture": "#0", "tintindex": 0}, + "east": {"uv": [13, 4, 12, 5], "texture": "#0", "tintindex": 0}, + "south": {"uv": [9, 4, 13, 5], "texture": "#0", "tintindex": 0}, + "west": {"uv": [10, 4, 9, 5], "texture": "#0", "tintindex": 0}, + "up": {"uv": [9, 4, 13, 5], "texture": "#0", "tintindex": 0}, + "down": {"uv": [9, 4, 13, 5], "texture": "#0", "tintindex": 0} + } + }, + { + "from": [10, 12, 7.5], + "to": [14, 13, 8.5], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [14, 3, 10, 4], "texture": "#0", "tintindex": 0}, + "east": {"uv": [14, 3, 13, 4], "texture": "#0", "tintindex": 0}, + "south": {"uv": [10, 3, 14, 4], "texture": "#0", "tintindex": 0}, + "west": {"uv": [11, 3, 10, 4], "texture": "#0", "tintindex": 0}, + "up": {"uv": [10, 3, 14, 4], "texture": "#0", "tintindex": 0}, + "down": {"uv": [10, 3, 14, 4], "texture": "#0", "tintindex": 0} + } + } + ], + "gui_light": "front", + "display": { + "thirdperson_righthand": { + "rotation": [0, 90, 55], + "translation": [0, 4, 0.5], + "scale": [0.85, 0.85, 0.85] + }, + "thirdperson_lefthand": { + "rotation": [0, -90, -55], + "translation": [0, 4, 0.5], + "scale": [0.85, 0.85, 0.85] + }, + "firstperson_righthand": { + "rotation": [0, 90, 25], + "translation": [1.13, 3.2, 1.13], + "scale": [0.68, 0.68, 0.68] + }, + "firstperson_lefthand": { + "rotation": [0, -90, -25], + "translation": [1.13, 3.2, 1.13], + "scale": [0.68, 0.68, 0.68] + }, + "ground": { + "translation": [0, 2, 0], + "scale": [0.5, 0.5, 0.5] + }, + "head": { + "rotation": [0, 180, 0], + "translation": [0, 13, 7] + }, + "fixed": { + "rotation": [0, 180, 0] + } + } +} diff --git a/gm4_furniture/assets/gm4_furniture/models/item/furniture/set_tool/cloth_set.json b/gm4_furniture/assets/gm4_furniture/models/item/furniture/set_tool/cloth_set.json new file mode 100644 index 0000000000..77854c3b11 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/item/furniture/set_tool/cloth_set.json @@ -0,0 +1,125 @@ +{ + "textures": { + "0": "gm4_furniture:item/furniture/set_tool/cloth_set", + "particle": "gm4_furniture:item/furniture/set_tool/cloth_set" + }, + "elements": [ + { + "from": [7.99996, 2.67165, 5.6716], + "to": [8.99996, 3.37865, 6.3786], + "rotation": {"angle": -45, "axis": "x", "origin": [7.99996, 5.5, 8.5]}, + "faces": { + "north": {"uv": [1, 13, 2, 14], "texture": "#0"}, + "east": {"uv": [1, 13, 2, 14], "texture": "#0"}, + "west": {"uv": [1, 13, 2, 14], "texture": "#0"}, + "down": {"uv": [1, 13, 2, 14], "rotation": 270, "texture": "#0"} + } + }, + { + "from": [7.99996, 2, 8.00004], + "to": [8.99996, 12, 9.00004], + "rotation": {"angle": 0, "axis": "y", "origin": [7.99996, 5.5, 8.5]}, + "faces": { + "north": {"uv": [1, 3, 2, 13], "texture": "#0"}, + "east": {"uv": [1, 3, 2, 13], "texture": "#0"}, + "south": {"uv": [1, 3, 2, 13], "texture": "#0"}, + "west": {"uv": [1, 3, 2, 13], "texture": "#0"}, + "up": {"uv": [1, 3, 2, 4], "rotation": 90, "texture": "#0"}, + "down": {"uv": [1, 13, 2, 14], "rotation": 270, "texture": "#0"} + } + }, + { + "from": [7.99996, 12, 9.00004], + "to": [8.99996, 14, 10.00004], + "rotation": {"angle": 0, "axis": "y", "origin": [8.99996, 12, 10.00004]}, + "faces": { + "north": {"uv": [0, 1, 1, 3], "texture": "#0"}, + "east": {"uv": [0, 1, 1, 3], "texture": "#0"}, + "south": {"uv": [0, 1, 1, 3], "texture": "#0"}, + "west": {"uv": [0, 1, 1, 3], "texture": "#0"}, + "up": {"uv": [0, 1, 1, 2], "rotation": 90, "texture": "#0"}, + "down": {"uv": [0, 2, 1, 3], "rotation": 270, "texture": "#0"} + } + }, + { + "from": [8.02496, 14.2273, 7.3201], + "to": [8.97496, 15.6414, 8.0271], + "rotation": {"angle": 45, "axis": "x", "origin": [9.02496, 14.5, 6.8857]}, + "faces": { + "north": {"uv": [1, 1, 0, 0], "texture": "#0"}, + "east": {"uv": [1, 1, 0, 0], "texture": "#0"}, + "west": {"uv": [1, 1, 0, 0], "texture": "#0"} + } + }, + { + "from": [8.02496, 10.3586, 7.3201], + "to": [8.97496, 11.7727, 8.0271], + "rotation": {"angle": -45, "axis": "x", "origin": [8.99996, 11.5, 6.8857]}, + "faces": { + "north": {"uv": [1, 3, 0, 4], "texture": "#0"}, + "east": {"uv": [1, 3, 0, 4], "texture": "#0"}, + "west": {"uv": [1, 3, 0, 4], "texture": "#0"} + } + }, + { + "from": [7.99996, 12, 7.00004], + "to": [8.99996, 14, 8.00004], + "rotation": {"angle": 0, "axis": "y", "origin": [8.99996, 12, 7.00004]}, + "faces": { + "north": {"uv": [1, 1, 0, 3], "texture": "#0"}, + "east": {"uv": [1, 1, 0, 3], "texture": "#0"}, + "south": {"uv": [1, 1, 0, 3], "texture": "#0"}, + "west": {"uv": [1, 1, 0, 3], "texture": "#0"}, + "up": {"uv": [1, 1, 0, 2], "rotation": 90, "texture": "#0"}, + "down": {"uv": [1, 2, 0, 3], "rotation": 270, "texture": "#0"} + } + }, + { + "from": [8.02496, 10.3586, 8.97298], + "to": [8.97496, 11.7727, 9.67998], + "rotation": {"angle": 45, "axis": "x", "origin": [8.99996, 11.5, 10.11438]}, + "faces": { + "east": {"uv": [0, 3, 1, 4], "texture": "#0"}, + "south": {"uv": [0, 3, 1, 4], "texture": "#0"}, + "west": {"uv": [0, 3, 1, 4], "texture": "#0"} + } + }, + { + "from": [8.02496, 14.2273, 8.97298], + "to": [8.97496, 15.6414, 9.67998], + "rotation": {"angle": -45, "axis": "x", "origin": [9.02496, 14.5, 10.11438]}, + "faces": { + "east": {"uv": [0, 1, 1, 0], "texture": "#0"}, + "south": {"uv": [0, 1, 1, 0], "texture": "#0"}, + "west": {"uv": [0, 1, 1, 0], "texture": "#0"} + } + }, + { + "from": [7.99996, 14, 8.00004], + "to": [8.99996, 15, 9.00004], + "rotation": {"angle": 0, "axis": "y", "origin": [7.99996, 5.5, 8.5]}, + "faces": { + "north": {"uv": [1, 0, 2, 1], "texture": "#0"}, + "east": {"uv": [1, 0, 2, 1], "texture": "#0"}, + "south": {"uv": [1, 0, 2, 1], "texture": "#0"}, + "west": {"uv": [1, 0, 2, 1], "texture": "#0"}, + "up": {"uv": [1, 0, 2, 1], "rotation": 90, "texture": "#0"}, + "down": {"uv": [1, 0, 2, 1], "rotation": 270, "texture": "#0"} + } + }, + { + "from": [4.49996, 9.5, 8.50004], + "to": [13.49996, 16.5, 8.50004], + "rotation": {"angle": 0, "axis": "y", "origin": [16.49996, 0, 0.50004]}, + "faces": { + "north": {"uv": [12, 0, 3, 7], "texture": "#0"}, + "south": {"uv": [3, 0, 12, 7], "texture": "#0"} + } + } + ], + "display": { + "head": { + "translation": [0, 14.25, 0] + } + } +} diff --git a/gm4_furniture/assets/gm4_furniture/models/item/furniture/set_tool/metal_set.json b/gm4_furniture/assets/gm4_furniture/models/item/furniture/set_tool/metal_set.json new file mode 100644 index 0000000000..95b2e5b41a --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/item/furniture/set_tool/metal_set.json @@ -0,0 +1,88 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "gm4_furniture:item/furniture/set_tool/metal_set", + "particle": "gm4_furniture:item/furniture/set_tool/metal_set" + }, + "elements": [ + { + "from": [7, 4, 7], + "to": [9, 13, 9], + "faces": { + "north": {"uv": [0, 0, 1, 4.5], "texture": "#0"}, + "east": {"uv": [1.5, 0, 2.5, 4.5], "texture": "#0"}, + "south": {"uv": [0, 0, 1, 4.5], "texture": "#0"}, + "west": {"uv": [1.5, 0, 2.5, 4.5], "texture": "#0"}, + "down": {"uv": [0, 5, 1, 6], "texture": "#0"} + } + }, + { + "from": [6, 13, 7], + "to": [10, 15, 9], + "faces": { + "north": {"uv": [9.5, 0, 11.5, 1], "texture": "#0"}, + "east": {"uv": [12, 0, 13, 1], "texture": "#0"}, + "south": {"uv": [11.5, 0, 9.5, 1], "texture": "#0"}, + "up": {"uv": [11.5, 1.5, 9.5, 2.5], "texture": "#0"}, + "down": {"uv": [11.5, 3, 9.5, 4], "texture": "#0"} + } + }, + { + "from": [10, 12, 7], + "to": [13, 15, 7], + "faces": { + "north": {"uv": [13.5, 0, 15, 1.5], "texture": "#0"}, + "south": {"uv": [15, 0, 13.5, 1.5], "texture": "#0"} + } + }, + { + "from": [10, 12, 9], + "to": [13, 15, 9], + "faces": { + "north": {"uv": [13.5, 0, 15, 1.5], "texture": "#0"}, + "south": {"uv": [15, 0, 13.5, 1.5], "texture": "#0"} + } + }, + { + "from": [4, 12, 6], + "to": [6, 16, 10], + "faces": { + "north": {"uv": [6.5, 0, 5.5, 2], "texture": "#0"}, + "east": {"uv": [7, 0, 9, 2], "texture": "#0"}, + "south": {"uv": [5.5, 0, 6.5, 2], "texture": "#0"}, + "west": {"uv": [3, 0, 5, 2], "texture": "#0"}, + "up": {"uv": [3, 5, 5, 4], "rotation": 90, "texture": "#0"}, + "down": {"uv": [3, 3.5, 5, 2.5], "rotation": 90, "texture": "#0"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [0, -90, 0], + "translation": [0, -3, 2] + }, + "thirdperson_lefthand": { + "rotation": [0, 90, 0], + "translation": [0, -3, 2] + }, + "firstperson_righthand": { + "rotation": [0, -90, 25], + "translation": [1.13, -0.8, 1.13] + }, + "firstperson_lefthand": { + "rotation": [0, 90, -25], + "translation": [1.13, -0.8, 1.13] + }, + "ground": { + "translation": [0, 2, 0], + "scale": [0.5, 0.5, 0.5] + }, + "gui": { + "rotation": [30, -45, 0], + "translation": [0, -3.75, 0] + }, + "head": { + "translation": [0, 14.25, 0] + } + } +} diff --git a/gm4_furniture/assets/gm4_furniture/models/item/furniture/set_tool/stone_set.json b/gm4_furniture/assets/gm4_furniture/models/item/furniture/set_tool/stone_set.json new file mode 100644 index 0000000000..c7d488d255 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/item/furniture/set_tool/stone_set.json @@ -0,0 +1,69 @@ +{ + "textures": { + "0": "gm4_furniture:item/furniture/set_tool/stone_set", + "particle": "gm4_furniture:item/furniture/set_tool/stone_set" + }, + "elements": [ + { + "from": [7, 7, 7], + "to": [9, 12, 9], + "faces": { + "north": {"uv": [0, 0, 2, 5], "texture": "#0"}, + "east": {"uv": [3, 0, 5, 5], "texture": "#0"}, + "south": {"uv": [0, 0, 2, 5], "texture": "#0"}, + "west": {"uv": [3, 0, 5, 5], "texture": "#0"}, + "up": {"uv": [3, 6, 5, 8], "texture": "#0"}, + "down": {"uv": [0, 6, 2, 8], "texture": "#0"} + } + }, + { + "from": [7.5, 12, 7.5], + "to": [8.5, 13, 8.5], + "faces": { + "north": {"uv": [7, 3, 8, 4], "texture": "#0"}, + "east": {"uv": [7, 3, 8, 4], "texture": "#0"}, + "south": {"uv": [7, 3, 8, 4], "texture": "#0"}, + "west": {"uv": [7, 3, 8, 4], "texture": "#0"} + } + }, + { + "from": [6.5, 13, 7.5], + "to": [9.5, 16, 8.5], + "faces": { + "north": {"uv": [6, 0, 9, 3], "texture": "#0"}, + "east": {"uv": [8, 0, 9, 3], "texture": "#0"}, + "south": {"uv": [6, 0, 9, 3], "texture": "#0"}, + "west": {"uv": [6, 0, 7, 3], "texture": "#0"}, + "up": {"uv": [6, 0, 9, 1], "texture": "#0"}, + "down": {"uv": [6, 2, 9, 3], "texture": "#0"} + } + } + ], + "display": { + "thirdperson_righthand": { + "translation": [0, 0, 2] + }, + "thirdperson_lefthand": { + "translation": [0, 0, 2] + }, + "firstperson_righthand": { + "rotation": [-25, 0, 0], + "translation": [1.13, -0.8, 1.13] + }, + "firstperson_lefthand": { + "rotation": [-25, 0, 0], + "translation": [1.13, -0.8, 1.13] + }, + "ground": { + "translation": [0, 2, 0], + "scale": [0.5, 0.5, 0.5] + }, + "gui": { + "rotation": [30, -45, 0], + "translation": [0, -3.75, 0] + }, + "head": { + "translation": [0, 14.25, 0] + } + } +} diff --git a/gm4_furniture/assets/gm4_furniture/models/item/furniture/set_tool/wood_set.json b/gm4_furniture/assets/gm4_furniture/models/item/furniture/set_tool/wood_set.json new file mode 100644 index 0000000000..d0c6faf9e5 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/item/furniture/set_tool/wood_set.json @@ -0,0 +1,108 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "gm4_furniture:item/furniture/set_tool/wood_set", + "particle": "gm4_furniture:item/furniture/set_tool/wood_set" + }, + "elements": [ + { + "from": [6.5, 12, 7], + "to": [10.5, 13, 9], + "rotation": {"angle": 0, "axis": "z", "origin": [8, 5.75, 8]}, + "faces": { + "north": {"uv": [5, 1, 1, 0], "texture": "#0"}, + "east": {"uv": [5, 1, 4, 0], "texture": "#0"}, + "south": {"uv": [1, 1, 5, 0], "texture": "#0"}, + "west": {"uv": [2, 1, 1, 0], "texture": "#0"}, + "up": {"uv": [1, 1, 5, 0], "texture": "#0"}, + "down": {"uv": [1, 1, 5, 0], "texture": "#0"} + } + }, + { + "from": [5.5, 15, 7], + "to": [10.5, 16, 9], + "rotation": {"angle": 0, "axis": "z", "origin": [8, 5.75, 8]}, + "faces": { + "north": {"uv": [5, 4, 0, 3], "texture": "#0"}, + "east": {"uv": [5, 4, 4, 3], "texture": "#0"}, + "south": {"uv": [5, 4, 0, 3], "texture": "#0"}, + "west": {"uv": [1, 4, 0, 3], "texture": "#0"}, + "up": {"uv": [5, 4, 0, 3], "texture": "#0"}, + "down": {"uv": [5, 4, 0, 3], "texture": "#0"} + } + }, + { + "from": [5.5, 1, 8], + "to": [10.5, 13, 8], + "rotation": {"angle": 0, "axis": "z", "origin": [8, 5.75, 8]}, + "faces": { + "north": {"uv": [11, 12, 6, 0], "texture": "#0"}, + "south": {"uv": [6, 12, 11, 0], "texture": "#0"} + } + }, + { + "from": [9.5, 13, 7], + "to": [10.5, 15, 9], + "rotation": {"angle": 0, "axis": "z", "origin": [8, 5.75, 8]}, + "faces": { + "north": {"uv": [5, 3, 4, 1], "texture": "#0"}, + "east": {"uv": [5, 3, 4, 1], "texture": "#0"}, + "south": {"uv": [5, 3, 4, 1], "texture": "#0"}, + "west": {"uv": [5, 3, 4, 1], "texture": "#0"} + } + }, + { + "from": [5.5, 14, 7], + "to": [6.5, 15, 9], + "rotation": {"angle": 0, "axis": "z", "origin": [8, 5.75, 8]}, + "faces": { + "north": {"uv": [1, 2, 0, 3], "texture": "#0"}, + "east": {"uv": [1, 2, 0, 3], "texture": "#0"}, + "south": {"uv": [1, 2, 0, 3], "texture": "#0"}, + "west": {"uv": [1, 2, 0, 3], "texture": "#0"} + } + }, + { + "from": [5.5, 13, 7], + "to": [7.5, 14, 9], + "rotation": {"angle": 0, "axis": "z", "origin": [8, 5.75, 8]}, + "faces": { + "north": {"uv": [2, 2, 0, 1], "texture": "#0"}, + "east": {"uv": [2, 2, 1, 1], "texture": "#0"}, + "south": {"uv": [0, 2, 2, 1], "texture": "#0"}, + "west": {"uv": [1, 2, 0, 1], "texture": "#0"}, + "up": {"uv": [2, 2, 0, 1], "texture": "#0"}, + "down": {"uv": [2, 2, 0, 1], "texture": "#0"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [-90, 90, 180], + "translation": [0, -2, -6.5] + }, + "thirdperson_lefthand": { + "rotation": [-90, -90, 180], + "translation": [0, -2, -6.5] + }, + "firstperson_righthand": { + "rotation": [0, 90, 135], + "translation": [1.13, 3.2, 1.13] + }, + "firstperson_lefthand": { + "rotation": [0, -90, -119], + "translation": [1.13, 3.2, 1.13] + }, + "ground": { + "translation": [0, 2, 0], + "scale": [0.5, 0.5, 0.5] + }, + "gui": { + "rotation": [30, 135, 0], + "translation": [0, -1.25, 0] + }, + "head": { + "translation": [0, 14.25, 0] + } + } +} diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/cloth_set/1x1_painting_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/cloth_set/1x1_painting_1.png new file mode 100644 index 0000000000..bede5438f5 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/cloth_set/1x1_painting_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/cloth_set/1x2_painting_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/cloth_set/1x2_painting_1.png new file mode 100644 index 0000000000..069d5e6cfa Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/cloth_set/1x2_painting_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/cloth_set/horizontal_flag_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/cloth_set/horizontal_flag_1.png new file mode 100644 index 0000000000..9d0d3ec0a2 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/cloth_set/horizontal_flag_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/cloth_set/horizontal_flag_1_pole.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/cloth_set/horizontal_flag_1_pole.png new file mode 100644 index 0000000000..b3a9ab35d7 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/cloth_set/horizontal_flag_1_pole.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/cloth_set/paper_lantern_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/cloth_set/paper_lantern_1.png new file mode 100644 index 0000000000..5a532a3c98 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/cloth_set/paper_lantern_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/furniture_station.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/furniture_station.png new file mode 100644 index 0000000000..f92c4d4d18 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/furniture_station.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/metal_set/gold/3_candelabra_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/metal_set/gold/3_candelabra_1.png new file mode 100644 index 0000000000..44298156d2 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/metal_set/gold/3_candelabra_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/metal_set/gold/skull_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/metal_set/gold/skull_1.png new file mode 100644 index 0000000000..3fb9acae99 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/metal_set/gold/skull_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/metal_set/iron/3_candelabra_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/metal_set/iron/3_candelabra_1.png new file mode 100644 index 0000000000..868af7afea Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/metal_set/iron/3_candelabra_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/metal_set/iron/lantern_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/metal_set/iron/lantern_1.png new file mode 100644 index 0000000000..c50821cadb Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/metal_set/iron/lantern_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/misc/candle_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/misc/candle_1.png new file mode 100644 index 0000000000..7d37adc5bb Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/misc/candle_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/misc/candle_fire_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/misc/candle_fire_1.png new file mode 100644 index 0000000000..04d7f72389 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/misc/candle_fire_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/misc/candle_fire_1.png.mcmeta b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/misc/candle_fire_1.png.mcmeta new file mode 100644 index 0000000000..3de4a0bdd8 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/misc/candle_fire_1.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 8 + } +} diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/stone_set/statues/allay.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/stone_set/statues/allay.png new file mode 100644 index 0000000000..630d1bc926 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/stone_set/statues/allay.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/stone_set/statues/axolotl.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/stone_set/statues/axolotl.png new file mode 100644 index 0000000000..45ca0b5ef3 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/stone_set/statues/axolotl.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/stone_set/statues/bee.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/stone_set/statues/bee.png new file mode 100644 index 0000000000..bc514da9bd Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/stone_set/statues/bee.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/stone_set/statues/frog.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/stone_set/statues/frog.png new file mode 100644 index 0000000000..b91446eabd Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/stone_set/statues/frog.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/stone_set/statues/pufferfish.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/stone_set/statues/pufferfish.png new file mode 100644 index 0000000000..cd939b0718 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/stone_set/statues/pufferfish.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/stone_set/statues/stone_statue_base_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/stone_set/statues/stone_statue_base_1.png new file mode 100644 index 0000000000..50ba92068f Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/stone_set/statues/stone_statue_base_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/fancy/1x1_table_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/fancy/1x1_table_1.png new file mode 100644 index 0000000000..8782a4d60c Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/fancy/1x1_table_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/fancy/2x2_table_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/fancy/2x2_table_1.png new file mode 100644 index 0000000000..7196ed4d62 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/fancy/2x2_table_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/fancy/bench_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/fancy/bench_1.png new file mode 100644 index 0000000000..f3ee1aa895 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/fancy/bench_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/fancy/chair_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/fancy/chair_1.png new file mode 100644 index 0000000000..a3780d6475 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/fancy/chair_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/fancy/light_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/fancy/light_1.png new file mode 100644 index 0000000000..121c6e3ce7 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/fancy/light_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/fancy/stool_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/fancy/stool_1.png new file mode 100644 index 0000000000..4aaa3188c3 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/fancy/stool_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/plain/1x1_table_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/plain/1x1_table_1.png new file mode 100644 index 0000000000..301b52a155 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/plain/1x1_table_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/plain/2x2_table_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/plain/2x2_table_1.png new file mode 100644 index 0000000000..c63197276e Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/plain/2x2_table_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/plain/bench_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/plain/bench_1.png new file mode 100644 index 0000000000..2de66faa95 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/plain/bench_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/plain/chair_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/plain/chair_1.png new file mode 100644 index 0000000000..4f0f823752 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/plain/chair_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/plain/light_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/plain/light_1.png new file mode 100644 index 0000000000..ff3aa733fe Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/plain/light_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/plain/stool_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/plain/stool_1.png new file mode 100644 index 0000000000..f0827711a5 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/plain/stool_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/font/furniture/negative_space.png b/gm4_furniture/assets/gm4_furniture/textures/font/furniture/negative_space.png new file mode 100644 index 0000000000..87e5282704 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/font/furniture/negative_space.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/font/furniture/old2_crafting_machine_gui_1_1.png b/gm4_furniture/assets/gm4_furniture/textures/font/furniture/old2_crafting_machine_gui_1_1.png new file mode 100644 index 0000000000..170b2bb905 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/font/furniture/old2_crafting_machine_gui_1_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/font/furniture/old3_crafting_machine_gui_1_1.png b/gm4_furniture/assets/gm4_furniture/textures/font/furniture/old3_crafting_machine_gui_1_1.png new file mode 100644 index 0000000000..78d61f4696 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/font/furniture/old3_crafting_machine_gui_1_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/font/furniture/old_crafting_machine_gui_1_1.png b/gm4_furniture/assets/gm4_furniture/textures/font/furniture/old_crafting_machine_gui_1_1.png new file mode 100644 index 0000000000..4d6bcf9938 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/font/furniture/old_crafting_machine_gui_1_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/font_magic/block_sheet.png b/gm4_furniture/assets/gm4_furniture/textures/font_magic/block_sheet.png new file mode 100644 index 0000000000..fd79c51524 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/font_magic/block_sheet.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/font_magic/numbers.png b/gm4_furniture/assets/gm4_furniture/textures/font_magic/numbers.png new file mode 100644 index 0000000000..612d882c2f Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/font_magic/numbers.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/font_magic/pixel.png b/gm4_furniture/assets/gm4_furniture/textures/font_magic/pixel.png new file mode 100644 index 0000000000..25451f46aa Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/font_magic/pixel.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/font_magic/spacing_square.png b/gm4_furniture/assets/gm4_furniture/textures/font_magic/spacing_square.png new file mode 100644 index 0000000000..8a216f2464 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/font_magic/spacing_square.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/gui/container/furniture_station_1.png b/gm4_furniture/assets/gm4_furniture/textures/gui/container/furniture_station_1.png new file mode 100644 index 0000000000..833297e0b5 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/gui/container/furniture_station_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/gui/container/furniture_station_2.png b/gm4_furniture/assets/gm4_furniture/textures/gui/container/furniture_station_2.png new file mode 100644 index 0000000000..50481b609e Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/gui/container/furniture_station_2.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/item/furniture/paintbrush.png b/gm4_furniture/assets/gm4_furniture/textures/item/furniture/paintbrush.png new file mode 100644 index 0000000000..b820247365 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/item/furniture/paintbrush.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/item/furniture/set_tool/cloth_set.png b/gm4_furniture/assets/gm4_furniture/textures/item/furniture/set_tool/cloth_set.png new file mode 100644 index 0000000000..a1bdad8d7d Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/item/furniture/set_tool/cloth_set.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/item/furniture/set_tool/metal_set.png b/gm4_furniture/assets/gm4_furniture/textures/item/furniture/set_tool/metal_set.png new file mode 100644 index 0000000000..e5bfbf6cb7 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/item/furniture/set_tool/metal_set.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/item/furniture/set_tool/stone_set.png b/gm4_furniture/assets/gm4_furniture/textures/item/furniture/set_tool/stone_set.png new file mode 100644 index 0000000000..fbf245ef91 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/item/furniture/set_tool/stone_set.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/item/furniture/set_tool/wood_set.png b/gm4_furniture/assets/gm4_furniture/textures/item/furniture/set_tool/wood_set.png new file mode 100644 index 0000000000..2501e3a867 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/item/furniture/set_tool/wood_set.png differ diff --git a/gm4_furniture/assets/minecraft/shaders/core/rendertype_entity_cutout.fsh b/gm4_furniture/assets/minecraft/shaders/core/rendertype_entity_cutout.fsh new file mode 100644 index 0000000000..38df056d8f --- /dev/null +++ b/gm4_furniture/assets/minecraft/shaders/core/rendertype_entity_cutout.fsh @@ -0,0 +1,30 @@ +#version 150 + +#moj_import +#moj_import + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; +uniform vec4 FogColor; + +in float vertexDistance; +in vec4 vertexColor; +in vec4 lightColor; +in vec4 faceLightColor; +in vec4 overlayColor; +in vec2 texCoord0; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0); + color *= vertexColor * ColorModulator; + color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a); + int alpha = int(round(textureLod(Sampler0, texCoord0, 0.0).a * 255.0)); + color = make_emissive(color, lightColor, faceLightColor, alpha); + if(color.a < 0.1) discard; + fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); +} diff --git a/gm4_furniture/assets/minecraft/shaders/core/rendertype_entity_cutout.vsh b/gm4_furniture/assets/minecraft/shaders/core/rendertype_entity_cutout.vsh new file mode 100644 index 0000000000..3b7b51503a --- /dev/null +++ b/gm4_furniture/assets/minecraft/shaders/core/rendertype_entity_cutout.vsh @@ -0,0 +1,39 @@ +#version 150 + +#moj_import +#moj_import + +in vec3 Position; +in vec4 Color; +in vec2 UV0; +in ivec2 UV1; +in ivec2 UV2; +in vec3 Normal; + +uniform sampler2D Sampler1; +uniform sampler2D Sampler2; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; +uniform int FogShape; + +uniform vec3 Light0_Direction; +uniform vec3 Light1_Direction; + +out float vertexDistance; +out vec4 vertexColor; +out vec4 lightColor; +out vec4 faceLightColor; +out vec4 overlayColor; +out vec2 texCoord0; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexDistance = fog_distance(Position, FogShape); + vertexColor = Color; + lightColor = minecraft_sample_lightmap(Sampler2, UV2); + faceLightColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, vec4(1.0)); + overlayColor = texelFetch(Sampler1, UV1, 0); + texCoord0 = UV0; +} diff --git a/gm4_furniture/assets/minecraft/shaders/core/rendertype_entity_cutout_no_cull.fsh b/gm4_furniture/assets/minecraft/shaders/core/rendertype_entity_cutout_no_cull.fsh new file mode 100644 index 0000000000..38df056d8f --- /dev/null +++ b/gm4_furniture/assets/minecraft/shaders/core/rendertype_entity_cutout_no_cull.fsh @@ -0,0 +1,30 @@ +#version 150 + +#moj_import +#moj_import + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; +uniform vec4 FogColor; + +in float vertexDistance; +in vec4 vertexColor; +in vec4 lightColor; +in vec4 faceLightColor; +in vec4 overlayColor; +in vec2 texCoord0; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0); + color *= vertexColor * ColorModulator; + color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a); + int alpha = int(round(textureLod(Sampler0, texCoord0, 0.0).a * 255.0)); + color = make_emissive(color, lightColor, faceLightColor, alpha); + if(color.a < 0.1) discard; + fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); +} diff --git a/gm4_furniture/assets/minecraft/shaders/core/rendertype_entity_cutout_no_cull.vsh b/gm4_furniture/assets/minecraft/shaders/core/rendertype_entity_cutout_no_cull.vsh new file mode 100644 index 0000000000..3b7b51503a --- /dev/null +++ b/gm4_furniture/assets/minecraft/shaders/core/rendertype_entity_cutout_no_cull.vsh @@ -0,0 +1,39 @@ +#version 150 + +#moj_import +#moj_import + +in vec3 Position; +in vec4 Color; +in vec2 UV0; +in ivec2 UV1; +in ivec2 UV2; +in vec3 Normal; + +uniform sampler2D Sampler1; +uniform sampler2D Sampler2; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; +uniform int FogShape; + +uniform vec3 Light0_Direction; +uniform vec3 Light1_Direction; + +out float vertexDistance; +out vec4 vertexColor; +out vec4 lightColor; +out vec4 faceLightColor; +out vec4 overlayColor; +out vec2 texCoord0; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexDistance = fog_distance(Position, FogShape); + vertexColor = Color; + lightColor = minecraft_sample_lightmap(Sampler2, UV2); + faceLightColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, vec4(1.0)); + overlayColor = texelFetch(Sampler1, UV1, 0); + texCoord0 = UV0; +} diff --git a/gm4_furniture/assets/minecraft/shaders/core/rendertype_entity_cutout_no_cull_z_offset.fsh b/gm4_furniture/assets/minecraft/shaders/core/rendertype_entity_cutout_no_cull_z_offset.fsh new file mode 100644 index 0000000000..38df056d8f --- /dev/null +++ b/gm4_furniture/assets/minecraft/shaders/core/rendertype_entity_cutout_no_cull_z_offset.fsh @@ -0,0 +1,30 @@ +#version 150 + +#moj_import +#moj_import + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; +uniform vec4 FogColor; + +in float vertexDistance; +in vec4 vertexColor; +in vec4 lightColor; +in vec4 faceLightColor; +in vec4 overlayColor; +in vec2 texCoord0; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0); + color *= vertexColor * ColorModulator; + color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a); + int alpha = int(round(textureLod(Sampler0, texCoord0, 0.0).a * 255.0)); + color = make_emissive(color, lightColor, faceLightColor, alpha); + if(color.a < 0.1) discard; + fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); +} diff --git a/gm4_furniture/assets/minecraft/shaders/core/rendertype_entity_cutout_no_cull_z_offset.vsh b/gm4_furniture/assets/minecraft/shaders/core/rendertype_entity_cutout_no_cull_z_offset.vsh new file mode 100644 index 0000000000..3b7b51503a --- /dev/null +++ b/gm4_furniture/assets/minecraft/shaders/core/rendertype_entity_cutout_no_cull_z_offset.vsh @@ -0,0 +1,39 @@ +#version 150 + +#moj_import +#moj_import + +in vec3 Position; +in vec4 Color; +in vec2 UV0; +in ivec2 UV1; +in ivec2 UV2; +in vec3 Normal; + +uniform sampler2D Sampler1; +uniform sampler2D Sampler2; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; +uniform int FogShape; + +uniform vec3 Light0_Direction; +uniform vec3 Light1_Direction; + +out float vertexDistance; +out vec4 vertexColor; +out vec4 lightColor; +out vec4 faceLightColor; +out vec4 overlayColor; +out vec2 texCoord0; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexDistance = fog_distance(Position, FogShape); + vertexColor = Color; + lightColor = minecraft_sample_lightmap(Sampler2, UV2); + faceLightColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, vec4(1.0)); + overlayColor = texelFetch(Sampler1, UV1, 0); + texCoord0 = UV0; +} diff --git a/gm4_furniture/assets/minecraft/shaders/core/rendertype_entity_no_outline.fsh b/gm4_furniture/assets/minecraft/shaders/core/rendertype_entity_no_outline.fsh new file mode 100644 index 0000000000..3830d7aaf9 --- /dev/null +++ b/gm4_furniture/assets/minecraft/shaders/core/rendertype_entity_no_outline.fsh @@ -0,0 +1,26 @@ +#version 150 + +#moj_import +#moj_import + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; +uniform vec4 FogColor; + +in float vertexDistance; +in vec4 vertexColor; +in vec4 lightColor; +in vec4 faceLightColor; +in vec2 texCoord0; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; + int alpha = int(round(textureLod(Sampler0, texCoord0, 0.0).a * 255.0)); + color = make_emissive(color, lightColor, faceLightColor, alpha); + fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); +} diff --git a/gm4_furniture/assets/minecraft/shaders/core/rendertype_entity_no_outline.vsh b/gm4_furniture/assets/minecraft/shaders/core/rendertype_entity_no_outline.vsh new file mode 100644 index 0000000000..53e2cff82b --- /dev/null +++ b/gm4_furniture/assets/minecraft/shaders/core/rendertype_entity_no_outline.vsh @@ -0,0 +1,35 @@ +#version 150 + +#moj_import +#moj_import + +in vec3 Position; +in vec4 Color; +in vec2 UV0; +in ivec2 UV2; +in vec3 Normal; + +uniform sampler2D Sampler2; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; +uniform int FogShape; + +uniform vec3 Light0_Direction; +uniform vec3 Light1_Direction; + +out float vertexDistance; +out vec4 vertexColor; +out vec4 lightColor; +out vec4 faceLightColor; +out vec2 texCoord0; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexDistance = fog_distance(Position, FogShape); + vertexColor = Color; + lightColor = minecraft_sample_lightmap(Sampler2, UV2); + faceLightColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, vec4(1.0)); + texCoord0 = UV0; +} diff --git a/gm4_furniture/assets/minecraft/shaders/core/rendertype_entity_solid.fsh b/gm4_furniture/assets/minecraft/shaders/core/rendertype_entity_solid.fsh new file mode 100644 index 0000000000..632a5b6a6b --- /dev/null +++ b/gm4_furniture/assets/minecraft/shaders/core/rendertype_entity_solid.fsh @@ -0,0 +1,29 @@ +#version 150 + +#moj_import +#moj_import + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; +uniform vec4 FogColor; + +in float vertexDistance; +in vec4 vertexColor; +in vec4 lightColor; +in vec4 faceLightColor; +in vec4 overlayColor; +in vec2 texCoord0; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; + color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a); + int alpha = int(round(textureLod(Sampler0, texCoord0, 0.0).a * 255.0)); + color = make_emissive(color, lightColor, faceLightColor, alpha); + fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); + if(color.a < 0.1) discard; +} diff --git a/gm4_furniture/assets/minecraft/shaders/core/rendertype_entity_solid.vsh b/gm4_furniture/assets/minecraft/shaders/core/rendertype_entity_solid.vsh new file mode 100644 index 0000000000..3b7b51503a --- /dev/null +++ b/gm4_furniture/assets/minecraft/shaders/core/rendertype_entity_solid.vsh @@ -0,0 +1,39 @@ +#version 150 + +#moj_import +#moj_import + +in vec3 Position; +in vec4 Color; +in vec2 UV0; +in ivec2 UV1; +in ivec2 UV2; +in vec3 Normal; + +uniform sampler2D Sampler1; +uniform sampler2D Sampler2; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; +uniform int FogShape; + +uniform vec3 Light0_Direction; +uniform vec3 Light1_Direction; + +out float vertexDistance; +out vec4 vertexColor; +out vec4 lightColor; +out vec4 faceLightColor; +out vec4 overlayColor; +out vec2 texCoord0; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexDistance = fog_distance(Position, FogShape); + vertexColor = Color; + lightColor = minecraft_sample_lightmap(Sampler2, UV2); + faceLightColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, vec4(1.0)); + overlayColor = texelFetch(Sampler1, UV1, 0); + texCoord0 = UV0; +} diff --git a/gm4_furniture/assets/minecraft/shaders/core/rendertype_entity_translucent.fsh b/gm4_furniture/assets/minecraft/shaders/core/rendertype_entity_translucent.fsh new file mode 100644 index 0000000000..38df056d8f --- /dev/null +++ b/gm4_furniture/assets/minecraft/shaders/core/rendertype_entity_translucent.fsh @@ -0,0 +1,30 @@ +#version 150 + +#moj_import +#moj_import + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; +uniform vec4 FogColor; + +in float vertexDistance; +in vec4 vertexColor; +in vec4 lightColor; +in vec4 faceLightColor; +in vec4 overlayColor; +in vec2 texCoord0; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0); + color *= vertexColor * ColorModulator; + color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a); + int alpha = int(round(textureLod(Sampler0, texCoord0, 0.0).a * 255.0)); + color = make_emissive(color, lightColor, faceLightColor, alpha); + if(color.a < 0.1) discard; + fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); +} diff --git a/gm4_furniture/assets/minecraft/shaders/core/rendertype_entity_translucent.vsh b/gm4_furniture/assets/minecraft/shaders/core/rendertype_entity_translucent.vsh new file mode 100644 index 0000000000..3b7b51503a --- /dev/null +++ b/gm4_furniture/assets/minecraft/shaders/core/rendertype_entity_translucent.vsh @@ -0,0 +1,39 @@ +#version 150 + +#moj_import +#moj_import + +in vec3 Position; +in vec4 Color; +in vec2 UV0; +in ivec2 UV1; +in ivec2 UV2; +in vec3 Normal; + +uniform sampler2D Sampler1; +uniform sampler2D Sampler2; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; +uniform int FogShape; + +uniform vec3 Light0_Direction; +uniform vec3 Light1_Direction; + +out float vertexDistance; +out vec4 vertexColor; +out vec4 lightColor; +out vec4 faceLightColor; +out vec4 overlayColor; +out vec2 texCoord0; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexDistance = fog_distance(Position, FogShape); + vertexColor = Color; + lightColor = minecraft_sample_lightmap(Sampler2, UV2); + faceLightColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, vec4(1.0)); + overlayColor = texelFetch(Sampler1, UV1, 0); + texCoord0 = UV0; +} diff --git a/gm4_furniture/assets/minecraft/shaders/core/rendertype_entity_translucent_cull.fsh b/gm4_furniture/assets/minecraft/shaders/core/rendertype_entity_translucent_cull.fsh new file mode 100644 index 0000000000..a62d0c6bce --- /dev/null +++ b/gm4_furniture/assets/minecraft/shaders/core/rendertype_entity_translucent_cull.fsh @@ -0,0 +1,28 @@ +#version 150 + +#moj_import +#moj_import + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; +uniform vec4 FogColor; + +in float vertexDistance; +in vec4 vertexColor; +in vec4 lightColor; +in vec4 faceLightColor; +in vec2 texCoord0; +in vec2 texCoord1; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; + int alpha = int(round(textureLod(Sampler0, texCoord0, 0.0).a * 255.0)); + color = make_emissive(color, lightColor, faceLightColor, alpha); + if(color.a < 0.1) discard; + fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); +} \ No newline at end of file diff --git a/gm4_furniture/assets/minecraft/shaders/core/rendertype_entity_translucent_cull.vsh b/gm4_furniture/assets/minecraft/shaders/core/rendertype_entity_translucent_cull.vsh new file mode 100644 index 0000000000..b8e09ee88a --- /dev/null +++ b/gm4_furniture/assets/minecraft/shaders/core/rendertype_entity_translucent_cull.vsh @@ -0,0 +1,40 @@ +#version 150 + +#moj_import +#moj_import + +in vec3 Position; +in vec4 Color; +in vec2 UV0; +in vec2 UV1; +in ivec2 UV2; +in vec3 Normal; + +uniform sampler2D Sampler2; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; +uniform int FogShape; + +uniform vec3 Light0_Direction; +uniform vec3 Light1_Direction; + +out float vertexDistance; +out vec4 vertexColor; +out vec4 lightColor; +out vec4 faceLightColor; +out vec2 texCoord0; +out vec2 texCoord1; +out vec2 texCoord2; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexDistance = fog_distance(Position, FogShape); + vertexColor = Color; + lightColor = minecraft_sample_lightmap(Sampler2, UV2); + faceLightColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, vec4(1.0)); + texCoord0 = UV0; + texCoord1 = UV1; + texCoord2 = UV2; +} diff --git a/gm4_furniture/assets/minecraft/shaders/core/rendertype_item_entity_translucent_cull.fsh b/gm4_furniture/assets/minecraft/shaders/core/rendertype_item_entity_translucent_cull.fsh new file mode 100644 index 0000000000..796551d212 --- /dev/null +++ b/gm4_furniture/assets/minecraft/shaders/core/rendertype_item_entity_translucent_cull.fsh @@ -0,0 +1,28 @@ +#version 150 + +#moj_import +#moj_import + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; +uniform vec4 FogColor; + +in float vertexDistance; +in vec4 vertexColor; +in vec4 lightColor; +in vec4 faceLightColor; +in vec2 texCoord0; +in vec2 texCoord1; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; + int alpha = int(round(textureLod(Sampler0, texCoord0, 0.0).a * 255.0)); + color = make_emissive(color, lightColor, faceLightColor, alpha); + if(color.a < 0.1) discard; + fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); +} diff --git a/gm4_furniture/assets/minecraft/shaders/core/rendertype_item_entity_translucent_cull.vsh b/gm4_furniture/assets/minecraft/shaders/core/rendertype_item_entity_translucent_cull.vsh new file mode 100644 index 0000000000..b8e09ee88a --- /dev/null +++ b/gm4_furniture/assets/minecraft/shaders/core/rendertype_item_entity_translucent_cull.vsh @@ -0,0 +1,40 @@ +#version 150 + +#moj_import +#moj_import + +in vec3 Position; +in vec4 Color; +in vec2 UV0; +in vec2 UV1; +in ivec2 UV2; +in vec3 Normal; + +uniform sampler2D Sampler2; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; +uniform int FogShape; + +uniform vec3 Light0_Direction; +uniform vec3 Light1_Direction; + +out float vertexDistance; +out vec4 vertexColor; +out vec4 lightColor; +out vec4 faceLightColor; +out vec2 texCoord0; +out vec2 texCoord1; +out vec2 texCoord2; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexDistance = fog_distance(Position, FogShape); + vertexColor = Color; + lightColor = minecraft_sample_lightmap(Sampler2, UV2); + faceLightColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, vec4(1.0)); + texCoord0 = UV0; + texCoord1 = UV1; + texCoord2 = UV2; +} diff --git a/gm4_furniture/assets/minecraft/shaders/include/emissive_utils.glsl b/gm4_furniture/assets/minecraft/shaders/include/emissive_utils.glsl new file mode 100644 index 0000000000..6c94a80543 --- /dev/null +++ b/gm4_furniture/assets/minecraft/shaders/include/emissive_utils.glsl @@ -0,0 +1,145 @@ +#version 150 + +// Checking for the exact alpha value breaks things, so I use this function to cut down on space while also making it work better. + +bool compare_floats(float a, float b) { + + float targetLess = a - 0.01; + float targetMore = a + 0.01; + return (b > targetLess && b < targetMore); + +} + +// For cases in which you want something to have a lower light level, but still be bright when in light. + +vec4 apply_partial_emissivity(vec4 inputColor, vec4 originalLightColor, vec3 minimumLightColor) { + + vec4 newLightColor = originalLightColor; + newLightColor.r = max(originalLightColor.r, minimumLightColor.r); + newLightColor.g = max(originalLightColor.g, minimumLightColor.g); + newLightColor.b = max(originalLightColor.b, minimumLightColor.b); + return inputColor * newLightColor; + +} + + +// Gets the dimension that an object is in, -1 for The Nether, 0 for The Overworld, 1 for The End. + +float get_dimension(vec4 minLightColor) { + + if (minLightColor.r == minLightColor.g && minLightColor.g == minLightColor.b) return 0.0; // Shadows are grayscale in The Overworld + if (minLightColor.r > minLightColor.g) return -1.0; // Shadows are more red in The Nether + + return 1.0; // Shadows are slightly green in The End +} + +// Gets the face lighting of a block. Credits to Venaxsys for the original function. + +vec4 get_block_face_lighting(vec3 normal, float dimension) { + + vec4 faceLighting = vec4(1.0, 1.0, 1.0, 1.0); + vec3 absNormal = abs(normal); + float top = 229.0 / 255.0; + float bottom = 127.0 / 255.0; + float east = 153.0 / 255.0; + float north = 204.0 / 255.0; + + // Top (only required in the Nether) + if (normal.y > normal.z && normal.y > normal.x && compare_floats(dimension, -1.0)) faceLighting = vec4(top, top, top, 1.0); // It's not really checking the alpha but I'm too stubborn to change the function name + + // Bottom + if (normal.y < normal.z && normal.y < normal.x && !compare_floats(dimension, -1.0)) faceLighting = vec4(bottom, bottom, bottom, 1.0); + else if (normal.y < normal.z && normal.y < normal.x && compare_floats(dimension, -1.0)) faceLighting = vec4(top, top, top, 1.0); + + // East-West + if (absNormal.x > absNormal.z && absNormal.x > absNormal.y) faceLighting = vec4(east, east, east, 1.0); + + // North-South + if (absNormal.z > absNormal.x && absNormal.z > absNormal.y) faceLighting = vec4(north, north, north, 1.0); + + return faceLighting; +} + + +// Checks if the face should have lighting. + +bool face_lighting_check(int inputAlpha) { + + if (inputAlpha == 254) return false; // Checks for alpha 254, and returns that this face should not be lit. Used for emissiveness + if (inputAlpha == 253) return false; // Checks for alpha 253, and returns that this face should not be lit. Used for Shade false, non-emissive + + + // if (inputAlpha == 1) return false; // Checks for low alpha levels, and returns that this face should not be lit. Used for transparent Shade false, non-emissive + // if (inputAlpha == 2) return false; + // if (inputAlpha == 3) return false; + // if (inputAlpha == 4) return false; + // if (inputAlpha == 5) return false; + // if (inputAlpha == 6) return false; + // if (inputAlpha == 7) return false; + // if (inputAlpha == 8) return false; + + // if (inputAlpha == 9) return false; // Checks for low alpha levels, and returns that this face should not be lit. Used for transparent emissiveness + // if (inputAlpha == 10) return false; + // if (inputAlpha == 11) return false; + // if (inputAlpha == 12) return false; + // if (inputAlpha == 13) return false; + // if (inputAlpha == 14) return false; + // if (inputAlpha == 15) return false; + // if (inputAlpha == 16) return false; + + return true; // A face should be lit by default +} + + +// Makes sure transparent things don't become solid and vice versa. + +float remap_alpha(float inputAlpha) { + + if (inputAlpha == 254) return 255.0; // Checks for alpha 252 and converts all pixels of that to alpha 255. Used for emissiveness + if (inputAlpha == 253) return 255.0; // Checks for alpha 252 and converts all pixels of that to alpha 255. Used for Shade false, non-emissive + + + // if (inputAlpha == 1) return 16.0; // Checks for low alpha levels and converts all pixels of that to the respective transparency value. Used for transparent Shade false, non-emissive + // if (inputAlpha == 2) return 48.0; + // if (inputAlpha == 3) return 80.0; + // if (inputAlpha == 4) return 112.0; + // if (inputAlpha == 5) return 144.0; + // if (inputAlpha == 6) return 176.0; + // if (inputAlpha == 7) return 208.0; + // if (inputAlpha == 8) return 240.0; + + // if (inputAlpha == 9) return 16.0; // Checks for low alpha levels and converts all pixels of that to the respective transparency value. Used for transparent emissiveness + // if (inputAlpha == 10) return 48.0; + // if (inputAlpha == 11) return 80.0; + // if (inputAlpha == 12) return 112.0; + // if (inputAlpha == 13) return 144.0; + // if (inputAlpha == 14) return 176.0; + // if (inputAlpha == 15) return 208.0; + // if (inputAlpha == 16) return 240.0; + + return inputAlpha; // If a pixel doesn't need to have its alpha changed then it simply does not change. +} + + +// The meat and bones of the pack, does all the work for making things emissive. + +vec4 make_emissive(vec4 inputColor, vec4 lightColor, vec4 faceLightColor, int inputAlpha) { + + if(face_lighting_check(inputAlpha)) inputColor *= faceLightColor; // Applies the face lighting if the face should be lit + inputColor.a = remap_alpha(inputAlpha) / 255.0; // Remap the alpha value + + if (inputAlpha == 254) return inputColor; // Checks for alpha 254 and just returns the input color if it is. Used for emissiveness + + // if (inputAlpha == 9) return inputColor; // Checks for low alpha and just returns the input color if it is. Used for transparent emissiveness + // if (inputAlpha == 10) return inputColor; + // if (inputAlpha == 11) return inputColor; + // if (inputAlpha == 12) return inputColor; + // if (inputAlpha == 13) return inputColor; + // if (inputAlpha == 14) return inputColor; + // if (inputAlpha == 15) return inputColor; + // if (inputAlpha == 16) return inputColor; + + // if (inputAlpha == 251) return apply_partial_emissivity(inputColor, lightColor, vec3(0.411, 0.345, 0.388)); // Possibility for partial emissiveness + + return inputColor * lightColor; // If none of the pixels are supposed to be emissive, then it adds the light. +} \ No newline at end of file diff --git a/gm4_furniture/assets/model_data.yaml b/gm4_furniture/assets/model_data.yaml new file mode 100644 index 0000000000..f0598beafe --- /dev/null +++ b/gm4_furniture/assets/model_data.yaml @@ -0,0 +1,5 @@ +model_data: + - item: leather_horse_armor + reference: item/furniture/paintbrush + - item: [player_head, leather_horse_armor] + reference: block/furniture/furniture_station diff --git a/gm4_furniture/beet.yaml b/gm4_furniture/beet.yaml new file mode 100644 index 0000000000..86b78ef26d --- /dev/null +++ b/gm4_furniture/beet.yaml @@ -0,0 +1,41 @@ +id: gm4_furniture +name: Furniture +version: 1.1.X + +data_pack: + load: . + +resource_pack: + load: . + +pipeline: + - gm4_furniture.generate + - gm4.plugins.extend.module + - gm4.plugins.include.lib_custom_crafters + - gm4.plugins.include.lib_forceload + +meta: + gm4: + versioning: + required: + lib_forceload: 1.1.0 + lib_custom_crafters: 3.0.0 + schedule_loops: + - main + - slow_clock + gui_fonts: + - translation: gui.gm4.furniture_station + container: furniture_station + texture: gui/container/furniture_station + website: + description: Furniture! + recommended: [] + notes: + - Resourcepack is required for this module to work. + video: null + wiki: https://wiki.gm4.co/wiki/Furniture + credits: + Creator: + - Thanathor + Textures by: + - Kyrius diff --git a/gm4_furniture/data/gm4_custom_crafters/tags/functions/check_recipes.json b/gm4_furniture/data/gm4_custom_crafters/tags/functions/check_recipes.json new file mode 100644 index 0000000000..42a5c540cd --- /dev/null +++ b/gm4_furniture/data/gm4_custom_crafters/tags/functions/check_recipes.json @@ -0,0 +1,5 @@ +{ + "values": [ + "gm4_furniture:check_recipes" + ] +} diff --git a/gm4_furniture/data/gm4_furniture/advancement/crafted_furniture.json b/gm4_furniture/data/gm4_furniture/advancement/crafted_furniture.json new file mode 100644 index 0000000000..3845bae151 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/advancement/crafted_furniture.json @@ -0,0 +1,21 @@ +{ + "criteria": { + "requirement": { + "trigger": "minecraft:villager_trade", + "conditions": { + "villager": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "nbt": "{Tags:[\"gm4_furniture.furniture_station\"]}" + } + } + ] + } + } + }, + "rewards": { + "function": "gm4_furniture:interact/furniture_station/craft_furniture" + } +} diff --git a/gm4_furniture/data/gm4_furniture/advancement/hit_furniture.json b/gm4_furniture/data/gm4_furniture/advancement/hit_furniture.json new file mode 100644 index 0000000000..65c2936fce --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/advancement/hit_furniture.json @@ -0,0 +1,44 @@ +{ + "criteria": { + "hit_furniture": { + "trigger": "minecraft:player_hurt_entity", + "conditions": { + "player": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type_specific": { + "type": "player", + "gamemode": [ + "adventure" + ] + } + } + } + } + ], + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:interaction", + "nbt": "{Tags:[\"gm4_furniture\"]}" + } + } + ] + } + } + }, + "requirements": [ + [ + "hit_furniture" + ] + ], + "rewards": { + "function": "gm4_furniture:break/detect_hit" + } +} diff --git a/gm4_furniture/data/gm4_furniture/advancement/interact_with_furniture.json b/gm4_furniture/data/gm4_furniture/advancement/interact_with_furniture.json new file mode 100644 index 0000000000..6e4cb5a113 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/advancement/interact_with_furniture.json @@ -0,0 +1,28 @@ +{ + "criteria": { + "interact_with_furniture": { + "trigger": "minecraft:player_interacted_with_entity", + "conditions": { + "player": [], + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:interaction", + "nbt": "{Tags:[\"gm4_furniture\"]}" + } + } + ] + } + } + }, + "requirements": [ + [ + "interact_with_furniture" + ] + ], + "rewards": { + "function": "gm4_furniture:interact/detect" + } +} diff --git a/gm4_furniture/data/gm4_furniture/advancement/lightning.json b/gm4_furniture/data/gm4_furniture/advancement/lightning.json new file mode 100644 index 0000000000..9261906448 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/advancement/lightning.json @@ -0,0 +1,10 @@ +{ + "criteria": { + "requirement": { + "trigger": "minecraft:lightning_strike" + } + }, + "rewards": { + "function": "gm4_furniture:technical/furniture_station/lightning/detect" + } +} diff --git a/gm4_furniture/data/gm4_furniture/advancement/place_furniture.json b/gm4_furniture/data/gm4_furniture/advancement/place_furniture.json new file mode 100644 index 0000000000..7ea60b8add --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/advancement/place_furniture.json @@ -0,0 +1,53 @@ +{ + "criteria": { + "placed_furniture": { + "trigger": "minecraft:placed_block", + "conditions": { + "player": [ + { + "condition": "minecraft:value_check", + "value": { + "type": "minecraft:score", + "target": { + "type": "minecraft:fixed", + "name": "gm4_furniture" + }, + "score": "load.status" + }, + "range": 1 + }, + { + "condition": "minecraft:value_check", + "value": { + "type": "minecraft:score", + "target": { + "type": "minecraft:fixed", + "name": "gm4_furniture_minor" + }, + "score": "load.status" + }, + "range": 1 + } + ], + "location": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": [ + "minecraft:player_head" + ] + } + } + ] + } + } + }, + "requirements": [ + [ + "placed_furniture" + ] + ], + "rewards": { + "function": "gm4_furniture:place/place_furniture" + } +} diff --git a/gm4_furniture/data/gm4_furniture/advancement/relog.json b/gm4_furniture/data/gm4_furniture/advancement/relog.json new file mode 100644 index 0000000000..019862a51c --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/advancement/relog.json @@ -0,0 +1,25 @@ +{ + "criteria": { + "requirement": { + "trigger": "minecraft:location", + "conditions": { + "player": [ + { + "condition": "minecraft:value_check", + "value": { + "type": "minecraft:score", + "target": "this", + "score": "gm4_furniture_relog" + }, + "range": { + "min": 1 + } + } + ] + } + } + }, + "rewards": { + "function": "gm4_furniture:technical/relog" + } +} diff --git a/gm4_furniture/data/gm4_furniture/advancement/use_paintbrush_on_horse.json b/gm4_furniture/data/gm4_furniture/advancement/use_paintbrush_on_horse.json new file mode 100644 index 0000000000..c0bf5b7cd7 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/advancement/use_paintbrush_on_horse.json @@ -0,0 +1,35 @@ +{ + "criteria": { + "used_paintbrush": { + "trigger": "minecraft:player_interacted_with_entity", + "conditions": { + "player": [], + "item": { + "items": [ + "minecraft:leather_horse_armor" + ], + "components": { + "minecraft:custom_data": "{gm4_furniture:paintbrush}" + } + }, + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:horse" + } + } + ] + } + } + }, + "requirements": [ + [ + "used_paintbrush" + ] + ], + "rewards": { + "function": "gm4_furniture:technical/paintbrush/used_on_horse" + } +} diff --git a/gm4_furniture/data/gm4_furniture/function/break/decimal_to_hex.mcfunction b/gm4_furniture/data/gm4_furniture/function/break/decimal_to_hex.mcfunction new file mode 100644 index 0000000000..8f776c64df --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/break/decimal_to_hex.mcfunction @@ -0,0 +1,70 @@ +# transform color value from decimal to hex +# @s = furniture main interaction entity +# at @s +# run from break/destroy + +data modify storage gm4_furniture:temp color_hex set value {} + +scoreboard players operation $red gm4_furniture_data = $furniture_color gm4_furniture_data +scoreboard players operation $red gm4_furniture_data /= #65536 gm4_furniture_data +scoreboard players operation $add_digit gm4_furniture_data = $red gm4_furniture_data +scoreboard players operation $add_digit gm4_furniture_data /= #16 gm4_furniture_data +execute if score $add_digit gm4_furniture_data matches 0..9 store result storage gm4_furniture:temp color_hex.red_1 int 1 run scoreboard players get $add_digit gm4_furniture_data +execute if score $add_digit gm4_furniture_data matches 10 run data modify storage gm4_furniture:temp color_hex.red_1 set value "A" +execute if score $add_digit gm4_furniture_data matches 11 run data modify storage gm4_furniture:temp color_hex.red_1 set value "B" +execute if score $add_digit gm4_furniture_data matches 12 run data modify storage gm4_furniture:temp color_hex.red_1 set value "C" +execute if score $add_digit gm4_furniture_data matches 13 run data modify storage gm4_furniture:temp color_hex.red_1 set value "D" +execute if score $add_digit gm4_furniture_data matches 14 run data modify storage gm4_furniture:temp color_hex.red_1 set value "E" +execute if score $add_digit gm4_furniture_data matches 15 run data modify storage gm4_furniture:temp color_hex.red_1 set value "F" +scoreboard players operation $add_digit gm4_furniture_data = $red gm4_furniture_data +scoreboard players operation $add_digit gm4_furniture_data %= #16 gm4_furniture_data +execute if score $add_digit gm4_furniture_data matches 0..9 store result storage gm4_furniture:temp color_hex.red_2 int 1 run scoreboard players get $add_digit gm4_furniture_data +execute if score $add_digit gm4_furniture_data matches 10 run data modify storage gm4_furniture:temp color_hex.red_2 set value "A" +execute if score $add_digit gm4_furniture_data matches 11 run data modify storage gm4_furniture:temp color_hex.red_2 set value "B" +execute if score $add_digit gm4_furniture_data matches 12 run data modify storage gm4_furniture:temp color_hex.red_2 set value "C" +execute if score $add_digit gm4_furniture_data matches 13 run data modify storage gm4_furniture:temp color_hex.red_2 set value "D" +execute if score $add_digit gm4_furniture_data matches 14 run data modify storage gm4_furniture:temp color_hex.red_2 set value "E" +execute if score $add_digit gm4_furniture_data matches 15 run data modify storage gm4_furniture:temp color_hex.red_2 set value "F" + +scoreboard players operation $green gm4_furniture_data = $furniture_color gm4_furniture_data +scoreboard players operation $green gm4_furniture_data /= #256 gm4_furniture_data +scoreboard players operation $green gm4_furniture_data %= #256 gm4_furniture_data +scoreboard players operation $add_digit gm4_furniture_data = $green gm4_furniture_data +scoreboard players operation $add_digit gm4_furniture_data /= #16 gm4_furniture_data +execute if score $add_digit gm4_furniture_data matches 0..9 store result storage gm4_furniture:temp color_hex.green_1 int 1 run scoreboard players get $add_digit gm4_furniture_data +execute if score $add_digit gm4_furniture_data matches 10 run data modify storage gm4_furniture:temp color_hex.green_1 set value "A" +execute if score $add_digit gm4_furniture_data matches 11 run data modify storage gm4_furniture:temp color_hex.green_1 set value "B" +execute if score $add_digit gm4_furniture_data matches 12 run data modify storage gm4_furniture:temp color_hex.green_1 set value "C" +execute if score $add_digit gm4_furniture_data matches 13 run data modify storage gm4_furniture:temp color_hex.green_1 set value "D" +execute if score $add_digit gm4_furniture_data matches 14 run data modify storage gm4_furniture:temp color_hex.green_1 set value "E" +execute if score $add_digit gm4_furniture_data matches 15 run data modify storage gm4_furniture:temp color_hex.green_1 set value "F" +scoreboard players operation $add_digit gm4_furniture_data = $green gm4_furniture_data +scoreboard players operation $add_digit gm4_furniture_data %= #16 gm4_furniture_data +execute if score $add_digit gm4_furniture_data matches 0..9 store result storage gm4_furniture:temp color_hex.green_2 int 1 run scoreboard players get $add_digit gm4_furniture_data +execute if score $add_digit gm4_furniture_data matches 10 run data modify storage gm4_furniture:temp color_hex.green_2 set value "A" +execute if score $add_digit gm4_furniture_data matches 11 run data modify storage gm4_furniture:temp color_hex.green_2 set value "B" +execute if score $add_digit gm4_furniture_data matches 12 run data modify storage gm4_furniture:temp color_hex.green_2 set value "C" +execute if score $add_digit gm4_furniture_data matches 13 run data modify storage gm4_furniture:temp color_hex.green_2 set value "D" +execute if score $add_digit gm4_furniture_data matches 14 run data modify storage gm4_furniture:temp color_hex.green_2 set value "E" +execute if score $add_digit gm4_furniture_data matches 15 run data modify storage gm4_furniture:temp color_hex.green_2 set value "F" + +scoreboard players operation $blue gm4_furniture_data = $furniture_color gm4_furniture_data +scoreboard players operation $blue gm4_furniture_data %= #256 gm4_furniture_data +scoreboard players operation $add_digit gm4_furniture_data = $blue gm4_furniture_data +scoreboard players operation $add_digit gm4_furniture_data /= #16 gm4_furniture_data +execute if score $add_digit gm4_furniture_data matches 0..9 store result storage gm4_furniture:temp color_hex.blue_1 int 1 run scoreboard players get $add_digit gm4_furniture_data +execute if score $add_digit gm4_furniture_data matches 10 run data modify storage gm4_furniture:temp color_hex.blue_1 set value "A" +execute if score $add_digit gm4_furniture_data matches 11 run data modify storage gm4_furniture:temp color_hex.blue_1 set value "B" +execute if score $add_digit gm4_furniture_data matches 12 run data modify storage gm4_furniture:temp color_hex.blue_1 set value "C" +execute if score $add_digit gm4_furniture_data matches 13 run data modify storage gm4_furniture:temp color_hex.blue_1 set value "D" +execute if score $add_digit gm4_furniture_data matches 14 run data modify storage gm4_furniture:temp color_hex.blue_1 set value "E" +execute if score $add_digit gm4_furniture_data matches 15 run data modify storage gm4_furniture:temp color_hex.blue_1 set value "F" +scoreboard players operation $add_digit gm4_furniture_data = $blue gm4_furniture_data +scoreboard players operation $add_digit gm4_furniture_data %= #16 gm4_furniture_data +execute if score $add_digit gm4_furniture_data matches 0..9 store result storage gm4_furniture:temp color_hex.blue_2 int 1 run scoreboard players get $add_digit gm4_furniture_data +execute if score $add_digit gm4_furniture_data matches 10 run data modify storage gm4_furniture:temp color_hex.blue_2 set value "A" +execute if score $add_digit gm4_furniture_data matches 11 run data modify storage gm4_furniture:temp color_hex.blue_2 set value "B" +execute if score $add_digit gm4_furniture_data matches 12 run data modify storage gm4_furniture:temp color_hex.blue_2 set value "C" +execute if score $add_digit gm4_furniture_data matches 13 run data modify storage gm4_furniture:temp color_hex.blue_2 set value "D" +execute if score $add_digit gm4_furniture_data matches 14 run data modify storage gm4_furniture:temp color_hex.blue_2 set value "E" +execute if score $add_digit gm4_furniture_data matches 15 run data modify storage gm4_furniture:temp color_hex.blue_2 set value "F" diff --git a/gm4_furniture/data/gm4_furniture/function/break/destroy.mcfunction b/gm4_furniture/data/gm4_furniture/function/break/destroy.mcfunction new file mode 100644 index 0000000000..4b98b7754c --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/break/destroy.mcfunction @@ -0,0 +1,25 @@ +# destroy this furniture +# @s = furniture main interaction entity +# at @s +# run from break/process_hit +# run from break/lost_connection + +# check if furniture had color data +execute store result score $furniture_color gm4_furniture_data positioned ~-0.4999 ~0.0001 ~-0.4999 run data get entity @e[type=item_display,tag=gm4_furniture,dx=0,dy=0,dz=0,limit=1] item.components."minecraft:dyed_color".rgb +execute if score $furniture_color gm4_furniture_data matches 16383998 run scoreboard players reset $furniture_color gm4_furniture_data +execute if score $furniture_color gm4_furniture_data matches 1.. run function gm4_furniture:break/decimal_to_hex + +# unless breaking player was in creative drop the item +execute unless score $creative gm4_furniture_data matches 1 positioned ~-0.4999 ~0.0001 ~-0.4999 as @e[type=item_display,tag=gm4_furniture.display,dx=0,dy=0,dz=0,limit=1] run function gm4_furniture:break/drop_item with entity @s item.components."minecraft:custom_data".gm4_furniture + +# remove any furniture blocks that match the id +execute as @e[type=interaction,tag=gm4_furniture,distance=..8] if score @s gm4_furniture_id = $check_id gm4_furniture_id at @s run function gm4_furniture:break/remove_block + +# if the broken furniture was a furniture station run some extra code +execute if entity @s[tag=gm4_furniture.furniture_station] run function gm4_furniture:break/remove_furniture_station + +# destroy sound +playsound minecraft:entity.armor_stand.break block @a[distance=..8] ~ ~ ~ 1 1 + +# cleanup +scoreboard players reset $furniture_color gm4_furniture_data diff --git a/gm4_furniture/data/gm4_furniture/function/break/detect_hit.mcfunction b/gm4_furniture/data/gm4_furniture/function/break/detect_hit.mcfunction new file mode 100644 index 0000000000..8e69fb24be --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/break/detect_hit.mcfunction @@ -0,0 +1,15 @@ +# detect hitting a furniture +# @s = player punching furniture +# at @s +advancement revoke @s only gm4_furniture:hit_furniture + +# mark if the player is in creative mode +execute store success score $creative gm4_furniture_data if entity @s[gamemode=creative] + +# mark if the player is holding a paintbrush in their mainhand +execute store success score $get_color gm4_furniture_data if entity @s[predicate=gm4_furniture:holding_paintbrush] + +# locate the hit furniture +tag @s add gm4_furniture_target +execute as @e[type=interaction,tag=gm4_furniture,distance=..8] if data entity @s attack at @s run function gm4_furniture:break/find_main +tag @s remove gm4_furniture_target diff --git a/gm4_furniture/data/gm4_furniture/function/break/drop_item.mcfunction b/gm4_furniture/data/gm4_furniture/function/break/drop_item.mcfunction new file mode 100644 index 0000000000..ef9720ac3e --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/break/drop_item.mcfunction @@ -0,0 +1,8 @@ +# drop destroyed furniture's item +# @s = furniture item display +# at @s +# run from break/destroy with @s item.components."minecraft:custom_data".gm4_furniture +# $(furniture_id) = furniture's id + +$loot spawn ~.5 ~.25 ~.5 loot gm4_furniture:furniture/$(furniture_id) +execute if score $furniture_color gm4_furniture_data matches 1.. positioned ~.5 ~.25 ~.5 store result entity @e[type=item,limit=1,sort=nearest] Item.components."minecraft:custom_data".gm4_furniture.color int 1 run scoreboard players get $furniture_color gm4_furniture_data diff --git a/gm4_furniture/data/gm4_furniture/function/break/eval_color.mcfunction b/gm4_furniture/data/gm4_furniture/function/break/eval_color.mcfunction new file mode 100644 index 0000000000..d431cbb797 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/break/eval_color.mcfunction @@ -0,0 +1,6 @@ +# eval color and add to held brush +# @s = furniture main interaction entity +# at @s +# run from break/get_color + +$item modify entity @p[tag=gm4_furniture_target] weapon.mainhand {function:set_components,components:{"minecraft:dyed_color":$(rgb)}} diff --git a/gm4_furniture/data/gm4_furniture/function/break/find_main.mcfunction b/gm4_furniture/data/gm4_furniture/function/break/find_main.mcfunction new file mode 100644 index 0000000000..d57294c941 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/break/find_main.mcfunction @@ -0,0 +1,11 @@ +# locate the main/central interaction for the hit furniture +# @s = furniture interaction that was hit +# at @s +# run from break/detect_hit + +# find a main furniture interaction entity matching the hit id +scoreboard players operation $check_id gm4_furniture_id = @s gm4_furniture_id +execute as @e[type=interaction,tag=gm4_furniture.main,distance=..8] if score @s gm4_furniture_id = $check_id gm4_furniture_id at @s run function gm4_furniture:break/process_hit + +# cleanup +data remove entity @s attack diff --git a/gm4_furniture/data/gm4_furniture/function/break/get_color.mcfunction b/gm4_furniture/data/gm4_furniture/function/break/get_color.mcfunction new file mode 100644 index 0000000000..3b9eb6f47e --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/break/get_color.mcfunction @@ -0,0 +1,11 @@ +# get the color of the broken furnitur +# @s = furniture main interaction entity +# at @s +# run from break/process_hit + +# find this furniture's item_display and get its color +scoreboard players operation $check_id gm4_furniture_id = @s gm4_furniture_id +execute as @e[type=item_display,tag=gm4_furniture.display,distance=..8] if score @s gm4_furniture_id = $check_id gm4_furniture_id store result storage gm4_furniture:temp color.rgb int 1 run data get entity @s item.components."minecraft:dyed_color".rgb +function gm4_furniture:break/eval_color with storage gm4_furniture:temp color +data remove storage gm4_furniture:temp color +playsound item.dye.use player @a[distance=..8] ~ ~ ~ 1 1.15 diff --git a/gm4_furniture/data/gm4_furniture/function/break/lost_connection.mcfunction b/gm4_furniture/data/gm4_furniture/function/break/lost_connection.mcfunction new file mode 100644 index 0000000000..a892acfa2b --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/break/lost_connection.mcfunction @@ -0,0 +1,8 @@ +# destroy furniture if it loses its required connection to the wall / ceiling +# @s = furniture's main interaction entity +# at @s +# run from main + +scoreboard players set $creative gm4_furniture_data 0 +scoreboard players operation $check_id gm4_furniture_id = @s gm4_furniture_id +function gm4_furniture:break/destroy diff --git a/gm4_furniture/data/gm4_furniture/function/break/process_hit.mcfunction b/gm4_furniture/data/gm4_furniture/function/break/process_hit.mcfunction new file mode 100644 index 0000000000..b58fed496d --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/break/process_hit.mcfunction @@ -0,0 +1,23 @@ +# process hit furniture +# @s = furniture main interaction entity +# at @s +# run from break/find_main + +# if player is holding the paintbrush instead grab the color and stop this function +execute if score $get_color gm4_furniture_data matches 1 if entity @s[tag=gm4_furniture.painted] run function gm4_furniture:break/get_color +execute if score $get_color gm4_furniture_data matches 1 run return 0 + +# check how much time has passed since the last hit (or ignore that if the player was in creative) +execute store result score $hit gm4_furniture_last_hit run time query gametime +scoreboard players operation $check_break gm4_furniture_last_hit = $hit gm4_furniture_last_hit +scoreboard players operation $check_break gm4_furniture_last_hit -= @s gm4_furniture_last_hit + +# if >=4 ticks have passed or player is in creative destroy furniture +execute if score $creative gm4_furniture_data matches 1 run scoreboard players set $check_break gm4_furniture_last_hit 0 +execute if score $check_break gm4_furniture_last_hit matches ..4 run function gm4_furniture:break/destroy +# otherwise store this hit time in furniture's score for the next check +execute unless score $check_break gm4_furniture_last_hit matches ..4 run scoreboard players operation @s gm4_furniture_last_hit = $hit gm4_furniture_last_hit + +# hit sounds +playsound minecraft:entity.armor_stand.hit block @a[distance=..8] ~ ~ ~ 1 1 +playsound minecraft:entity.player.attack.strong block @a[distance=..8] ~ ~ ~ 1 1 diff --git a/gm4_furniture/data/gm4_furniture/function/break/remove_block.mcfunction b/gm4_furniture/data/gm4_furniture/function/break/remove_block.mcfunction new file mode 100644 index 0000000000..6d01fbb788 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/break/remove_block.mcfunction @@ -0,0 +1,9 @@ +# remove this furniture block +# @s = furniture interaction entity +# at @s +# run from break/destroy + +execute positioned ~0.0001 ~0.5001 ~0.0001 run fill ~ ~ ~ ~ ~ ~ air replace #gm4_furniture:furniture_blocks[waterlogged=false] +execute positioned ~0.0001 ~0.5001 ~0.0001 run fill ~ ~ ~ ~ ~ ~ water replace #gm4_furniture:furniture_blocks[waterlogged=true] +execute positioned ~-0.4999 ~0.0001 ~-0.4999 run kill @e[type=item_display,tag=gm4_furniture,dx=0,dy=0,dz=0,limit=1] +kill @s diff --git a/gm4_furniture/data/gm4_furniture/function/break/remove_furniture_station.mcfunction b/gm4_furniture/data/gm4_furniture/function/break/remove_furniture_station.mcfunction new file mode 100644 index 0000000000..f57da5b79e --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/break/remove_furniture_station.mcfunction @@ -0,0 +1,9 @@ +# remove the villager when a furniture station is destroyed +# furniture station interaction entity +# at @s +# run from break/destroy + +setblock ~ ~1 ~ air +fill ~ ~2 ~ ~ ~2 ~ air replace light[level=0] +execute as @e[type=villager,tag=gm4_furniture,distance=..4] if score @s gm4_furniture_id = $check_id gm4_furniture_id run tp @s ~ -100000 ~ +execute positioned ~-0.4999 ~0.0001 ~-0.4999 run kill @e[type=item_display,tag=gm4_furniture.tool,dx=0,dy=0,dz=0] diff --git a/gm4_furniture/data/gm4_furniture/function/check_recipes.mcfunction b/gm4_furniture/data/gm4_furniture/function/check_recipes.mcfunction new file mode 100644 index 0000000000..8189b9066e --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/check_recipes.mcfunction @@ -0,0 +1,5 @@ +# @s = custom crafter running recipes +# run from #gm4_custom_crafters:check_recipes + +execute if score $crafted gm4_crafting matches 0 store success score $crafted gm4_crafting if score $slot_count gm4_crafting matches 5 if data storage gm4_custom_crafters:temp/crafter {Items:[{Slot:0b,id:"minecraft:string"},{Slot:1b,id:"minecraft:string"},{Slot:2b,id:"minecraft:string"},{Slot:4b,id:"minecraft:iron_ingot"},{Slot:7b,id:"minecraft:stick"}]} run loot replace block ~ ~ ~ container.0 loot gm4_furniture:crafting/paintbrush +execute if score $crafted gm4_crafting matches 0 store success score $crafted gm4_crafting if score $slot_count gm4_crafting matches 8 if data storage gm4_custom_crafters:temp/crafter {Items:[{Slot:0b,item_tags:{minecraft:{planks:1b}}},{Slot:1b,id:"minecraft:crafting_table"},{Slot:2b,item_tags:{minecraft:{planks:1b}}},{Slot:3b,item_tags:{minecraft:{planks:1b}}},{Slot:4b,id:"minecraft:iron_ingot"},{Slot:5b,item_tags:{minecraft:{planks:1b}}},{Slot:6b,item_tags:{minecraft:{planks:1b}}},{Slot:8b,item_tags:{minecraft:{planks:1b}}}]} run loot replace block ~ ~ ~ container.0 loot gm4_furniture:crafting/furniture_station diff --git a/gm4_furniture/data/gm4_furniture/function/init.mcfunction b/gm4_furniture/data/gm4_furniture/function/init.mcfunction new file mode 100644 index 0000000000..701d1085fa --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/init.mcfunction @@ -0,0 +1,30 @@ +execute unless score furniture gm4_modules matches 1 run data modify storage gm4:log queue append value {type:"install",module:"Furniture"} +execute unless score furniture gm4_earliest_version < furniture gm4_modules run scoreboard players operation furniture gm4_earliest_version = furniture gm4_modules +scoreboard players set furniture gm4_modules 1 + +scoreboard objectives add gm4_furniture_data dummy +scoreboard objectives add gm4_furniture_last_hit dummy +scoreboard objectives add gm4_furniture_id dummy +scoreboard objectives add gm4_furniture_index dummy +scoreboard objectives add gm4_furniture_craft_sound_time dummy +scoreboard objectives add gm4_furniture_sit_height dummy +scoreboard objectives add gm4_furniture_relog custom:leave_game + +scoreboard players set #2 gm4_furniture_data 2 +scoreboard players set #16 gm4_furniture_data 16 +scoreboard players set #256 gm4_furniture_data 256 +scoreboard players set #65536 gm4_furniture_data 65536 + +team add gm4_furniture_nocol +team modify gm4_furniture_nocol collisionRule never + +# build furniture station trade data +data modify storage gm4_furniture:data furniture_station set value [] +function gm4_furniture:generate_trades +execute store result score $max_index gm4_furniture_index run data get storage gm4_furniture:data furniture_station +scoreboard players remove $max_index gm4_furniture_index 1 + +schedule function gm4_furniture:main 1t +schedule function gm4_furniture:slow_clock 1t + +#$moduleUpdateList diff --git a/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/stone_set/statues_allay.mcfunction b/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/stone_set/statues_allay.mcfunction new file mode 100644 index 0000000000..504cf2eae2 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/stone_set/statues_allay.mcfunction @@ -0,0 +1,7 @@ +# 2% chance to play an animal sound +# @s = furniture's interacted interaction entity +# at @s +# run from interact/custom/resolve_function + +execute if predicate gm4_furniture:chance/animal_statue_sound run playsound entity.allay.ambient_without_item block @a[distance=..16] ~ ~ ~ 1 0.95 +scoreboard players set $interaction_processed gm4_furniture_data 1 diff --git a/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/stone_set/statues_axolotl.mcfunction b/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/stone_set/statues_axolotl.mcfunction new file mode 100644 index 0000000000..e72098445a --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/stone_set/statues_axolotl.mcfunction @@ -0,0 +1,7 @@ +# 2% chance to play an animal sound +# @s = furniture's interacted interaction entity +# at @s +# run from interact/custom/resolve_function + +execute if predicate gm4_furniture:chance/animal_statue_sound run playsound entity.axolotl.idle_water block @a[distance=..16] ~ ~ ~ 1 0.95 +scoreboard players set $interaction_processed gm4_furniture_data 1 diff --git a/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/stone_set/statues_bee.mcfunction b/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/stone_set/statues_bee.mcfunction new file mode 100644 index 0000000000..58f945547e --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/stone_set/statues_bee.mcfunction @@ -0,0 +1,7 @@ +# 2% chance to play an animal sound +# @s = furniture's interacted interaction entity +# at @s +# run from interact/custom/resolve_function + +execute if predicate gm4_furniture:chance/animal_statue_sound run playsound entity.bee.loop block @a[distance=..16] ~ ~ ~ 1 0.95 +scoreboard players set $interaction_processed gm4_furniture_data 1 diff --git a/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/stone_set/statues_frog.mcfunction b/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/stone_set/statues_frog.mcfunction new file mode 100644 index 0000000000..89b0942fdb --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/stone_set/statues_frog.mcfunction @@ -0,0 +1,7 @@ +# 2% chance to play an animal sound +# @s = furniture's interacted interaction entity +# at @s +# run from interact/custom/resolve_function + +execute if predicate gm4_furniture:chance/animal_statue_sound run playsound entity.frog.ambient block @a[distance=..16] ~ ~ ~ 1 0.95 +scoreboard players set $interaction_processed gm4_furniture_data 1 diff --git a/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/stone_set/statues_pufferfish.mcfunction b/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/stone_set/statues_pufferfish.mcfunction new file mode 100644 index 0000000000..090e1247ea --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/stone_set/statues_pufferfish.mcfunction @@ -0,0 +1,7 @@ +# 2% chance to play an animal sound +# @s = furniture's interacted interaction entity +# at @s +# run from interact/custom/resolve_function + +execute if predicate gm4_furniture:chance/animal_statue_sound run playsound entity.puffer_fish.ambient block @a[distance=..16] ~ ~ ~ 1 0.95 +scoreboard players set $interaction_processed gm4_furniture_data 1 diff --git a/gm4_furniture/data/gm4_furniture/function/interact/custom/process.mcfunction b/gm4_furniture/data/gm4_furniture/function/interact/custom/process.mcfunction new file mode 100644 index 0000000000..c349f54e62 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/custom/process.mcfunction @@ -0,0 +1,11 @@ +# process custom furniture interactions +# @s = furniture's interacted interaction entity +# at @s +# run from interact/process + +# find this furniture's item_display and store its furniture_id +scoreboard players operation $check_id gm4_furniture_id = @s gm4_furniture_id +execute as @e[type=item_display,tag=gm4_furniture.display,distance=..8] if score @s gm4_furniture_id = $check_id gm4_furniture_id run data modify storage gm4_furniture:temp furniture_id set from entity @s item.components."minecraft:custom_data".gm4_furniture.furniture_id +# resolve function call +function gm4_furniture:interact/custom/resolve_function with storage gm4_furniture:temp +data remove storage gm4_furniture:temp furniture_id diff --git a/gm4_furniture/data/gm4_furniture/function/interact/custom/resolve_function.mcfunction b/gm4_furniture/data/gm4_furniture/function/interact/custom/resolve_function.mcfunction new file mode 100644 index 0000000000..18f7a830d7 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/custom/resolve_function.mcfunction @@ -0,0 +1,7 @@ +# resolve which furniture was interacted with +# @s = furniture's interacted interaction entity +# at @s +# run from interact/custom/process with storage gm4_furniture:temp +# $(furniture_id) = furniture_id + +$function gm4_furniture:interact/custom/furniture/$(furniture_id) diff --git a/gm4_furniture/data/gm4_furniture/function/interact/detect.mcfunction b/gm4_furniture/data/gm4_furniture/function/interact/detect.mcfunction new file mode 100644 index 0000000000..2da973538f --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/detect.mcfunction @@ -0,0 +1,9 @@ +# detect interacting (right-click) on furniture +# @s = player interacting with furniture +# at @s +advancement revoke @s only gm4_furniture:interact_with_furniture + +# find interaction entity that was interacted with +tag @s add gm4_furniture_target +execute as @e[type=interaction,tag=gm4_furniture,distance=..8] if data entity @s interaction at @s run function gm4_furniture:interact/process +tag @s remove gm4_furniture_target diff --git a/gm4_furniture/data/gm4_furniture/function/interact/furniture_station/craft_furniture.mcfunction b/gm4_furniture/data/gm4_furniture/function/interact/furniture_station/craft_furniture.mcfunction new file mode 100644 index 0000000000..35579155d4 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/furniture_station/craft_furniture.mcfunction @@ -0,0 +1,8 @@ +# player furniture crafting sound +# @s = furniture's interacted interaction entity +# at @s +advancement revoke @s only gm4_furniture:crafted_furniture + +execute store result score $current_time gm4_furniture_data run time query gametime +execute as @a[distance=..16] unless score @s gm4_furniture_craft_sound_time = $current_time gm4_furniture_data run playsound minecraft:entity.villager.work_fletcher block @s ~ ~ ~ 1 1.25 +execute as @a[distance=..16] run scoreboard players operation @s gm4_furniture_craft_sound_time = $current_time gm4_furniture_data diff --git a/gm4_furniture/data/gm4_furniture/function/interact/furniture_station/swap_tool.mcfunction b/gm4_furniture/data/gm4_furniture/function/interact/furniture_station/swap_tool.mcfunction new file mode 100644 index 0000000000..337f6ccd25 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/furniture_station/swap_tool.mcfunction @@ -0,0 +1,19 @@ +# get interacting player to sit at this furniture block +# @s = furniture's interacted interaction entity +# at @s align xyz +# run from interact/process + +# if furniture station was inactive activate first +execute as @e[type=interaction,tag=gm4_furniture.reactivate,dx=0,dy=0,dz=0] at @s run function gm4_furniture:technical/furniture_station/activation/turn_active + +# move index up/down +execute if entity @s[tag=gm4_furniture.next] run scoreboard players add @e[type=villager,tag=gm4_furniture.furniture_station,dx=0,dy=0,dz=0,limit=1] gm4_furniture_index 1 +execute if entity @s[tag=gm4_furniture.prev] run scoreboard players remove @e[type=villager,tag=gm4_furniture.furniture_station,dx=0,dy=0,dz=0,limit=1] gm4_furniture_index 1 +execute as @e[type=villager,tag=gm4_furniture.furniture_station,dx=0,dy=0,dz=0,limit=1] at @s run function gm4_furniture:technical/furniture_station/build_trades/prep + +# store new index on main interaction entity +scoreboard players operation $check_id gm4_furniture_id = @s gm4_furniture_id +execute as @e[type=interaction,tag=gm4_furniture.main,distance=..8] if score @s gm4_furniture_id = $check_id gm4_furniture_id run scoreboard players operation @s gm4_furniture_index = $store_index gm4_furniture_data + +# mark interaction as resolved +scoreboard players set $interaction_processed gm4_furniture_data 1 diff --git a/gm4_furniture/data/gm4_furniture/function/interact/paint/detect.mcfunction b/gm4_furniture/data/gm4_furniture/function/interact/paint/detect.mcfunction new file mode 100644 index 0000000000..4e7c1c181a --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/paint/detect.mcfunction @@ -0,0 +1,9 @@ +# detect interaction on paintable furniture by a player holding a paintbrush +# @s = furniture's interacted interaction entity +# at @s +# run from interact/process + +# store color from paintbrush and process application if there is some +data modify storage gm4_furniture:temp color set from entity @p[tag=gm4_furniture_target] SelectedItem.components."minecraft:dyed_color".rgb +execute if data storage gm4_furniture:temp color run function gm4_furniture:interact/paint/process +data remove storage gm4_furniture:temp color diff --git a/gm4_furniture/data/gm4_furniture/function/interact/paint/process.mcfunction b/gm4_furniture/data/gm4_furniture/function/interact/paint/process.mcfunction new file mode 100644 index 0000000000..9773bb1f0a --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/paint/process.mcfunction @@ -0,0 +1,14 @@ +# check if this furniture should be painted +# @s = furniture's interacted interaction entity +# at @s +# run from interact/paint/detect + +# find this furniture's item_display and try to paint it +scoreboard players operation $check_id gm4_furniture_id = @s gm4_furniture_id +scoreboard players set $paint_changed gm4_furniture_data 0 +execute as @e[type=item_display,tag=gm4_furniture.display,distance=..8] if score @s gm4_furniture_id = $check_id gm4_furniture_id store success score $paint_changed gm4_furniture_data run data modify entity @s item.components."minecraft:dyed_color".rgb set from storage gm4_furniture:temp color + +# if furniture was painted mark interaction as resolved and play paint sound +execute if score $paint_changed gm4_furniture_data matches 1 run playsound item.dye.use player @a[distance=..8] ~ ~ ~ 1 1 +execute if score $paint_changed gm4_furniture_data matches 1 run scoreboard players set $interaction_processed gm4_furniture_data 1 +execute if score $paint_changed gm4_furniture_data matches 1 as @e[type=interaction,tag=gm4_furniture.main,distance=..8] if score @s gm4_furniture_id = $check_id gm4_furniture_id run tag @s add gm4_furniture.painted diff --git a/gm4_furniture/data/gm4_furniture/function/interact/process.mcfunction b/gm4_furniture/data/gm4_furniture/function/interact/process.mcfunction new file mode 100644 index 0000000000..d725e63068 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/process.mcfunction @@ -0,0 +1,28 @@ +# process interacting (right-click) on furniture +# @s = furniture's interacted interaction entity +# at @s +# run from itneract/detect + +# first successful interaction will be used, any lower down this list will be ignored +scoreboard players set $interaction_processed gm4_furniture_data 0 + +# check for reactivating furniture tables +execute if score $interaction_processed gm4_furniture_data matches 0 if entity @s[tag=gm4_furniture.reactivate] run function gm4_furniture:technical/furniture_station/activation/turn_active + +# check for waterlogging +execute if score $interaction_processed gm4_furniture_data matches 0 if entity @p[tag=gm4_furniture_target,predicate=gm4_furniture:holding_bucket] positioned ~ ~0.5 ~ run function gm4_furniture:interact/waterlog/check + +# check for furniture station interactions +execute if score $interaction_processed gm4_furniture_data matches 0 if entity @s[tag=gm4_furniture.swap_tool] align xyz run function gm4_furniture:interact/furniture_station/swap_tool + +# check for painting +execute if score $interaction_processed gm4_furniture_data matches 0 if entity @s[tag=gm4_furniture.dyable] if entity @p[tag=gm4_furniture_target,predicate=gm4_furniture:holding_paintbrush] run function gm4_furniture:interact/paint/detect + +# check for sitting +execute if score $interaction_processed gm4_furniture_data matches 0 if entity @s[scores={gm4_furniture_sit_height=1..}] if entity @p[tag=gm4_furniture_target,predicate=!gm4_furniture:is_sneaking] positioned ~-0.4999 ~0.0001 ~-0.4999 run function gm4_furniture:interact/sit/find_seat + +# check for custom interactions +execute if score $interaction_processed gm4_furniture_data matches 0 if entity @s[tag=gm4_furniture.custom_interaction] run function gm4_furniture:interact/custom/process + +# cleanup +data remove entity @s interaction diff --git a/gm4_furniture/data/gm4_furniture/function/interact/sit/check.mcfunction b/gm4_furniture/data/gm4_furniture/function/interact/sit/check.mcfunction new file mode 100644 index 0000000000..be6464dd80 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/sit/check.mcfunction @@ -0,0 +1,9 @@ +# check if this seat entity still has an occupant, if not remove it +# @s = furniture's seat item_display entity +# at unspecified +# run from interact/sit/find_seat +# run from slow_clock + +scoreboard players set $keep_seat gm4_furniture_data 0 +execute on passengers run scoreboard players set $keep_seat gm4_furniture_data 1 +execute if score $keep_seat gm4_furniture_data matches 0 run kill @s diff --git a/gm4_furniture/data/gm4_furniture/function/interact/sit/find_seat.mcfunction b/gm4_furniture/data/gm4_furniture/function/interact/sit/find_seat.mcfunction new file mode 100644 index 0000000000..a25dfcc7de --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/sit/find_seat.mcfunction @@ -0,0 +1,19 @@ +# get interacting player to sit at this furniture block +# @s = furniture's interacted interaction entity +# at @s +# run from interact/process + +# check if a seat already exists, if so do not allow sitting +execute as @e[type=item_display,tag=gm4_furniture.seat,dx=0,dy=0,dz=0] run function gm4_furniture:interact/sit/check +execute if entity @e[type=item_display,tag=gm4_furniture.seat,dx=0,dy=0,dz=0] run return 0 + +# spawn a seat for the player to sit on +ride @p[tag=gm4_furniture_target] dismount +execute store result storage gm4_furniture:temp sit.height int 1 run scoreboard players get @s gm4_furniture_sit_height +function gm4_furniture:interact/sit/spawn_seat with storage gm4_furniture:temp sit + +# mark interaction as resolved +scoreboard players set $interaction_processed gm4_furniture_data 1 + +# cleanup +data remove storage gm4_furniture:temp sit diff --git a/gm4_furniture/data/gm4_furniture/function/interact/sit/init_seat.mcfunction b/gm4_furniture/data/gm4_furniture/function/interact/sit/init_seat.mcfunction new file mode 100644 index 0000000000..1b723953b3 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/sit/init_seat.mcfunction @@ -0,0 +1,7 @@ +# init seat with data and make player ride it +# @s = furniture's seat item_display entity +# at @s +# run from interact/sit/spawn_seat + +data merge entity @s {Tags:["gm4_furniture","gm4_furniture.seat","smithed.entity","smithed.strict"],item:{id:"air",count:1},item_display:head,Rotation:[0.0f,0.0f],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0f,0f],scale:[1f,1f,1f]}} +ride @p[tag=gm4_furniture_target] mount @s diff --git a/gm4_furniture/data/gm4_furniture/function/interact/sit/spawn_seat.mcfunction b/gm4_furniture/data/gm4_furniture/function/interact/sit/spawn_seat.mcfunction new file mode 100644 index 0000000000..c1f80f0159 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/sit/spawn_seat.mcfunction @@ -0,0 +1,7 @@ +# spawn the seat in the correct place +# @s = furniture's seat item_display entity +# at @s +# run from interact/sit/find_seat + +# the item_display is offset from the ground to dictate sit height +$execute positioned ~.5 ~.$(height) ~.5 summon item_display run function gm4_furniture:interact/sit/init_seat diff --git a/gm4_furniture/data/gm4_furniture/function/interact/waterlog/check.mcfunction b/gm4_furniture/data/gm4_furniture/function/interact/waterlog/check.mcfunction new file mode 100644 index 0000000000..b3cc27cc81 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/waterlog/check.mcfunction @@ -0,0 +1,7 @@ +# check if the furniture should waterlog or water-unlog +# @s = furniture's interacted interaction entity +# at @s +# run from interact/process + +execute if block ~ ~ ~ #gm4_furniture:furniture_blocks[waterlogged=true] if entity @p[tag=gm4_furniture_target,predicate=gm4_furniture:holding_empty_bucket] run function gm4_furniture:interact/waterlog/unlog +execute if score $interaction_processed gm4_furniture_data matches 0 if block ~ ~ ~ #gm4_furniture:furniture_blocks[waterlogged=false] if entity @p[tag=gm4_furniture_target,predicate=gm4_furniture:holding_water_bucket] run function gm4_furniture:interact/waterlog/log diff --git a/gm4_furniture/data/gm4_furniture/function/interact/waterlog/log.mcfunction b/gm4_furniture/data/gm4_furniture/function/interact/waterlog/log.mcfunction new file mode 100644 index 0000000000..647f7052f5 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/waterlog/log.mcfunction @@ -0,0 +1,28 @@ +# waterlog this part of the furniture +# @s = furniture's interacted interaction entity +# at @s +# run from interact/waterlog/check + +item replace entity @p[tag=gm4_furniture_target,gamemode=!creative] weapon.mainhand with bucket + +scoreboard players set $waterlog_completed gm4_furniture_data 0 +execute store success score $waterlog_completed gm4_furniture_data run fill ~ ~ ~ ~ ~ ~ light[level=0,waterlogged=true] replace light[level=0] +execute if score $waterlog_completed gm4_furniture_data matches 0 store success score $waterlog_completed gm4_furniture_data run fill ~ ~ ~ ~ ~ ~ barrier[waterlogged=true] replace barrier +execute if score $waterlog_completed gm4_furniture_data matches 0 store success score $waterlog_completed gm4_furniture_data run fill ~ ~ ~ ~ ~ ~ light[level=15,waterlogged=true] replace light[level=15] +execute if score $waterlog_completed gm4_furniture_data matches 0 store success score $waterlog_completed gm4_furniture_data run fill ~ ~ ~ ~ ~ ~ light[level=14,waterlogged=true] replace light[level=14] +execute if score $waterlog_completed gm4_furniture_data matches 0 store success score $waterlog_completed gm4_furniture_data run fill ~ ~ ~ ~ ~ ~ light[level=13,waterlogged=true] replace light[level=13] +execute if score $waterlog_completed gm4_furniture_data matches 0 store success score $waterlog_completed gm4_furniture_data run fill ~ ~ ~ ~ ~ ~ light[level=12,waterlogged=true] replace light[level=12] +execute if score $waterlog_completed gm4_furniture_data matches 0 store success score $waterlog_completed gm4_furniture_data run fill ~ ~ ~ ~ ~ ~ light[level=11,waterlogged=true] replace light[level=11] +execute if score $waterlog_completed gm4_furniture_data matches 0 store success score $waterlog_completed gm4_furniture_data run fill ~ ~ ~ ~ ~ ~ light[level=10,waterlogged=true] replace light[level=10] +execute if score $waterlog_completed gm4_furniture_data matches 0 store success score $waterlog_completed gm4_furniture_data run fill ~ ~ ~ ~ ~ ~ light[level=9,waterlogged=true] replace light[level=9] +execute if score $waterlog_completed gm4_furniture_data matches 0 store success score $waterlog_completed gm4_furniture_data run fill ~ ~ ~ ~ ~ ~ light[level=8,waterlogged=true] replace light[level=8] +execute if score $waterlog_completed gm4_furniture_data matches 0 store success score $waterlog_completed gm4_furniture_data run fill ~ ~ ~ ~ ~ ~ light[level=7,waterlogged=true] replace light[level=7] +execute if score $waterlog_completed gm4_furniture_data matches 0 store success score $waterlog_completed gm4_furniture_data run fill ~ ~ ~ ~ ~ ~ light[level=6,waterlogged=true] replace light[level=6] +execute if score $waterlog_completed gm4_furniture_data matches 0 store success score $waterlog_completed gm4_furniture_data run fill ~ ~ ~ ~ ~ ~ light[level=5,waterlogged=true] replace light[level=5] +execute if score $waterlog_completed gm4_furniture_data matches 0 store success score $waterlog_completed gm4_furniture_data run fill ~ ~ ~ ~ ~ ~ light[level=4,waterlogged=true] replace light[level=4] +execute if score $waterlog_completed gm4_furniture_data matches 0 store success score $waterlog_completed gm4_furniture_data run fill ~ ~ ~ ~ ~ ~ light[level=3,waterlogged=true] replace light[level=3] +execute if score $waterlog_completed gm4_furniture_data matches 0 store success score $waterlog_completed gm4_furniture_data run fill ~ ~ ~ ~ ~ ~ light[level=2,waterlogged=true] replace light[level=2] +execute if score $waterlog_completed gm4_furniture_data matches 0 store success score $waterlog_completed gm4_furniture_data run fill ~ ~ ~ ~ ~ ~ light[level=1,waterlogged=true] replace light[level=1] + +playsound item.bucket.empty player @a[distance=..16] ~ ~ ~ 1 1 +scoreboard players set $interaction_processed gm4_furniture_data 1 diff --git a/gm4_furniture/data/gm4_furniture/function/interact/waterlog/unlog.mcfunction b/gm4_furniture/data/gm4_furniture/function/interact/waterlog/unlog.mcfunction new file mode 100644 index 0000000000..64b0f25b3d --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/waterlog/unlog.mcfunction @@ -0,0 +1,28 @@ +# water-unlog this part of the furniture +# @s = furniture's interacted interaction entity +# at @s +# run from interact/waterlog/check + +item replace entity @p[tag=gm4_furniture_target,gamemode=!creative] weapon.mainhand with water_bucket + +scoreboard players set $waterlog_completed gm4_furniture_data 0 +execute store success score $waterlog_completed gm4_furniture_data run fill ~ ~ ~ ~ ~ ~ light[level=0,waterlogged=false] replace light[level=0,waterlogged=true] +execute if score $waterlog_completed gm4_furniture_data matches 0 store success score $waterlog_completed gm4_furniture_data run fill ~ ~ ~ ~ ~ ~ barrier[waterlogged=false] replace barrier[waterlogged=true] +execute if score $waterlog_completed gm4_furniture_data matches 0 store success score $waterlog_completed gm4_furniture_data run fill ~ ~ ~ ~ ~ ~ light[level=15,waterlogged=false] replace light[level=15,waterlogged=true] +execute if score $waterlog_completed gm4_furniture_data matches 0 store success score $waterlog_completed gm4_furniture_data run fill ~ ~ ~ ~ ~ ~ light[level=14,waterlogged=false] replace light[level=14,waterlogged=true] +execute if score $waterlog_completed gm4_furniture_data matches 0 store success score $waterlog_completed gm4_furniture_data run fill ~ ~ ~ ~ ~ ~ light[level=13,waterlogged=false] replace light[level=13,waterlogged=true] +execute if score $waterlog_completed gm4_furniture_data matches 0 store success score $waterlog_completed gm4_furniture_data run fill ~ ~ ~ ~ ~ ~ light[level=12,waterlogged=false] replace light[level=12,waterlogged=true] +execute if score $waterlog_completed gm4_furniture_data matches 0 store success score $waterlog_completed gm4_furniture_data run fill ~ ~ ~ ~ ~ ~ light[level=11,waterlogged=false] replace light[level=11,waterlogged=true] +execute if score $waterlog_completed gm4_furniture_data matches 0 store success score $waterlog_completed gm4_furniture_data run fill ~ ~ ~ ~ ~ ~ light[level=10,waterlogged=false] replace light[level=10,waterlogged=true] +execute if score $waterlog_completed gm4_furniture_data matches 0 store success score $waterlog_completed gm4_furniture_data run fill ~ ~ ~ ~ ~ ~ light[level=9,waterlogged=false] replace light[level=9,waterlogged=true] +execute if score $waterlog_completed gm4_furniture_data matches 0 store success score $waterlog_completed gm4_furniture_data run fill ~ ~ ~ ~ ~ ~ light[level=8,waterlogged=false] replace light[level=8,waterlogged=true] +execute if score $waterlog_completed gm4_furniture_data matches 0 store success score $waterlog_completed gm4_furniture_data run fill ~ ~ ~ ~ ~ ~ light[level=7,waterlogged=false] replace light[level=7,waterlogged=true] +execute if score $waterlog_completed gm4_furniture_data matches 0 store success score $waterlog_completed gm4_furniture_data run fill ~ ~ ~ ~ ~ ~ light[level=6,waterlogged=false] replace light[level=6,waterlogged=true] +execute if score $waterlog_completed gm4_furniture_data matches 0 store success score $waterlog_completed gm4_furniture_data run fill ~ ~ ~ ~ ~ ~ light[level=5,waterlogged=false] replace light[level=5,waterlogged=true] +execute if score $waterlog_completed gm4_furniture_data matches 0 store success score $waterlog_completed gm4_furniture_data run fill ~ ~ ~ ~ ~ ~ light[level=4,waterlogged=false] replace light[level=4,waterlogged=true] +execute if score $waterlog_completed gm4_furniture_data matches 0 store success score $waterlog_completed gm4_furniture_data run fill ~ ~ ~ ~ ~ ~ light[level=3,waterlogged=false] replace light[level=3,waterlogged=true] +execute if score $waterlog_completed gm4_furniture_data matches 0 store success score $waterlog_completed gm4_furniture_data run fill ~ ~ ~ ~ ~ ~ light[level=2,waterlogged=false] replace light[level=2,waterlogged=true] +execute if score $waterlog_completed gm4_furniture_data matches 0 store success score $waterlog_completed gm4_furniture_data run fill ~ ~ ~ ~ ~ ~ light[level=1,waterlogged=false] replace light[level=1,waterlogged=true] + +playsound item.bucket.fill player @a[distance=..16] ~ ~ ~ 1 1 +scoreboard players set $interaction_processed gm4_furniture_data 1 diff --git a/gm4_furniture/data/gm4_furniture/function/main.mcfunction b/gm4_furniture/data/gm4_furniture/function/main.mcfunction new file mode 100644 index 0000000000..398f65cc25 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/main.mcfunction @@ -0,0 +1,8 @@ +schedule function gm4_furniture:main 8t + +# check horses, remove paintbrushes that have been equipped +execute as @e[type=horse,nbt={body_armor_item:{components:{"minecraft:custom_data":{gm4_furniture:"paintbrush"}}}}] at @s run function gm4_furniture:technical/paintbrush/remove_from_horse + +# check furniture placements +execute as @e[type=interaction,tag=gm4_furniture.on_wall] at @s if block ^ ^0.5 ^-1 #gm4:replaceable run function gm4_furniture:break/lost_connection +execute as @e[type=interaction,tag=gm4_furniture.on_ceiling] at @s if block ^ ^1.5 ^ #gm4:replaceable run function gm4_furniture:break/lost_connection diff --git a/gm4_furniture/data/gm4_furniture/function/place/check_diagonal_placement.mcfunction b/gm4_furniture/data/gm4_furniture/function/place/check_diagonal_placement.mcfunction new file mode 100644 index 0000000000..6d055ce5ce --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/place/check_diagonal_placement.mcfunction @@ -0,0 +1,26 @@ +# checks for placement of furniture that is allowed to be placed diagonally +# @s = player who placed the furniture player head +# at the center of the placed block rotated along axis to face towards player or away from the wall +# run from any in place/furniture/ + +scoreboard players set $diag_found gm4_furniture_data 0 +execute if block ~ ~ ~ player_head[rotation=1] store success score $diag_found gm4_furniture_data run data modify storage gm4_furniture:data Rotation set value [-157.5F,0F] +execute if score $diag_found gm4_furniture_data matches 0 if block ~ ~ ~ player_head[rotation=2] store success score $diag_found gm4_furniture_data run data modify storage gm4_furniture:data Rotation set value [-135F,0F] +execute if score $diag_found gm4_furniture_data matches 0 if block ~ ~ ~ player_head[rotation=3] store success score $diag_found gm4_furniture_data run data modify storage gm4_furniture:data Rotation set value [-112.5F,0F] + +execute if score $diag_found gm4_furniture_data matches 0 if block ~ ~ ~ player_head[rotation=5] store success score $diag_found gm4_furniture_data run data modify storage gm4_furniture:data Rotation set value [-67.5F,0F] +execute if score $diag_found gm4_furniture_data matches 0 if block ~ ~ ~ player_head[rotation=6] store success score $diag_found gm4_furniture_data run data modify storage gm4_furniture:data Rotation set value [-45F,0F] +execute if score $diag_found gm4_furniture_data matches 0 if block ~ ~ ~ player_head[rotation=7] store success score $diag_found gm4_furniture_data run data modify storage gm4_furniture:data Rotation set value [-22.5F,0F] + +execute if score $diag_found gm4_furniture_data matches 0 if block ~ ~ ~ player_head[rotation=9] store success score $diag_found gm4_furniture_data run data modify storage gm4_furniture:data Rotation set value [22.5F,0F] +execute if score $diag_found gm4_furniture_data matches 0 if block ~ ~ ~ player_head[rotation=10] store success score $diag_found gm4_furniture_data run data modify storage gm4_furniture:data Rotation set value [45F,0F] +execute if score $diag_found gm4_furniture_data matches 0 if block ~ ~ ~ player_head[rotation=11] store success score $diag_found gm4_furniture_data run data modify storage gm4_furniture:data Rotation set value [67.5F,0F] + +execute if score $diag_found gm4_furniture_data matches 0 if block ~ ~ ~ player_head[rotation=13] store success score $diag_found gm4_furniture_data run data modify storage gm4_furniture:data Rotation set value [112.5F,0F] +execute if score $diag_found gm4_furniture_data matches 0 if block ~ ~ ~ player_head[rotation=14] store success score $diag_found gm4_furniture_data run data modify storage gm4_furniture:data Rotation set value [135F,0F] +execute if score $diag_found gm4_furniture_data matches 0 if block ~ ~ ~ player_head[rotation=15] store success score $diag_found gm4_furniture_data run data modify storage gm4_furniture:data Rotation set value [157.5F,0F] + +# if a diagonal rotation was found make sure rotation will be set, and limit length / height to 1 +execute if score $diag_found gm4_furniture_data matches 1 run scoreboard players set $rotation gm4_furniture_data 5 +execute if score $diag_found gm4_furniture_data matches 1 run scoreboard players set $length gm4_furniture_data 1 +execute if score $diag_found gm4_furniture_data matches 1 run scoreboard players set $depth gm4_furniture_data 1 diff --git a/gm4_furniture/data/gm4_furniture/function/place/check_layer.mcfunction b/gm4_furniture/data/gm4_furniture/function/place/check_layer.mcfunction new file mode 100644 index 0000000000..dccce1a149 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/place/check_layer.mcfunction @@ -0,0 +1,68 @@ +# replaces any furniture player heads with their corresponding furniture +# @s = player that just placed a furniture player head +# at @s rotated positioned ^-4 ^X ^-1, X = layer number - 4 +# run from place/place_furniture + +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^ ^ ^ if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^1 ^ ^ if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^2 ^ ^ if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^3 ^ ^ if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^4 ^ ^ if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^5 ^ ^ if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^6 ^ ^ if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^7 ^ ^ if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^8 ^ ^ if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place + +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^ ^ ^1 if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^1 ^ ^1 if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^2 ^ ^1 if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^3 ^ ^1 if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^4 ^ ^1 if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^5 ^ ^1 if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^6 ^ ^1 if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^7 ^ ^1 if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^8 ^ ^1 if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place + +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^ ^ ^2 if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^1 ^ ^2 if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^2 ^ ^2 if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^3 ^ ^2 if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^4 ^ ^2 if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^5 ^ ^2 if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^6 ^ ^2 if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^7 ^ ^2 if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^8 ^ ^2 if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place + +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^ ^ ^3 if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^1 ^ ^3 if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^2 ^ ^3 if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^3 ^ ^3 if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^4 ^ ^3 if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^5 ^ ^3 if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^6 ^ ^3 if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^7 ^ ^3 if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^8 ^ ^3 if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place + +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^ ^ ^4 if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^1 ^ ^4 if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^2 ^ ^4 if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^3 ^ ^4 if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^4 ^ ^4 if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^5 ^ ^4 if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^6 ^ ^4 if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^7 ^ ^4 if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^8 ^ ^4 if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place + +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^ ^ ^5 if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^1 ^ ^5 if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^2 ^ ^5 if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^3 ^ ^5 if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^4 ^ ^5 if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^5 ^ ^5 if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^6 ^ ^5 if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^7 ^ ^5 if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place +execute if score $player_head_count gm4_furniture_data matches 1.. positioned ^8 ^ ^5 if block ~ ~ ~ #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} run function gm4_furniture:place/prep_place + + +scoreboard players add $layer_count gm4_furniture_data 1 +execute if score $player_head_count gm4_furniture_data matches 1.. if score $layer_count gm4_furniture_data matches ..10 positioned ~ ~1 ~ run function gm4_furniture:place/check_layer diff --git a/gm4_furniture/data/gm4_furniture/function/place/check_size/depth_loop.mcfunction b/gm4_furniture/data/gm4_furniture/function/place/check_size/depth_loop.mcfunction new file mode 100644 index 0000000000..1bf10cf2cb --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/place/check_size/depth_loop.mcfunction @@ -0,0 +1,15 @@ +# check if furniture fits here +# @s = player who placed the furniture player head +# at the center of the placed block rotated along axis to face towards player or away from the wall, positioned ^ ^ ^x +# run from place/check_size/depth_prep +# run from here + +execute unless block ~ ~ ~ #gm4:replaceable run scoreboard players set $placement_blocked gm4_furniture_data 1 +execute if score $placement_blocked gm4_furniture_data matches 0 align y if entity @e[type=interaction,tag=gm4_furniture,tag=!gm4_new_furniture,distance=..0.1] run scoreboard players set $placement_blocked gm4_furniture_data 1 +execute if score $placement_blocked gm4_furniture_data matches 1 run return 0 +summon marker ~ ~ ~ {Tags:["gm4_furniture","gm4_furniture.marked_block"]} + +scoreboard players add $depth_done gm4_furniture_data 1 +execute if score $depth_done gm4_furniture_data = $depth gm4_furniture_data run scoreboard players reset $depth_done gm4_furniture_data +execute if score $wall_only gm4_furniture_data matches 0 if score $depth_done gm4_furniture_data < $depth gm4_furniture_data positioned ^ ^ ^-1 run function gm4_furniture:place/check_size/depth_loop +execute if score $wall_only gm4_furniture_data matches 1 if score $depth_done gm4_furniture_data < $depth gm4_furniture_data positioned ^ ^ ^1 run function gm4_furniture:place/check_size/depth_loop diff --git a/gm4_furniture/data/gm4_furniture/function/place/check_size/depth_offset.mcfunction b/gm4_furniture/data/gm4_furniture/function/place/check_size/depth_offset.mcfunction new file mode 100644 index 0000000000..e4fc2ba2ae --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/place/check_size/depth_offset.mcfunction @@ -0,0 +1,10 @@ +# check if furniture fits here +# @s = player who placed the furniture player head +# at the center of the placed block rotated along axis to face towards player or away from the wall, positioned ^ ^ ^x +# run from place/check_size/depth_prep +# run from here + +execute unless block ~ ~ ~ #gm4:replaceable run scoreboard players set $placement_blocked gm4_furniture_data 1 +execute if score $placement_blocked gm4_furniture_data matches 0 align y if entity @e[type=interaction,tag=gm4_furniture,tag=!gm4_new_furniture,distance=..0.1] run scoreboard players set $placement_blocked gm4_furniture_data 1 +execute if score $placement_blocked gm4_furniture_data matches 1 run return 0 +summon marker ~ ~ ~ {Tags:["gm4_furniture","gm4_furniture.marked_block","gm4_furniture.depth_marker"]} diff --git a/gm4_furniture/data/gm4_furniture/function/place/check_size/depth_prep.mcfunction b/gm4_furniture/data/gm4_furniture/function/place/check_size/depth_prep.mcfunction new file mode 100644 index 0000000000..b226ea3360 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/place/check_size/depth_prep.mcfunction @@ -0,0 +1,11 @@ +# check if furniture fits here +# @s = player who placed the furniture player head +# at the center of the placed block rotated along axis to face towards player or away from the wall, or at any placed marker +# run from any in place/furniture/ + +execute as @e[type=marker,tag=gm4_furniture.marked_block] run data modify entity @s Rotation set from storage gm4_furniture:data Rotation +execute if score $depth gm4_furniture_data matches 3.. if score $wall_only gm4_furniture_data matches 0 at @e[type=marker,tag=gm4_furniture.marked_block] positioned ^ ^ ^1 run function gm4_furniture:place/check_size/depth_offset +execute if score $depth gm4_furniture_data matches 3.. if score $wall_only gm4_furniture_data matches 0 run scoreboard players remove $depth gm4_furniture_data 1 +scoreboard players remove $depth gm4_furniture_data 1 +execute if score $wall_only gm4_furniture_data matches 0 if score $placement_blocked gm4_furniture_data matches 0 at @e[type=marker,tag=gm4_furniture.marked_block,tag=!gm4_furniture.depth_marker] positioned ^ ^ ^-1 run function gm4_furniture:place/check_size/depth_loop +execute if score $wall_only gm4_furniture_data matches 1 if score $placement_blocked gm4_furniture_data matches 0 at @e[type=marker,tag=gm4_furniture.marked_block,tag=!gm4_furniture.depth_marker] positioned ^ ^ ^1 run function gm4_furniture:place/check_size/depth_loop diff --git a/gm4_furniture/data/gm4_furniture/function/place/check_size/height_loop.mcfunction b/gm4_furniture/data/gm4_furniture/function/place/check_size/height_loop.mcfunction new file mode 100644 index 0000000000..e10445d0e3 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/place/check_size/height_loop.mcfunction @@ -0,0 +1,15 @@ +# check if furniture fits here +# @s = player who placed the furniture player head +# at the center of the placed block rotated along axis to face towards player or away from the wall, positioned ^ ^x ^ +# run from place/check_size/height_prep +# run from here + +execute unless block ~ ~ ~ #gm4:replaceable run scoreboard players set $placement_blocked gm4_furniture_data 1 +execute if score $placement_blocked gm4_furniture_data matches 0 align y if entity @e[type=interaction,tag=gm4_furniture,tag=!gm4_new_furniture,distance=..0.1] run scoreboard players set $placement_blocked gm4_furniture_data 1 +execute if score $placement_blocked gm4_furniture_data matches 1 run return 0 +summon marker ~ ~ ~ {Tags:["gm4_furniture","gm4_furniture.marked_block"]} + +scoreboard players add $height_done gm4_furniture_data 1 +execute if score $height_done gm4_furniture_data = $height gm4_furniture_data run scoreboard players reset $height_done gm4_furniture_data +execute if score $ceiling_only gm4_furniture_data matches 0 if score $height_done gm4_furniture_data < $height gm4_furniture_data positioned ^ ^1 ^ run function gm4_furniture:place/check_size/height_loop +execute if score $ceiling_only gm4_furniture_data matches 1 if score $height_done gm4_furniture_data < $height gm4_furniture_data positioned ^ ^-1 ^ run function gm4_furniture:place/check_size/height_loop diff --git a/gm4_furniture/data/gm4_furniture/function/place/check_size/height_offset.mcfunction b/gm4_furniture/data/gm4_furniture/function/place/check_size/height_offset.mcfunction new file mode 100644 index 0000000000..dfa23474b1 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/place/check_size/height_offset.mcfunction @@ -0,0 +1,10 @@ +# check if furniture fits here +# @s = player who placed the furniture player head +# at the center of the placed block rotated along axis to face towards player or away from the wall, positioned ^ ^x ^ +# run from place/check_size/height_prep +# run from here + +execute unless block ~ ~ ~ #gm4:replaceable run scoreboard players set $placement_blocked gm4_furniture_data 1 +execute if score $placement_blocked gm4_furniture_data matches 0 align y if entity @e[type=interaction,tag=gm4_furniture,tag=!gm4_new_furniture,distance=..0.1] run scoreboard players set $placement_blocked gm4_furniture_data 1 +execute if score $placement_blocked gm4_furniture_data matches 1 run return 0 +summon marker ~ ~ ~ {Tags:["gm4_furniture","gm4_furniture.marked_block","gm4_furniture.height_marker"]} diff --git a/gm4_furniture/data/gm4_furniture/function/place/check_size/height_prep.mcfunction b/gm4_furniture/data/gm4_furniture/function/place/check_size/height_prep.mcfunction new file mode 100644 index 0000000000..c32229bea4 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/place/check_size/height_prep.mcfunction @@ -0,0 +1,12 @@ +# check if furniture fits here +# @s = player who placed the furniture player head +# at the center of the placed block rotated along axis to face towards player or away from the wall, or at any placed marker +# run from any in place/furniture/ + +# height is only offset down if this is a wall placed furniture (painting) +execute as @e[type=marker,tag=gm4_furniture.marked_block] run data modify entity @s Rotation set from storage gm4_furniture:data Rotation +execute if score $height gm4_furniture_data matches 3.. if score $wall_only gm4_furniture_data matches 1 if score $ceiling_only gm4_furniture_data matches 0 at @e[type=marker,tag=gm4_furniture.marked_block] positioned ^ ^-1 ^ run function gm4_furniture:place/check_size/height_offset +execute if score $height gm4_furniture_data matches 3.. if score $wall_only gm4_furniture_data matches 1 if score $ceiling_only gm4_furniture_data matches 0 run scoreboard players remove $height gm4_furniture_data 1 +scoreboard players remove $height gm4_furniture_data 1 +execute if score $ceiling_only gm4_furniture_data matches 0 if score $placement_blocked gm4_furniture_data matches 0 at @e[type=marker,tag=gm4_furniture.marked_block,tag=!gm4_furniture.height_marker] positioned ^ ^1 ^ run function gm4_furniture:place/check_size/height_loop +execute if score $ceiling_only gm4_furniture_data matches 1 if score $placement_blocked gm4_furniture_data matches 0 at @e[type=marker,tag=gm4_furniture.marked_block,tag=!gm4_furniture.height_marker] positioned ^ ^-1 ^ run function gm4_furniture:place/check_size/height_loop diff --git a/gm4_furniture/data/gm4_furniture/function/place/check_size/length_loop.mcfunction b/gm4_furniture/data/gm4_furniture/function/place/check_size/length_loop.mcfunction new file mode 100644 index 0000000000..a795f21f7d --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/place/check_size/length_loop.mcfunction @@ -0,0 +1,13 @@ +# check if furniture fits here +# @s = player who placed the furniture player head +# at the center of the placed block rotated along axis to face towards player or away from the wall, positioned ^x ^ ^ +# run from place/check_size/length_prep +# run from here + +execute unless block ~ ~ ~ #gm4:replaceable run scoreboard players set $placement_blocked gm4_furniture_data 1 +execute if score $placement_blocked gm4_furniture_data matches 0 align y if entity @e[type=interaction,tag=gm4_furniture,tag=!gm4_new_furniture,distance=..0.1] run scoreboard players set $placement_blocked gm4_furniture_data 1 +execute if score $placement_blocked gm4_furniture_data matches 1 run return 0 +summon marker ~ ~ ~ {Tags:["gm4_furniture","gm4_furniture.marked_block"]} + +scoreboard players remove $length gm4_furniture_data 1 +execute if score $length gm4_furniture_data matches 1.. positioned ^1 ^ ^ run function gm4_furniture:place/check_size/length_loop diff --git a/gm4_furniture/data/gm4_furniture/function/place/check_size/length_offset.mcfunction b/gm4_furniture/data/gm4_furniture/function/place/check_size/length_offset.mcfunction new file mode 100644 index 0000000000..88193d1a8a --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/place/check_size/length_offset.mcfunction @@ -0,0 +1,11 @@ +# check if furniture fits here +# @s = player who placed the furniture player head +# at the center of the placed block rotated along axis to face towards player or away from the wall, positioned ^x ^ ^ +# run from place/check_size/length_prep +# run from here + +execute unless block ~ ~ ~ #gm4:replaceable run scoreboard players set $placement_blocked gm4_furniture_data 1 +execute if score $placement_blocked gm4_furniture_data matches 0 align y if entity @e[type=interaction,tag=gm4_furniture,tag=!gm4_new_furniture,distance=..0.1] run scoreboard players set $placement_blocked gm4_furniture_data 1 +execute if score $placement_blocked gm4_furniture_data matches 1 run return 0 +summon marker ~ ~ ~ {Tags:["gm4_furniture","gm4_furniture.marked_block","gm4_furniture.length_marker"]} +scoreboard players remove $length gm4_furniture_data 1 diff --git a/gm4_furniture/data/gm4_furniture/function/place/check_size/length_prep.mcfunction b/gm4_furniture/data/gm4_furniture/function/place/check_size/length_prep.mcfunction new file mode 100644 index 0000000000..3743a392ab --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/place/check_size/length_prep.mcfunction @@ -0,0 +1,8 @@ +# check if furniture fits here +# @s = player who placed the furniture player head +# at the center of the placed block rotated along axis to face towards player or away from the wall +# run from any in place/furniture/ + +execute if score $length gm4_furniture_data matches 3.. positioned ^-1 ^ ^ run function gm4_furniture:place/check_size/length_offset +scoreboard players remove $length gm4_furniture_data 1 +execute if score $placement_blocked gm4_furniture_data matches 0 positioned ^1 ^ ^ run function gm4_furniture:place/check_size/length_loop diff --git a/gm4_furniture/data/gm4_furniture/function/place/count_heads/east.mcfunction b/gm4_furniture/data/gm4_furniture/function/place/count_heads/east.mcfunction new file mode 100644 index 0000000000..e6f549305c --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/place/count_heads/east.mcfunction @@ -0,0 +1,27 @@ +# counts the number of players heads +# @s = player that just placed a furniture player head +# at @s +# run from place/place_furniture + +execute store result score $player_head_add gm4_furniture_data run clone ~-1 ~-4 ~-4 ~4 ~-4 ~4 ~-1 ~-4 ~-4 filtered #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} force +scoreboard players operation $player_head_count gm4_furniture_data += $player_head_add gm4_furniture_data +execute store result score $player_head_add gm4_furniture_data run clone ~-1 ~-3 ~-4 ~4 ~-3 ~4 ~-1 ~-3 ~-4 filtered #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} force +scoreboard players operation $player_head_count gm4_furniture_data += $player_head_add gm4_furniture_data +execute store result score $player_head_add gm4_furniture_data run clone ~-1 ~-2 ~-4 ~4 ~-2 ~4 ~-1 ~-2 ~-4 filtered #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} force +scoreboard players operation $player_head_count gm4_furniture_data += $player_head_add gm4_furniture_data +execute store result score $player_head_add gm4_furniture_data run clone ~-1 ~-1 ~-4 ~4 ~-1 ~4 ~-1 ~-1 ~-4 filtered #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} force +scoreboard players operation $player_head_count gm4_furniture_data += $player_head_add gm4_furniture_data +execute store result score $player_head_add gm4_furniture_data run clone ~-1 ~ ~-4 ~4 ~ ~4 ~-1 ~ ~-4 filtered #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} force +scoreboard players operation $player_head_count gm4_furniture_data += $player_head_add gm4_furniture_data +execute store result score $player_head_add gm4_furniture_data run clone ~-1 ~1 ~-4 ~4 ~1 ~4 ~-1 ~1 ~-4 filtered #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} force +scoreboard players operation $player_head_count gm4_furniture_data += $player_head_add gm4_furniture_data +execute store result score $player_head_add gm4_furniture_data run clone ~-1 ~2 ~-4 ~4 ~2 ~4 ~-1 ~2 ~-4 filtered #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} force +scoreboard players operation $player_head_count gm4_furniture_data += $player_head_add gm4_furniture_data +execute store result score $player_head_add gm4_furniture_data run clone ~-1 ~3 ~-4 ~4 ~3 ~4 ~-1 ~3 ~-4 filtered #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} force +scoreboard players operation $player_head_count gm4_furniture_data += $player_head_add gm4_furniture_data +execute store result score $player_head_add gm4_furniture_data run clone ~-1 ~4 ~-4 ~4 ~4 ~4 ~-1 ~4 ~-4 filtered #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} force +scoreboard players operation $player_head_count gm4_furniture_data += $player_head_add gm4_furniture_data +execute store result score $player_head_add gm4_furniture_data run clone ~-1 ~5 ~-4 ~4 ~5 ~4 ~-1 ~5 ~-4 filtered #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} force +scoreboard players operation $player_head_count gm4_furniture_data += $player_head_add gm4_furniture_data +execute store result score $player_head_add gm4_furniture_data run clone ~-1 ~6 ~-4 ~4 ~6 ~4 ~-1 ~6 ~-4 filtered #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} force +scoreboard players operation $player_head_count gm4_furniture_data += $player_head_add gm4_furniture_data diff --git a/gm4_furniture/data/gm4_furniture/function/place/count_heads/north.mcfunction b/gm4_furniture/data/gm4_furniture/function/place/count_heads/north.mcfunction new file mode 100644 index 0000000000..421bb14285 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/place/count_heads/north.mcfunction @@ -0,0 +1,27 @@ +# counts the number of players heads +# @s = player that just placed a furniture player head +# at @s +# run from place/place_furniture + +execute store result score $player_head_add gm4_furniture_data run clone ~-4 ~-4 ~-4 ~4 ~-4 ~1 ~-4 ~-4 ~-4 filtered #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} force +scoreboard players operation $player_head_count gm4_furniture_data += $player_head_add gm4_furniture_data +execute store result score $player_head_add gm4_furniture_data run clone ~-4 ~-3 ~-4 ~4 ~-3 ~1 ~-4 ~-3 ~-4 filtered #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} force +scoreboard players operation $player_head_count gm4_furniture_data += $player_head_add gm4_furniture_data +execute store result score $player_head_add gm4_furniture_data run clone ~-4 ~-2 ~-4 ~4 ~-2 ~1 ~-4 ~-2 ~-4 filtered #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} force +scoreboard players operation $player_head_count gm4_furniture_data += $player_head_add gm4_furniture_data +execute store result score $player_head_add gm4_furniture_data run clone ~-4 ~-1 ~-4 ~4 ~-1 ~1 ~-4 ~-1 ~-4 filtered #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} force +scoreboard players operation $player_head_count gm4_furniture_data += $player_head_add gm4_furniture_data +execute store result score $player_head_add gm4_furniture_data run clone ~-4 ~ ~-4 ~4 ~ ~1 ~-4 ~ ~-4 filtered #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} force +scoreboard players operation $player_head_count gm4_furniture_data += $player_head_add gm4_furniture_data +execute store result score $player_head_add gm4_furniture_data run clone ~-4 ~1 ~-4 ~4 ~1 ~1 ~-4 ~1 ~-4 filtered #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} force +scoreboard players operation $player_head_count gm4_furniture_data += $player_head_add gm4_furniture_data +execute store result score $player_head_add gm4_furniture_data run clone ~-4 ~2 ~-4 ~4 ~2 ~1 ~-4 ~2 ~-4 filtered #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} force +scoreboard players operation $player_head_count gm4_furniture_data += $player_head_add gm4_furniture_data +execute store result score $player_head_add gm4_furniture_data run clone ~-4 ~3 ~-4 ~4 ~3 ~1 ~-4 ~3 ~-4 filtered #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} force +scoreboard players operation $player_head_count gm4_furniture_data += $player_head_add gm4_furniture_data +execute store result score $player_head_add gm4_furniture_data run clone ~-4 ~4 ~-4 ~4 ~4 ~1 ~-4 ~4 ~-4 filtered #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} force +scoreboard players operation $player_head_count gm4_furniture_data += $player_head_add gm4_furniture_data +execute store result score $player_head_add gm4_furniture_data run clone ~-4 ~5 ~-4 ~4 ~5 ~1 ~-4 ~5 ~-4 filtered #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} force +scoreboard players operation $player_head_count gm4_furniture_data += $player_head_add gm4_furniture_data +execute store result score $player_head_add gm4_furniture_data run clone ~-4 ~6 ~-4 ~4 ~6 ~1 ~-4 ~6 ~-4 filtered #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} force +scoreboard players operation $player_head_count gm4_furniture_data += $player_head_add gm4_furniture_data diff --git a/gm4_furniture/data/gm4_furniture/function/place/count_heads/south.mcfunction b/gm4_furniture/data/gm4_furniture/function/place/count_heads/south.mcfunction new file mode 100644 index 0000000000..775fdea052 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/place/count_heads/south.mcfunction @@ -0,0 +1,27 @@ +# counts the number of players heads +# @s = player that just placed a furniture player head +# at @s +# run from place/place_furniture + +execute store result score $player_head_add gm4_furniture_data run clone ~-4 ~-4 ~-1 ~4 ~-4 ~4 ~-4 ~-4 ~-1 filtered #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} force +scoreboard players operation $player_head_count gm4_furniture_data += $player_head_add gm4_furniture_data +execute store result score $player_head_add gm4_furniture_data run clone ~-4 ~-3 ~-1 ~4 ~-3 ~4 ~-4 ~-3 ~-1 filtered #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} force +scoreboard players operation $player_head_count gm4_furniture_data += $player_head_add gm4_furniture_data +execute store result score $player_head_add gm4_furniture_data run clone ~-4 ~-2 ~-1 ~4 ~-2 ~4 ~-4 ~-2 ~-1 filtered #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} force +scoreboard players operation $player_head_count gm4_furniture_data += $player_head_add gm4_furniture_data +execute store result score $player_head_add gm4_furniture_data run clone ~-4 ~-1 ~-1 ~4 ~-1 ~4 ~-4 ~-1 ~-1 filtered #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} force +scoreboard players operation $player_head_count gm4_furniture_data += $player_head_add gm4_furniture_data +execute store result score $player_head_add gm4_furniture_data run clone ~-4 ~ ~-1 ~4 ~ ~4 ~-4 ~ ~-1 filtered #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} force +scoreboard players operation $player_head_count gm4_furniture_data += $player_head_add gm4_furniture_data +execute store result score $player_head_add gm4_furniture_data run clone ~-4 ~1 ~-1 ~4 ~1 ~4 ~-4 ~1 ~-1 filtered #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} force +scoreboard players operation $player_head_count gm4_furniture_data += $player_head_add gm4_furniture_data +execute store result score $player_head_add gm4_furniture_data run clone ~-4 ~2 ~-1 ~4 ~2 ~4 ~-4 ~2 ~-1 filtered #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} force +scoreboard players operation $player_head_count gm4_furniture_data += $player_head_add gm4_furniture_data +execute store result score $player_head_add gm4_furniture_data run clone ~-4 ~3 ~-1 ~4 ~3 ~4 ~-4 ~3 ~-1 filtered #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} force +scoreboard players operation $player_head_count gm4_furniture_data += $player_head_add gm4_furniture_data +execute store result score $player_head_add gm4_furniture_data run clone ~-4 ~4 ~-1 ~4 ~4 ~4 ~-4 ~4 ~-1 filtered #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} force +scoreboard players operation $player_head_count gm4_furniture_data += $player_head_add gm4_furniture_data +execute store result score $player_head_add gm4_furniture_data run clone ~-4 ~5 ~-1 ~4 ~5 ~4 ~-4 ~5 ~-1 filtered #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} force +scoreboard players operation $player_head_count gm4_furniture_data += $player_head_add gm4_furniture_data +execute store result score $player_head_add gm4_furniture_data run clone ~-4 ~6 ~-1 ~4 ~6 ~4 ~-4 ~6 ~-1 filtered #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} force +scoreboard players operation $player_head_count gm4_furniture_data += $player_head_add gm4_furniture_data diff --git a/gm4_furniture/data/gm4_furniture/function/place/count_heads/west.mcfunction b/gm4_furniture/data/gm4_furniture/function/place/count_heads/west.mcfunction new file mode 100644 index 0000000000..3e5ef824cd --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/place/count_heads/west.mcfunction @@ -0,0 +1,27 @@ +# counts the number of players heads +# @s = player that just placed a furniture player head +# at @s +# run from place/place_furniture + +execute store result score $player_head_add gm4_furniture_data run clone ~-4 ~-4 ~-4 ~1 ~-4 ~4 ~-4 ~-4 ~-4 filtered #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} force +scoreboard players operation $player_head_count gm4_furniture_data += $player_head_add gm4_furniture_data +execute store result score $player_head_add gm4_furniture_data run clone ~-4 ~-3 ~-4 ~1 ~-3 ~4 ~-4 ~-3 ~-4 filtered #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} force +scoreboard players operation $player_head_count gm4_furniture_data += $player_head_add gm4_furniture_data +execute store result score $player_head_add gm4_furniture_data run clone ~-4 ~-2 ~-4 ~1 ~-2 ~4 ~-4 ~-2 ~-4 filtered #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} force +scoreboard players operation $player_head_count gm4_furniture_data += $player_head_add gm4_furniture_data +execute store result score $player_head_add gm4_furniture_data run clone ~-4 ~-1 ~-4 ~1 ~-1 ~4 ~-4 ~-1 ~-4 filtered #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} force +scoreboard players operation $player_head_count gm4_furniture_data += $player_head_add gm4_furniture_data +execute store result score $player_head_add gm4_furniture_data run clone ~-4 ~ ~-4 ~1 ~ ~4 ~-4 ~ ~-4 filtered #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} force +scoreboard players operation $player_head_count gm4_furniture_data += $player_head_add gm4_furniture_data +execute store result score $player_head_add gm4_furniture_data run clone ~-4 ~1 ~-4 ~1 ~1 ~4 ~-4 ~1 ~-4 filtered #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} force +scoreboard players operation $player_head_count gm4_furniture_data += $player_head_add gm4_furniture_data +execute store result score $player_head_add gm4_furniture_data run clone ~-4 ~2 ~-4 ~1 ~2 ~4 ~-4 ~2 ~-4 filtered #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} force +scoreboard players operation $player_head_count gm4_furniture_data += $player_head_add gm4_furniture_data +execute store result score $player_head_add gm4_furniture_data run clone ~-4 ~3 ~-4 ~1 ~3 ~4 ~-4 ~3 ~-4 filtered #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} force +scoreboard players operation $player_head_count gm4_furniture_data += $player_head_add gm4_furniture_data +execute store result score $player_head_add gm4_furniture_data run clone ~-4 ~4 ~-4 ~1 ~4 ~4 ~-4 ~4 ~-4 filtered #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} force +scoreboard players operation $player_head_count gm4_furniture_data += $player_head_add gm4_furniture_data +execute store result score $player_head_add gm4_furniture_data run clone ~-4 ~5 ~-4 ~1 ~5 ~4 ~-4 ~5 ~-4 filtered #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} force +scoreboard players operation $player_head_count gm4_furniture_data += $player_head_add gm4_furniture_data +execute store result score $player_head_add gm4_furniture_data run clone ~-4 ~6 ~-4 ~1 ~6 ~4 ~-4 ~6 ~-4 filtered #gm4_furniture:player_heads{profile:{properties:[{signature:"gm4_furniture"}]}} force +scoreboard players operation $player_head_count gm4_furniture_data += $player_head_add gm4_furniture_data diff --git a/gm4_furniture/data/gm4_furniture/function/place/furniture/furniture_station.mcfunction b/gm4_furniture/data/gm4_furniture/function/place/furniture/furniture_station.mcfunction new file mode 100644 index 0000000000..65e5c27a9c --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/place/furniture/furniture_station.mcfunction @@ -0,0 +1,47 @@ +# try to place the furniture_station +# @s = player who placed the furniture player head +# at the center of the placed block rotated along axis to face towards player or away from the wall +# run from place/resolve_id + +# first perform checks to see if furniture fits where it was placed +scoreboard players set $valid_placement gm4_furniture_data 1 +execute unless block ~ ~1 ~ #gm4:replaceable run scoreboard players set $valid_placement gm4_furniture_data 0 +execute positioned ~ ~1 ~ align y if entity @e[type=interaction,tag=gm4_furniture,tag=!gm4_new_furniture,distance=..0.1] run scoreboard players set $valid_placement gm4_furniture_data 0 + +execute if score $placement_blocked gm4_furniture_data matches 1 run return 0 + +# if placement is not valid cancel placement +execute if score $valid_placement gm4_furniture_data matches 0 run loot spawn ~ ~ ~ loot gm4_furniture:items/furniture_station +execute if score $valid_placement gm4_furniture_data matches 0 run setblock ~ ~ ~ air +execute if score $valid_placement gm4_furniture_data matches 0 run return 0 + +# spawn the furniture_station +summon item_display ~ ~-0.4999 ~ {Tags:["gm4_furniture","gm4_furniture.display","gm4_furniture.furniture_station","smithed.entity","smithed.strict","gm4_new_furniture"],CustomName:'"gm4_furniture_display.furniture_station"',item:{id:"leather_horse_armor",count:1,components:{"minecraft:custom_data":{gm4_furniture:{furniture_id:"furniture_station"}},"minecraft:custom_model_data":"block/furniture/furniture_station"}},item_display:head,Rotation:[0.0f,0.0f],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0.5f,0f],scale:[1f,1f,1f]}} +summon interaction ~-0.0001 ~-0.5001 ~-0.0001 {Tags:["gm4_furniture","gm4_furniture.interaction","gm4_furniture.furniture_station","gm4_furniture.main","smithed.entity","smithed.strict","gm4_new_furniture"],height:1.0003f,width:1.0003f,response:1b} +summon interaction ^0.25 ^-0.5 ^0.26 {Tags:["gm4_furniture","gm4_furniture.interaction","gm4_furniture.furniture_station","gm4_furniture.swap_tool","gm4_furniture.next","gm4_furniture.additional","smithed.entity","smithed.strict","gm4_new_furniture"],height:1f,width:0.5f,response:1b} +summon interaction ^-0.25 ^-0.5 ^0.26 {Tags:["gm4_furniture","gm4_furniture.interaction","gm4_furniture.furniture_station","gm4_furniture.swap_tool","gm4_furniture.prev","gm4_furniture.additional","smithed.entity","smithed.strict","gm4_new_furniture"],height:1f,width:0.5f,response:1b} +summon item_display ~ ~-0.4999 ~ {Tags:["gm4_furniture","gm4_furniture.furniture_station","gm4_furniture.tool","gm4_furniture.tool_main","smithed.entity","smithed.strict","gm4_new_furniture"],CustomName:'"gm4_furniture_display.furniture_station_tool"',item:{id:"command_block",count:1},item_display:head,Rotation:[0.0f,0.0f],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0.6f,0f],scale:[1f,1f,1f]}} +summon item_display ~ ~-0.4999 ~ {Tags:["gm4_furniture","gm4_furniture.furniture_station","gm4_furniture.tool","gm4_furniture.tool_next","smithed.entity","smithed.strict","gm4_new_furniture"],CustomName:'"gm4_furniture_display.furniture_station_tool"',item:{id:"command_block",count:1},item_display:head,Rotation:[0.0f,0.0f],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0.28125f,-0.45312f,0.5f],scale:[1f,1f,1f]}} +summon item_display ~ ~-0.4999 ~ {Tags:["gm4_furniture","gm4_furniture.furniture_station","gm4_furniture.tool","gm4_furniture.tool_prev","smithed.entity","smithed.strict","gm4_new_furniture"],CustomName:'"gm4_furniture_display.furniture_station_tool"',item:{id:"command_block",count:1},item_display:head,Rotation:[0.0f,0.0f],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[-0.28125f,-0.45312f,0.5f],scale:[1f,1f,1f]}} +data modify entity @e[type=item_display,tag=gm4_new_furniture,tag=gm4_furniture.tool_main,limit=1,distance=..2] item.components."minecraft:custom_model_data" set from storage gm4_furniture:data furniture_station[0]."minecraft:custom_model_data" +data modify entity @e[type=item_display,tag=gm4_new_furniture,tag=gm4_furniture.tool_next,limit=1,distance=..2] item.components."minecraft:custom_model_data" set from storage gm4_furniture:data furniture_station[1]."minecraft:custom_model_data" +data modify entity @e[type=item_display,tag=gm4_new_furniture,tag=gm4_furniture.tool_prev,limit=1,distance=..2] item.components."minecraft:custom_model_data" set from storage gm4_furniture:data furniture_station[-1]."minecraft:custom_model_data" +setblock ~ ~ ~ barrier + +# spawn villager +execute positioned ~ ~999.5001 ~ summon villager run function gm4_furniture:technical/furniture_station/init_villager + +# build furniture station +execute unless block ~ ~1 ~ water[level=0] run setblock ~ ~1 ~ light[level=0] +execute if block ~ ~1 ~ water[level=0] run setblock ~ ~1 ~ light[level=0,waterlogged=true] +execute store result score @e[type=interaction,tag=gm4_new_furniture] gm4_furniture_id run scoreboard players add $next_id gm4_furniture_id 1 +execute store result score @e[type=villager,tag=gm4_new_furniture] gm4_furniture_id run scoreboard players get $next_id gm4_furniture_id + +# rotate furniture_station depending on rotation set by player (if rotation is 1 default rotation can be kept) +execute if score $rotation gm4_furniture_data matches 2 as @e[tag=gm4_new_furniture,distance=..8] at @s run tp @s ~ ~ ~ 90 0 +execute if score $rotation gm4_furniture_data matches 3 as @e[tag=gm4_new_furniture,distance=..8] at @s run tp @s ~ ~ ~ 180 0 +execute if score $rotation gm4_furniture_data matches 4 as @e[tag=gm4_new_furniture,distance=..8] at @s run tp @s ~ ~ ~ -90 0 + +# mark block as placed +playsound minecraft:block.barrel.close block @a[distance=..6] ~ ~ ~ 1 1.6 +tag @e[distance=..2] remove gm4_new_furniture diff --git a/gm4_furniture/data/gm4_furniture/function/place/place_furniture.mcfunction b/gm4_furniture/data/gm4_furniture/function/place/place_furniture.mcfunction new file mode 100644 index 0000000000..e1b1d3e114 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/place/place_furniture.mcfunction @@ -0,0 +1,37 @@ +# finds the player head that was placed by the player +# @s = player that just placed a furniture player head +# at @s +advancement revoke @s only gm4_furniture:place_furniture +# run from place/place_furniture_water + +# get item data +execute store success score $mainhand gm4_furniture_data run data modify storage gm4_furniture:temp furniture_data set from entity @s SelectedItem.components."minecraft:custom_data".gm4_furniture +execute if score $mainhand gm4_furniture_data matches 0 run data modify storage gm4_furniture:temp furniture_data set from entity @s Inventory[{Slot:-106b}].components."minecraft:custom_data".gm4_furniture + +# get rotation of player +# key: direction of player +# 1: north, 2: east, 3: south, 4: west +execute store result score $y_rotation gm4_furniture_data run data get entity @s Rotation[0] +scoreboard players set $rotation gm4_furniture_data 0 + +execute if score $y_rotation gm4_furniture_data matches 45..135 run scoreboard players set $rotation gm4_furniture_data 4 +execute if score $rotation gm4_furniture_data matches 0 if score $y_rotation gm4_furniture_data matches -45..45 run scoreboard players set $rotation gm4_furniture_data 3 +execute if score $rotation gm4_furniture_data matches 0 if score $y_rotation gm4_furniture_data matches -135..-45 run scoreboard players set $rotation gm4_furniture_data 2 +execute if score $rotation gm4_furniture_data matches 0 run scoreboard players set $rotation gm4_furniture_data 1 + +# find player heads in the specific region +scoreboard players set $player_head_count gm4_furniture_data 0 +execute if score $rotation gm4_furniture_data matches 1 run function gm4_furniture:place/count_heads/north +execute if score $rotation gm4_furniture_data matches 2 run function gm4_furniture:place/count_heads/east +execute if score $rotation gm4_furniture_data matches 3 run function gm4_furniture:place/count_heads/south +execute if score $rotation gm4_furniture_data matches 4 run function gm4_furniture:place/count_heads/west + +# replace player heads with the corresponding block +scoreboard players set $layer_count gm4_furniture_data 0 +execute if score $player_head_count gm4_furniture_data matches 1.. if score $rotation gm4_furniture_data matches 1 align xyz positioned ~0.5 ~0.5 ~0.5 rotated 180 0 positioned ^-4 ^-4 ^-1 run function gm4_furniture:place/check_layer +execute if score $player_head_count gm4_furniture_data matches 1.. if score $rotation gm4_furniture_data matches 2 align xyz positioned ~0.5 ~0.5 ~0.5 rotated -90 0 positioned ^-4 ^-4 ^-1 run function gm4_furniture:place/check_layer +execute if score $player_head_count gm4_furniture_data matches 1.. if score $rotation gm4_furniture_data matches 3 align xyz positioned ~0.5 ~0.5 ~0.5 rotated 0 0 positioned ^-4 ^-4 ^-1 run function gm4_furniture:place/check_layer +execute if score $player_head_count gm4_furniture_data matches 1.. if score $rotation gm4_furniture_data matches 4 align xyz positioned ~0.5 ~0.5 ~0.5 rotated 90 0 positioned ^-4 ^-4 ^-1 run function gm4_furniture:place/check_layer + +# cleanup +data remove storage gm4_furniture:temp furniture_data diff --git a/gm4_furniture/data/gm4_furniture/function/place/prep_place.mcfunction b/gm4_furniture/data/gm4_furniture/function/place/prep_place.mcfunction new file mode 100644 index 0000000000..36e3dbe476 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/place/prep_place.mcfunction @@ -0,0 +1,16 @@ +# prepares the storage and scores for furniture placement +# @s = player that just placed a furniture player head +# at the center of the furniture player head that was placed +# run from place/check_layer + +# override rotation if furniture was placed against a wall (opposite of wall facing) +# 1: north, 2: east, 3: south, 4: west +execute store success score $wall_placement gm4_furniture_data if block ~ ~ ~ player_wall_head +execute if score $wall_placement gm4_furniture_data matches 1 run scoreboard players set $rotation gm4_furniture_data 3 +execute if score $wall_placement gm4_furniture_data matches 1 if block ~ ~ ~ player_wall_head[facing=east] run scoreboard players set $rotation gm4_furniture_data 4 +execute if score $wall_placement gm4_furniture_data matches 1 if block ~ ~ ~ player_wall_head[facing=south] run scoreboard players set $rotation gm4_furniture_data 1 +execute if score $wall_placement gm4_furniture_data matches 1 if block ~ ~ ~ player_wall_head[facing=west] run scoreboard players set $rotation gm4_furniture_data 2 + +scoreboard players remove $player_head_count gm4_furniture_data 1 + +function gm4_furniture:place/resolve_id with storage gm4_furniture:temp furniture_data diff --git a/gm4_furniture/data/gm4_furniture/function/place/resolve_id.mcfunction b/gm4_furniture/data/gm4_furniture/function/place/resolve_id.mcfunction new file mode 100644 index 0000000000..d45636f329 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/place/resolve_id.mcfunction @@ -0,0 +1,10 @@ +# run the function belonging to the placed furniture +# @s = player that just placed a furniture player head +# at the center of the furniture player head that was placed +# run from place/prep_place with storage gm4_furniture:temp furniture_data +# $(furniture_id) = furniture's id + +$execute if score $rotation gm4_furniture_data matches 1 rotated 0 0 run function gm4_furniture:place/furniture/$(furniture_id) +$execute if score $rotation gm4_furniture_data matches 2 rotated 90 0 run function gm4_furniture:place/furniture/$(furniture_id) +$execute if score $rotation gm4_furniture_data matches 3 rotated 180 0 run function gm4_furniture:place/furniture/$(furniture_id) +$execute if score $rotation gm4_furniture_data matches 4 rotated -90 0 run function gm4_furniture:place/furniture/$(furniture_id) diff --git a/gm4_furniture/data/gm4_furniture/function/slow_clock.mcfunction b/gm4_furniture/data/gm4_furniture/function/slow_clock.mcfunction new file mode 100644 index 0000000000..f22f8c6406 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/slow_clock.mcfunction @@ -0,0 +1,7 @@ +schedule function gm4_furniture:slow_clock 10s + +# check seats to see if they are empty +execute as @e[type=item_display,tag=gm4_furniture.seat] run function gm4_furniture:interact/sit/check + +# process furniture stations +execute as @e[type=villager,tag=gm4_furniture.furniture_station] at @s run function gm4_furniture:technical/furniture_station/activation/process diff --git a/gm4_furniture/data/gm4_furniture/function/technical/furniture_station/activation/process.mcfunction b/gm4_furniture/data/gm4_furniture/function/technical/furniture_station/activation/process.mcfunction new file mode 100644 index 0000000000..8f68655c3e --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/technical/furniture_station/activation/process.mcfunction @@ -0,0 +1,10 @@ +# process active furniture stations +# @s = furniture station villager +# at @s +# run from slow_clock + +# reapply invisibility in case it was lost +effect give @s invisibility infinite 0 true + +# check if there are still players close to actually trade +execute unless entity @a[distance=..12,gamemode=!spectator] run function gm4_furniture:technical/furniture_station/activation/turn_inactive diff --git a/gm4_furniture/data/gm4_furniture/function/technical/furniture_station/activation/turn_active.mcfunction b/gm4_furniture/data/gm4_furniture/function/technical/furniture_station/activation/turn_active.mcfunction new file mode 100644 index 0000000000..6a1e0bee5b --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/technical/furniture_station/activation/turn_active.mcfunction @@ -0,0 +1,18 @@ +# turn furniture station on if no player interacted with it +# @s = furniture reactivation interaction entity +# at @s +# run from technical/furniture_station/activation/process +# run frin interact/furniture_station/swap_tool + +# turn tool upright +execute align xyz run data merge entity @e[type=item_display,tag=gm4_furniture.tool_main,dx=0,dy=0,dz=0,limit=1] {interpolation_duration:5,start_interpolation:-1,transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0.6f,0f],scale:[1f,1f,1f]}} + +# spawn villager and set ids +execute align xyz positioned ~.5 ~1000.0001 ~.5 summon villager run function gm4_furniture:technical/furniture_station/init_villager +scoreboard players operation @e[type=villager,tag=gm4_new_furniture,limit=1,distance=..4] gm4_furniture_id = @s gm4_furniture_id +scoreboard players operation @e[type=villager,tag=gm4_new_furniture,limit=1,distance=..4] gm4_furniture_index = @s gm4_furniture_index +tag @e[type=villager,tag=gm4_new_furniture,limit=1,distance=..4] remove gm4_new_furniture + +# mark interaction as complete and remove interaction entity +scoreboard players set $interaction_processed gm4_furniture_data 1 +kill @s diff --git a/gm4_furniture/data/gm4_furniture/function/technical/furniture_station/activation/turn_inactive.mcfunction b/gm4_furniture/data/gm4_furniture/function/technical/furniture_station/activation/turn_inactive.mcfunction new file mode 100644 index 0000000000..0b5f5d145b --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/technical/furniture_station/activation/turn_inactive.mcfunction @@ -0,0 +1,17 @@ +# turn furniture station off if no player is nearby +# @s = furniture station villager +# at @s +# run from technical/furniture_station/activation/process + +# lay down tool +execute align xyz run data merge entity @e[type=item_display,tag=gm4_furniture.tool_main,dx=0,dy=0,dz=0,limit=1] {interpolation_duration:5,start_interpolation:-1,transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[-1f,0f,0f,1f],translation:[0f,1.125f,0.9375f],scale:[1f,1f,1f]}} + +# spawn interaction to turn furniture back on again, has villager data +execute positioned ~ ~1 ~ align xyz run summon interaction ~.5 ~-0.0001 ~.5 {Tags:["gm4_furniture","gm4_furniture.interaction","gm4_furniture.furniture_station","gm4_furniture.reactivate","smithed.entity","smithed.strict","gm4_new_furniture"],height:1.0003f,width:1.0003f,response:1b} +scoreboard players operation @e[type=interaction,tag=gm4_new_furniture,distance=..4,limit=1] gm4_furniture_id = @s gm4_furniture_id +scoreboard players operation @e[type=interaction,tag=gm4_new_furniture,distance=..4,limit=1] gm4_furniture_index = @s gm4_furniture_index +tag @e[type=interaction,tag=gm4_new_furniture,distance=..4] remove gm4_new_furniture + +# remove villager +tp @s ~ ~-10000 ~ +kill @s diff --git a/gm4_furniture/data/gm4_furniture/function/technical/furniture_station/build_trades/build_trade.mcfunction b/gm4_furniture/data/gm4_furniture/function/technical/furniture_station/build_trades/build_trade.mcfunction new file mode 100644 index 0000000000..cf3a6a66eb --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/technical/furniture_station/build_trades/build_trade.mcfunction @@ -0,0 +1,24 @@ +# build a trade from trade_data +# @s = furniture station villager +# at @s +# run from technical/furniture_station/build_trades/prep +# run from here + +data modify storage gm4_furniture:temp new_trade set value {rewardExp:0b,maxUses:2147483647,uses:0,xp:0,buy:{id:"minecraft:barrier",count:1},buyB:{id:"minecraft:barrier",count:1},sell:{id:"minecraft:barrier",count:1}} +data modify storage gm4_furniture:temp new_trade.buy.id set from storage gm4_furniture:temp trade_data[0].cost[0].id +data modify storage gm4_furniture:temp new_trade.buy.count set from storage gm4_furniture:temp trade_data[0].cost[0].count + +execute store result score $second_trade_count gm4_furniture_data run data get storage gm4_furniture:temp trade_data[0].cost[1].count +execute unless score $second_trade_count gm4_furniture_data matches 1.. run data remove storage gm4_furniture:temp new_trade.buyB +execute if score $second_trade_count gm4_furniture_data matches 1.. run data modify storage gm4_furniture:temp new_trade.buyB.id set from storage gm4_furniture:temp trade_data[0].cost[1].id +execute if score $second_trade_count gm4_furniture_data matches 1.. run data modify storage gm4_furniture:temp new_trade.buyB.count set from storage gm4_furniture:temp trade_data[0].cost[1].count + +function gm4_furniture:technical/furniture_station/build_trades/resolve_trade with storage gm4_furniture:temp trade_data[0].result +data modify storage gm4_furniture:temp new_trade.sell set from block 29999998 1 7134 Items[{Slot:0b}] +data modify storage gm4_furniture:temp new_trade.sell.count set from storage gm4_furniture:temp trade_data[0].result.count + +data modify storage gm4_furniture:temp trades append from storage gm4_furniture:temp new_trade +data remove storage gm4_furniture:temp new_trade + +data remove storage gm4_furniture:temp trade_data[0] +execute if data storage gm4_furniture:temp trade_data[0] run function gm4_furniture:technical/furniture_station/build_trades/build_trade diff --git a/gm4_furniture/data/gm4_furniture/function/technical/furniture_station/build_trades/get_trade_data.mcfunction b/gm4_furniture/data/gm4_furniture/function/technical/furniture_station/build_trades/get_trade_data.mcfunction new file mode 100644 index 0000000000..fc8425a0e7 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/technical/furniture_station/build_trades/get_trade_data.mcfunction @@ -0,0 +1,10 @@ +# loop through trade data to get the proper index in the frot +# @s = furniture station villager +# at @s +# run from technical/furniture_station/build_trades/prep +# run from here + +data modify storage gm4_furniture:temp trade_data append from storage gm4_furniture:temp trade_data[0] +data remove storage gm4_furniture:temp trade_data[0] +scoreboard players remove $trade_index gm4_furniture_data 1 +execute if score $trade_index gm4_furniture_data matches 1.. run function gm4_furniture:technical/furniture_station/build_trades/get_trade_data diff --git a/gm4_furniture/data/gm4_furniture/function/technical/furniture_station/build_trades/prep.mcfunction b/gm4_furniture/data/gm4_furniture/function/technical/furniture_station/build_trades/prep.mcfunction new file mode 100644 index 0000000000..2ad7d14004 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/technical/furniture_station/build_trades/prep.mcfunction @@ -0,0 +1,37 @@ +# change the trades of this furniture station +# @s = furniture station villager +# at @s +# run from interact/furniture_station/swap_tool +# run from technical/furniture_station/init_villager + +# clamp index to min/max +execute if score @s gm4_furniture_index matches ..-1 run scoreboard players operation @s gm4_furniture_index = $max_index gm4_furniture_index +execute if score @s gm4_furniture_index > $max_index gm4_furniture_index run scoreboard players set @s gm4_furniture_index 0 + +# get the trade data that should be displayed in the first index +scoreboard players operation $trade_index gm4_furniture_data = @s gm4_furniture_index +data modify storage gm4_furniture:temp trade_data set from storage gm4_furniture:data furniture_station +execute if score $trade_index gm4_furniture_data matches 1.. run function gm4_furniture:technical/furniture_station/build_trades/get_trade_data + +# change the displayed tools custom_model_data +execute align xyz run data modify entity @e[type=item_display,tag=gm4_furniture.tool_main,dx=0,dy=0,dz=0,limit=1] item.components."minecraft:custom_model_data" set from storage gm4_furniture:temp trade_data[0]."minecraft:custom_model_data" +execute align xyz run data modify entity @e[type=item_display,tag=gm4_furniture.tool_next,dx=0,dy=0,dz=0,limit=1] item.components."minecraft:custom_model_data" set from storage gm4_furniture:temp trade_data[1]."minecraft:custom_model_data" +execute align xyz run data modify entity @e[type=item_display,tag=gm4_furniture.tool_prev,dx=0,dy=0,dz=0,limit=1] item.components."minecraft:custom_model_data" set from storage gm4_furniture:temp trade_data[-1]."minecraft:custom_model_data" + +# build the trades from trade_data +data modify storage gm4_furniture:temp trade_data set from storage gm4_furniture:temp trade_data[0].trades +data modify storage gm4_furniture:temp trades set value [] +function gm4_furniture:technical/furniture_station/build_trades/build_trade + +# change the trades +data modify entity @s Offers.Recipes set from storage gm4_furniture:temp trades + +# sounds +playsound ui.stonecutter.take_result block @a[distance=..16] ~ ~ ~ 1 0.45 + +# cleanup +data remove storage gm4_furniture:temp trades +data remove storage gm4_furniture:temp trade_data + +# store index for interaction entity +scoreboard players operation $store_index gm4_furniture_data = @s gm4_furniture_index diff --git a/gm4_furniture/data/gm4_furniture/function/technical/furniture_station/build_trades/resolve_trade.mcfunction b/gm4_furniture/data/gm4_furniture/function/technical/furniture_station/build_trades/resolve_trade.mcfunction new file mode 100644 index 0000000000..71332d1ff1 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/technical/furniture_station/build_trades/resolve_trade.mcfunction @@ -0,0 +1,7 @@ +# put furniture item in forceloaded shulker box to read its data +# @s = furniture station villager +# at @s +# run from technical/furniture_station/build_trades/build_trade with storage gm4_furniture:temp trade_data[0] +# $(furniture_id) = furniture's id + +$loot replace block 29999998 1 7134 container.0 loot gm4_furniture:furniture/$(furniture_id) diff --git a/gm4_furniture/data/gm4_furniture/function/technical/furniture_station/init_villager.mcfunction b/gm4_furniture/data/gm4_furniture/function/technical/furniture_station/init_villager.mcfunction new file mode 100644 index 0000000000..5c430bad2b --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/technical/furniture_station/init_villager.mcfunction @@ -0,0 +1,16 @@ +# spawn villager for furniture_station +# @s = new villager +# at varying locations depending on function, villager will be placed here +# run from place/furniture/furniture_station +# run from technical/furniture_station/activation/turn_active +# run from technical/furniture_station/lightning/revive_villager + +# set villager data +data merge entity @s {VillagerData:{level:99},Invulnerable:1b,Team:"gm4_furniture_nocol",Tags:["gm4_furniture","gm4_furniture.furniture_station","smithed.entity","smithed.strict","gm4_new_furniture"],CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.furniture_station","fallback":"Furniture Station"},[{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.furniture_station","fallback":"Furniture Station","font":"gm4:half_invert"},{"translate":"gui.gm4.furniture_station.offset","font":"gm4:container_gui"},{"translate":"container.gm4.furniture_station","fallback":"Furniture Station","font":"gm4:offscreen"},{"translate":"gui.gm4.furniture_station","fallback":"","font":"gm4:container_gui","color":"white"},{"text":" ","font":"gm4:half_invert"},{"translate":"container.gm4.furniture_station","fallback":"Furniture Station","font":"gm4:half_invert"},{"translate":"gui.gm4.furniture_station.offset","font":"gm4:container_gui"},{"translate":"container.gm4.furniture_station","fallback":"Furniture Station","font":"gm4_furniture:shift_name","color":"#404040"}]]}',NoAI:1b,Silent:1b,active_effects:[{id:"minecraft:invisibility",duration:-1,show_particles:0b},{id:"minecraft:resistance",amplifier:9,duration:-1,show_particles:0b}]} +scoreboard players add @s gm4_furniture_index 0 + +# villager is spawned 1000 blocks in the air so it is not visible the first tick +tp @s ~ ~-1000 ~ + +# build trades +execute at @s run function gm4_furniture:technical/furniture_station/build_trades/prep diff --git a/gm4_furniture/data/gm4_furniture/function/technical/furniture_station/lightning/detect.mcfunction b/gm4_furniture/data/gm4_furniture/function/technical/furniture_station/lightning/detect.mcfunction new file mode 100644 index 0000000000..e42a9ef524 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/technical/furniture_station/lightning/detect.mcfunction @@ -0,0 +1,6 @@ +# Target NoAI witch after lightning strike near player +# @s = player +# at @s +advancement revoke @s only gm4_furniture:lightning + +execute as @e[type=witch,nbt={NoAI:1b}] unless data entity @s Tags at @s if block ~ ~ ~ barrier run function gm4_furniture:technical/furniture_station/lightning/revive_villager diff --git a/gm4_furniture/data/gm4_furniture/function/technical/furniture_station/lightning/get_scores.mcfunction b/gm4_furniture/data/gm4_furniture/function/technical/furniture_station/lightning/get_scores.mcfunction new file mode 100644 index 0000000000..a66f87c030 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/technical/furniture_station/lightning/get_scores.mcfunction @@ -0,0 +1,7 @@ +# get scores to restore villager +# @s = furniture main interaction entity +# at @s +# runs from lightning/revive_villager + +scoreboard players operation $restore_id gm4_furniture_id = @s gm4_furniture_id +scoreboard players operation $restore_index gm4_furniture_data = @s gm4_furniture_index diff --git a/gm4_furniture/data/gm4_furniture/function/technical/furniture_station/lightning/revive_villager.mcfunction b/gm4_furniture/data/gm4_furniture/function/technical/furniture_station/lightning/revive_villager.mcfunction new file mode 100644 index 0000000000..0dd74aee7a --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/technical/furniture_station/lightning/revive_villager.mcfunction @@ -0,0 +1,16 @@ +# Replace witch with villager +# @s = witch that replaced the villager +# at @s +# runs from lightning/detect + +# grab id and index for the new villager +execute align xyz as @e[type=interaction,tag=gm4_furniture.furniture_station,tag=gm4_furniture.main,dx=0,dy=0,dz=0] run function gm4_furniture:technical/furniture_station/lightning/get_scores + +# spawn villager and set ids +execute positioned ~ ~1000 ~ summon villager run function gm4_furniture:technical/furniture_station/init_villager +scoreboard players operation @e[type=villager,tag=gm4_new_furniture,limit=1] gm4_furniture_index = $restore_index gm4_furniture_data +execute store result score @e[type=villager,tag=gm4_new_furniture] gm4_furniture_id run scoreboard players get $restore_id gm4_furniture_id + +# kill witch +tp @s ~ -10000 ~ +kill @s diff --git a/gm4_furniture/data/gm4_furniture/function/technical/paintbrush/remove_from_horse.mcfunction b/gm4_furniture/data/gm4_furniture/function/technical/paintbrush/remove_from_horse.mcfunction new file mode 100644 index 0000000000..c37a02daba --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/technical/paintbrush/remove_from_horse.mcfunction @@ -0,0 +1,8 @@ +# remove paintbrush from horse if it is found +# @s = horse wearing a paintbrush as horse armor +# at unspecified +# run from main + +loot spawn ~ ~1.6 ~ loot gm4_furniture:items/paintbrush +execute positioned ~ ~1.6 ~ run data modify entity @n[type=item,nbt={Item:{components:{"minecraft:custom_data":{gm4_furniture:paintbrush}}}},distance=..1] Item.components set from entity @s body_armor_item.components +item replace entity @s armor.body with air diff --git a/gm4_furniture/data/gm4_furniture/function/technical/paintbrush/return_from_horse.mcfunction b/gm4_furniture/data/gm4_furniture/function/technical/paintbrush/return_from_horse.mcfunction new file mode 100644 index 0000000000..3c311aba9a --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/technical/paintbrush/return_from_horse.mcfunction @@ -0,0 +1,8 @@ +# return paintbrush from horse to player +# @s = horse equipped with paintbrush +# at @s +# run from technical/paintbrush/used_on_horse + +item replace entity @p[tag=gm4_furniture_target] weapon.mainhand with air +item replace entity @p[tag=gm4_furniture_target] weapon.mainhand from entity @s armor.body +item replace entity @s armor.body with air diff --git a/gm4_furniture/data/gm4_furniture/function/technical/paintbrush/used_on_horse.mcfunction b/gm4_furniture/data/gm4_furniture/function/technical/paintbrush/used_on_horse.mcfunction new file mode 100644 index 0000000000..df494d1e68 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/technical/paintbrush/used_on_horse.mcfunction @@ -0,0 +1,8 @@ +# resolve paintbrush being equpped on a horse by right clicking +# @s = player that right clicked a horse with a paintbrush +# at @s +advancement revoke @s only gm4_furniture:use_paintbrush_on_horse +say t +tag @s add gm4_furniture_target +execute as @e[type=horse,distance=..12] if data entity @s body_armor_item.components."minecraft:custom_data"{gm4_furniture:"paintbrush"} run function gm4_furniture:technical/paintbrush/return_from_horse +tag @s remove gm4_furniture_target diff --git a/gm4_furniture/data/gm4_furniture/function/technical/relog.mcfunction b/gm4_furniture/data/gm4_furniture/function/technical/relog.mcfunction new file mode 100644 index 0000000000..78883c8dbd --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/technical/relog.mcfunction @@ -0,0 +1,10 @@ +# dismount other players sitting on this furniture +# @s = player relogging +# at @s +advancement revoke @s only gm4_furniture:relog + +tag @s add gm4_furniture_target +scoreboard players set $on_seat gm4_furniture_data 0 +execute on vehicle if entity @s[tag=gm4_furniture.seat] run scoreboard players set $on_seat gm4_furniture_data 1 +execute if score $on_seat gm4_furniture_data matches 1 align xyz as @a[dx=0,dy=0,dz=0,gamemode=!spectator,tag=!gm4_furniture_target] run ride @s dismount +tag @s remove gm4_furniture_target diff --git a/gm4_furniture/data/gm4_furniture/loot_table/crafting/furniture_station.json b/gm4_furniture/data/gm4_furniture/loot_table/crafting/furniture_station.json new file mode 100644 index 0000000000..f59f3637f9 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/loot_table/crafting/furniture_station.json @@ -0,0 +1,29 @@ +{ + "type": "minecraft:generic", + "pools": [ + { + "rolls": 8, + "entries": [ + { + "type": "minecraft:loot_table", + "value": "gm4:air" + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:loot_table", + "value": "gm4_furniture:items/furniture_station", + "functions": [ + { + "function": "minecraft:set_count", + "count": 1 + } + ] + } + ] + } + ] +} diff --git a/gm4_furniture/data/gm4_furniture/loot_table/crafting/paintbrush.json b/gm4_furniture/data/gm4_furniture/loot_table/crafting/paintbrush.json new file mode 100644 index 0000000000..316f409a1e --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/loot_table/crafting/paintbrush.json @@ -0,0 +1,29 @@ +{ + "type": "minecraft:generic", + "pools": [ + { + "rolls": 8, + "entries": [ + { + "type": "minecraft:loot_table", + "value": "gm4:air" + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:loot_table", + "value": "gm4_furniture:items/paintbrush", + "functions": [ + { + "function": "minecraft:set_count", + "count": 1 + } + ] + } + ] + } + ] +} diff --git a/gm4_furniture/data/gm4_furniture/loot_table/furniture/base.json b/gm4_furniture/data/gm4_furniture/loot_table/furniture/base.json new file mode 100644 index 0000000000..4cb7683a0f --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/loot_table/furniture/base.json @@ -0,0 +1,35 @@ +{ + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:player_head", + "functions": [ + { + "function": "minecraft:set_components", + "components": { + "minecraft:profile": { + "id": [ + -308545246, + 403555340, + 412409013, + -705374452 + ], + "properties": [ + { + "name": "test", + "value": "ewogICJ0aW1lc3RhbXAiIDogMTY5Mjg3NTg0Njc2OCwKICAicHJvZmlsZUlkIiA6ICJhNWZlYWViNDdhYjA0ZDZiYTk2ZjMyOGJjMDQ3MDZjMyIsCiAgInByb2ZpbGVOYW1lIiA6ICJYeW5kcmEyIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzMzMDU1YjMzMGVmZTY0ZTQxMmQxZDc4MTE5MTM5YzRkMTA3YjZlMDdkNmUyMGU5MTVkYWE5MjFlYTgzMDgwMiIsCiAgICAgICJtZXRhZGF0YSIgOiB7CiAgICAgICAgIm1vZGVsIiA6ICJzbGltIgogICAgICB9CiAgICB9CiAgfQp9", + "signature": "gm4_furniture" + } + ] + } + } + } + ] + } + ] + } + ] +} diff --git a/gm4_furniture/data/gm4_furniture/loot_table/furniture/furniture_station.json b/gm4_furniture/data/gm4_furniture/loot_table/furniture/furniture_station.json new file mode 100644 index 0000000000..1c2b12c831 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/loot_table/furniture/furniture_station.json @@ -0,0 +1,13 @@ +{ + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:loot_table", + "value": "gm4_furniture:items/furniture_station" + } + ] + } + ] +} diff --git a/gm4_furniture/data/gm4_furniture/loot_table/items/furniture_station.json b/gm4_furniture/data/gm4_furniture/loot_table/items/furniture_station.json new file mode 100644 index 0000000000..c2ca1c29f5 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/loot_table/items/furniture_station.json @@ -0,0 +1,52 @@ +{ + "type": "block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "item", + "name": "minecraft:player_head", + "functions": [ + { + "function": "minecraft:set_custom_data", + "tag": "{gm4_furniture:{furniture_id:\"furniture_station\"}}" + }, + { + "function": "minecraft:set_components", + "components": { + "minecraft:custom_model_data": "block/furniture/furniture_station", + "minecraft:profile": { + "id": [ + -308545246, + 403555340, + 412409013, + -705374452 + ], + "properties": [ + { + "name": "furniture_station", + "value": "ewogICJ0aW1lc3RhbXAiIDogMTY5Mjg3NTg0Njc2OCwKICAicHJvZmlsZUlkIiA6ICJhNWZlYWViNDdhYjA0ZDZiYTk2ZjMyOGJjMDQ3MDZjMyIsCiAgInByb2ZpbGVOYW1lIiA6ICJYeW5kcmEyIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzMzMDU1YjMzMGVmZTY0ZTQxMmQxZDc4MTE5MTM5YzRkMTA3YjZlMDdkNmUyMGU5MTVkYWE5MjFlYTgzMDgwMiIsCiAgICAgICJtZXRhZGF0YSIgOiB7CiAgICAgICAgIm1vZGVsIiA6ICJzbGltIgogICAgICB9CiAgICB9CiAgfQp9", + "signature": "gm4_furniture" + } + ] + } + } + }, + { + "function": "minecraft:set_name", + "entity": "this", + "target": "item_name", + "name": { + "translate": "item.gm4_furniture.furniture_station", + "fallback": "Furniture Station", + "color": "white", + "italic": false + } + } + ] + } + ] + } + ] +} diff --git a/gm4_furniture/data/gm4_furniture/loot_table/items/paintbrush.json b/gm4_furniture/data/gm4_furniture/loot_table/items/paintbrush.json new file mode 100644 index 0000000000..b356037a52 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/loot_table/items/paintbrush.json @@ -0,0 +1,71 @@ +{ + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:leather_horse_armor", + "functions": [ + { + "function": "minecraft:toggle_tooltips", + "toggles": { + "minecraft:attribute_modifiers": false + } + }, + { + "function": "minecraft:set_components", + "components": { + "minecraft:custom_model_data": "item/furniture/paintbrush" + } + }, + { + "function": "minecraft:set_custom_data", + "tag": "{gm4_furniture:paintbrush}" + }, + { + "function": "minecraft:set_name", + "entity": "this", + "target": "item_name", + "name": { + "translate": "item.gm4_furniture.paintbrush", + "fallback": "Paintbrush", + "color": "white", + "italic": false + } + }, + { + "function": "minecraft:set_lore", + "entity": "this", + "lore": [ + { + "keybind": "key.use", + "extra": [ + { + "translate": "item.gm4_furniture.paintbrush.description_1", + "fallback": " to paint furniture" + } + ], + "color": "dark_gray", + "italic": true + }, + { + "keybind": "key.attack", + "extra": [ + { + "translate": "item.gm4_furniture.paintbrush.description_2", + "fallback": " furniture to pick color" + } + ], + "color": "dark_gray", + "italic": true + } + ], + "mode": "append" + } + ] + } + ] + } + ] +} diff --git a/gm4_furniture/data/gm4_furniture/predicate/chance/animal_statue_sound.json b/gm4_furniture/data/gm4_furniture/predicate/chance/animal_statue_sound.json new file mode 100644 index 0000000000..a32336e2f6 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/predicate/chance/animal_statue_sound.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.02 +} diff --git a/gm4_furniture/data/gm4_furniture/predicate/holding_bucket.json b/gm4_furniture/data/gm4_furniture/predicate/holding_bucket.json new file mode 100644 index 0000000000..9ca538a0bd --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/predicate/holding_bucket.json @@ -0,0 +1,14 @@ +{ + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "equipment": { + "mainhand": { + "items": [ + "minecraft:bucket", + "minecraft:water_bucket" + ] + } + } + } +} diff --git a/gm4_furniture/data/gm4_furniture/predicate/holding_empty_bucket.json b/gm4_furniture/data/gm4_furniture/predicate/holding_empty_bucket.json new file mode 100644 index 0000000000..eb467d159a --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/predicate/holding_empty_bucket.json @@ -0,0 +1,13 @@ +{ + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "equipment": { + "mainhand": { + "items": [ + "minecraft:bucket" + ] + } + } + } +} diff --git a/gm4_furniture/data/gm4_furniture/predicate/holding_paintbrush.json b/gm4_furniture/data/gm4_furniture/predicate/holding_paintbrush.json new file mode 100644 index 0000000000..9e062a4c5d --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/predicate/holding_paintbrush.json @@ -0,0 +1,16 @@ +{ + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "equipment": { + "mainhand": { + "items": [ + "minecraft:leather_horse_armor" + ], + "components": { + "minecraft:custom_data": "{gm4_furniture:paintbrush}" + } + } + } + } +} diff --git a/gm4_furniture/data/gm4_furniture/predicate/holding_water_bucket.json b/gm4_furniture/data/gm4_furniture/predicate/holding_water_bucket.json new file mode 100644 index 0000000000..0cbf67e9a0 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/predicate/holding_water_bucket.json @@ -0,0 +1,13 @@ +{ + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "equipment": { + "mainhand": { + "items": [ + "minecraft:water_bucket" + ] + } + } + } +} diff --git a/gm4_furniture/data/gm4_furniture/predicate/is_sneaking.json b/gm4_furniture/data/gm4_furniture/predicate/is_sneaking.json new file mode 100644 index 0000000000..3c8a7e1e95 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/predicate/is_sneaking.json @@ -0,0 +1,9 @@ +{ + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_sneaking": true + } + } +} diff --git a/gm4_furniture/data/gm4_furniture/tags/block/furniture_blocks.json b/gm4_furniture/data/gm4_furniture/tags/block/furniture_blocks.json new file mode 100644 index 0000000000..b9c4edb442 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/tags/block/furniture_blocks.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:barrier", + "minecraft:light" + ] +} diff --git a/gm4_furniture/data/gm4_furniture/tags/block/player_heads.json b/gm4_furniture/data/gm4_furniture/tags/block/player_heads.json new file mode 100644 index 0000000000..389c902b9d --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/tags/block/player_heads.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:player_head", + "minecraft:player_wall_head" + ] +} diff --git a/gm4_furniture/data/gm4_furniture/template/function/crafting_template.mcfunction b/gm4_furniture/data/gm4_furniture/template/function/crafting_template.mcfunction new file mode 100644 index 0000000000..771c3539a3 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/template/function/crafting_template.mcfunction @@ -0,0 +1,12 @@ +# create storage to hold the trade data for furniture items in furniture station +# @s = unspecified +# at unspecified +# run from init +# this function was generated by generate.py + +{{ trades_init }} + +{{ trades_list }} + +{{ trades_append }} +data remove storage gm4_furniture:temp new_trades diff --git a/gm4_furniture/data/gm4_furniture/template/function/furniture_place_template.mcfunction b/gm4_furniture/data/gm4_furniture/template/function/furniture_place_template.mcfunction new file mode 100644 index 0000000000..7b92108e16 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/template/function/furniture_place_template.mcfunction @@ -0,0 +1,85 @@ +# try to place the furniture +# @s = player who placed the furniture player head +# at the center of the placed block rotated along axis to face towards player or away from the wall +# run from place/resolve_id +# this function was generated by generate.py + +# first perform checks to see if furniture fits where it was placed +scoreboard players set $valid_placement gm4_furniture_data 1 + +# set variables +scoreboard players set $dyable gm4_furniture_data {{ dyable }} +scoreboard players set $table gm4_furniture_data {{ table }} +scoreboard players set $custom_interaction gm4_furniture_data {{ custom_interaction }} +scoreboard players set $length gm4_furniture_data {{ length }} +scoreboard players set $depth gm4_furniture_data {{ depth }} +scoreboard players set $height gm4_furniture_data {{ height }} +scoreboard players set $diagonal_placement_allowed gm4_furniture_data {{ allow_diagonal_placement }} + +# check for diagonal placement +execute if score $diagonal_placement_allowed gm4_furniture_data matches 1 if block ~ ~ ~ player_head run function gm4_furniture:place/check_diagonal_placement +# store rotation in storage if a non-standard rotation was used +execute if score $rotation gm4_furniture_data matches 1 run data modify storage gm4_furniture:data Rotation set value [0.0f,0.0f] +execute if score $rotation gm4_furniture_data matches 2 run data modify storage gm4_furniture:data Rotation set value [90F,0F] +execute if score $rotation gm4_furniture_data matches 3 run data modify storage gm4_furniture:data Rotation set value [180F,0F] +execute if score $rotation gm4_furniture_data matches 4 run data modify storage gm4_furniture:data Rotation set value [-90F,0F] + +# wall only furniture must be placed on a wall +scoreboard players set $wall_only gm4_furniture_data {{ wall_only }} +execute if score $wall_only gm4_furniture_data matches 1 unless score $wall_placement gm4_furniture_data matches 1 run scoreboard players set $valid_placement gm4_furniture_data 0 + +# ceiling only furniture must be placed on a ceiling +scoreboard players set $ceiling_only gm4_furniture_data {{ ceiling_only }} +execute if score $ceiling_only gm4_furniture_data matches 1 if block ~ ~1 ~ #gm4:replaceable run scoreboard players set $valid_placement gm4_furniture_data 0 + +# wall placed furniture is not allowed to have depth, if any size is bigger than 1 check if there is space +scoreboard players set $placement_blocked gm4_furniture_data 0 +execute if score $valid_placement gm4_furniture_data matches 1 if score $length gm4_furniture_data matches 2.. run function gm4_furniture:place/check_size/length_prep +summon marker ~ ~ ~ {Tags:["gm4_furniture","gm4_furniture.marked_block","gm4_furniture.middle"]} +setblock ~ ~ ~ air +execute if score $valid_placement gm4_furniture_data matches 1 if score $depth gm4_furniture_data matches 2.. run function gm4_furniture:place/check_size/depth_prep +execute if score $valid_placement gm4_furniture_data matches 1 if score $height gm4_furniture_data matches 2.. run function gm4_furniture:place/check_size/height_prep +kill @e[type=marker,tag=gm4_furniture.middle,distance=..2,limit=1,sort=nearest] +execute if score $placement_blocked gm4_furniture_data matches 1 run scoreboard players set $valid_placement gm4_furniture_data 0 +execute if score $placement_blocked gm4_furniture_data matches 1 run kill @e[type=marker,tag=gm4_furniture.marked_block] + +# if placement is not valid cancel placement +execute if score $valid_placement gm4_furniture_data matches 0 run loot spawn ~ ~ ~ loot gm4_furniture:furniture/{{ category }}/{{ technical_id }} +execute if score $valid_placement gm4_furniture_data matches 0 run return 0 + +# spawn the furniture +summon item_display ~ ~-0.4999 ~ {Tags:["gm4_furniture","gm4_furniture.display","smithed.entity","smithed.strict","gm4_new_furniture"],CustomName:'"gm4_furniture_display.{{ category }}.{{ technical_id }}"',item:{id:"leather_horse_armor",count:1,components:{"minecraft:custom_data":{gm4_furniture:{furniture_id:"{{ category }}/{{ technical_id }}"}},"minecraft:custom_model_data":"{{ custom_model_data }}"}},item_display:head,Rotation:[0.0f,0.0f],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0.5f,0f],scale:[{{ scale }}f,{{ scale }}f,{{ scale }}f]}} +summon interaction ~-0.0001 ~-0.5001 ~-0.0001 {Tags:["gm4_furniture","gm4_furniture.interaction","gm4_furniture.main","smithed.entity","smithed.strict","gm4_new_furniture"],height:1.0003f,width:1.0003f,response:1b} +setblock ~ ~ ~ {{ block_id }} + +# add placement tags +execute if score $wall_only gm4_furniture_data matches 1 run tag @e[type=interaction,tag=gm4_new_furniture,distance=..8] add gm4_furniture.on_wall +execute if score $ceiling_only gm4_furniture_data matches 1 run tag @e[type=interaction,tag=gm4_new_furniture,distance=..8] add gm4_furniture.on_ceiling + +# spawn extensions if they exist +execute at @e[type=marker,tag=gm4_furniture.marked_block] run summon interaction ~-0.0001 ~-0.5001 ~-0.0001 {Tags:["gm4_furniture","gm4_furniture.interaction","gm4_furniture.additional","smithed.entity","smithed.strict","gm4_new_furniture"],height:1.0003f,width:1.0003f,response:1b} +execute at @e[type=marker,tag=gm4_furniture.marked_block] run setblock ~ ~ ~ {{ block_id }} + +# add custom interaction tags +execute if score $custom_interaction gm4_furniture_data matches 1 run tag @e[type=interaction,tag=gm4_new_furniture,distance=..8] add gm4_furniture.custom_interaction + +# if furniture is a table reduce interaction height +execute if score $table gm4_furniture_data matches 1 as @e[type=interaction,tag=gm4_new_furniture,distance=..8] run data modify entity @s height set value 1f + +# if furniture is dyable set to basic white +execute if score $dyable gm4_furniture_data matches 1 run data modify entity @e[type=item_display,distance=..2,tag=gm4_new_furniture,limit=1,sort=nearest] item.components."minecraft:dyed_color".rgb set from storage gm4_furniture:temp furniture_data.color +execute if score $dyable gm4_furniture_data matches 1 run tag @e[type=interaction,tag=gm4_new_furniture,distance=..8] add gm4_furniture.dyable + +# if furniture is sittable spawn sitting item_displays at appropiate locations and add tag +scoreboard players set @e[type=interaction,tag=gm4_new_furniture,distance=..8] gm4_furniture_sit_height {{ sittable }} + +# rotate furniture depending on rotation set by player (if rotation is 1 default rotation can be kept) +execute if score $rotation gm4_furniture_data matches 2.. as @e[tag=gm4_new_furniture,distance=..8] run data modify entity @s Rotation set from storage gm4_furniture:data Rotation + +# mark block as placed and set id +playsound minecraft:block.barrel.close block @a[distance=..6] ~ ~ ~ 1 1.6 +execute store result score @e[tag=gm4_new_furniture,distance=..8] gm4_furniture_id run scoreboard players add $next_id gm4_furniture_id 1 +tag @e[tag=gm4_new_furniture,distance=..8] remove gm4_new_furniture + +# cleanup +kill @e[type=marker,tag=gm4_furniture.marked_block] diff --git a/gm4_furniture/data/gm4_furniture/template/loot_table/furniture_item_template.json b/gm4_furniture/data/gm4_furniture/template/loot_table/furniture_item_template.json new file mode 100644 index 0000000000..cc3757bb85 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/template/loot_table/furniture_item_template.json @@ -0,0 +1,132 @@ +{ + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:loot_table", + "value": "gm4_furniture:furniture/base", + "functions": [ + { + "function": "minecraft:set_custom_data", + "tag": "{gm4_furniture:{furniture_id:\"{{ category }}/{{ technical_id }}\",color:16383998}}" + }, + { + "function": "minecraft:set_components", + "components": { + "minecraft:custom_model_data": "{{ custom_model_data }}" + } + }, + { + "function": "minecraft:set_name", + "entity": "this", + "target": "item_name", + "name": { + "translate": "block.gm4_furniture.{{ category }}.{{ technical_id }}", + "fallback": "{{ display_name }}", + "color": "white", + "italic": false + } + }, + { + "function": "minecraft:set_lore", + "entity": "this", + "mode": "append", + "lore": [ + [ + { + "translate": "item.gm4_furniture.paintbrush.color_lore", + "fallback": "Color: #", + "color": "gray", + "italic": false + }, + { + "nbt": "color_hex.red_1", + "storage": "gm4_furniture:temp" + }, + { + "nbt": "color_hex.red_2", + "storage": "gm4_furniture:temp" + }, + { + "nbt": "color_hex.green_1", + "storage": "gm4_furniture:temp" + }, + { + "nbt": "color_hex.green_2", + "storage": "gm4_furniture:temp" + }, + { + "nbt": "color_hex.blue_1", + "storage": "gm4_furniture:temp" + }, + { + "nbt": "color_hex.blue_2", + "storage": "gm4_furniture:temp" + } + ] + ], + "conditions": [ + { + "condition": "minecraft:value_check", + "value": { + "type": "minecraft:score", + "target": { + "type": "minecraft:fixed", + "name": "$furniture_color" + }, + "score": "gm4_furniture_data" + }, + "range": { + "min": 1 + } + } + ] + }, + { + "function": "minecraft:set_lore", + "entity": "this", + "mode": "append", + "lore": [ + [ + { + "translate": "item.gm4_furniture.paintbrush.color_lore", + "fallback": "Color: #", + "color": "gray", + "italic": false + }, + { + "text": "F9FFFE" + } + ] + ], + "conditions": [ + { + "condition": "minecraft:random_chance", + "chance": {{ dyable }} + }, + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:value_check", + "value": { + "type": "minecraft:score", + "target": { + "type": "minecraft:fixed", + "name": "$furniture_color" + }, + "score": "gm4_furniture_data" + }, + "range": { + "min": 1 + } + } + } + ] + } + ] + } + ] + } + ] +} diff --git a/gm4_furniture/generate.py b/gm4_furniture/generate.py new file mode 100644 index 0000000000..f60bb8e634 --- /dev/null +++ b/gm4_furniture/generate.py @@ -0,0 +1,158 @@ +from beet import Context, subproject, Cache +from pathlib import Path +from typing import Any +from gm4.utils import CSV +from gm4.plugins.resource_pack import ContainerGuiOptions, GuiFont + +def beet_default(ctx: Context): + + trades_init = [] + trades_list = [] + trades_append = [] + + furniture_sets = {} + + for path in sorted(Path('gm4_furniture/raw_data/furniture_set').glob('*.csv')): + furniture_sets[path.stem] = CSV.from_file(path) + + # loop through the different sheets, each sheet hold a different 'set_name' + # of furniture which need to be sorted in the furniture_station storage + for set_name,furniture_set in furniture_sets.items(): + + # call generate_trade_data to build the commands + new_trades_init,new_trades_list,new_trades_append = generate_trade_data(ctx, furniture_set, set_name) + # append the trade data to the total list + trades_init.append(new_trades_init) + trades_list.append(new_trades_list) + trades_append.append(new_trades_append) + + # read furniture data from this sheet, and then create the placement function + # and loot table for each furniture + generate_furniture_data(ctx, furniture_set, set_name) + + + # build the trade data commands + trades_init = '\n'.join(trades_init) + trades_list = '\n'.join(trades_list) + trades_append = '\n'.join(trades_append) + # build the trade data function from crafting_template + subproject_config = { + "data_pack": { + "load": [ + { + f"data/gm4_furniture/function/generate_trades.mcfunction": "data/gm4_furniture/template/function/crafting_template.mcfunction", + } + ], + "render": { + "function": "*" + } + }, + "meta": { + "trades_init": trades_init, + "trades_list": trades_list, + "trades_append": trades_append, + } + } + + ctx.require(subproject(subproject_config)) + + + +def generate_trade_data(ctx, furniture_set, set_name): + + # create a command to make an empty storage called new_trades that holds the set_name name and tool cmd + new_trades_init = "data modify storage gm4_furniture:temp new_trades." + set_name + " set value {\"minecraft:custom_model_data\":\"item/furniture/set_tool/" + set_name + "\",trades:[]}" + + # iterate over the rows in the spreadsheet and add the trade data for each furniture to the storage + new_trades_list = [] + for row in furniture_set: + new_trades_list.append("data modify storage gm4_furniture:temp new_trades." + set_name + ".trades append value {cost:[{id:" + row['craft_item_1_id'] + ",count:" + row['craft_item_1_count'] + "b},{id:" + row['craft_item_2_id'] + ",count:" + row['craft_item_2_count'] + "b}],result:{furniture_id:\"" + set_name + "/" + row['technical_id'] + "\",count:" + row['craft_result_count'] + "}}") + new_trades_list = '\n'.join(new_trades_list) + + # add command to append the main furniture_station storage with the newly created new_trades + new_trades_append = "data modify storage gm4_furniture:data furniture_station append from storage gm4_furniture:temp new_trades." + set_name + + # add index to model_data + ctx.meta["gm4"].setdefault("model_data", []).append({ + "item": "command_block", + "reference": "item/furniture/set_tool/" + set_name + }) + + # return the created commands + return(new_trades_init,new_trades_list,new_trades_append) + + + +def generate_furniture_data(ctx, furniture_set, set_name): + + # create furniture loot tables and placement functions for every furniture in this category + for row in furniture_set: + + # get custom_model_data index + custom_model_data = "block/furniture/" + set_name + "/" + row['technical_id'].replace(".","/") + + # add index to model_data + ctx.meta["gm4"].setdefault("model_data", []).append({ + "item": ["leather_horse_armor", "player_head"], + "reference": custom_model_data + }) + + # build placement function and loot table for furniture piece + subproject_config = { + "data_pack": { + "load": [ + { + f"data/gm4_furniture/loot_table/furniture/{set_name}/{row['technical_id']}.json": "data/gm4_furniture/template/loot_table/furniture_item_template.json", + f"data/gm4_furniture/function/place/furniture/{set_name}/{row['technical_id']}.mcfunction": "data/gm4_furniture/template/function/furniture_place_template.mcfunction", + } + ], + "render": { + "loot_table": "*", + "function": "*" + } + }, + "meta": { + "category": set_name, + "technical_id": row['technical_id'], + "display_name": row['display_name'], + "custom_model_data": custom_model_data, + "block_id": row['block_id'], + "sittable": row['sittable'], + "wall_only": str(int(row['wall_only'] == 'TRUE')), + "ceiling_only": str(int(row['ceiling_only'] == 'TRUE')), + "dyable": str(int(row['dyable'] == 'TRUE')), + "length": row['length'], + "depth": row['depth'], + "height": row['height'], + "table": str(int(row['table'] == 'TRUE')), + "scale": row['scale'], + "allow_diagonal_placement": str(int(row['diag'] == 'TRUE')), + "custom_interaction": str(int(row['custom'] == 'TRUE')) + } + } + + ctx.require(subproject(subproject_config)) + + +class FurnitureStationGui(ContainerGuiOptions): + container = "furniture_station" + + def process(self, config: GuiFont, counter_cache: Cache) -> tuple[str, list[dict[str, Any]]]: + u1 = self.next_unicode(counter_cache) + u2 = self.next_unicode(counter_cache) + return "\u8020"+u1+"\u8100"+u2+"\u8021", [ + { + "type": "bitmap", + "file": config.texture+"_1.png", + "ascent": 20, + "height": 256, + "chars": [u1] + }, + { + "type": "bitmap", + "file": config.texture+"_2.png", + "ascent": 20, + "height": 256, + "chars": [u2] + } + ] diff --git a/gm4_furniture/raw_data/furniture_set/cloth_set.csv b/gm4_furniture/raw_data/furniture_set/cloth_set.csv new file mode 100644 index 0000000000..fe31bd1732 --- /dev/null +++ b/gm4_furniture/raw_data/furniture_set/cloth_set.csv @@ -0,0 +1,3 @@ +craft_item_1_id,craft_item_1_count,craft_item_2_id,craft_item_2_count,craft_result_count,technical_id,display_name,block_id,length,depth,height,sittable,dyable,wall_only,ceiling_only,table,scale,diag,custom +candle,1,paper,4,1,paper_lantern_1,Paper Lantern,light[level=15],1,1,1,0,TRUE,FALSE,TRUE,FALSE,1,FALSE,FALSE +stick,1,white_wool,6,1,horizontal_flag_1,Long Flag,light[level=0],1,1,1,0,TRUE,FALSE,FALSE,FALSE,1,TRUE,FALSE \ No newline at end of file diff --git a/gm4_furniture/raw_data/furniture_set/metal_set.csv b/gm4_furniture/raw_data/furniture_set/metal_set.csv new file mode 100644 index 0000000000..6e4193ac1a --- /dev/null +++ b/gm4_furniture/raw_data/furniture_set/metal_set.csv @@ -0,0 +1,5 @@ +craft_item_1_id,craft_item_1_count,craft_item_2_id,craft_item_2_count,craft_result_count,technical_id,display_name,block_id,length,depth,height,sittable,dyable,wall_only,ceiling_only,table,scale,diag,custom +iron_ingot,3,candle,3,1,iron.3_candelabra_1,Iron Candelabra,light[level=13],1,1,1,0,TRUE,FALSE,FALSE,FALSE,1,FALSE,FALSE +iron_ingot,3,candle,1,1,iron.lantern_1,Iron Lantern,light[level=10],1,1,1,0,FALSE,FALSE,FALSE,FALSE,1,TRUE,FALSE +gold_ingot,3,candle,3,1,gold.3_candelabra_1,Golden Candelabra,light[level=13],1,1,1,0,TRUE,FALSE,FALSE,FALSE,1,FALSE,FALSE +gold_ingot,8,air,0,1,gold.skull_1,Golden Skull,light[level=0],1,1,1,0,FALSE,FALSE,FALSE,FALSE,1,TRUE,FALSE \ No newline at end of file diff --git a/gm4_furniture/raw_data/furniture_set/stone_set.csv b/gm4_furniture/raw_data/furniture_set/stone_set.csv new file mode 100644 index 0000000000..1094c81a6e --- /dev/null +++ b/gm4_furniture/raw_data/furniture_set/stone_set.csv @@ -0,0 +1,6 @@ +craft_item_1_id,craft_item_1_count,craft_item_2_id,craft_item_2_count,craft_result_count,technical_id,display_name,block_id,length,depth,height,sittable,dyable,wall_only,ceiling_only,table,scale,diag,custom +stone_bricks,8,tadpole_bucket,1,1,statues.frog,Stone Frog Statue,barrier,1,1,1,0,FALSE,FALSE,FALSE,FALSE,1,FALSE,TRUE +stone_bricks,8,bee_nest,1,1,statues.bee,Stone Bee Statue,barrier,1,1,1,0,FALSE,FALSE,FALSE,FALSE,1,FALSE,TRUE +stone_bricks,8,pufferfish_bucket,1,1,statues.pufferfish,Stone Pufferfish Statue,barrier,1,1,1,0,FALSE,FALSE,FALSE,FALSE,1,FALSE,TRUE +stone_bricks,8,axolotl_bucket,1,1,statues.axolotl,Stone Axolotl Statue,barrier,1,1,1,0,FALSE,FALSE,FALSE,FALSE,1,FALSE,TRUE +stone_bricks,8,jukebox,1,1,statues.allay,Stone Allay Statue,barrier,1,1,1,0,FALSE,FALSE,FALSE,FALSE,1,FALSE,TRUE \ No newline at end of file diff --git a/gm4_furniture/raw_data/furniture_set/wood_set.csv b/gm4_furniture/raw_data/furniture_set/wood_set.csv new file mode 100644 index 0000000000..c44d2485d6 --- /dev/null +++ b/gm4_furniture/raw_data/furniture_set/wood_set.csv @@ -0,0 +1,13 @@ +craft_item_1_id,craft_item_1_count,craft_item_2_id,craft_item_2_count,craft_result_count,technical_id,display_name,block_id,length,depth,height,sittable,dyable,wall_only,ceiling_only,table,scale,diag,custom +oak_planks,4,air,0,1,plain.1x1_table_1,Small Oak Table,barrier,1,1,1,0,FALSE,FALSE,FALSE,TRUE,1,FALSE,FALSE +oak_planks,16,air,0,1,plain.2x2_table_1,Large Oak Table,barrier,2,2,1,0,FALSE,FALSE,FALSE,TRUE,1,FALSE,FALSE +oak_planks,12,air,0,1,plain.bench_1,Oak Bench,barrier,3,1,1,50,FALSE,FALSE,FALSE,FALSE,1,FALSE,FALSE +oak_planks,4,air,0,1,plain.chair_1,Oak Chair,barrier,1,1,1,50,FALSE,FALSE,FALSE,FALSE,1,FALSE,FALSE +oak_planks,4,air,0,1,plain.stool_1,Oak Stool,barrier,1,1,1,50,FALSE,FALSE,FALSE,FALSE,1,FALSE,FALSE +oak_planks,1,candle,1,1,plain.light_1,Oak Candle Holder,light[level=15],1,1,1,0,TRUE,FALSE,FALSE,FALSE,1,FALSE,FALSE +dark_oak_planks,4,white_wool,1,1,fancy.1x1_table_1,Small Dark Oak Table,barrier,1,1,1,0,TRUE,FALSE,FALSE,TRUE,1,FALSE,FALSE +dark_oak_planks,16,white_wool,4,1,fancy.2x2_table_1,Large Dark Oak Table,barrier,2,2,1,0,TRUE,FALSE,FALSE,TRUE,1,FALSE,FALSE +dark_oak_planks,12,white_wool,3,1,fancy.bench_1,Dark Oak Bench,barrier,3,1,1,50,TRUE,FALSE,FALSE,FALSE,1,FALSE,FALSE +dark_oak_planks,4,white_wool,1,1,fancy.chair_1,Dark Oak Chair,barrier,1,1,1,50,TRUE,FALSE,FALSE,FALSE,1,FALSE,FALSE +dark_oak_planks,4,white_wool,1,1,fancy.stool_1,Dark Oak Stool,barrier,1,1,1,50,TRUE,FALSE,FALSE,FALSE,1,FALSE,FALSE +dark_oak_planks,1,candle,1,1,fancy.light_1,Dark Oak Lamp Shade,light[level=12],1,1,1,0,TRUE,FALSE,FALSE,FALSE,1,FALSE,FALSE \ No newline at end of file