diff --git a/gm4/modeldata_registry.json b/gm4/modeldata_registry.json index 430a974d53..e924678542 100644 --- a/gm4/modeldata_registry.json +++ b/gm4/modeldata_registry.json @@ -715,7 +715,6 @@ "gm4_animi_shamir:shamir/animi": 124 }, "golden_chestplate": { - "gm4_scuba_gear:item/scuba_tank": 1, "gm4_zauber_cauldrons:item/zauber_armor/health_boost": 2, "gm4_zauber_cauldrons:item/zauber_armor/attack_boost": 3, "gm4_zauber_cauldrons:item/zauber_armor/speed_boost": 4, @@ -1025,7 +1024,6 @@ }, "leather_boots": { "gm4_boots_of_ostara:item/boots_of_ostara": 1, - "gm4_scuba_gear:item/flippers": 2, "gm4_boots_of_ostara:gui/advancement/boots_of_ostara": 3, "gm4_boots_of_ostara:item/flippers_of_ostara": 4, "gm4_boots_of_ostara:guidebook_icon/boots_of_ostara": 5, @@ -1050,6 +1048,7 @@ "gm4_metallurgy:shamir/defuse": 106, "gm4_animi_shamir:shamir/animi": 124 }, + "leather_horse_armor": {}, "leather_leggings": { "gm4_washing_tanks:guidebook_icon/washing_tanks": 1, "gm4_weighted_armour:shamir/helious": 103, @@ -1346,7 +1345,6 @@ "gm4_heart_canisters:gui/advancement/heart_canisters_max": 6, "gm4_heart_canisters:item/heart_canister_tier_1": 7, "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_zauber_cauldrons:item/crystal/speed": 12, "gm4_zauber_cauldrons:item/crystal/regeneration": 13, @@ -1372,7 +1370,6 @@ "gm4_tnt_landmines:item/tnt_landmine_crafting_table": 45, "gm4_tnt_landmines:item/tnt_landmine_netherrack": 46, "gm4_tnt_landmines:item/tnt_landmine_invisible": 47, - "gm4_scuba_gear:gui/advancement/scuba_gear": 48, "gm4_metallurgy:gui/advancement/metallurgy_blast_ore": 49, "gm4_metallurgy:gui/advancement/metallurgy_cast": 50, "gm4_relocators:gui/advancement/relocators": 51, diff --git a/gm4/skin_cache.json b/gm4/skin_cache.json index d20053013e..0a99d01785 100644 --- a/gm4/skin_cache.json +++ b/gm4/skin_cache.json @@ -222,24 +222,24 @@ }, "gm4_standard_liquids:liquids/beetroot_soup": { "uuid": [ - 2130271109, - -1138636291, - -1614258018, - -889714317 + 76960881, + 2041792394, + -1393666914, + 2103407100 ], - "value": "eyJ0aW1lc3RhbXAiOjE0OTgxODE5OTY3NDIsInByb2ZpbGVJZCI6IjIyODQ0MGU4NzJjODRkYzc4MzQ4YjI3NzU4NTAzNGM4IiwicHJvZmlsZU5hbWUiOiJTcGVjaWFsQnVpbGRlcjMyIiwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzRkOTM0ZWRiMzRjM2IxNmRlZWNmMjRkZjhmMTc1NTQyZDAxZWMwNTJmZWZkOTEzNjI4MWJiNmE2Y2E3ZDdkIn19fQ==", - "hash": "0b525ed39dd0d1843e12571b0a61afaa8c1dd61d", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTI0MjRjYjQxNDY2ZmFlNjk5ZjgyNjk2NTJkOGQxYjBjZjgzZjBkMmFkZDBkNjUzZjA5ZTlkMzFiMmY5YTk0OCd9fX0=", + "hash": "3bbbd041e4ddc003e7f6447fad8f2a2b9391a0ef", "parent_module": "gm4_liquid_tanks" }, "gm4_standard_liquids:liquids/experience": { "uuid": [ - -1627825275, - -1138636289, - -1614258018, - -889714317 + -745806368, + -1045543603, + -1458236618, + 515537139 ], - "value": "eyJ0aW1lc3RhbXAiOjE0MjkzNDc3NzA2NjksInByb2ZpbGVJZCI6IjZjZjU0M2E2MGVlOTQzN2NiNjE0YzdiOTRkZTVjNWI3IiwicHJvZmlsZU5hbWUiOiJNcnNNYWtpc3RlaW4iLCJpc1B1YmxpYyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzNlYTI4YzJkYzZjOWQyMjdhNWNmNDM1MTI5ZDgwNjVkMzJiYjY0NDk5N2QzNTllNzQ4YTRjYzE0NWEzNjlhIn19fQ==", - "hash": "f134750e86467a561efbf6596eac6ef6c2250e9e", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNGNiMGNmY2FjMDJiM2E3ZjZkZWI4N2E4YWZjZDgxYTUyMzdlMWNlNWVlMWI5NWMzNWVhM2U3NDkxMDNiNjc0ZCd9fX0=", + "hash": "d3d8dcc50faf62ea44e33377f860f2fb923be0bb", "parent_module": "gm4_liquid_tanks" }, "gm4_standard_liquids:liquids/glow_ink": { @@ -255,13 +255,13 @@ }, "gm4_standard_liquids:liquids/honey": { "uuid": [ - -782351782, - 542655898, - -1075183804, - 1293758076 + 1093018679, + -1629534446, + -2052300824, + -1187268546 ], - "value": "eyJ0aW1lc3RhbXAiOjE1ODYwNDAzNDcxNzIsInByb2ZpbGVJZCI6IjIyODQ0MGU4NzJjODRkYzc4MzQ4YjI3NzU4NTAzNGM4IiwicHJvZmlsZU5hbWUiOiJTcGVjaWFsQnVpbGRlcjMyIiwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2QyZDBlZDU3ZGQwNWYxMGExNTk5ZDFkNWY2Mzg0ZGMxYzgzNWM5ZWVmYWQ5MDFjNTdkZDkxZDg1YWM5MWFjZWIifX19", - "hash": "bf4bf3d81779e1730e814155fea4ceb2e2890f4b", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjhhYzUxZTBjNWM5MWNmOGNlN2RiMjAyYmY5MWIxNmFkOTQ3NDkwODU0YWM3MjUyMjNmMGIwNDU0MGE1NWYyMCd9fX0=", + "hash": "ea675cd17ceb3e5913936bd1fb39b9a239ee7f22", "parent_module": "gm4_liquid_tanks" }, "gm4_standard_liquids:liquids/ink": { @@ -277,68 +277,68 @@ }, "gm4_standard_liquids:liquids/lava": { "uuid": [ - 2130271109, - -1138636289, - -1614258018, - -889714317 + 2084309355, + 294864792, + -1353120517, + -2139917050 ], - "value": "eyJ0aW1lc3RhbXAiOjE0MjkzNDM2NDg0MTcsInByb2ZpbGVJZCI6IjZjZjU0M2E2MGVlOTQzN2NiNjE0YzdiOTRkZTVjNWI3IiwicHJvZmlsZU5hbWUiOiJNcnNNYWtpc3RlaW4iLCJpc1B1YmxpYyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2YyNWJmOTlmYjdlMmQwZTFhZDQ1MDgyNGUyMmQzNDllNjc3Zjk2YzNkOWFmZjcyMTVlNDdiNjU3N2EzMmI4YyJ9fX0=", - "hash": "588d85e79b4830887785c6e1aa2f8973c1d6d61a", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvN2M5OTkzMzI2M2ZjYmNhOGJlYTI1Yjc1MjU1Y2Y4M2E3NTc4MWZiOTkxY2RlYTBmODA0M2RhZjQzMTgxODE1MSd9fX0=", + "hash": "2faed9fa93d0cfd9286096e7965571c1adf9d4d6", "parent_module": "gm4_liquid_tanks" }, "gm4_standard_liquids:liquids/milk": { "uuid": [ - 2130271365, - -1138636289, - -1614258018, - -889714317 + -1652105090, + -613725561, + -1717347128, + 1926135093 ], - "value": "eyJ0aW1lc3RhbXAiOjE0MjkzNDQxMzEyNjcsInByb2ZpbGVJZCI6IjZjZjU0M2E2MGVlOTQzN2NiNjE0YzdiOTRkZTVjNWI3IiwicHJvZmlsZU5hbWUiOiJNcnNNYWtpc3RlaW4iLCJpc1B1YmxpYyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2ExYTk2M2I1ZjYwM2IxODYyY2VhZjg1MGYxN2QzNWFhMjcxMzBiODQ2NjY0ZDJkYTlmZWRkYTMzMDQwIn19fQ==", - "hash": "eafb08939b532be53f9c352c67ad83c78eaeaac5", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDMyODNiOTRjYzhiYWM3YTVkNDQ4ZDUyMTQ0MmFkNDY1MjY1MjM1NzYzYTNmYTJhMGIyODdiMGRiOTIyOWQ4Yyd9fX0=", + "hash": "70a5421e48597699dd6284381b07e81e978ff42a", "parent_module": "gm4_liquid_tanks" }, "gm4_standard_liquids:liquids/mushroom_stew": { "uuid": [ - 2130271109, - -1138636289, - -1614258018, - -889714316 + -851826350, + -819969624, + -1341610165, + -2102026501 ], - "value": "eyJ0aW1lc3RhbXAiOjE0MjkzNDYwMDU2MjksInByb2ZpbGVJZCI6IjZjZjU0M2E2MGVlOTQzN2NiNjE0YzdiOTRkZTVjNWI3IiwicHJvZmlsZU5hbWUiOiJNcnNNYWtpc3RlaW4iLCJpc1B1YmxpYyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2VmZTg5ZjEyZjA2N2ViMzlmYTlkZGY4N2U3ZmZiYmRlZmZjZDAyZjVjMThjYjIyNjFkMGY0NDk4YjgxYjQxNyJ9fX0=", - "hash": "141b57ceeec8fde8aed9b3768cd36fde5fc9afed", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMmVlMmMwMjBiYzg2NTBhYWFlN2NkYzhjY2VmYjRhYWI3ZGRkOGNlMjhlYTlmOWJkMDQ0OGIxMWY0Y2M1OGRiZCd9fX0=", + "hash": "ab5933443964922f4cfcaf186ba2a62981a243cf", "parent_module": "gm4_liquid_tanks" }, "gm4_standard_liquids:liquids/powder_snow": { "uuid": [ - 2130271365, - -1134446289, - -1614258018, - -889714317 + 793744989, + -1949546447, + -1499784649, + 2041283293 ], - "value": "ewogICJ0aW1lc3RhbXAiIDogMTYyNzMyNzg2NzMwNSwKICAicHJvZmlsZUlkIiA6ICIyMjg0NDBlODcyYzg0ZGM3ODM0OGIyNzc1ODUwMzRjOCIsCiAgInByb2ZpbGVOYW1lIiA6ICJTcGVjaWFsQnVpbGRlcjMyIiwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2I0YTVhMDQxZTI0YWQ5NWY5ZmFkYTVhZTZiNjc1ZjBhYmU4NWI3OGIxZDhmNGUxNTI5Mzg1NDJjZDE2ZWY5YzUiCiAgICB9CiAgfQp9", - "hash": "8b62fad2106a97540a63ef6a3a727606e2d98050", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDBiYWVkOWYwYjJhOGM3NTM0YTk0MTY1MjAzYThkZjJlY2JmY2Q2ZDNmZmM2ZjY3ZmVkZTNkYTQ2YzZlMzA2ZSd9fX0=", + "hash": "e01a0deac23275e98e459e5d8b721c4819574d88", "parent_module": "gm4_liquid_tanks" }, "gm4_standard_liquids:liquids/rabbit_stew": { "uuid": [ - 2130271365, - -1138636289, - -1614258019, - -889714317 + -898957329, + 1308640890, + -1080612430, + 1170134979 ], - "value": "eyJ0aW1lc3RhbXAiOjE0MjkzNDYwNjgzODksInByb2ZpbGVJZCI6IjZjZjU0M2E2MGVlOTQzN2NiNjE0YzdiOTRkZTVjNWI3IiwicHJvZmlsZU5hbWUiOiJNcnNNYWtpc3RlaW4iLCJpc1B1YmxpYyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2UwNTJkZWRmN2ZmNDk1MDQ3MjNmMDRhZGViMzRmNjlkYTI4OTJhMmI3YzM3NTRmZWZhYjBkNzgxODg1NzVjIn19fQ==", - "hash": "910753ae085f1790cb1f2695d2cd6e683663bdf5", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTA1OWJlZWJmOTVlZTQzYzc1NDcyOWZlNmYzYWU5OWUxYzYwZTQ2ODJjNGUyZDZjZDJiYTQwNzBjZTlhZjBlOCd9fX0=", + "hash": "f3b45e34be5a61311f53ec938b90cb8956d522de", "parent_module": "gm4_liquid_tanks" }, "gm4_standard_liquids:liquids/water": { "uuid": [ - 2130271109, - -1138570753, - -1614258018, - -889714317 + -2087209360, + 1395149785, + -1312941628, + -799708652 ], - "value": "eyJ0aW1lc3RhbXAiOjE0MjkzNDQ4ODY3MTgsInByb2ZpbGVJZCI6IjZjZjU0M2E2MGVlOTQzN2NiNjE0YzdiOTRkZTVjNWI3IiwicHJvZmlsZU5hbWUiOiJNcnNNYWtpc3RlaW4iLCJpc1B1YmxpYyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzYzMWY5MjQwYjE2NmJhOGViMWY2YmU0MzVjZGI3NDg2YTM5YzQzYTdjMWQzZDM2ZTQ5NzgzYWU0NTI2ZDNiNDMifX19", - "hash": "1694f345f7b9d5a71e35c6eb93e7719eaa6ca0e1", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTllNDg5MGZkZjNiMTZlYjE2NjZlMDA5NmE2YjA0MDhiNTY2YzE4MzRiZjMyNTcwYjFkZWIxNjU4MzczOWUxZSd9fX0=", + "hash": "04b5cd8c45121fe3d18037c26863f84b10967124", "parent_module": "gm4_liquid_tanks" }, "gm4_liquid_tanks:liquid_tank": { @@ -497,189 +497,189 @@ }, "gm4_potion_liquids:liquids/fire_resistance": { "uuid": [ - 2130271109, - -1138636321, - -1614258018, - -889714317 + 2130832668, + -69843189, + -1628986667, + -1615730322 ], - "value": "eyJ0aW1lc3RhbXAiOjE0MjkzNDY4MTUxNTgsInByb2ZpbGVJZCI6IjZjZjU0M2E2MGVlOTQzN2NiNjE0YzdiOTRkZTVjNWI3IiwicHJvZmlsZU5hbWUiOiJNcnNNYWtpc3RlaW4iLCJpc1B1YmxpYyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2M2NjE2NmM2MzA3NTE5NTEyMzVjNDRmNjNlYWViZTgzNDYyMWU1MWNhOWI3NmEyODc2ODA4YThjMzAyMGE0In19fQ==", - "hash": "6732c502a669d62686b0431dcda4d1f9c9f50ad3", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDI5ZmE3YjFmNDZhMjgzNjgwOTlmMjA4ZmU5NGQ3NzY2NzdkZTUyZWNkMjY0YjhmOTI4MzdjODQ5ZDZmN2NjNCd9fX0=", + "hash": "2398626d300f895b4d62aabfefae73e77370be52", "parent_module": "gm4_potion_liquids" }, "gm4_potion_liquids:liquids/floating": { "uuid": [ - 2117688197, - -1138636289, - -1614258018, - -889714317 + 32752701, + 1442140104, + -2121835220, + 212039422 ], - "value": "eyJ0aW1lc3RhbXAiOjE0OTkwMjE1NzczMzQsInByb2ZpbGVJZCI6IjIyODQ0MGU4NzJjODRkYzc4MzQ4YjI3NzU4NTAzNGM4IiwicHJvZmlsZU5hbWUiOiJTcGVjaWFsQnVpbGRlcjMyIiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS82YzNiYjZjMjM2YzdjZTZiMzA1YWQ4M2QwMzBmOGJlNmVmOGExMzFkNjVhMTBiZmIxZWQ3OTk0OGY0NWZkMCJ9fX0=", - "hash": "ada74ae3cffd6b22ee31b6408ddfa150c7d9259b", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYmZiNjAxOGVjNzM4NWU4YTE5MTE3OWRjOWE1M2Y4MGY5NGQ4MjIzZWQ5YWEwNDgwMDcyNzdiNzUzMGNlZjgwZCd9fX0=", + "hash": "c54b1eb1be2154c9ae542ee87bfd1efa101457c6", "parent_module": "gm4_potion_liquids" }, "gm4_potion_liquids:liquids/harming": { "uuid": [ - 2130271109, - -1138638081, - -1614258018, - -889714317 + -1211340845, + -910802362, + -2144368484, + -211827793 ], - "value": "eyJ0aW1lc3RhbXAiOjE0MjkzNDcxNjQyNDAsInByb2ZpbGVJZCI6IjZjZjU0M2E2MGVlOTQzN2NiNjE0YzdiOTRkZTVjNWI3IiwicHJvZmlsZU5hbWUiOiJNcnNNYWtpc3RlaW4iLCJpc1B1YmxpYyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzI2MjkyYmYwNzk0N2IxNjQ3ZmFlNGJjYjc2NzVmOWNhZGJiZDY1MDczMjIzNDM0M2RiZGY2YzA0MTRkYiJ9fX0=", - "hash": "05c15f4de45fbb21d7955ee586aaeb12d49c85ba", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvM2Y4MGUyMjc1N2UxZTUzM2RkMGI3ZTRlZTU2YTE3OWJlYmJlN2RmODE4NzRkMzVmNTkyZDQ1YmM1YWZiNjRhMyd9fX0=", + "hash": "c2f87b8817311d26cbd31b1e064105ba98ccf71a", "parent_module": "gm4_potion_liquids" }, "gm4_potion_liquids:liquids/healing": { "uuid": [ - 2130271109, - -1138636289, - -1614258018, - -889714315 + -575407116, + -2057942971, + -1081937529, + 601872280 ], - "value": "eyJ0aW1lc3RhbXAiOjE0MjkzNDYzOTQ3MTEsInByb2ZpbGVJZCI6IjZjZjU0M2E2MGVlOTQzN2NiNjE0YzdiOTRkZTVjNWI3IiwicHJvZmlsZU5hbWUiOiJNcnNNYWtpc3RlaW4iLCJpc1B1YmxpYyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzliYTZjZjQzODg0YjJjZmMyNDU0NGNmYTVmNmZjNzViY2M3OGE2YWM1NjhmYTE5OGY2NDVkZDkxNWM4Y2FlMzcifX19", - "hash": "f220279aa6f99f65812f6a902bcba8960c5c972f", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMWVkZDU2OWQ1MTM2YThlNzRjM2IyZTliYjdjZTI4NDk4OTFlNTc2ZGFkNjkyNjQwNWNhY2I4ODdhNjk5NWJmNCd9fX0=", + "hash": "73a0fdf1bfec33b5ab2fe0621ba35a08b988c749", "parent_module": "gm4_potion_liquids" }, "gm4_potion_liquids:liquids/invisibility": { "uuid": [ - 2130271109, - -1138636289, - -1614258029, - -889714317 + -332185350, + 1698318266, + -1646469451, + 1142033314 ], - "value": "eyJ0aW1lc3RhbXAiOjE0MjkzNDcwODQ2MTQsInByb2ZpbGVJZCI6IjZjZjU0M2E2MGVlOTQzN2NiNjE0YzdiOTRkZTVjNWI3IiwicHJvZmlsZU5hbWUiOiJNcnNNYWtpc3RlaW4iLCJpc1B1YmxpYyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2YxOWUyNGI1N2UxN2I1NGYzZmFhOTcxMGM4ZGZjNTUxMTRhNzE5YjE0YWYwOWE0ZDFjMDRiMTY2MTQ0ZWY2YiJ9fX0=", - "hash": "db79e0e780d1c4bbcba5139a277d4d48e91864f8", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjk5OTU0NTAxOTY5MDQ3ZjE4NjQ3NjFhN2Q4ZWFiNzJmMjIwM2JiYzBmZGFiY2FiNjJjOWUxZDU3M2YxN2ZlOSd9fX0=", + "hash": "684edcc54546a42d94e7775ceec3ce2ea37f6ac6", "parent_module": "gm4_potion_liquids" }, "gm4_potion_liquids:liquids/leaping": { "uuid": [ - 2130271109, - -1407071745, - -1614258018, - -889714317 + 822748764, + -913751735, + -2104548355, + 1076203816 ], - "value": "eyJ0aW1lc3RhbXAiOjE0MjkzNDY5NDYzMjksInByb2ZpbGVJZCI6IjZjZjU0M2E2MGVlOTQzN2NiNjE0YzdiOTRkZTVjNWI3IiwicHJvZmlsZU5hbWUiOiJNcnNNYWtpc3RlaW4iLCJpc1B1YmxpYyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2RjMzE2NmFkZTk1NTA2Y2VmZDhjNTdiMWVlNWY4MTNiNTNhOWZjMTliYTEzNDhjYTE2NmE2YjBjZmEwMzAifX19", - "hash": "1bc7967fa145ed25195c8741146123eb13da1cf4", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMjJmZTE2ZWFjMDFhNjIyZmE0YTg0ZTYwMDM5MzBiY2E1ZjBiZmZhOThhYTMxOWJmMGRlN2U4YmQ4ZjMwYjAwZid9fX0=", + "hash": "58419073ee28986d29008da1d7bd8d342c34f8e8", "parent_module": "gm4_potion_liquids" }, "gm4_potion_liquids:liquids/luck": { "uuid": [ - 579092712, - -1832366649, - -2142784905, - 1481188552 + 1998983973, + 799228293, + -1480289059, + -30160010 ], - "value": "eyJ0aW1lc3RhbXAiOjE1NTE4MjQwMTMxMzAsInByb2ZpbGVJZCI6IjIyODQ0MGU4NzJjODRkYzc4MzQ4YjI3NzU4NTAzNGM4IiwicHJvZmlsZU5hbWUiOiJTcGVjaWFsQnVpbGRlcjMyIiwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzg5NGY2ZTRkZmU4Y2E2ZjVjOTg5YjZlNjAyMWM4YTgzMjQzYjgzYTdkYzI1OWI4NmI2ZGNiZmE0OGMxOTQ3ZGEifX19", - "hash": "9ceb508d017553e5ef1fd90251c1b7dc38efd589", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYTg4ODJmMmQzNzM2YmM5YWYxMTMxMDQxYTg3OTc4ZDg1NGUxNTk1MjE1ODU5YjEwM2Q3ZjY0M2U1ZTZiMTk5OCd9fX0=", + "hash": "be8cd5206b554f01bb1ddbe3a3296f1e076bf81a", "parent_module": "gm4_potion_liquids" }, "gm4_potion_liquids:liquids/night_vision": { "uuid": [ - 2130271117, - -1138636289, - -1614258018, - -889714317 + 1591024166, + -1403895054, + -1150690056, + -208826299 ], - "value": "eyJ0aW1lc3RhbXAiOjE0MjkzNDczMzU2MDIsInByb2ZpbGVJZCI6IjZjZjU0M2E2MGVlOTQzN2NiNjE0YzdiOTRkZTVjNWI3IiwicHJvZmlsZU5hbWUiOiJNcnNNYWtpc3RlaW4iLCJpc1B1YmxpYyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2I2NmY2MmE3ZWEyNjcwMjBhNjYyYWI1ZTI1ZWFlMzdjNTM2Yzc2N2QwNDYyZWE1MDIyZTVhZmQ1ODQzODYxIn19fQ==", - "hash": "c1119145018d5828566343e08f72fb7ae7755c0d", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODQ3ZTUxOWU3ODMxMTNkNzY0MWVhZGQ5NzFjYzZkNDE2Y2E2M2Q4MmY3MDdhNzE5NjBmYjQ5YzMzNzQ1ODJjNSd9fX0=", + "hash": "2710022ddb4c3944ea4a20d579867f8b49ec041e", "parent_module": "gm4_potion_liquids" }, "gm4_potion_liquids:liquids/poison": { "uuid": [ - 1056529285, - -1138636289, - -1614258018, - -889714317 + 809108775, + -1144238335, + -1966668314, + 1676984478 ], - "value": "eyJ0aW1lc3RhbXAiOjE0MjkzNDY4ODg4NzIsInByb2ZpbGVJZCI6IjZjZjU0M2E2MGVlOTQzN2NiNjE0YzdiOTRkZTVjNWI3IiwicHJvZmlsZU5hbWUiOiJNcnNNYWtpc3RlaW4iLCJpc1B1YmxpYyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzY2MWU3NWExMWEwNzBmNTgyMWMxYmJlOTkxMTJiZGJjYWVjY2IyZDQ3Njg2OWQ3N2ExYzJkZDlmZjY0MDM3In19fQ==", - "hash": "1dfb6eb69659931881db3720790033684d94537b", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTY2OWViYmU5NTk3NzQzZmI3ODUzODA1YTk3MTU3ZWVmMTlhZTEwOGI5NWFhZGM0MjI2ZTQ4ZjQyN2FjMmFiNSd9fX0=", + "hash": "3f8a4881a694f447f79fff06d4afd42b6ab71626", "parent_module": "gm4_potion_liquids" }, "gm4_potion_liquids:liquids/regeneration": { "uuid": [ - 2130271113, - -1138636289, - -1614258018, - -889714317 + 175112486, + -350270963, + -1804632664, + -1472362007 ], - "value": "eyJ0aW1lc3RhbXAiOjE0MjkzNDYxNzA4MTcsInByb2ZpbGVJZCI6IjZjZjU0M2E2MGVlOTQzN2NiNjE0YzdiOTRkZTVjNWI3IiwicHJvZmlsZU5hbWUiOiJNcnNNYWtpc3RlaW4iLCJpc1B1YmxpYyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzI2YzljOTNjNjRlZmYzMzE4MzFmNDkyY2E2Nzc1YWJjY2VkM2RjZDhmZWExOWEzMmM0OTM4NjRkYjFlMWMifX19", - "hash": "931c9059971edb2f2aada7c0c048e4ad59fb9086", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTM2OTEzNmNlMGU5MjZhZjg5MTUzNGNlNGI1OGY4NDVmODFlNWRiYTNhZGNlMzA4NzE0YzdjZmZjNmUxZTgyZSd9fX0=", + "hash": "af5e903c6b94e36e3a38feb99e6edf9be9640408", "parent_module": "gm4_potion_liquids" }, "gm4_potion_liquids:liquids/slow_falling": { "uuid": [ - 579092712, - 1925725639, - -2092432809, - 408565448 + 1401295760, + -1001370020, + -1237459354, + -1996662618 ], - "value": "eyJ0aW1lc3RhbXAiOjE1NTE4MjI2MTE5MDQsInByb2ZpbGVJZCI6IjIyODQ0MGU4NzJjODRkYzc4MzQ4YjI3NzU4NTAzNGM4IiwicHJvZmlsZU5hbWUiOiJTcGVjaWFsQnVpbGRlcjMyIiwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2UzNmJhMjRkZWQ5ODYxYzM2OWFlOGEzMGUzMTE5NWFjYTFkOGI4MDgzZjQzNTFkYjdjYWM4OTg5NDBhMDNlZWUifX19", - "hash": "b7f50e36e9f6b12d18ff317c34dbf4d5157b4ebc", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNGIwNmUxYjgwOGJiZGE1ZjYxYzc5MjdiYTA2N2ViMDQ4ZDFmY2I3MmEyY2E4OThiOWY3YWQxMDY4YzY0MGM2Yyd9fX0=", + "hash": "12881ca86bfcfd8a67c0b09f8233c7625aae5990", "parent_module": "gm4_potion_liquids" }, "gm4_potion_liquids:liquids/slowness": { "uuid": [ - 2115591045, - -1138636289, - -1614258018, - -889714317 + 2073042102, + -128102461, + -1871962475, + 708373893 ], - "value": "eyJ0aW1lc3RhbXAiOjE0MjkzNDc1NzI0MDgsInByb2ZpbGVJZCI6IjZjZjU0M2E2MGVlOTQzN2NiNjE0YzdiOTRkZTVjNWI3IiwicHJvZmlsZU5hbWUiOiJNcnNNYWtpc3RlaW4iLCJpc1B1YmxpYyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzI4NTdjZWZhOTYzZmI5NWYyNTg4ZDU5ZTNlMGI5YjM5ZmE3YjYxMGVkODNjMTU0NmZmYTk3MjlmN2Q3ZWNiIn19fQ==", - "hash": "accf99584a50e5038d5b2fb0749a32f8286a3f5f", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNWNiM2E4ZTUwNTkxZGE4NTk3NWI3NDU0NjcxMmZmMzc2YTZiMWNjZmI5M2EyNDQ0ZjEwZDdkZTA4MTc2NmFkZid9fX0=", + "hash": "5a88aa4ac65d59cc33d81f9d8e35856f6b2305cb", "parent_module": "gm4_potion_liquids" }, "gm4_potion_liquids:liquids/strength": { "uuid": [ - 2063162245, - -1138636289, - -1614258018, - -889714317 + -1380259552, + 1048462685, + -2136230086, + -2011000224 ], - "value": "eyJ0aW1lc3RhbXAiOjE0MjkzNDY3NTE4NTAsInByb2ZpbGVJZCI6IjZjZjU0M2E2MGVlOTQzN2NiNjE0YzdiOTRkZTVjNWI3IiwicHJvZmlsZU5hbWUiOiJNcnNNYWtpc3RlaW4iLCJpc1B1YmxpYyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2Y5NGE3YjJmZDc5MzYxNzdjNjI2ZDllYWQwZWY0MzRmMjNmNmViNmQyYzAzNDgwZGE2MDRlZWIyMWRjZiJ9fX0=", - "hash": "28876ce65f42a0af76d70f581ee069e04d97fe34", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNmFkOWJlMjY2Y2JlM2RmYTFlMWMwNzdjNjRlZDA3MjllZjEwNDFkZDZkZTFmYzViOTcwMTBiZDdmM2RjMzkyOSd9fX0=", + "hash": "72b5105c05c916ea7b8e57fa07dc19b4edfb84a3", "parent_module": "gm4_potion_liquids" }, "gm4_potion_liquids:liquids/swiftness": { "uuid": [ - 2130271221, - -1138636289, - -1614258018, - -889714317 + 628694958, + -4831928, + -1207352243, + 134819399 ], - "value": "eyJ0aW1lc3RhbXAiOjE0MjkzNDc2MjgyNjQsInByb2ZpbGVJZCI6IjZjZjU0M2E2MGVlOTQzN2NiNjE0YzdiOTRkZTVjNWI3IiwicHJvZmlsZU5hbWUiOiJNcnNNYWtpc3RlaW4iLCJpc1B1YmxpYyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzU1N2FhOWExMTBmOTEwOGE3MWI2MzI5ODhhMzM4MzQ1OGY0NDVlYjJlYjBmMDM4ZjE3ZDQ5OGU0YmNiYTJhZCJ9fX0=", - "hash": "c6ea288e229fb974fab0b23ce175e8839b4139ba", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODE3MGJhYWJhYjg3YzhmM2YyMjkzYjQyZjY4ZmI2M2RiZGQ1ODhjNzhjMDllNzcyNTI1YjVjODUxYjJiNDEzNSd9fX0=", + "hash": "c81b184c72db50cb84ccc27a6e9ea758a9886167", "parent_module": "gm4_potion_liquids" }, "gm4_potion_liquids:liquids/turtle_master": { "uuid": [ - 579092712, - 1923632407, - -2041990537, - 944780488 + 363269321, + 1718175205, + -1985643155, + 497739307 ], - "value": "eyJ0aW1lc3RhbXAiOjE1NTE3MTgxMDc4NjMsInByb2ZpbGVJZCI6IjIyODQ0MGU4NzJjODRkYzc4MzQ4YjI3NzU4NTAzNGM4IiwicHJvZmlsZU5hbWUiOiJTcGVjaWFsQnVpbGRlcjMyIiwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzVhODlmM2Q3MGNhYmYyYTEwM2Y3MDYwZDU0NTA0NDhjMDM3YjZjMWM3MjBkM2U5OGViOTViZmY0NzAwNjdhNTIifX19", - "hash": "99c8b4b191e5ce116a1c9f08a24f1fd635ebc7b0", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYTc0Zjk5NzNhZDhmZjQ0MThhNWFmNjI4MWM3NDEyYTRjYmNhNmQzMGYzMGMxYWY5M2M2Mzc3Zjc4YzNhZTczJ319fQ==", + "hash": "69f1773d5c561a8616901a3d62bc00c62b3bdea0", "parent_module": "gm4_potion_liquids" }, "gm4_potion_liquids:liquids/water_breathing": { "uuid": [ - 2130271109, - -1138624001, - -1614258018, - -889714317 + 2087529956, + -762951532, + -2088462039, + 585618953 ], - "value": "eyJ0aW1lc3RhbXAiOjE0MjkzNDc2OTI3OTMsInByb2ZpbGVJZCI6IjYzY2JkZjhkNDg4OTQ3NWY5NDQxMjk3ZTRhM2Q1NjczIiwicHJvZmlsZU5hbWUiOiJWZWxlVCIsImlzUHVibGljIjp0cnVlLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDc3YTdjMjEzNjc3NWE0ZWI0ZGUzMWU3MTViZWM2Y2M2NTdhN2Q2NmI0OGEzYmE1MjczMzI5MmM2ZTMyMmZhZSJ9fX0=", - "hash": "961dba309a6e645023d3d38d15d8e7c99ad4b2eb", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZGFkZmFlNTE0OWNkMDViN2RkODYwOWYwMDIzMWQyODhiZTAyOWRlZmFmMTc3YzNiY2M3NTNhNjM2YzFiMGI1OSd9fX0=", + "hash": "965aaf4a242305a774eded7eea9a831d396ac107", "parent_module": "gm4_potion_liquids" }, "gm4_potion_liquids:liquids/weakness": { "uuid": [ - 2130271109, - -1138644481, - -1614258018, - -889714317 + 1194584133, + 959795039, + -2040976206, + 1339213576 ], - "value": "eyJ0aW1lc3RhbXAiOjE0MjkzNDc0MTQ0NjEsInByb2ZpbGVJZCI6IjZjZjU0M2E2MGVlOTQzN2NiNjE0YzdiOTRkZTVjNWI3IiwicHJvZmlsZU5hbWUiOiJNcnNNYWtpc3RlaW4iLCJpc1B1YmxpYyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2NjYWM2NzI4NGNhNjM5MGY4ZDI4NDYwNjI3ZmZjNTg3YmI5ODk1MmQ3NDk4MzE2OWMwMWY5YjkwZmQ3MjVjIn19fQ==", - "hash": "c1aaf2d7ab03cdb274583cc5ca1eada5bed7c38c", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYTQ1YjZhYzVmZjU4MzVjNzc3ZjAxMzdlZGY1ZDBlMjg4OGVkNjg2MTE5NTMxNmQ3MjhlNDRkZWVkOGM2NDJmMCd9fX0=", + "hash": "ff283cb7ab9bd87333fc675a7791bde5180a7f79", "parent_module": "gm4_potion_liquids" }, "gm4_relocators:relocator_empty": { @@ -706,13 +706,13 @@ }, "gm4_scuba_gear:scuba_helmet": { "uuid": [ - -68336571, - 19415274, - -1818733955, - -1859858872 + -1411342862, + -1228846809, + -1234065086, + 1387403600 ], - "value": "ewogICJ0aW1lc3RhbXAiIDogMTYyODUzNDg1MTY2MCwKICAicHJvZmlsZUlkIiA6ICJmMGIzYmRkMjEwNDg0Y2VlYjZhNTQyYmZiOGEyNTdiMiIsCiAgInByb2ZpbGVOYW1lIiA6ICJBbm9uaW1ZVFQiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDExZTAyOTJlZTgzZDUwZTQzM2MxNTkxNzE5OGZhNDRjYjZkMTMyODhiNmFhNjZmYmUzY2QxZTZkZjY1OGRhNCIsCiAgICAgICJtZXRhZGF0YSIgOiB7CiAgICAgICAgIm1vZGVsIiA6ICJzbGltIgogICAgICB9CiAgICB9CiAgfQp9", - "hash": "9b2ea1635d53878417688b505a8875422100d314", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZWY2YWVlYzM2ZjQ2MmRlYjUzOTc0NWFhMzY4MThiNmQ0NGIwYzk1OGViNTY4NTJlYTAyZTM0YzMzZmRiZGZmMCd9fX0=", + "hash": "4a257159fd9d30ceff7484d393efe9ed2e399abf", "parent_module": "gm4_scuba_gear" }, "gm4_smelteries:smeltery": { @@ -989,12 +989,119 @@ "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDY1ZGQ5Njg5MzIyNDZjZjgwODA3Y2E2NmY4M2Y0MThjNjc5YTIzMjI5MDdiYmNkMWYxN2I4ZTQ3NWUwYzE4J319fQ==", "hash": "0ec19a60309722db4e5d57cba06c29bc62d5051f", "parent_module": "gm4_lightning_in_a_bottle" + }, + "gm4_potion_liquids:liquids/infested": { + "uuid": [ + -1996504295, + 1552826831, + -2054795441, + -1569665209 + ], + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTM1ZGFiNjQzOGFmZjA1M2VmZDI0NjMzOWZkMjAxNjJmMzViZmJmMjg4MGFiNGVkNmI4NmFmMDllNTQwOTZiMyd9fX0=", + "hash": "50aa38faf483a78bd9a33a437d30713901459ec9", + "parent_module": "gm4_potion_liquids" + }, + "gm4_potion_liquids:liquids/oozing": { + "uuid": [ + -783904090, + 1232292212, + -1545737453, + -1152375565 + ], + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjEyYTBkN2E5YmMzYzczZjQwNTZhYWY3N2FmMmFhNzBmNmRjMjk2MGY2NjRmMjdlZWNjMzVkM2Y2NzMyMDcyOCd9fX0=", + "hash": "a8e2a88fb261b67b80278dade5546dc13a789f64", + "parent_module": "gm4_potion_liquids" + }, + "gm4_potion_liquids:liquids/weaving": { + "uuid": [ + 842038238, + 472862371, + -1885580302, + 123777373 + ], + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjNlZDM4MWU0MWVmOWJlOWE4OGY5ZGYzOTAzMmJhOGY3OTliYjBiYmM1ODU2ZTk5YzI0YTU3MGFjMjI1OWY1Yyd9fX0=", + "hash": "fb4b712349e985159d1b5dbf20c2ed56f6a47262", + "parent_module": "gm4_potion_liquids" + }, + "gm4_potion_liquids:liquids/wind_charged": { + "uuid": [ + -1085379822, + 1256014354, + -2139157479, + -487046405 + ], + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODJiYTI0NDYzY2FjYTc5MjAzNGVkMGNhNzc4YTUwM2M1OWU1ZTg4YjU2ODBhMTIxM2UxNmIwZmFhZWE5YzMwOSd9fX0=", + "hash": "8d5ed9cbae9e0fc0191d9c140e33adfdd2905ace", + "parent_module": "gm4_potion_liquids" + }, + "gm4_potion_liquids:liquids/awkward": { + "uuid": [ + 594379978, + -2079439988, + -2142727791, + 2046532997 + ], + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjc2ZTI2ZmRmZGU4YmY5ZjY0MWM0YjdlZDViNmY3NjNhZmFiZDM5OGIzZjc5MjRhOTViYzA4YjM4N2FhM2MxJ319fQ==", + "hash": "4a3fbe092f343e239311835b44cadd819686e558", + "parent_module": "gm4_potion_liquids" + }, + "gm4_potion_liquids:liquids/mundane": { + "uuid": [ + 594379978, + -2079439988, + -2142727791, + 2046532997 + ], + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjc2ZTI2ZmRmZGU4YmY5ZjY0MWM0YjdlZDViNmY3NjNhZmFiZDM5OGIzZjc5MjRhOTViYzA4YjM4N2FhM2MxJ319fQ==", + "hash": "4a3fbe092f343e239311835b44cadd819686e558", + "parent_module": "gm4_potion_liquids" + }, + "gm4_potion_liquids:liquids/thick": { + "uuid": [ + 594379978, + -2079439988, + -2142727791, + 2046532997 + ], + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjc2ZTI2ZmRmZGU4YmY5ZjY0MWM0YjdlZDViNmY3NjNhZmFiZDM5OGIzZjc5MjRhOTViYzA4YjM4N2FhM2MxJ319fQ==", + "hash": "4a3fbe092f343e239311835b44cadd819686e558", + "parent_module": "gm4_potion_liquids" + }, + "gm4_standard_liquids:liquids/ominous_bottle": { + "uuid": [ + -421500789, + -352567252, + -1207743241, + -1662338326 + ], + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNGNkOGI2YzYzMjE2ZTViYjYxYzg4ZGQwNTUwNjg3YmMxNDZmODY3NjdkMTA5YzVmMjk0MjY2NmY1MTI4MDQxMyd9fX0=", + "hash": "73367ae720fb1df246057aaccb4ff07e298e1869", + "parent_module": "gm4_liquid_tanks" } }, "nonnative_references": { "gm4_tinkering_compressors": [ "gm4_metallurgy:band/curies_bismium" ], + "gm4_vecto_shamir": [ + "gm4_metallurgy:band/bismuth" + ], + "gm4_weighted_armour": [ + "gm4_metallurgy:band/aluminium" + ], + "gm4_zauber_liquids": [ + "gm4_potion_liquids:liquids/harming", + "gm4_potion_liquids:liquids/healing", + "gm4_potion_liquids:liquids/leaping", + "gm4_potion_liquids:liquids/harming", + "gm4_potion_liquids:liquids/poison", + "gm4_potion_liquids:liquids/regeneration", + "gm4_potion_liquids:liquids/strength", + "gm4_potion_liquids:liquids/swiftness" + ], + "gm4_audere_shamir": [ + "gm4_metallurgy:band/barium" + ], "gm4_auto_crafting": [ "gm4_custom_crafters:custom_crafter" ] diff --git a/gm4_boots_of_ostara/data/gm4_boots_of_ostara/item_modifier/boots_of_ostara.json b/gm4_boots_of_ostara/data/gm4_boots_of_ostara/item_modifier/boots_of_ostara.json index 3f525e2cc3..e88074bdcc 100644 --- a/gm4_boots_of_ostara/data/gm4_boots_of_ostara/item_modifier/boots_of_ostara.json +++ b/gm4_boots_of_ostara/data/gm4_boots_of_ostara/item_modifier/boots_of_ostara.json @@ -51,47 +51,5 @@ "italic": true } ] - }, - { - "function": "minecraft:set_components", - "components": { - "minecraft:custom_model_data": "gm4_scuba_gear:item/flippers" - }, - "conditions": [ - { - "condition": "minecraft:value_check", - "value": { - "type": "minecraft:score", - "target": { - "type": "minecraft:fixed", - "name": "$boa_flippers" - }, - "score": "gm4_crafting" - }, - "range": 1 - } - ] - }, - { - "function": "minecraft:set_name", - "name": { - "translate": "item.gm4.flippers_of_ostara", - "fallback": "Flippers of Ostara", - "italic": false - }, - "conditions": [ - { - "condition": "minecraft:value_check", - "value": { - "type": "minecraft:score", - "target": { - "type": "minecraft:fixed", - "name": "$boa_flippers" - }, - "score": "gm4_crafting" - }, - "range": 1 - } - ] } ] diff --git a/gm4_cement_mixers/beet.yaml b/gm4_cement_mixers/beet.yaml index ba86815e2f..5c53c8719f 100644 --- a/gm4_cement_mixers/beet.yaml +++ b/gm4_cement_mixers/beet.yaml @@ -5,6 +5,9 @@ version: 1.5.X data_pack: load: . +require: + - bolt + pipeline: - gm4.plugins.extend.module @@ -12,7 +15,7 @@ meta: gm4: versioning: required: - gm4_liquid_tanks: 2.7.0 + gm4_liquid_tanks: 3.0.0 website: description: Allows Liquid Tanks to convert Concrete Powder items into Concrete, at the cost of ⅓ of a Bucket of Water per Concrete Powder. recommended: [] diff --git a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/black_concrete.mcfunction b/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/black_concrete.mcfunction deleted file mode 100644 index 16ba1cb1b8..0000000000 --- a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/black_concrete.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_cement_mixers:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"black_concrete"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/blue_concrete.mcfunction b/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/blue_concrete.mcfunction deleted file mode 100644 index 8fbe13feaa..0000000000 --- a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/blue_concrete.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_cement_mixers:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"blue_concrete"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/brown_concrete.mcfunction b/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/brown_concrete.mcfunction deleted file mode 100644 index 55c8ad45dd..0000000000 --- a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/brown_concrete.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_cement_mixers:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"brown_concrete"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/cyan_concrete.mcfunction b/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/cyan_concrete.mcfunction deleted file mode 100644 index ce10ff0a2b..0000000000 --- a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/cyan_concrete.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_cement_mixers:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"cyan_concrete"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/gray_concrete.mcfunction b/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/gray_concrete.mcfunction deleted file mode 100644 index 9dc5b179d2..0000000000 --- a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/gray_concrete.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_cement_mixers:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"gray_concrete"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/green_concrete.mcfunction b/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/green_concrete.mcfunction deleted file mode 100644 index 13c7d419b0..0000000000 --- a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/green_concrete.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_cement_mixers:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"green_concrete"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/light_blue_concrete.mcfunction b/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/light_blue_concrete.mcfunction deleted file mode 100644 index ce54a6b7b2..0000000000 --- a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/light_blue_concrete.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_cement_mixers:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"light_blue_concrete"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/light_gray_concrete.mcfunction b/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/light_gray_concrete.mcfunction deleted file mode 100644 index 31e2459e68..0000000000 --- a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/light_gray_concrete.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_cement_mixers:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"light_gray_concrete"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/lime_concrete.mcfunction b/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/lime_concrete.mcfunction deleted file mode 100644 index 30209e25ef..0000000000 --- a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/lime_concrete.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_cement_mixers:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"lime_concrete"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/magenta_concrete.mcfunction b/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/magenta_concrete.mcfunction deleted file mode 100644 index 437c712ee9..0000000000 --- a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/magenta_concrete.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_cement_mixers:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"magenta_concrete"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/mud.mcfunction b/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/mud.mcfunction deleted file mode 100644 index 556ad9747f..0000000000 --- a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/mud.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_cement_mixers:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"mud"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/orange_concrete.mcfunction b/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/orange_concrete.mcfunction deleted file mode 100644 index 4a9dbcf267..0000000000 --- a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/orange_concrete.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_cement_mixers:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"orange_concrete"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/pink_concrete.mcfunction b/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/pink_concrete.mcfunction deleted file mode 100644 index ed5e5cc74a..0000000000 --- a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/pink_concrete.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_cement_mixers:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"pink_concrete"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/purple_concrete.mcfunction b/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/purple_concrete.mcfunction deleted file mode 100644 index 4a1376e06c..0000000000 --- a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/purple_concrete.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_cement_mixers:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"purple_concrete"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/red_concrete.mcfunction b/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/red_concrete.mcfunction deleted file mode 100644 index 2c032bf007..0000000000 --- a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/red_concrete.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_cement_mixers:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"red_concrete"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/white_concrete.mcfunction b/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/white_concrete.mcfunction deleted file mode 100644 index 5a998a031f..0000000000 --- a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/white_concrete.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_cement_mixers:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"white_concrete"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/yellow_concrete.mcfunction b/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/yellow_concrete.mcfunction deleted file mode 100644 index 386192bfd3..0000000000 --- a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/yellow_concrete.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_cement_mixers:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"yellow_concrete"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_cement_mixers/data/gm4_cement_mixers/function/water_concrete.mcfunction b/gm4_cement_mixers/data/gm4_cement_mixers/function/water_concrete.mcfunction index 606991fdba..758af8cced 100644 --- a/gm4_cement_mixers/data/gm4_cement_mixers/function/water_concrete.mcfunction +++ b/gm4_cement_mixers/data/gm4_cement_mixers/function/water_concrete.mcfunction @@ -1,22 +1,40 @@ # run from item_fill # @s = liquid tank at @s -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:black_concrete_powder"}} run function gm4_cement_mixers:item_fill/black_concrete -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:blue_concrete_powder"}} run function gm4_cement_mixers:item_fill/blue_concrete -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:brown_concrete_powder"}} run function gm4_cement_mixers:item_fill/brown_concrete -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:cyan_concrete_powder"}} run function gm4_cement_mixers:item_fill/cyan_concrete -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:gray_concrete_powder"}} run function gm4_cement_mixers:item_fill/gray_concrete -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:green_concrete_powder"}} run function gm4_cement_mixers:item_fill/green_concrete -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:light_blue_concrete_powder"}} run function gm4_cement_mixers:item_fill/light_blue_concrete -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:light_gray_concrete_powder"}} run function gm4_cement_mixers:item_fill/light_gray_concrete -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:lime_concrete_powder"}} run function gm4_cement_mixers:item_fill/lime_concrete -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:magenta_concrete_powder"}} run function gm4_cement_mixers:item_fill/magenta_concrete -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:orange_concrete_powder"}} run function gm4_cement_mixers:item_fill/orange_concrete -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:pink_concrete_powder"}} run function gm4_cement_mixers:item_fill/pink_concrete -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:purple_concrete_powder"}} run function gm4_cement_mixers:item_fill/purple_concrete -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:red_concrete_powder"}} run function gm4_cement_mixers:item_fill/red_concrete -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:white_concrete_powder"}} run function gm4_cement_mixers:item_fill/white_concrete -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:yellow_concrete_powder"}} run function gm4_cement_mixers:item_fill/yellow_concrete -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:dirt"}} run function gm4_cement_mixers:item_fill/mud -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:coarse_dirt"}} run function gm4_cement_mixers:item_fill/mud -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:rooted_dirt"}} run function gm4_cement_mixers:item_fill/mud +concretes_colors = ( + "black", + "blue", + "brown", + "cyan", + "gray", + "green", + "light_blue", + "light_gray", + "lime", + "magenta", + "orange", + "pink", + "purple", + "red", + "white", + "yellow" +) +for color in concretes_colors: + execute if items block ~ ~ ~ container.0 f"minecraft:{color}_concrete_powder" run function f"gm4_cement_mixers:item_fill/{color}_concrete": + scoreboard players set $item_value gm4_lt_value -1 + item replace entity 00344d47-0004-0004-0004-000f04ce104d weapon.mainhand with f"minecraft:{color}_concrete" + function gm4_liquid_tanks:smart_item_fill + tag @s add gm4_lt_fill + +item_tag gm4_cement_mixers:dirt { + "values": [ + "minecraft:dirt", + "minecraft:coarse_dirt", + "minecraft:rooted_dirt" + ] +} +execute if items block ~ ~ ~ container.0 #gm4_cement_mixers:dirt run function gm4_cement_mixers:item_fill/mud: + scoreboard players set $item_value gm4_lt_value -1 + item replace entity 00344d47-0004-0004-0004-000f04ce104d weapon.mainhand with minecraft:mud + function gm4_liquid_tanks:smart_item_fill + tag @s add gm4_lt_fill 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_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/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/items/cloth_set/horizontal_flag_1.json b/gm4_furniture/assets/gm4_furniture/items/cloth_set/horizontal_flag_1.json new file mode 100644 index 0000000000..6fc47179a5 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/cloth_set/horizontal_flag_1.json @@ -0,0 +1,12 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/cloth_set/horizontal_flag_1", + "tints": [ + { + "type": "minecraft:dye", + "default": -393217 + } + ] + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/cloth_set/paper_lantern_1.json b/gm4_furniture/assets/gm4_furniture/items/cloth_set/paper_lantern_1.json new file mode 100644 index 0000000000..02d0600e6e --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/cloth_set/paper_lantern_1.json @@ -0,0 +1,12 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/cloth_set/paper_lantern_1", + "tints": [ + { + "type": "minecraft:dye", + "default": -393217 + } + ] + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/furniture_station.json b/gm4_furniture/assets/gm4_furniture/items/furniture_station.json new file mode 100644 index 0000000000..f4838b6275 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/furniture_station.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/furniture_station" + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/metal_set/gold/3_candelabra_1.json b/gm4_furniture/assets/gm4_furniture/items/metal_set/gold/3_candelabra_1.json new file mode 100644 index 0000000000..21bbd474c2 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/metal_set/gold/3_candelabra_1.json @@ -0,0 +1,12 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/metal_set/gold/3_candelabra_1", + "tints": [ + { + "type": "minecraft:dye", + "default": -393217 + } + ] + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/metal_set/gold/3_candelabra_1_lit.json b/gm4_furniture/assets/gm4_furniture/items/metal_set/gold/3_candelabra_1_lit.json new file mode 100644 index 0000000000..7e5d670346 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/metal_set/gold/3_candelabra_1_lit.json @@ -0,0 +1,12 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/metal_set/gold/3_candelabra_1_lit", + "tints": [ + { + "type": "minecraft:dye", + "default": -393217 + } + ] + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/metal_set/gold/skull_1.json b/gm4_furniture/assets/gm4_furniture/items/metal_set/gold/skull_1.json new file mode 100644 index 0000000000..998ff27124 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/metal_set/gold/skull_1.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/metal_set/gold/skull_1" + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/metal_set/iron/3_candelabra_1.json b/gm4_furniture/assets/gm4_furniture/items/metal_set/iron/3_candelabra_1.json new file mode 100644 index 0000000000..ffa3aaa057 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/metal_set/iron/3_candelabra_1.json @@ -0,0 +1,12 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/metal_set/iron/3_candelabra_1", + "tints": [ + { + "type": "minecraft:dye", + "default": -393217 + } + ] + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/metal_set/iron/3_candelabra_1_lit.json b/gm4_furniture/assets/gm4_furniture/items/metal_set/iron/3_candelabra_1_lit.json new file mode 100644 index 0000000000..dce598ac9a --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/metal_set/iron/3_candelabra_1_lit.json @@ -0,0 +1,12 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/metal_set/iron/3_candelabra_1_lit", + "tints": [ + { + "type": "minecraft:dye", + "default": -393217 + } + ] + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/metal_set/iron/desk_lamp.json b/gm4_furniture/assets/gm4_furniture/items/metal_set/iron/desk_lamp.json new file mode 100644 index 0000000000..7cc065d183 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/metal_set/iron/desk_lamp.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/metal_set/iron/desk_lamp" + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/metal_set/iron/foldable_chair.json b/gm4_furniture/assets/gm4_furniture/items/metal_set/iron/foldable_chair.json new file mode 100644 index 0000000000..d392ef62e4 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/metal_set/iron/foldable_chair.json @@ -0,0 +1,26 @@ +{ + "model": { + "type": "minecraft:select", + "property": "minecraft:component", + "component": "minecraft:dyed_color", + "cases": [ + { + "when": 5414081, + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/metal_set/iron/foldable_chair_gm4" + } + } + ], + "fallback": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/metal_set/iron/foldable_chair_dyeable", + "tints": [ + { + "type": "minecraft:dye", + "default": -393217 + } + ] + } + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/metal_set/iron/lantern_1.json b/gm4_furniture/assets/gm4_furniture/items/metal_set/iron/lantern_1.json new file mode 100644 index 0000000000..f59df22d89 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/metal_set/iron/lantern_1.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/metal_set/iron/lantern_1" + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/metal_set/iron/spotlight.json b/gm4_furniture/assets/gm4_furniture/items/metal_set/iron/spotlight.json new file mode 100644 index 0000000000..b3bf25b1d5 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/metal_set/iron/spotlight.json @@ -0,0 +1,15 @@ +{ + "model": { + "type": "minecraft:composite", + "models": [ + { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/metal_set/iron/spotlight/default/base" + }, + { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/metal_set/iron/spotlight/default/lamp" + } + ] + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/metal_set/iron/spotlight/default/base.json b/gm4_furniture/assets/gm4_furniture/items/metal_set/iron/spotlight/default/base.json new file mode 100644 index 0000000000..c6432aea99 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/metal_set/iron/spotlight/default/base.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/metal_set/iron/spotlight/default/base" + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/metal_set/iron/spotlight/default/beam.json b/gm4_furniture/assets/gm4_furniture/items/metal_set/iron/spotlight/default/beam.json new file mode 100644 index 0000000000..11687d9cf1 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/metal_set/iron/spotlight/default/beam.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/metal_set/iron/spotlight/default/beam" + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/metal_set/iron/spotlight/default/lamp.json b/gm4_furniture/assets/gm4_furniture/items/metal_set/iron/spotlight/default/lamp.json new file mode 100644 index 0000000000..796b516b3f --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/metal_set/iron/spotlight/default/lamp.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/metal_set/iron/spotlight/default/lamp" + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/metal_set/iron/spotlight/off/beam.json b/gm4_furniture/assets/gm4_furniture/items/metal_set/iron/spotlight/off/beam.json new file mode 100644 index 0000000000..b831804ac7 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/metal_set/iron/spotlight/off/beam.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/metal_set/iron/spotlight/off/beam" + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/metal_set/iron/spotlight/off/lamp.json b/gm4_furniture/assets/gm4_furniture/items/metal_set/iron/spotlight/off/lamp.json new file mode 100644 index 0000000000..fb0de86336 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/metal_set/iron/spotlight/off/lamp.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/metal_set/iron/spotlight/off/lamp" + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/paintbrush.json b/gm4_furniture/assets/gm4_furniture/items/paintbrush.json new file mode 100644 index 0000000000..2465af4689 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/paintbrush.json @@ -0,0 +1,12 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:item/furniture/paintbrush", + "tints": [ + { + "type": "minecraft:dye", + "default": -6791361 + } + ] + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/set_tool/cloth_set.json b/gm4_furniture/assets/gm4_furniture/items/set_tool/cloth_set.json new file mode 100644 index 0000000000..5956b6f039 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/set_tool/cloth_set.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:item/furniture/set_tool/cloth_set" + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/set_tool/metal_set.json b/gm4_furniture/assets/gm4_furniture/items/set_tool/metal_set.json new file mode 100644 index 0000000000..44d424e224 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/set_tool/metal_set.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:item/furniture/set_tool/metal_set" + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/set_tool/stone_set.json b/gm4_furniture/assets/gm4_furniture/items/set_tool/stone_set.json new file mode 100644 index 0000000000..b2d1a0c23a --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/set_tool/stone_set.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:item/furniture/set_tool/stone_set" + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/set_tool/wood_set.json b/gm4_furniture/assets/gm4_furniture/items/set_tool/wood_set.json new file mode 100644 index 0000000000..dd5e5fb0cc --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/set_tool/wood_set.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:item/furniture/set_tool/wood_set" + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/stone_set/lantern_1.json b/gm4_furniture/assets/gm4_furniture/items/stone_set/lantern_1.json new file mode 100644 index 0000000000..f5ae0b2d01 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/stone_set/lantern_1.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/stone_set/lantern_1" + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/stone_set/lantern_2.json b/gm4_furniture/assets/gm4_furniture/items/stone_set/lantern_2.json new file mode 100644 index 0000000000..5b831db3e8 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/stone_set/lantern_2.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/stone_set/lantern_2" + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/stone_set/lantern_big_1.json b/gm4_furniture/assets/gm4_furniture/items/stone_set/lantern_big_1.json new file mode 100644 index 0000000000..00126ea474 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/stone_set/lantern_big_1.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/stone_set/lantern_big_1" + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/stone_set/statues/allay.json b/gm4_furniture/assets/gm4_furniture/items/stone_set/statues/allay.json new file mode 100644 index 0000000000..3f83fecbcd --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/stone_set/statues/allay.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/stone_set/statues/allay" + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/stone_set/statues/axolotl.json b/gm4_furniture/assets/gm4_furniture/items/stone_set/statues/axolotl.json new file mode 100644 index 0000000000..d76cfbcb87 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/stone_set/statues/axolotl.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/stone_set/statues/axolotl" + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/stone_set/statues/bee.json b/gm4_furniture/assets/gm4_furniture/items/stone_set/statues/bee.json new file mode 100644 index 0000000000..903556ac9d --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/stone_set/statues/bee.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/stone_set/statues/bee" + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/stone_set/statues/cat.json b/gm4_furniture/assets/gm4_furniture/items/stone_set/statues/cat.json new file mode 100644 index 0000000000..1bb5fad541 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/stone_set/statues/cat.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/stone_set/statues/cat" + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/stone_set/statues/chicken.json b/gm4_furniture/assets/gm4_furniture/items/stone_set/statues/chicken.json new file mode 100644 index 0000000000..9f1f793792 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/stone_set/statues/chicken.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/stone_set/statues/chicken" + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/stone_set/statues/fox.json b/gm4_furniture/assets/gm4_furniture/items/stone_set/statues/fox.json new file mode 100644 index 0000000000..d495e47e6c --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/stone_set/statues/fox.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/stone_set/statues/fox" + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/stone_set/statues/frog.json b/gm4_furniture/assets/gm4_furniture/items/stone_set/statues/frog.json new file mode 100644 index 0000000000..eca782bf5e --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/stone_set/statues/frog.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/stone_set/statues/frog" + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/stone_set/statues/pufferfish.json b/gm4_furniture/assets/gm4_furniture/items/stone_set/statues/pufferfish.json new file mode 100644 index 0000000000..add6216332 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/stone_set/statues/pufferfish.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/stone_set/statues/pufferfish" + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/stone_set/statues/silverfish.json b/gm4_furniture/assets/gm4_furniture/items/stone_set/statues/silverfish.json new file mode 100644 index 0000000000..ee5f9035cd --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/stone_set/statues/silverfish.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/stone_set/statues/silverfish" + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/stone_set/statues/slime.json b/gm4_furniture/assets/gm4_furniture/items/stone_set/statues/slime.json new file mode 100644 index 0000000000..e4823d1be3 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/stone_set/statues/slime.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/stone_set/statues/slime" + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/wood_set/acacia/1x1_table_1.json b/gm4_furniture/assets/gm4_furniture/items/wood_set/acacia/1x1_table_1.json new file mode 100644 index 0000000000..7dc75f3120 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/wood_set/acacia/1x1_table_1.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/wood_set/acacia/1x1_table_1" + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/wood_set/acacia/2x2_table_1.json b/gm4_furniture/assets/gm4_furniture/items/wood_set/acacia/2x2_table_1.json new file mode 100644 index 0000000000..81c3b61552 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/wood_set/acacia/2x2_table_1.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/wood_set/acacia/2x2_table_1" + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/wood_set/acacia/bench_1.json b/gm4_furniture/assets/gm4_furniture/items/wood_set/acacia/bench_1.json new file mode 100644 index 0000000000..8e06970ca5 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/wood_set/acacia/bench_1.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/wood_set/acacia/bench_1" + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/wood_set/acacia/chair_1.json b/gm4_furniture/assets/gm4_furniture/items/wood_set/acacia/chair_1.json new file mode 100644 index 0000000000..b889f4a5c4 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/wood_set/acacia/chair_1.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/wood_set/acacia/chair_1" + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/wood_set/acacia/light_1.json b/gm4_furniture/assets/gm4_furniture/items/wood_set/acacia/light_1.json new file mode 100644 index 0000000000..82f286b88e --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/wood_set/acacia/light_1.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/wood_set/acacia/light_1" + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/wood_set/acacia/stool_1.json b/gm4_furniture/assets/gm4_furniture/items/wood_set/acacia/stool_1.json new file mode 100644 index 0000000000..ecc326e052 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/wood_set/acacia/stool_1.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/wood_set/acacia/stool_1" + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/wood_set/cherry/1x1_table_1.json b/gm4_furniture/assets/gm4_furniture/items/wood_set/cherry/1x1_table_1.json new file mode 100644 index 0000000000..db85347316 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/wood_set/cherry/1x1_table_1.json @@ -0,0 +1,12 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/wood_set/cherry/1x1_table_1", + "tints": [ + { + "type": "minecraft:dye", + "default": -393217 + } + ] + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/wood_set/cherry/2x2_table_1.json b/gm4_furniture/assets/gm4_furniture/items/wood_set/cherry/2x2_table_1.json new file mode 100644 index 0000000000..eb6bdb4118 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/wood_set/cherry/2x2_table_1.json @@ -0,0 +1,12 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/wood_set/cherry/2x2_table_1", + "tints": [ + { + "type": "minecraft:dye", + "default": -393217 + } + ] + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/wood_set/cherry/bench_1.json b/gm4_furniture/assets/gm4_furniture/items/wood_set/cherry/bench_1.json new file mode 100644 index 0000000000..1c12a07e4b --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/wood_set/cherry/bench_1.json @@ -0,0 +1,12 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/wood_set/cherry/bench_1", + "tints": [ + { + "type": "minecraft:dye", + "default": -393217 + } + ] + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/wood_set/cherry/chair_1.json b/gm4_furniture/assets/gm4_furniture/items/wood_set/cherry/chair_1.json new file mode 100644 index 0000000000..c36c934c0b --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/wood_set/cherry/chair_1.json @@ -0,0 +1,12 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/wood_set/cherry/chair_1", + "tints": [ + { + "type": "minecraft:dye", + "default": -393217 + } + ] + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/wood_set/cherry/light_1.json b/gm4_furniture/assets/gm4_furniture/items/wood_set/cherry/light_1.json new file mode 100644 index 0000000000..cb96752688 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/wood_set/cherry/light_1.json @@ -0,0 +1,12 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/wood_set/cherry/light_1", + "tints": [ + { + "type": "minecraft:dye", + "default": -611903 + } + ] + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/wood_set/cherry/stool_1.json b/gm4_furniture/assets/gm4_furniture/items/wood_set/cherry/stool_1.json new file mode 100644 index 0000000000..d227fab55a --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/wood_set/cherry/stool_1.json @@ -0,0 +1,12 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/wood_set/cherry/stool_1", + "tints": [ + { + "type": "minecraft:dye", + "default": -393217 + } + ] + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/wood_set/dark_oak/1x1_table_1.json b/gm4_furniture/assets/gm4_furniture/items/wood_set/dark_oak/1x1_table_1.json new file mode 100644 index 0000000000..d0f2dcd991 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/wood_set/dark_oak/1x1_table_1.json @@ -0,0 +1,12 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/wood_set/dark_oak/1x1_table_1", + "tints": [ + { + "type": "minecraft:dye", + "default": -393217 + } + ] + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/wood_set/dark_oak/2x2_table_1.json b/gm4_furniture/assets/gm4_furniture/items/wood_set/dark_oak/2x2_table_1.json new file mode 100644 index 0000000000..4002f8786f --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/wood_set/dark_oak/2x2_table_1.json @@ -0,0 +1,12 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/wood_set/dark_oak/2x2_table_1", + "tints": [ + { + "type": "minecraft:dye", + "default": -393217 + } + ] + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/wood_set/dark_oak/bench_1.json b/gm4_furniture/assets/gm4_furniture/items/wood_set/dark_oak/bench_1.json new file mode 100644 index 0000000000..ab69cd0768 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/wood_set/dark_oak/bench_1.json @@ -0,0 +1,12 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/wood_set/dark_oak/bench_1", + "tints": [ + { + "type": "minecraft:dye", + "default": -393217 + } + ] + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/wood_set/dark_oak/chair_1.json b/gm4_furniture/assets/gm4_furniture/items/wood_set/dark_oak/chair_1.json new file mode 100644 index 0000000000..b82597743c --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/wood_set/dark_oak/chair_1.json @@ -0,0 +1,12 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/wood_set/dark_oak/chair_1", + "tints": [ + { + "type": "minecraft:dye", + "default": -393217 + } + ] + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/wood_set/dark_oak/light_1.json b/gm4_furniture/assets/gm4_furniture/items/wood_set/dark_oak/light_1.json new file mode 100644 index 0000000000..8d23c96a45 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/wood_set/dark_oak/light_1.json @@ -0,0 +1,12 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/wood_set/dark_oak/light_1", + "tints": [ + { + "type": "minecraft:dye", + "default": -393217 + } + ] + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/wood_set/dark_oak/stool_1.json b/gm4_furniture/assets/gm4_furniture/items/wood_set/dark_oak/stool_1.json new file mode 100644 index 0000000000..97df7b4f32 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/wood_set/dark_oak/stool_1.json @@ -0,0 +1,12 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/wood_set/dark_oak/stool_1", + "tints": [ + { + "type": "minecraft:dye", + "default": -393217 + } + ] + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/wood_set/oak/1x1_table_1.json b/gm4_furniture/assets/gm4_furniture/items/wood_set/oak/1x1_table_1.json new file mode 100644 index 0000000000..5ccee3b8dc --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/wood_set/oak/1x1_table_1.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/wood_set/oak/1x1_table_1" + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/wood_set/oak/2x2_table_1.json b/gm4_furniture/assets/gm4_furniture/items/wood_set/oak/2x2_table_1.json new file mode 100644 index 0000000000..03419872d6 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/wood_set/oak/2x2_table_1.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/wood_set/oak/2x2_table_1" + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/wood_set/oak/bench_1.json b/gm4_furniture/assets/gm4_furniture/items/wood_set/oak/bench_1.json new file mode 100644 index 0000000000..feebd6f44d --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/wood_set/oak/bench_1.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/wood_set/oak/bench_1" + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/wood_set/oak/chair_1.json b/gm4_furniture/assets/gm4_furniture/items/wood_set/oak/chair_1.json new file mode 100644 index 0000000000..cc7943b486 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/wood_set/oak/chair_1.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/wood_set/oak/chair_1" + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/wood_set/oak/light_1.json b/gm4_furniture/assets/gm4_furniture/items/wood_set/oak/light_1.json new file mode 100644 index 0000000000..8ddcbdc4e1 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/wood_set/oak/light_1.json @@ -0,0 +1,12 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/wood_set/oak/light_1", + "tints": [ + { + "type": "minecraft:dye", + "default": -393217 + } + ] + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/wood_set/oak/light_1_lit.json b/gm4_furniture/assets/gm4_furniture/items/wood_set/oak/light_1_lit.json new file mode 100644 index 0000000000..d99c39c3ff --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/wood_set/oak/light_1_lit.json @@ -0,0 +1,12 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/wood_set/oak/light_1_lit", + "tints": [ + { + "type": "minecraft:dye", + "default": -393217 + } + ] + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/wood_set/oak/stool_1.json b/gm4_furniture/assets/gm4_furniture/items/wood_set/oak/stool_1.json new file mode 100644 index 0000000000..7ff4822e5e --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/wood_set/oak/stool_1.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/wood_set/oak/stool_1" + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/wood_set/spruce/1x1_table_1.json b/gm4_furniture/assets/gm4_furniture/items/wood_set/spruce/1x1_table_1.json new file mode 100644 index 0000000000..dc09301bfe --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/wood_set/spruce/1x1_table_1.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/wood_set/spruce/1x1_table_1" + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/wood_set/spruce/2x2_table_1.json b/gm4_furniture/assets/gm4_furniture/items/wood_set/spruce/2x2_table_1.json new file mode 100644 index 0000000000..e47a1fd2ce --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/wood_set/spruce/2x2_table_1.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/wood_set/spruce/2x2_table_1" + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/wood_set/spruce/bench_1.json b/gm4_furniture/assets/gm4_furniture/items/wood_set/spruce/bench_1.json new file mode 100644 index 0000000000..194eb33cb3 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/wood_set/spruce/bench_1.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/wood_set/spruce/bench_1" + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/wood_set/spruce/chair_1.json b/gm4_furniture/assets/gm4_furniture/items/wood_set/spruce/chair_1.json new file mode 100644 index 0000000000..2d7b0d61c7 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/wood_set/spruce/chair_1.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/wood_set/spruce/chair_1" + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/wood_set/spruce/light_1.json b/gm4_furniture/assets/gm4_furniture/items/wood_set/spruce/light_1.json new file mode 100644 index 0000000000..4f7361222c --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/wood_set/spruce/light_1.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/wood_set/spruce/light_1" + } +} diff --git a/gm4_furniture/assets/gm4_furniture/items/wood_set/spruce/stool_1.json b/gm4_furniture/assets/gm4_furniture/items/wood_set/spruce/stool_1.json new file mode 100644 index 0000000000..0a1b60dd5d --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/items/wood_set/spruce/stool_1.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_furniture:block/furniture/wood_set/spruce/stool_1" + } +} 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..5b851f9304 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/lang/en_us.json @@ -0,0 +1,3 @@ +{ + "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..eb2dd1b6da --- /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, 45, 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..26c8590b96 --- /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_wick_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, 90, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 90, 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/3_candelabra_1_lit.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/metal_set/gold/3_candelabra_1_lit.json new file mode 100644 index 0000000000..889332b1aa --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/metal_set/gold/3_candelabra_1_lit.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, 90, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 90, 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..e768528995 --- /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, 45, 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..8720d0c275 --- /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_wick_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, 90, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 90, 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/3_candelabra_1_lit.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/metal_set/iron/3_candelabra_1_lit.json new file mode 100644 index 0000000000..ed5d3ae423 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/metal_set/iron/3_candelabra_1_lit.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, 90, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 90, 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/desk_lamp.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/metal_set/iron/desk_lamp.json new file mode 100644 index 0000000000..6f63ad26f0 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/metal_set/iron/desk_lamp.json @@ -0,0 +1,151 @@ +{ + "format_version": "1.21.6", + "credit": "Made with Blockbench", + "textures": { + "1": "gm4_furniture:block/furniture/metal_set/iron/desk_lamp", + "particle": "gm4_furniture:block/furniture/metal_set/iron/desk_lamp" + }, + "elements": [ + { + "name": "top", + "from": [6.5, 14.58465, 0.88542], + "to": [9.5, 16.58465, 3.88542], + "rotation": {"angle": 22.5, "axis": "x", "origin": [8, 15.58465, 3.88542]}, + "faces": { + "north": {"uv": [8, 3, 11, 5], "texture": "#1"}, + "east": {"uv": [8, 3, 11, 5], "texture": "#1"}, + "south": {"uv": [8, 3, 11, 5], "texture": "#1"}, + "west": {"uv": [8, 3, 11, 5], "texture": "#1"}, + "up": {"uv": [8, 0, 11, 3], "texture": "#1"} + } + }, + { + "name": "base", + "from": [5.5, 11.58465, -0.11458], + "to": [10.5, 14.58465, 4.88542], + "rotation": {"angle": 22.5, "axis": "x", "origin": [8, 15.58465, 3.88542]}, + "faces": { + "north": {"uv": [0, 11, 5, 14], "texture": "#1"}, + "east": {"uv": [0, 11, 5, 14], "texture": "#1"}, + "south": {"uv": [0, 11, 5, 14], "texture": "#1"}, + "west": {"uv": [0, 11, 5, 14], "texture": "#1"}, + "up": {"uv": [0, 6, 5, 11], "texture": "#1"} + } + }, + { + "name": "inv", + "from": [10.5, 13.58465, 4.88542], + "to": [5.5, 11.58465, -0.11458], + "rotation": {"angle": 22.5, "axis": "x", "origin": [8, 15.58465, 3.88542]}, + "faces": { + "north": {"uv": [5, 13, 10, 11], "texture": "#1"}, + "east": {"uv": [5, 13, 10, 11], "texture": "#1"}, + "south": {"uv": [5, 13, 10, 11], "texture": "#1"}, + "west": {"uv": [5, 13, 10, 11], "texture": "#1"}, + "down": {"uv": [5, 6, 10, 11], "texture": "#1"} + } + }, + { + "from": [7.5, 12.08655, 3.5922], + "to": [8.5, 12.08655, 12.5922], + "rotation": {"angle": 22.5, "axis": "x", "origin": [7.5, 13.08655, 12.5922]}, + "faces": { + "up": {"uv": [11, 0, 12, 9], "texture": "#1"}, + "down": {"uv": [11, 0, 12, 9], "texture": "#1"} + } + }, + { + "from": [7.5, 11.1636, 3.2099], + "to": [8.5, 11.1636, 12.2099], + "rotation": {"angle": 22.5, "axis": "x", "origin": [7.5, 12.1636, 12.2099]}, + "faces": { + "up": {"uv": [11, 0, 12, 9], "texture": "#1"}, + "down": {"uv": [11, 0, 12, 9], "texture": "#1"} + } + }, + { + "from": [7.5, 2, 8], + "to": [8.5, 13, 9], + "rotation": {"angle": 22.5, "axis": "x", "origin": [7.5, 2, 8]}, + "faces": { + "north": {"uv": [12, 0, 13, 11], "texture": "#1"}, + "east": {"uv": [12, 0, 13, 11], "texture": "#1"}, + "south": {"uv": [12, 0, 13, 11], "texture": "#1"}, + "west": {"uv": [12, 0, 13, 11], "texture": "#1"}, + "up": {"uv": [12, 0, 13, 1], "texture": "#1"}, + "down": {"uv": [12, 10, 13, 11], "texture": "#1"} + } + }, + { + "name": "base", + "from": [6, 0, 6], + "to": [10, 2, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [5, 0, 5]}, + "faces": { + "north": {"uv": [0, 4, 4, 6], "texture": "#1"}, + "east": {"uv": [0, 4, 4, 6], "texture": "#1"}, + "south": {"uv": [0, 4, 4, 6], "texture": "#1"}, + "west": {"uv": [0, 4, 4, 6], "texture": "#1"}, + "up": {"uv": [0, 0, 4, 4], "texture": "#1"}, + "down": {"uv": [4, 0, 8, 4], "texture": "#1"} + } + } + ], + "groups": [ + { + "name": "lamp", + "origin": [8, 8, 8], + "color": 0, + "children": [ + { + "name": "head", + "origin": [0.5, 7.98951, -5.02928], + "color": 0, + "children": [0, 1, 2] + }, + { + "name": "arm", + "origin": [8, 8, 8], + "color": 0, + "children": [3, 4, 5] + }, + 6 + ] + } + ], + "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/metal_set/iron/foldable_chair_dyeable.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/metal_set/iron/foldable_chair_dyeable.json new file mode 100644 index 0000000000..899d82d81d --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/metal_set/iron/foldable_chair_dyeable.json @@ -0,0 +1,155 @@ +{ + "format_version": "1.21.6", + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "gm4_furniture:block/furniture/metal_set/iron/foldable_chair", + "particle": "gm4_furniture:block/furniture/metal_set/iron/foldable_chair" + }, + "elements": [ + { + "from": [10, 10, 3], + "to": [13, 10, 13], + "rotation": {"angle": 22.5, "axis": "z", "origin": [13, 10.001, 2]}, + "faces": { + "up": {"uv": [7.5, 5, 6, 0], "texture": "#0", "tintindex": 0}, + "down": {"uv": [7.5, 0, 6, 5], "texture": "#0", "tintindex": 0} + } + }, + { + "from": [5.75336, 8.85195, 3], + "to": [10.22836, 8.85195, 13], + "rotation": {"angle": 0, "axis": "z", "origin": [11.22836, 8.85295, 2]}, + "faces": { + "up": {"uv": [9.5, 5, 7.5, 0], "texture": "#0", "tintindex": 0}, + "down": {"uv": [9.5, 0, 7.5, 5], "texture": "#0", "tintindex": 0} + } + }, + { + "from": [3, 10, 3], + "to": [6, 10, 13], + "rotation": {"angle": -22.5, "axis": "z", "origin": [3, 10.001, 2]}, + "faces": { + "up": {"uv": [11, 5, 9.5, 0], "texture": "#0", "tintindex": 0}, + "down": {"uv": [11, 0, 9.5, 5], "texture": "#0", "tintindex": 0} + } + }, + { + "from": [12.08579, -3, 3], + "to": [13.08579, 11, 13], + "rotation": {"angle": -45, "axis": "z", "origin": [12.08579, 10, 13]}, + "faces": { + "north": {"uv": [0.5, 0.5, 0, 7.5], "texture": "#0"}, + "east": {"uv": [5.5, 0.5, 0.5, 7.5], "texture": "#0"}, + "south": {"uv": [6, 0.5, 5.5, 7.5], "texture": "#0"}, + "up": {"uv": [0.5, 0, 5.5, 0.5], "rotation": 90, "texture": "#0"}, + "down": {"uv": [0.5, 7.5, 5.5, 8], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [21.98528, 6.48528, 13], + "to": [20.98528, -7.51472, 3], + "rotation": {"angle": -45, "axis": "z", "origin": [21.98528, 18.48528, 23]}, + "faces": { + "north": {"uv": [6, 7.5, 5.5, 0.5], "texture": "#0"}, + "south": {"uv": [0.5, 7.5, 0, 0.5], "texture": "#0"}, + "west": {"uv": [5.5, 7.5, 0.5, 0.5], "texture": "#0"}, + "up": {"uv": [5.5, 7.5, 0.5, 8], "rotation": 90, "texture": "#0"}, + "down": {"uv": [0.5, 0, 5.5, 0.5], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [12.5, 10, 12.025], + "to": [13.5, 19, 13.025], + "rotation": {"angle": 0, "axis": "y", "origin": [2.5, 10, 12.025]}, + "faces": { + "north": {"uv": [0, 8.5, 0.5, 13], "texture": "#0"}, + "east": {"uv": [0, 8.5, 0.5, 13], "texture": "#0"}, + "south": {"uv": [0, 8.5, 0.5, 13], "texture": "#0"}, + "west": {"uv": [0, 8.5, 0.5, 13], "texture": "#0"}, + "up": {"uv": [0, 8.5, 0.5, 9], "texture": "#0"}, + "down": {"uv": [0, 12.5, 0.5, 13], "texture": "#0"} + } + }, + { + "from": [2.5, 10, 12.025], + "to": [3.5, 19, 13.025], + "rotation": {"angle": 0, "axis": "y", "origin": [-7.5, 10, 12.025]}, + "faces": { + "north": {"uv": [0, 8.5, 0.5, 13], "texture": "#0"}, + "east": {"uv": [0, 8.5, 0.5, 13], "texture": "#0"}, + "south": {"uv": [0, 8.5, 0.5, 13], "texture": "#0"}, + "west": {"uv": [0, 8.5, 0.5, 13], "texture": "#0"}, + "up": {"uv": [0, 8.5, 0.5, 9], "texture": "#0"}, + "down": {"uv": [0, 12.5, 0.5, 13], "texture": "#0"} + } + }, + { + "from": [3.5, 11, 12.5], + "to": [12.5, 18, 12.5], + "rotation": {"angle": 0, "axis": "y", "origin": [-6.5, 10, 11.5]}, + "faces": { + "north": {"uv": [11, 0, 15.5, 3.5], "texture": "#0", "tintindex": 0}, + "south": {"uv": [11, 0, 15.5, 3.5], "texture": "#0", "tintindex": 0} + } + }, + { + "from": [2.91421, -3, 2.975], + "to": [3.91421, 11, 12.975], + "rotation": {"angle": 45, "axis": "z", "origin": [3.91421, 10, 12.975]}, + "faces": { + "north": {"uv": [0, 0.5, 0.5, 7.5], "texture": "#0"}, + "south": {"uv": [5.5, 0.5, 6, 7.5], "texture": "#0"}, + "west": {"uv": [0.5, 0.5, 5.5, 7.5], "texture": "#0"}, + "up": {"uv": [0.5, 0.5, 5.5, 0], "rotation": 90, "texture": "#0"}, + "down": {"uv": [0.5, 8, 5.5, 7.5], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [-4.98528, 6.48528, 12.975], + "to": [-5.98528, -7.51472, 2.975], + "rotation": {"angle": 45, "axis": "z", "origin": [-5.98528, 18.48528, 22.975]}, + "faces": { + "north": {"uv": [5.5, 7.5, 6, 0.5], "texture": "#0"}, + "east": {"uv": [0.5, 7.5, 5.5, 0.5], "texture": "#0"}, + "south": {"uv": [0, 7.5, 0.5, 0.5], "texture": "#0"}, + "up": {"uv": [5.5, 8, 0.5, 7.5], "rotation": 90, "texture": "#0"}, + "down": {"uv": [0.5, 0.5, 5.5, 0], "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, 45, 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/metal_set/iron/foldable_chair_gm4.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/metal_set/iron/foldable_chair_gm4.json new file mode 100644 index 0000000000..618540d422 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/metal_set/iron/foldable_chair_gm4.json @@ -0,0 +1,155 @@ +{ + "format_version": "1.21.6", + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "gm4_furniture:block/furniture/metal_set/iron/foldable_chair_gm4", + "particle": "gm4_furniture:block/furniture/metal_set/iron/foldable_chair_gm4" + }, + "elements": [ + { + "from": [10, 10, 3], + "to": [13, 10, 13], + "rotation": {"angle": 22.5, "axis": "z", "origin": [13, 10.001, 2]}, + "faces": { + "up": {"uv": [7.5, 5, 6, 0], "texture": "#0", "tintindex": 0}, + "down": {"uv": [7.5, 0, 6, 5], "texture": "#0", "tintindex": 0} + } + }, + { + "from": [5.75336, 8.85195, 3], + "to": [10.22836, 8.85195, 13], + "rotation": {"angle": 0, "axis": "z", "origin": [11.22836, 8.85295, 2]}, + "faces": { + "up": {"uv": [9.5, 5, 7.5, 0], "texture": "#0", "tintindex": 0}, + "down": {"uv": [9.5, 0, 7.5, 5], "texture": "#0", "tintindex": 0} + } + }, + { + "from": [3, 10, 3], + "to": [6, 10, 13], + "rotation": {"angle": -22.5, "axis": "z", "origin": [3, 10.001, 2]}, + "faces": { + "up": {"uv": [11, 5, 9.5, 0], "texture": "#0", "tintindex": 0}, + "down": {"uv": [11, 0, 9.5, 5], "texture": "#0", "tintindex": 0} + } + }, + { + "from": [12.08579, -3, 3], + "to": [13.08579, 11, 13], + "rotation": {"angle": -45, "axis": "z", "origin": [12.08579, 10, 13]}, + "faces": { + "north": {"uv": [0.5, 0.5, 0, 7.5], "texture": "#0"}, + "east": {"uv": [5.5, 0.5, 0.5, 7.5], "texture": "#0"}, + "south": {"uv": [6, 0.5, 5.5, 7.5], "texture": "#0"}, + "up": {"uv": [0.5, 0, 5.5, 0.5], "rotation": 90, "texture": "#0"}, + "down": {"uv": [0.5, 7.5, 5.5, 8], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [21.98528, 6.48528, 13], + "to": [20.98528, -7.51472, 3], + "rotation": {"angle": -45, "axis": "z", "origin": [21.98528, 18.48528, 23]}, + "faces": { + "north": {"uv": [6, 7.5, 5.5, 0.5], "texture": "#0"}, + "south": {"uv": [0.5, 7.5, 0, 0.5], "texture": "#0"}, + "west": {"uv": [5.5, 7.5, 0.5, 0.5], "texture": "#0"}, + "up": {"uv": [5.5, 7.5, 0.5, 8], "rotation": 90, "texture": "#0"}, + "down": {"uv": [0.5, 0, 5.5, 0.5], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [12.5, 10, 12.025], + "to": [13.5, 19, 13.025], + "rotation": {"angle": 0, "axis": "y", "origin": [2.5, 10, 12.025]}, + "faces": { + "north": {"uv": [0, 8.5, 0.5, 13], "texture": "#0"}, + "east": {"uv": [0, 8.5, 0.5, 13], "texture": "#0"}, + "south": {"uv": [0, 8.5, 0.5, 13], "texture": "#0"}, + "west": {"uv": [0, 8.5, 0.5, 13], "texture": "#0"}, + "up": {"uv": [0, 8.5, 0.5, 9], "texture": "#0"}, + "down": {"uv": [0, 12.5, 0.5, 13], "texture": "#0"} + } + }, + { + "from": [2.5, 10, 12.025], + "to": [3.5, 19, 13.025], + "rotation": {"angle": 0, "axis": "y", "origin": [-7.5, 10, 12.025]}, + "faces": { + "north": {"uv": [0, 8.5, 0.5, 13], "texture": "#0"}, + "east": {"uv": [0, 8.5, 0.5, 13], "texture": "#0"}, + "south": {"uv": [0, 8.5, 0.5, 13], "texture": "#0"}, + "west": {"uv": [0, 8.5, 0.5, 13], "texture": "#0"}, + "up": {"uv": [0, 8.5, 0.5, 9], "texture": "#0"}, + "down": {"uv": [0, 12.5, 0.5, 13], "texture": "#0"} + } + }, + { + "from": [3.5, 11, 12.5], + "to": [12.5, 18, 12.5], + "rotation": {"angle": 0, "axis": "y", "origin": [-6.5, 10, 11.5]}, + "faces": { + "north": {"uv": [11, 0, 15.5, 3.5], "texture": "#0", "tintindex": 0}, + "south": {"uv": [11, 0, 15.5, 3.5], "texture": "#0", "tintindex": 0} + } + }, + { + "from": [2.91421, -3, 2.975], + "to": [3.91421, 11, 12.975], + "rotation": {"angle": 45, "axis": "z", "origin": [3.91421, 10, 12.975]}, + "faces": { + "north": {"uv": [0, 0.5, 0.5, 7.5], "texture": "#0"}, + "south": {"uv": [5.5, 0.5, 6, 7.5], "texture": "#0"}, + "west": {"uv": [0.5, 0.5, 5.5, 7.5], "texture": "#0"}, + "up": {"uv": [0.5, 0.5, 5.5, 0], "rotation": 90, "texture": "#0"}, + "down": {"uv": [0.5, 8, 5.5, 7.5], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [-4.98528, 6.48528, 12.975], + "to": [-5.98528, -7.51472, 2.975], + "rotation": {"angle": 45, "axis": "z", "origin": [-5.98528, 18.48528, 22.975]}, + "faces": { + "north": {"uv": [5.5, 7.5, 6, 0.5], "texture": "#0"}, + "east": {"uv": [0.5, 7.5, 5.5, 0.5], "texture": "#0"}, + "south": {"uv": [0, 7.5, 0.5, 0.5], "texture": "#0"}, + "up": {"uv": [5.5, 8, 0.5, 7.5], "rotation": 90, "texture": "#0"}, + "down": {"uv": [0.5, 0.5, 5.5, 0], "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, 45, 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/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/metal_set/iron/spotlight/default/base.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/metal_set/iron/spotlight/default/base.json new file mode 100644 index 0000000000..33e4a2c55a --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/metal_set/iron/spotlight/default/base.json @@ -0,0 +1,73 @@ +{ + "format_version": "1.21.6", + "credit": "Made with Blockbench", + "textures": { + "0": "gm4_furniture:block/furniture/metal_set/iron/spotlight" + }, + "elements": [ + { + "from": [4, 0, 4], + "to": [12, 1, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [3, -3, 8]}, + "faces": { + "north": {"uv": [2.5, 2, 4.5, 2.25], "texture": "#0"}, + "east": {"uv": [2.5, 2, 4.5, 2.25], "texture": "#0"}, + "south": {"uv": [2.5, 2, 4.5, 2.25], "texture": "#0"}, + "west": {"uv": [2.5, 2, 4.5, 2.25], "texture": "#0"}, + "up": {"uv": [4.5, 2, 2.5, 0], "texture": "#0"}, + "down": {"uv": [6.5, 0, 4.5, 2], "texture": "#0"} + } + }, + { + "from": [6, 1, 6], + "to": [10, 8, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [3, -2, 8]}, + "faces": { + "north": {"uv": [2.5, 3.25, 3.5, 5], "texture": "#0"}, + "east": {"uv": [2.5, 3.25, 3.5, 5], "texture": "#0"}, + "south": {"uv": [2.5, 3.25, 3.5, 5], "texture": "#0"}, + "west": {"uv": [2.5, 3.25, 3.5, 5], "texture": "#0"}, + "up": {"uv": [3.5, 3.25, 2.5, 2.25], "texture": "#0"}, + "down": {"uv": [4.5, 2.25, 3.5, 3.25], "texture": "#0"} + } + } + ], + "display": { + "head": { + "rotation": [0, -180, 0] + }, + "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/metal_set/iron/spotlight/default/beam.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/metal_set/iron/spotlight/default/beam.json new file mode 100644 index 0000000000..74740b6907 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/metal_set/iron/spotlight/default/beam.json @@ -0,0 +1,37 @@ +{ + "format_version": "1.21.6", + "credit": "Made with Blockbench", + "textures": { + "0": "gm4_furniture:block/furniture/metal_set/iron/spotlight", + "particle": "gm4_furniture:block/furniture/metal_set/iron/spotlight" + }, + "elements": [ + { + "from": [8.75, 19, 8.75], + "to": [7.25, 7, 7.25], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 31, 8]}, + "faces": { + "north": {"uv": [12, 16, 14, 0], "texture": "#0"}, + "east": {"uv": [12, 16, 14, 0], "texture": "#0"}, + "south": {"uv": [12, 16, 14, 0], "texture": "#0"}, + "west": {"uv": [12, 16, 14, 0], "texture": "#0"} + } + }, + { + "from": [8.75, 31, 8.75], + "to": [7.25, 19, 7.25], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 43, 8]}, + "faces": { + "north": {"uv": [14, 16, 16, 0], "texture": "#0"}, + "east": {"uv": [14, 16, 16, 0], "texture": "#0"}, + "south": {"uv": [14, 16, 16, 0], "texture": "#0"}, + "west": {"uv": [14, 16, 16, 0], "texture": "#0"} + } + } + ], + "display": { + "head": { + "rotation": [0, -180, 0] + } + } +} \ No newline at end of file diff --git a/gm4_furniture/assets/gm4_furniture/models/block/furniture/metal_set/iron/spotlight/default/lamp.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/metal_set/iron/spotlight/default/lamp.json new file mode 100644 index 0000000000..e8b7c20eb6 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/metal_set/iron/spotlight/default/lamp.json @@ -0,0 +1,60 @@ +{ + "format_version": "1.21.6", + "credit": "Made with Blockbench", + "textures": { + "0": "gm4_furniture:block/furniture/metal_set/iron/spotlight" + }, + "elements": [ + { + "from": [3, 2, 3], + "to": [13, 14, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 6, 8]}, + "faces": { + "north": {"uv": [0, 2.5, 2.5, 5.5], "texture": "#0"}, + "east": {"uv": [0, 2.5, 2.5, 5.5], "texture": "#0"}, + "south": {"uv": [0, 2.5, 2.5, 5.5], "texture": "#0"}, + "west": {"uv": [0, 2.5, 2.5, 5.5], "texture": "#0"}, + "up": {"uv": [2.5, 2.5, 0, 0], "texture": "#0"}, + "down": {"uv": [2.5, 5.5, 0, 8], "texture": "#0"} + } + } + ], + "display": { + "head": { + "rotation": [0, -180, 0] + }, + "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/metal_set/iron/spotlight/off/beam.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/metal_set/iron/spotlight/off/beam.json new file mode 100644 index 0000000000..83dcacb28c --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/metal_set/iron/spotlight/off/beam.json @@ -0,0 +1,7 @@ +{ + "parent":"gm4_furniture:block/furniture/metal_set/iron/spotlight/default/beam", + "textures":{ + "0":"gm4_furniture:block/furniture/metal_set/iron/spotlight_off", + "particle": "gm4_furniture:block/furniture/metal_set/iron/spotlight_off" + } +} diff --git a/gm4_furniture/assets/gm4_furniture/models/block/furniture/metal_set/iron/spotlight/off/lamp.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/metal_set/iron/spotlight/off/lamp.json new file mode 100644 index 0000000000..2873212c78 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/metal_set/iron/spotlight/off/lamp.json @@ -0,0 +1,7 @@ +{ + "parent":"gm4_furniture:block/furniture/metal_set/iron/spotlight/default/lamp", + "textures":{ + "0":"gm4_furniture:block/furniture/metal_set/iron/spotlight_off", + "particle": "gm4_furniture:block/furniture/metal_set/iron/spotlight_off" + } +} diff --git a/gm4_furniture/assets/gm4_furniture/models/block/furniture/stone_set/lantern_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/stone_set/lantern_1.json new file mode 100644 index 0000000000..241e0cc0a9 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/stone_set/lantern_1.json @@ -0,0 +1,114 @@ +{ + "format_version": "1.21.6", + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "gm4_furniture:block/furniture/stone_set/lantern", + "particle": "gm4_furniture:block/furniture/stone_set/lantern" + }, + "elements": [ + { + "from": [4, 0, 4], + "to": [12, 2, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [4, 0, 6]}, + "faces": { + "north": {"uv": [4, 4, 8, 5], "texture": "#0"}, + "east": {"uv": [4, 4, 8, 5], "texture": "#0"}, + "south": {"uv": [4, 4, 8, 5], "texture": "#0"}, + "west": {"uv": [4, 4, 8, 5], "texture": "#0"}, + "up": {"uv": [4, 0, 8, 4], "texture": "#0"}, + "down": {"uv": [4, 5, 8, 9], "texture": "#0"} + } + }, + { + "from": [5, 2, 5], + "to": [11, 7, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [4, 2, 6]}, + "faces": { + "north": {"uv": [5, 9, 8, 11.5], "texture": "#0"}, + "east": {"uv": [5, 9, 8, 11.5], "texture": "#0"}, + "south": {"uv": [5, 9, 8, 11.5], "texture": "#0"}, + "west": {"uv": [5, 9, 8, 11.5], "texture": "#0"} + } + }, + { + "from": [3, 7, 3], + "to": [13, 9, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [4, 7, 6]}, + "faces": { + "north": {"uv": [8, 5, 13, 6], "texture": "#0"}, + "east": {"uv": [8, 5, 13, 6], "texture": "#0"}, + "south": {"uv": [8, 5, 13, 6], "texture": "#0"}, + "west": {"uv": [8, 5, 13, 6], "texture": "#0"}, + "up": {"uv": [8, 0, 13, 5], "texture": "#0"}, + "down": {"uv": [8, 6, 13, 11], "texture": "#0"} + } + }, + { + "from": [6, 9, 6], + "to": [10, 13, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [4, 9, 6]}, + "faces": { + "north": {"uv": [3, 11, 5, 13], "texture": "#0"}, + "east": {"uv": [5, 11, 3, 13], "texture": "#0"}, + "south": {"uv": [3, 11, 5, 13], "texture": "#0"}, + "west": {"uv": [5, 11, 3, 13], "texture": "#0"}, + "up": {"uv": [3, 9, 5, 11], "texture": "#0"} + } + }, + { + "from": [11, 7, 11], + "to": [5, 2, 5], + "rotation": {"angle": 0, "axis": "y", "origin": [10, 7, 12]}, + "faces": { + "north": {"uv": [5, 14, 8, 11.5], "texture": "#0"}, + "east": {"uv": [5, 14, 8, 11.5], "texture": "#0"}, + "south": {"uv": [5, 14, 8, 11.5], "texture": "#0"}, + "west": {"uv": [5, 14, 8, 11.5], "texture": "#0"} + } + }, + { + "from": [7, 10, 7], + "to": [9, 14, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 10, 7]}, + "faces": { + "north": {"uv": [8, 12, 9, 14], "texture": "#0"}, + "east": {"uv": [8, 12, 9, 14], "texture": "#0"}, + "south": {"uv": [8, 12, 9, 14], "texture": "#0"}, + "west": {"uv": [8, 12, 9, 14], "texture": "#0"}, + "up": {"uv": [8, 11, 9, 12], "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, 45, 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/lantern_2.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/stone_set/lantern_2.json new file mode 100644 index 0000000000..f9dcf7559c --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/stone_set/lantern_2.json @@ -0,0 +1,151 @@ +{ + "format_version": "1.21.6", + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "gm4_furniture:block/furniture/stone_set/lantern", + "particle": "gm4_furniture:block/furniture/stone_set/lantern" + }, + "elements": [ + { + "from": [4, 8, 4], + "to": [12, 10, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [4, 8, 6]}, + "faces": { + "north": {"uv": [4, 4, 8, 5], "texture": "#0"}, + "east": {"uv": [4, 4, 8, 5], "texture": "#0"}, + "south": {"uv": [4, 4, 8, 5], "texture": "#0"}, + "west": {"uv": [4, 4, 8, 5], "texture": "#0"}, + "up": {"uv": [4, 0, 8, 4], "texture": "#0"}, + "down": {"uv": [4, 5, 8, 9], "texture": "#0"} + } + }, + { + "from": [5, 10, 5], + "to": [11, 15, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [4, 10, 6]}, + "faces": { + "north": {"uv": [5, 9, 8, 11.5], "texture": "#0"}, + "east": {"uv": [5, 9, 8, 11.5], "texture": "#0"}, + "south": {"uv": [5, 9, 8, 11.5], "texture": "#0"}, + "west": {"uv": [5, 9, 8, 11.5], "texture": "#0"} + } + }, + { + "from": [4, 0, 4], + "to": [12, 2, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [4, 0, 6]}, + "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": [5, 2, 5], + "to": [11, 8, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [4, 2, 6]}, + "faces": { + "north": {"uv": [0, 9, 3, 12], "texture": "#0"}, + "east": {"uv": [0, 9, 3, 12], "texture": "#0"}, + "south": {"uv": [0, 9, 3, 12], "texture": "#0"}, + "west": {"uv": [0, 9, 3, 12], "texture": "#0"} + } + }, + { + "from": [3, 15, 3], + "to": [13, 17, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [4, 15, 6]}, + "faces": { + "north": {"uv": [8, 5, 13, 6], "texture": "#0"}, + "east": {"uv": [8, 5, 13, 6], "texture": "#0"}, + "south": {"uv": [8, 5, 13, 6], "texture": "#0"}, + "west": {"uv": [8, 5, 13, 6], "texture": "#0"}, + "up": {"uv": [8, 0, 13, 5], "texture": "#0"}, + "down": {"uv": [8, 6, 13, 11], "texture": "#0"} + } + }, + { + "from": [6, 18, 6], + "to": [10, 22, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [4, 18, 6]}, + "faces": { + "north": {"uv": [3, 11, 5, 13], "texture": "#0"}, + "east": {"uv": [5, 11, 3, 13], "texture": "#0"}, + "south": {"uv": [3, 11, 5, 13], "texture": "#0"}, + "west": {"uv": [5, 11, 3, 13], "texture": "#0"}, + "up": {"uv": [3, 9, 5, 11], "texture": "#0"}, + "down": {"uv": [3, 13, 5, 15], "texture": "#0"} + } + }, + { + "from": [7, 17, 7], + "to": [9, 18, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [4, 17, 6]}, + "faces": { + "north": {"uv": [0, 12, 1, 12.5], "texture": "#0"}, + "east": {"uv": [0, 12, 1, 12.5], "texture": "#0"}, + "south": {"uv": [0, 12, 1, 12.5], "texture": "#0"}, + "west": {"uv": [0, 12, 1, 12.5], "texture": "#0"} + } + }, + { + "from": [11, 15, 11], + "to": [5, 10, 5], + "rotation": {"angle": 0, "axis": "y", "origin": [10, 15, 12]}, + "faces": { + "north": {"uv": [5, 14, 8, 11.5], "texture": "#0"}, + "east": {"uv": [5, 14, 8, 11.5], "texture": "#0"}, + "south": {"uv": [5, 14, 8, 11.5], "texture": "#0"}, + "west": {"uv": [5, 14, 8, 11.5], "texture": "#0"} + } + }, + { + "from": [7, 10, 7], + "to": [9, 14, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 10, 7]}, + "faces": { + "north": {"uv": [8, 12, 9, 14], "texture": "#0"}, + "east": {"uv": [8, 12, 9, 14], "texture": "#0"}, + "south": {"uv": [8, 12, 9, 14], "texture": "#0"}, + "west": {"uv": [8, 12, 9, 14], "texture": "#0"}, + "up": {"uv": [8, 11, 9, 12], "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, 45, 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.5, 0], + "scale": [0.575, 0.575, 0.575] + }, + "fixed": { + "scale": [0.5, 0.5, 0.5] + } + } +} diff --git a/gm4_furniture/assets/gm4_furniture/models/block/furniture/stone_set/lantern_big_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/stone_set/lantern_big_1.json new file mode 100644 index 0000000000..6842171dae --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/stone_set/lantern_big_1.json @@ -0,0 +1,154 @@ +{ + "format_version": "1.21.6", + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "gm4_furniture:block/furniture/stone_set/lantern_big", + "particle": "gm4_furniture:block/furniture/stone_set/lantern_big" + }, + "elements": [ + { + "from": [4, 12, 4], + "to": [12, 14, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [4, 12, 6]}, + "faces": { + "north": {"uv": [4, 4, 8, 5], "texture": "#0"}, + "east": {"uv": [4, 4, 8, 5], "texture": "#0"}, + "south": {"uv": [4, 4, 8, 5], "texture": "#0"}, + "west": {"uv": [4, 4, 8, 5], "texture": "#0"}, + "up": {"uv": [4, 0, 8, 4], "texture": "#0"}, + "down": {"uv": [4, 5, 8, 9], "texture": "#0"} + } + }, + { + "from": [5, 14, 5], + "to": [11, 19, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [4, 14, 6]}, + "faces": { + "north": {"uv": [5, 9, 8, 11.5], "texture": "#0"}, + "east": {"uv": [5, 9, 8, 11.5], "texture": "#0"}, + "south": {"uv": [5, 9, 8, 11.5], "texture": "#0"}, + "west": {"uv": [5, 9, 8, 11.5], "texture": "#0"} + } + }, + { + "from": [4, 4, 4], + "to": [12, 6, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [4, 4, 6]}, + "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": [5, 6, 5], + "to": [11, 12, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [4, 6, 6]}, + "faces": { + "north": {"uv": [0, 9, 3, 12], "texture": "#0"}, + "east": {"uv": [0, 9, 3, 12], "texture": "#0"}, + "south": {"uv": [0, 9, 3, 12], "texture": "#0"}, + "west": {"uv": [0, 9, 3, 12], "texture": "#0"} + } + }, + { + "from": [3, 19, 3], + "to": [13, 21, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [4, 19, 6]}, + "faces": { + "north": {"uv": [8, 5, 13, 6], "texture": "#0"}, + "east": {"uv": [8, 5, 13, 6], "texture": "#0"}, + "south": {"uv": [8, 5, 13, 6], "texture": "#0"}, + "west": {"uv": [8, 5, 13, 6], "texture": "#0"}, + "up": {"uv": [8, 0, 13, 5], "texture": "#0"}, + "down": {"uv": [8, 6, 13, 11], "texture": "#0"} + } + }, + { + "from": [6, 22, 6], + "to": [10, 26, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [4, 22, 6]}, + "faces": { + "north": {"uv": [3, 11, 5, 13], "texture": "#0"}, + "east": {"uv": [5, 11, 3, 13], "texture": "#0"}, + "south": {"uv": [3, 11, 5, 13], "texture": "#0"}, + "west": {"uv": [5, 11, 3, 13], "texture": "#0"}, + "up": {"uv": [3, 9, 5, 11], "texture": "#0"}, + "down": {"uv": [3, 13, 5, 15], "texture": "#0"} + } + }, + { + "from": [7, 21, 7], + "to": [9, 22, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [4, 21, 6]}, + "faces": { + "north": {"uv": [0, 12, 1, 12.5], "texture": "#0"}, + "east": {"uv": [0, 12, 1, 12.5], "texture": "#0"}, + "south": {"uv": [0, 12, 1, 12.5], "texture": "#0"}, + "west": {"uv": [0, 12, 1, 12.5], "texture": "#0"} + } + }, + { + "from": [11, 19, 11], + "to": [5, 14, 5], + "rotation": {"angle": 0, "axis": "y", "origin": [10, 19, 12]}, + "faces": { + "north": {"uv": [5, 14, 8, 11.5], "texture": "#0"}, + "east": {"uv": [5, 14, 8, 11.5], "texture": "#0"}, + "south": {"uv": [5, 14, 8, 11.5], "texture": "#0"}, + "west": {"uv": [5, 14, 8, 11.5], "texture": "#0"} + } + }, + { + "from": [7, 14, 7], + "to": [9, 18, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 14, 7]}, + "faces": { + "north": {"uv": [8, 12, 9, 14], "texture": "#0"}, + "east": {"uv": [8, 12, 9, 14], "texture": "#0"}, + "south": {"uv": [8, 12, 9, 14], "texture": "#0"}, + "west": {"uv": [8, 12, 9, 14], "texture": "#0"}, + "up": {"uv": [8, 11, 9, 12], "texture": "#0"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, 45, 0], + "translation": [0, 0, 0], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [75, 45, 0], + "translation": [0, 0, 0], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "translation": [0, -2.5, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 45, 0], + "translation": [0, -2.5, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 0.5, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "translation": [0, -3.5, 0], + "scale": [0.63, 0.63, 0.63] + }, + "fixed": { + "translation": [0, -2.5, 0], + "scale": [0.5, 0.5, 0.5] + } + } +} 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..89472c7632 --- /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, 45, 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..a611041197 --- /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, 45, 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..f37625dcf2 --- /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, 45, 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/cat.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/stone_set/statues/cat.json new file mode 100644 index 0000000000..aadcfecc4d --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/stone_set/statues/cat.json @@ -0,0 +1,229 @@ +{ + "format_version": "1.21.6", + "credit": "Made with Blockbench", + "texture_size": [64, 32], + "textures": { + "0": "gm4_furniture:block/furniture/stone_set/statues/stone_statue_base_1", + "1": "gm4_furniture:block/furniture/stone_set/statues/cat", + "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": [6.46438, 4.05429, 5.02753], + "to": [9.53562, 16.33922, 9.63438], + "rotation": {"angle": -40, "axis": "x", "origin": [8, 10.19675, 7.33096]}, + "faces": { + "north": {"uv": [7.5, 11, 6.5, 3], "rotation": 180, "texture": "#1"}, + "east": {"uv": [6.5, 11, 5, 3], "rotation": 180, "texture": "#1"}, + "south": {"uv": [9, 3, 10, 11], "texture": "#1"}, + "west": {"uv": [9, 11, 7.5, 3], "rotation": 180, "texture": "#1"}, + "up": {"uv": [6.5, 0, 7.5, 3], "rotation": 180, "texture": "#1"}, + "down": {"uv": [7.5, 0, 8.5, 3], "texture": "#1"} + } + }, + { + "name": "head", + "from": [6.08048, 14.44698, -0.1768], + "to": [9.91952, 17.51821, 3.66224], + "rotation": {"angle": 0, "axis": "y", "origin": [6.08048, 14.44698, -0.1768]}, + "faces": { + "north": {"uv": [1.25, 2.5, 2.5, 4.5], "texture": "#1"}, + "east": {"uv": [0, 2.5, 1.25, 4.5], "texture": "#1"}, + "south": {"uv": [3.75, 2.5, 5, 4.5], "texture": "#1"}, + "west": {"uv": [2.5, 2.5, 3.75, 4.5], "texture": "#1"}, + "up": {"uv": [1.25, 2.5, 2.5, 0], "texture": "#1"}, + "down": {"uv": [2.5, 0, 3.75, 2.5], "texture": "#1"} + } + }, + { + "name": "muzzle", + "from": [6.84829, 14.44698, -0.94461], + "to": [9.15171, 15.98259, -0.1768], + "rotation": {"angle": 0, "axis": "y", "origin": [6.84829, 14.44698, -0.94461]}, + "faces": { + "north": {"uv": [0.5, 13, 1.25, 14], "texture": "#1"}, + "east": {"uv": [0, 13, 0.5, 14], "texture": "#1"}, + "south": {"uv": [0.5, 12, 1.25, 13], "texture": "#1"}, + "west": {"uv": [1.25, 13, 1.75, 14], "texture": "#1"}, + "up": {"uv": [0.5, 12.5, 1.25, 13], "texture": "#1"}, + "down": {"uv": [1.25, 12.5, 2, 13], "texture": "#1"} + } + }, + { + "name": "left.ear", + "from": [8.76781, 17.51821, 2.12662], + "to": [9.53562, 18.28602, 3.66224], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 17.51821, 2.12662]}, + "faces": { + "north": {"uv": [1, 6, 1.5, 6.5], "texture": "#1"}, + "east": {"uv": [0, 6, 0.5, 6.5], "texture": "#1"}, + "south": {"uv": [0.5, 5.5, 1, 6], "texture": "#1"}, + "west": {"uv": [1, 6, 1.5, 6.5], "texture": "#1"}, + "up": {"uv": [0.5, 5, 1, 5.5], "texture": "#1"}, + "down": {"uv": [0.5, 6, 1, 6.5], "texture": "#1"} + } + }, + { + "name": "right.ear", + "from": [6.46438, 17.51821, 2.12662], + "to": [7.23219, 18.28602, 3.66224], + "rotation": {"angle": 0, "axis": "y", "origin": [6.46438, 17.51821, 2.12662]}, + "faces": { + "north": {"uv": [1.75, 6, 2.25, 6.5], "texture": "#1"}, + "east": {"uv": [2.75, 6, 3, 6.5], "texture": "#1"}, + "south": {"uv": [1.5, 6, 1.75, 6.5], "texture": "#1"}, + "west": {"uv": [2.25, 6, 2.75, 6.5], "texture": "#1"}, + "up": {"uv": [2, 5, 2.5, 5.5], "texture": "#1"}, + "down": {"uv": [2, 5.5, 2.5, 6], "texture": "#1"} + } + }, + { + "from": [7.6161, 6.7689, 12.10813], + "to": [8.3839, 7.5367, 17.48278], + "rotation": {"angle": -10, "axis": "x", "origin": [7.6161, 6.7689, 12.10813]}, + "faces": { + "north": {"uv": [1.25, 7.5, 1.75, 8], "texture": "#1"}, + "east": {"uv": [0, 10, 2, 10.5], "texture": "#1"}, + "south": {"uv": [0.25, 7.75, 0.75, 8.25], "texture": "#1"}, + "west": {"uv": [0, 8.75, 2, 9.25], "texture": "#1"}, + "up": {"uv": [1, 8.5, 1.5, 11.5], "texture": "#1"}, + "down": {"uv": [1.25, 8.5, 1.75, 11.5], "texture": "#1"} + } + }, + { + "from": [7.6161, 7.92061, 16.33107], + "to": [8.3839, 13.29526, 17.09888], + "rotation": {"angle": 17.5, "axis": "x", "origin": [7.6161, 7.92061, 16.33107]}, + "faces": { + "north": {"uv": [0, 8.5, 0.5, 11.5], "texture": "#1"}, + "east": {"uv": [0.75, 8.5, 1.25, 11.5], "texture": "#1"}, + "south": {"uv": [0.5, 8.5, 1, 11.5], "texture": "#1"}, + "west": {"uv": [0.25, 8.5, 0.75, 11.5], "texture": "#1"}, + "up": {"uv": [0.25, 7.5, 0.75, 8], "texture": "#1"}, + "down": {"uv": [1.25, 8, 1.75, 8.5], "texture": "#1"} + } + }, + { + "name": "Front_leg_right", + "from": [6.27243, 6.00109, 3.08638], + "to": [7.80805, 12.91136, 4.622], + "rotation": {"angle": 0, "axis": "y", "origin": [6.27243, 6.00109, 3.08638]}, + "faces": { + "north": {"uv": [10.5, 1, 11, 5], "texture": "#1"}, + "east": {"uv": [10, 1, 10.5, 5], "texture": "#1"}, + "south": {"uv": [11.5, 1, 12, 5], "texture": "#1"}, + "west": {"uv": [11, 1, 11.5, 5], "texture": "#1"}, + "up": {"uv": [10.5, 0, 11.5, 1], "texture": "#1"}, + "down": {"uv": [10.5, 0, 11.5, 1], "texture": "#1"} + } + }, + { + "name": "Front_Leg_Left", + "from": [8.19195, 6.00109, 3.08638], + "to": [9.72757, 12.91136, 4.622], + "rotation": {"angle": 0, "axis": "y", "origin": [8.19195, 6.00109, 3.08638]}, + "faces": { + "north": {"uv": [10.5, 1, 11, 5], "texture": "#1"}, + "east": {"uv": [10, 1, 10.5, 5], "texture": "#1"}, + "south": {"uv": [11.5, 1, 12, 5], "texture": "#1"}, + "west": {"uv": [11, 1, 11.5, 5], "texture": "#1"}, + "up": {"uv": [10.5, 0, 11.5, 1], "texture": "#1"}, + "down": {"uv": [10.5, 0, 11.5, 1], "texture": "#1"} + } + }, + { + "name": "back_leg_left", + "from": [8.19195, 6.00109, 5.0059], + "to": [9.72757, 7.5367, 10.38056], + "rotation": {"angle": 0, "axis": "y", "origin": [8.19195, 6.00109, 8.84494]}, + "faces": { + "north": {"uv": [2.5, 6.5, 3, 7.5], "texture": "#1"}, + "east": {"uv": [2.5, 10.5, 2, 7.5], "rotation": 90, "texture": "#1"}, + "south": {"uv": [3, 6.5, 3.5, 7.5], "texture": "#1"}, + "west": {"uv": [3, 7.5, 3.5, 10.5], "rotation": 90, "texture": "#1"}, + "up": {"uv": [2.5, 10.5, 3, 7.5], "texture": "#1"}, + "down": {"uv": [3.5, 7.5, 4, 10.5], "texture": "#1"} + } + }, + { + "name": "back_leg_right", + "from": [6.27243, 6.00109, 5.0059], + "to": [7.80805, 7.5367, 9.61275], + "rotation": {"angle": 0, "axis": "y", "origin": [6.27243, 6.00109, 8.07714]}, + "faces": { + "north": {"uv": [3, 6.5, 3.5, 7.5], "texture": "#1"}, + "east": {"uv": [2.5, 10.5, 2, 7.5], "rotation": 90, "texture": "#1"}, + "south": {"uv": [2.5, 6.5, 3, 7.5], "texture": "#1"}, + "west": {"uv": [3, 7.5, 3.5, 10.5], "rotation": 90, "texture": "#1"}, + "up": {"uv": [2.5, 10.5, 3, 7.5], "texture": "#1"}, + "down": {"uv": [3.5, 7.5, 4, 10.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, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, -135, 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/chicken.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/stone_set/statues/chicken.json new file mode 100644 index 0000000000..08fa806c4a --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/stone_set/statues/chicken.json @@ -0,0 +1,175 @@ +{ + "format_version": "1.21.6", + "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/chicken", + "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": [5, 11, 5], + "to": [11, 17, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [5, 11, 5]}, + "faces": { + "north": {"uv": [0, 7, 3, 10], "texture": "#1"}, + "east": {"uv": [0, 0, 4, 3], "texture": "#1"}, + "south": {"uv": [0, 3.5, 3, 6.5], "texture": "#1"}, + "west": {"uv": [4, 0, 0, 3], "texture": "#1"}, + "up": {"uv": [8, 4, 5, 0], "texture": "#1"}, + "down": {"uv": [12, 0, 9, 4], "texture": "#1"} + } + }, + { + "name": "wings", + "from": [4, 13, 6], + "to": [12, 17, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [4, 13, 6]}, + "faces": { + "north": {"uv": [3.5, 6, 4, 8], "texture": "#1"}, + "east": {"uv": [4.5, 4.5, 7.5, 6.5], "texture": "#1"}, + "south": {"uv": [3.5, 3.5, 4, 5.5], "texture": "#1"}, + "west": {"uv": [7.5, 4.5, 4.5, 6.5], "texture": "#1"}, + "up": {"uv": [8.5, 3.5, 4.5, 0.5], "texture": "#1"}, + "down": {"uv": [5, 0.5, 4.5, 3.5], "texture": "#1"} + } + }, + { + "name": "chicken_head", + "from": [6, 15, 3], + "to": [10, 21, 6], + "rotation": {"angle": 0, "axis": "y", "origin": [6, 15, 3]}, + "faces": { + "north": {"uv": [0, 10.5, 2, 13.5], "texture": "#1"}, + "east": {"uv": [4.5, 10.5, 6, 13.5], "texture": "#1"}, + "south": {"uv": [6.5, 10.5, 8.5, 13.5], "texture": "#1"}, + "west": {"uv": [2.5, 10.5, 4, 13.5], "texture": "#1"}, + "up": {"uv": [2, 15.5, 0, 14], "texture": "#1"}, + "down": {"uv": [4.5, 14, 2.5, 15.5], "texture": "#1"} + } + }, + { + "name": "beak", + "from": [6, 17, 1], + "to": [10, 19, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 17, 1]}, + "faces": { + "north": {"uv": [5, 14, 7, 15], "texture": "#1"}, + "east": {"uv": [5, 14, 6, 15], "texture": "#1"}, + "south": {"uv": [5, 15, 7, 16], "texture": "#1"}, + "west": {"uv": [5, 14, 6, 15], "texture": "#1"}, + "up": {"uv": [12, 15, 10, 14], "texture": "#1"}, + "down": {"uv": [9.5, 14, 7.5, 15], "texture": "#1"} + } + }, + { + "name": "comb", + "from": [7, 15, 2], + "to": [9, 17, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 15, 2]}, + "faces": { + "north": {"uv": [0.5, 12.5, 1.5, 13.5], "texture": "#1"}, + "east": {"uv": [0.5, 12.5, 1, 13.5], "texture": "#1"}, + "south": {"uv": [0.5, 12.5, 1.5, 13.5], "texture": "#1"}, + "west": {"uv": [0.5, 12.5, 1, 13.5], "texture": "#1"}, + "up": {"uv": [1.5, 13, 0.5, 12.5], "texture": "#1"}, + "down": {"uv": [1.5, 12.5, 0.5, 13], "texture": "#1"} + } + }, + { + "name": "legs", + "from": [6, 6.1, 10], + "to": [10, 11, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 6, 8]}, + "faces": { + "north": {"uv": [4.5, 7, 6.5, 9.5], "texture": "#1"}, + "east": {"uv": [16, 13.5, 16, 16], "texture": "#1"}, + "south": {"uv": [4.5, 7, 6.5, 9.5], "texture": "#1"}, + "west": {"uv": [14, 13.5, 14, 16], "texture": "#1"}, + "up": {"uv": [7.5, 10.5, 7, 10.5], "texture": "#1"}, + "down": {"uv": [3, 11, 2.5, 11], "texture": "#1"} + } + }, + { + "name": "toes", + "from": [5, 6.1, 7], + "to": [11, 6.1, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [5, 6.1, 7]}, + "faces": { + "north": {"uv": [13, 15.5, 16, 15.5], "texture": "#1"}, + "east": {"uv": [13, 15.5, 14.5, 15.5], "texture": "#1"}, + "south": {"uv": [13, 16, 16, 16], "texture": "#1"}, + "west": {"uv": [14, 15, 15.5, 15], "texture": "#1"}, + "up": {"uv": [10, 8.5, 7, 7], "texture": "#1"}, + "down": {"uv": [10, 7, 7, 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, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, -135, 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/fox.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/stone_set/statues/fox.json new file mode 100644 index 0000000000..cad2ea53e3 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/stone_set/statues/fox.json @@ -0,0 +1,216 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [42, 64], + "textures": { + "0": "gm4_furniture:block/furniture/stone_set/statues/stone_statue_base_1", + "1": "gm4_furniture:block/furniture/stone_set/statues/fox", + "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": "leg_front_left", + "from": [9, 6, 3], + "to": [11.1, 11, 5], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 6, 3]}, + "faces": { + "north": {"uv": [5, 13.5, 5.66667, 16], "texture": "#1"}, + "east": {"uv": [4.33334, 13.5, 5, 16], "texture": "#1"}, + "south": {"uv": [6.33334, 13.5, 7, 16], "texture": "#1"}, + "west": {"uv": [5.66667, 13.5, 6.33334, 16], "texture": "#1"}, + "up": {"uv": [5, 12, 5.66667, 13], "texture": "#1"}, + "down": {"uv": [5.66667, 12, 6.33334, 13], "texture": "#1"} + } + }, + { + "name": "leg_front_right", + "from": [4.9, 6, 3], + "to": [7, 11, 5], + "rotation": {"angle": 0, "axis": "y", "origin": [5, 6, 3]}, + "faces": { + "north": {"uv": [2, 13.5, 2.66667, 16], "texture": "#1"}, + "east": {"uv": [1.33334, 13.5, 2, 16], "texture": "#1"}, + "south": {"uv": [3.33334, 13.5, 4, 16], "texture": "#1"}, + "west": {"uv": [2.66667, 13.5, 3.33334, 16], "texture": "#1"}, + "up": {"uv": [2, 12, 2.66667, 13], "texture": "#1"}, + "down": {"uv": [2.66667, 12, 3.33334, 13], "texture": "#1"} + } + }, + { + "name": "leg_back_left", + "from": [9, 6, 10], + "to": [11.1, 11, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 6, 10]}, + "faces": { + "north": {"uv": [5, 13.5, 5.66667, 16], "texture": "#1"}, + "east": {"uv": [4.33334, 13.5, 5, 16], "texture": "#1"}, + "south": {"uv": [6.33334, 13.5, 7, 16], "texture": "#1"}, + "west": {"uv": [5.66667, 13.5, 6.33334, 16], "texture": "#1"}, + "up": {"uv": [5, 12, 5.66667, 13], "texture": "#1"}, + "down": {"uv": [5.66667, 12, 6.33334, 13], "texture": "#1"} + } + }, + { + "name": "leg_back_right", + "from": [4.9, 6, 10], + "to": [7, 11, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [5, 6, 10]}, + "faces": { + "north": {"uv": [2, 13.5, 2.66667, 16], "texture": "#1"}, + "east": {"uv": [1.33334, 13.5, 2, 16], "texture": "#1"}, + "south": {"uv": [3.33334, 13.5, 4, 16], "texture": "#1"}, + "west": {"uv": [2.66667, 13.5, 3.33334, 16], "texture": "#1"}, + "up": {"uv": [2, 12, 2.66667, 13], "texture": "#1"}, + "down": {"uv": [2.66667, 12, 3.33334, 13], "texture": "#1"} + } + }, + { + "name": "body", + "from": [5, 10.5, 2], + "to": [11, 16.5, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [5, 10.5, 2]}, + "faces": { + "north": {"uv": [10, 7.5, 12, 10.5], "texture": "#1"}, + "east": {"uv": [14, 10.5, 12, 16], "rotation": 90, "texture": "#1"}, + "south": {"uv": [12, 7.5, 14, 10.5], "texture": "#1"}, + "west": {"uv": [8, 16, 10, 10.5], "rotation": 90, "texture": "#1"}, + "up": {"uv": [14, 10.5, 16, 16], "texture": "#1"}, + "down": {"uv": [10, 10.5, 12, 16], "rotation": 180, "texture": "#1"} + } + }, + { + "name": "head", + "from": [4, 9.5, -4], + "to": [12, 15.5, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 9.5, 0]}, + "faces": { + "north": {"uv": [2.33334, 5.5, 5, 8.5], "texture": "#1"}, + "east": {"uv": [0.33334, 5.5, 2.33334, 8.5], "texture": "#1"}, + "south": {"uv": [7, 5.5, 9.66667, 8.5], "texture": "#1"}, + "west": {"uv": [5, 5.5, 7, 8.5], "texture": "#1"}, + "up": {"uv": [2.33334, 2.5, 5, 5.5], "rotation": 180, "texture": "#1"}, + "down": {"uv": [7.66667, 2.5, 5, 5.5], "texture": "#1"} + } + }, + { + "name": "tail", + "from": [6, 11.5, 13], + "to": [10, 16.5, 22], + "rotation": {"angle": 0, "axis": "y", "origin": [6, 14.5, 13]}, + "faces": { + "north": {"uv": [11.66667, 0, 13, 2.5], "texture": "#1"}, + "east": {"uv": [10, 2.5, 11.66667, 7], "rotation": 90, "texture": "#1"}, + "south": {"uv": [13, 0, 14.33334, 2.5], "texture": "#1"}, + "west": {"uv": [14.66667, 7, 13, 2.5], "rotation": 90, "texture": "#1"}, + "up": {"uv": [14.66667, 2.5, 16, 7], "texture": "#1"}, + "down": {"uv": [11.66667, 7, 13.33334, 2.5], "texture": "#1"} + } + }, + { + "name": "muzzle", + "from": [6, 9.5, -7], + "to": [10, 11.5, -4], + "rotation": {"angle": 0, "axis": "y", "origin": [6, 9.5, -6]}, + "faces": { + "north": {"uv": [3, 10.5, 4.33334, 11.5], "texture": "#1"}, + "east": {"uv": [2, 10.5, 3, 11.5], "texture": "#1"}, + "south": {"uv": [5.33334, 10.5, 6.66667, 11.5], "texture": "#1"}, + "west": {"uv": [4.33334, 10.5, 5.33334, 11.5], "texture": "#1"}, + "up": {"uv": [3, 9, 4.33334, 10.5], "texture": "#1"}, + "down": {"uv": [4.33334, 9, 5.66667, 10.5], "texture": "#1"} + } + }, + { + "name": "right_ear", + "from": [4, 15.5, -3], + "to": [6, 17.5, -2], + "rotation": {"angle": 0, "axis": "y", "origin": [4, 15.5, -3]}, + "faces": { + "north": {"uv": [5.33334, 1, 6, 2], "texture": "#1"}, + "east": {"uv": [6.33334, 1, 6.83334, 2], "texture": "#1"}, + "south": {"uv": [6, 1, 7, 2], "texture": "#1"}, + "west": {"uv": [5, 1, 5.33334, 2], "texture": "#1"}, + "up": {"uv": [5.5, 0.5, 6.5, 1], "texture": "#1"}, + "down": {"uv": [5.41667, 0.5, 6.41667, 1], "texture": "#1"} + } + }, + { + "name": "left_ear", + "from": [10, 15.5, -3], + "to": [12, 17.5, -2], + "rotation": {"angle": 0, "axis": "y", "origin": [10, 15.5, -3]}, + "faces": { + "north": {"uv": [3, 1, 3.66667, 2], "texture": "#1"}, + "east": {"uv": [4, 1, 4.5, 2], "texture": "#1"}, + "south": {"uv": [3.66667, 1, 4.66667, 2], "texture": "#1"}, + "west": {"uv": [2.66667, 1, 3, 2], "texture": "#1"}, + "up": {"uv": [3.33334, 0.5, 4.33334, 0.83334], "texture": "#1"}, + "down": {"uv": [3, 0.5, 4, 0.83334], "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, 45, 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/frog.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/stone_set/statues/frog.json new file mode 100644 index 0000000000..276cdb8ba3 --- /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, 45, 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..be270951da --- /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, 45, 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/silverfish.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/stone_set/statues/silverfish.json new file mode 100644 index 0000000000..0c2018576c --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/stone_set/statues/silverfish.json @@ -0,0 +1,244 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 32], + "textures": { + "0": "gm4_furniture:block/furniture/stone_set/statues/stone_statue_base_1", + "1": "gm4_furniture:block/furniture/stone_set/statues/silverfish", + "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": [6.5, 6, 0], + "to": [9.5, 8, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [6.5, 6, 0]}, + "faces": { + "north": {"uv": [0.5, 1, 1.25, 2], "texture": "#1"}, + "east": {"uv": [0, 1, 0.5, 2], "texture": "#1"}, + "south": {"uv": [1.75, 1, 2.5, 2], "texture": "#1"}, + "west": {"uv": [1.25, 1, 1.75, 2], "texture": "#1"}, + "up": {"uv": [1.25, 1, 0.5, 0], "texture": "#1"}, + "down": {"uv": [1.25, 0, 2, 1], "texture": "#1"} + } + }, + { + "name": "body_1", + "from": [6, 6, 2], + "to": [10, 9, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [6, 6, 2]}, + "faces": { + "north": {"uv": [0.5, 3, 1.5, 4.5], "texture": "#1"}, + "east": {"uv": [0, 3, 0.5, 4.5], "texture": "#1"}, + "south": {"uv": [1.5, 3, 3, 4.5], "texture": "#1"}, + "west": {"uv": [1.5, 3, 2, 4.5], "texture": "#1"}, + "up": {"uv": [1.5, 3, 0.5, 2], "texture": "#1"}, + "down": {"uv": [1.5, 2, 2.5, 3], "texture": "#1"} + } + }, + { + "name": "body_2", + "from": [5, 6, 4], + "to": [11, 10, 7], + "rotation": {"angle": 0, "axis": "y", "origin": [6, 7, 4]}, + "faces": { + "north": {"uv": [0.75, 6, 2.25, 8], "texture": "#1"}, + "east": {"uv": [0, 6, 0.75, 8], "texture": "#1"}, + "south": {"uv": [3, 6, 4.5, 8], "texture": "#1"}, + "west": {"uv": [2.25, 6, 3, 8], "texture": "#1"}, + "up": {"uv": [2.25, 6, 0.75, 4.5], "texture": "#1"}, + "down": {"uv": [2.25, 4.5, 3.75, 6], "texture": "#1"} + } + }, + { + "name": "body_3", + "from": [6.5, 6, 7], + "to": [9.5, 9, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [7.5, 6, 7]}, + "faces": { + "north": {"uv": [0.75, 9.5, 1.5, 11], "texture": "#1"}, + "east": {"uv": [0, 9.5, 0.75, 11], "texture": "#1"}, + "south": {"uv": [2.25, 9.5, 3, 11], "texture": "#1"}, + "west": {"uv": [1.5, 9.5, 2.25, 11], "texture": "#1"}, + "up": {"uv": [1.5, 9.5, 0.75, 8], "texture": "#1"}, + "down": {"uv": [1.5, 8, 2.25, 9.5], "texture": "#1"} + } + }, + { + "name": "body_4", + "from": [7, 6, 10], + "to": [9, 8, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 6, 10]}, + "faces": { + "north": {"uv": [0.75, 12.5, 1.25, 13.5], "texture": "#1"}, + "east": {"uv": [0, 12.5, 0.75, 13.5], "texture": "#1"}, + "south": {"uv": [1.25, 12.5, 1.75, 13.5], "texture": "#1"}, + "west": {"uv": [2.5, 13.5, 1.75, 12.5], "texture": "#1"}, + "up": {"uv": [0.75, 11, 1.25, 12.5], "rotation": 180, "texture": "#1"}, + "down": {"uv": [1.25, 11, 1.75, 12.5], "texture": "#1"} + } + }, + { + "name": "body_5", + "from": [7, 6, 13], + "to": [9, 7, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [6, 6, 13]}, + "faces": { + "north": {"uv": [3.25, 1, 3.75, 1.5], "texture": "#1"}, + "east": {"uv": [2.75, 1, 3.25, 1.5], "texture": "#1"}, + "south": {"uv": [4.25, 1, 4.75, 1.5], "texture": "#1"}, + "west": {"uv": [3.75, 1, 4.25, 1.5], "texture": "#1"}, + "up": {"uv": [3.25, 0, 3.75, 1], "rotation": 180, "texture": "#1"}, + "down": {"uv": [3.75, 0, 4.25, 1], "rotation": 180, "texture": "#1"} + } + }, + { + "name": "tail", + "from": [7.5, 6, 15], + "to": [8.5, 7, 17], + "rotation": {"angle": 0, "axis": "y", "origin": [7.5, 6, 15]}, + "faces": { + "north": {"uv": [3.75, 3, 4, 3.5], "texture": "#1"}, + "east": {"uv": [3.25, 3, 3.75, 3.5], "texture": "#1"}, + "south": {"uv": [4.5, 3, 4.75, 3.5], "texture": "#1"}, + "west": {"uv": [4, 3, 4.5, 3.5], "texture": "#1"}, + "up": {"uv": [3.75, 2, 4, 3], "texture": "#1"}, + "down": {"uv": [4, 2, 4.25, 3], "texture": "#1"} + } + }, + { + "name": "frill_1", + "from": [5, 6, 2], + "to": [11, 11, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 6, 2]}, + "faces": { + "north": {"uv": [5.5, 10, 7, 12.5], "texture": "#1"}, + "east": {"uv": [0, 0, 0, 2.5], "texture": "#1"}, + "south": {"uv": [7, 10, 5.5, 12.5], "texture": "#1"}, + "west": {"uv": [0, 0, 0, 2.5], "texture": "#1"}, + "up": {"uv": [0, 0, 3, 0], "texture": "#1"}, + "down": {"uv": [0, 0, 3, 0], "texture": "#1"} + } + }, + { + "name": "frill_2", + "from": [3, 6, 4], + "to": [13, 13, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [3, 6, 2]}, + "faces": { + "north": {"uv": [5.75, 2, 8.25, 5.5], "texture": "#1"}, + "east": {"uv": [0, 0, 0, 3.5], "texture": "#1"}, + "south": {"uv": [8.25, 2, 5.75, 5.5], "texture": "#1"}, + "west": {"uv": [0, 0, 0, 3.5], "texture": "#1"}, + "up": {"uv": [0, 0, 5, 0], "texture": "#1"}, + "down": {"uv": [0, 0, 5, 0], "texture": "#1"} + } + }, + { + "name": "frill_3", + "from": [4, 6, 7], + "to": [12, 12, 7], + "rotation": {"angle": 0, "axis": "y", "origin": [4, 6, 5]}, + "faces": { + "north": {"uv": [11.25, 2.5, 9.25, 5], "texture": "#1"}, + "east": {"uv": [0, 0, 0, 3], "texture": "#1"}, + "south": {"uv": [9.5, 2.5, 11.25, 5], "texture": "#1"}, + "west": {"uv": [0, 0, 0, 3], "texture": "#1"}, + "up": {"uv": [0, 0, 4, 0], "texture": "#1"}, + "down": {"uv": [0, 0, 4, 0], "texture": "#1"} + } + }, + { + "name": "frill_4", + "from": [5.5, 6, 10], + "to": [10.5, 10, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [5.5, 6, 8]}, + "faces": { + "north": {"uv": [5.75, 7, 7, 9], "texture": "#1"}, + "east": {"uv": [0, 0, 0, 2], "texture": "#1"}, + "south": {"uv": [7, 7, 5.75, 9], "texture": "#1"}, + "west": {"uv": [0, 0, 0, 2], "texture": "#1"}, + "up": {"uv": [0, 0, 2.5, 0], "texture": "#1"}, + "down": {"uv": [0, 0, 2.5, 0], "texture": "#1"} + } + }, + { + "name": "frill_5", + "from": [5, 6, 13], + "to": [11, 10, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [5, 6, 13]}, + "faces": { + "north": {"uv": [9.5, 7, 8, 9], "texture": "#1"}, + "east": {"uv": [0, 0, 0, 2], "texture": "#1"}, + "south": {"uv": [8, 7, 9.5, 9], "texture": "#1"}, + "west": {"uv": [0, 0, 0, 2], "texture": "#1"}, + "up": {"uv": [0, 0, 3, 0], "texture": "#1"}, + "down": {"uv": [0, 0, 3, 0], "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, 45, 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/slime.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/stone_set/statues/slime.json new file mode 100644 index 0000000000..f7c4c47c69 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/stone_set/statues/slime.json @@ -0,0 +1,91 @@ +{ + "format_version": "1.21.6", + "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/slime", + "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": "slime", + "from": [4, 6, 4], + "to": [12, 14, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [6, 6, 5]}, + "faces": { + "north": {"uv": [0, 0, 4, 4], "texture": "#1"}, + "east": {"uv": [0, 4, 4, 8], "texture": "#1"}, + "south": {"uv": [4, 0, 8, 4], "texture": "#1"}, + "west": {"uv": [4, 4, 8, 8], "texture": "#1"}, + "up": {"uv": [4, 12, 0, 8], "texture": "#1"}, + "down": {"uv": [12, 0, 8, 4], "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, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, -135, 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/acacia/1x1_table_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/acacia/1x1_table_1.json new file mode 100644 index 0000000000..9a78fa5b18 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/acacia/1x1_table_1.json @@ -0,0 +1,142 @@ +{ + "format_version": "1.21.6", + "credit": "Made with Blockbench", + "textures": { + "0": "gm4_furniture:block/furniture/wood_set/acacia/1x1_table_1", + "particle": "gm4_furniture:block/furniture/wood_set/acacia/1x1_table_1" + }, + "elements": [ + { + "name": "top", + "from": [0, 14, 0], + "to": [16, 16, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 14, 0]}, + "faces": { + "north": {"uv": [0, 8.5, 8, 9.5], "texture": "#0"}, + "east": {"uv": [0, 8.5, 8, 9.5], "texture": "#0"}, + "south": {"uv": [0, 8.5, 8, 9.5], "texture": "#0"}, + "west": {"uv": [0, 8.5, 8, 9.5], "texture": "#0"}, + "up": {"uv": [8, 8, 0, 0], "texture": "#0"}, + "down": {"uv": [8, 0, 0, 8], "texture": "#0"} + } + }, + { + "name": "outta_north", + "from": [6.85, -1.65, 2], + "to": [8.85, 17.35, 3], + "rotation": {"angle": 37.5, "axis": "z", "origin": [7.85, 8, 3]}, + "faces": { + "north": {"uv": [8.5, 0, 9.5, 9.5], "texture": "#0"}, + "east": {"uv": [10, 0, 10.5, 9.5], "texture": "#0"}, + "south": {"uv": [8.5, 0, 9.5, 9.5], "texture": "#0"}, + "west": {"uv": [10, 0, 10.5, 9.5], "texture": "#0"}, + "up": {"uv": [9.5, 11.5, 8.5, 11], "texture": "#0"}, + "down": {"uv": [9.5, 11, 8.5, 11.5], "texture": "#0"} + } + }, + { + "name": "outta_south", + "from": [6.85, -1.65, 13], + "to": [8.85, 17.35, 14], + "rotation": {"angle": 37.5, "axis": "z", "origin": [7.85, 8, 13]}, + "faces": { + "north": {"uv": [8.5, 0, 9.5, 9.5], "texture": "#0"}, + "east": {"uv": [10, 0, 10.5, 9.5], "texture": "#0"}, + "south": {"uv": [8.5, 0, 9.5, 9.5], "texture": "#0"}, + "west": {"uv": [10, 0, 10.5, 9.5], "texture": "#0"}, + "up": {"uv": [9.5, 11.5, 8.5, 11], "texture": "#0"}, + "down": {"uv": [9.5, 11, 8.5, 11.5], "texture": "#0"} + } + }, + { + "name": "inner_north", + "from": [7.15, -1.65, 3], + "to": [9.15, 17.35, 4], + "rotation": {"angle": -37.5, "axis": "z", "origin": [8.15, 8, 4]}, + "faces": { + "north": {"uv": [8.5, 0, 9.5, 9.5], "texture": "#0"}, + "east": {"uv": [10, 0, 10.5, 9.5], "texture": "#0"}, + "south": {"uv": [8.5, 0, 9.5, 9.5], "texture": "#0"}, + "west": {"uv": [10, 0, 10.5, 9.5], "texture": "#0"}, + "up": {"uv": [9.5, 11.5, 8.5, 11], "texture": "#0"}, + "down": {"uv": [9.5, 11, 8.5, 11.5], "texture": "#0"} + } + }, + { + "name": "inner_south", + "from": [7.15, -1.65, 12], + "to": [9.15, 17.35, 13], + "rotation": {"angle": -37.5, "axis": "z", "origin": [8.15, 8, 12]}, + "faces": { + "north": {"uv": [8.5, 0, 9.5, 9.5], "texture": "#0"}, + "east": {"uv": [10, 0, 10.5, 9.5], "texture": "#0"}, + "south": {"uv": [8.5, 0, 9.5, 9.5], "texture": "#0"}, + "west": {"uv": [10, 0, 10.5, 9.5], "texture": "#0"}, + "up": {"uv": [9.5, 11.5, 8.5, 11], "texture": "#0"}, + "down": {"uv": [9.5, 11, 8.5, 11.5], "texture": "#0"} + } + }, + { + "name": "support_east", + "from": [8.85, 0.35, 2], + "to": [9.85, 2.35, 14], + "rotation": {"angle": 37.5, "axis": "z", "origin": [7.85, 8, 13]}, + "faces": { + "north": {"uv": [6.5, 11, 7, 12], "texture": "#0"}, + "east": {"uv": [0, 11, 6, 12], "texture": "#0"}, + "south": {"uv": [6.5, 11, 7, 12], "texture": "#0"}, + "west": {"uv": [0, 11, 6, 12], "texture": "#0"}, + "up": {"uv": [6, 10.5, 0, 10], "rotation": 90, "texture": "#0"}, + "down": {"uv": [0, 10.5, 6, 10], "rotation": 90, "texture": "#0"} + } + }, + { + "name": "support_west", + "from": [6.15, 0.35, 3], + "to": [7.15, 2.35, 13], + "rotation": {"angle": -37.5, "axis": "z", "origin": [8.15, 8, 8]}, + "faces": { + "north": {"uv": [5.5, 13.5, 6, 14.5], "texture": "#0"}, + "east": {"uv": [0, 13.5, 5, 14.5], "texture": "#0"}, + "south": {"uv": [5.5, 13.5, 6, 14.5], "texture": "#0"}, + "west": {"uv": [0, 13.5, 5, 14.5], "texture": "#0"}, + "up": {"uv": [5, 13, 0, 12.5], "rotation": 90, "texture": "#0"}, + "down": {"uv": [0, 13, 5, 12.5], "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, 45, 0], + "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, -0.25, 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/acacia/2x2_table_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/acacia/2x2_table_1.json new file mode 100644 index 0000000000..e186fb779c --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/acacia/2x2_table_1.json @@ -0,0 +1,102 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "0": "gm4_furniture:block/furniture/wood_set/acacia/2x2_table_1", + "particle": "gm4_furniture:block/furniture/wood_set/acacia/2x2_table_1" + }, + "elements": [ + { + "name": "top", + "from": [-8, 14, -8], + "to": [24, 16, 24], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 15, 8]}, + "faces": { + "north": {"uv": [0, 8.25, 8, 8.75], "texture": "#0"}, + "east": {"uv": [0, 9, 8, 9.5], "texture": "#0"}, + "south": {"uv": [0, 8.25, 8, 8.75], "texture": "#0"}, + "west": {"uv": [0, 9, 8, 9.5], "texture": "#0"}, + "up": {"uv": [8, 8, 0, 0], "texture": "#0"}, + "down": {"uv": [8, 0, 0, 8], "texture": "#0"} + } + }, + { + "name": "centre", + "from": [2, 0, 2], + "to": [14, 14, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [2, 0, 2]}, + "faces": { + "north": {"uv": [8.5, 0, 11.5, 3.5], "texture": "#0"}, + "east": {"uv": [8.5, 0, 11.5, 3.5], "texture": "#0"}, + "south": {"uv": [8.5, 0, 11.5, 3.5], "texture": "#0"}, + "west": {"uv": [8.5, 0, 11.5, 3.5], "texture": "#0"}, + "up": {"uv": [11.5, 7, 8.5, 4], "texture": "#0"}, + "down": {"uv": [11.5, 4, 8.5, 7], "texture": "#0"} + } + }, + { + "name": "north_south", + "from": [3, 0, 1], + "to": [13, 14, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [3, 0, 0]}, + "faces": { + "north": {"uv": [8.75, 0, 11.25, 3.5], "texture": "#0"}, + "east": {"uv": [8.25, 0, 11.75, 3.5], "texture": "#0"}, + "south": {"uv": [8.75, 0, 11.25, 3.5], "texture": "#0"}, + "west": {"uv": [8.25, 0, 11.75, 3.5], "texture": "#0"}, + "up": {"uv": [11.25, 7.25, 8.75, 3.75], "texture": "#0"}, + "down": {"uv": [11.25, 3.75, 8.75, 7.25], "texture": "#0"} + } + }, + { + "name": "east_west", + "from": [1, 0, 3], + "to": [15, 14, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 3]}, + "faces": { + "north": {"uv": [8.25, 0, 11.75, 3.5], "texture": "#0"}, + "east": {"uv": [8.75, 0, 11.25, 3.5], "texture": "#0"}, + "south": {"uv": [8.25, 0, 11.75, 3.5], "texture": "#0"}, + "west": {"uv": [8.75, 0, 11.25, 3.5], "texture": "#0"}, + "up": {"uv": [11.75, 6.75, 8.25, 4.25], "texture": "#0"}, + "down": {"uv": [11.75, 4.25, 8.25, 6.75], "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.27, 0.27, 0.27] + }, + "firstperson_lefthand": { + "rotation": [0, 45, 0], + "scale": [0.27, 0.27, 0.27] + }, + "ground": { + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "translation": [0, -1, 0], + "scale": [0.35, 0.35, 0.35] + }, + "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/acacia/bench_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/acacia/bench_1.json new file mode 100644 index 0000000000..16d7b95176 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/acacia/bench_1.json @@ -0,0 +1,99 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "0": "gm4_furniture:block/furniture/wood_set/acacia/bench_1", + "particle": "gm4_furniture:block/furniture/wood_set/acacia/bench_1" + }, + "elements": [ + { + "name": "top", + "from": [-14, 2, 2], + "to": [30, 10, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 2, 2]}, + "faces": { + "north": {"uv": [3.75, 0, 5.75, 11], "rotation": 90, "texture": "#0"}, + "east": {"uv": [6.25, 0, 9.25, 2], "texture": "#0"}, + "south": {"uv": [3.75, 0, 5.75, 11], "rotation": 90, "texture": "#0"}, + "west": {"uv": [6.25, 0, 9.25, 2], "texture": "#0"}, + "up": {"uv": [3.25, 11, 0.25, 0], "rotation": 90, "texture": "#0"}, + "down": {"uv": [0.25, 11, 3.25, 0], "rotation": 90, "texture": "#0"} + } + }, + { + "name": "side", + "from": [-14, 3, 1], + "to": [30, 9, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [-14, 4, 3]}, + "faces": { + "north": {"uv": [4, 0, 5.5, 11], "rotation": 90, "texture": "#0"}, + "east": {"uv": [6, 0.25, 9.5, 1.75], "texture": "#0"}, + "south": {"uv": [4, 0, 5.5, 11], "rotation": 90, "texture": "#0"}, + "west": {"uv": [6, 0.25, 9.5, 1.75], "texture": "#0"}, + "up": {"uv": [3.5, 11, 0, 0], "rotation": 90, "texture": "#0"}, + "down": {"uv": [0, 11, 3.5, 0], "rotation": 90, "texture": "#0"} + } + }, + { + "name": "support_right", + "from": [-7, 0, 0], + "to": [-2, 5, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [-4, 0, 0]}, + "faces": { + "north": {"uv": [6, 9.75, 7.25, 11], "texture": "#0"}, + "east": {"uv": [6, 5.5, 7.25, 9.5], "rotation": 90, "texture": "#0"}, + "south": {"uv": [6, 9.75, 7.25, 11], "texture": "#0"}, + "west": {"uv": [7.25, 5.5, 6, 9.5], "rotation": 90, "texture": "#0"}, + "up": {"uv": [7.25, 9.5, 6, 5.5], "texture": "#0"}, + "down": {"uv": [7.25, 5.5, 6, 9.5], "texture": "#0"} + } + }, + { + "name": "support_left", + "from": [18, 0, 0], + "to": [23, 5, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [21, 0, 0]}, + "faces": { + "north": {"uv": [6, 9.75, 7.25, 11], "texture": "#0"}, + "east": {"uv": [6, 5.5, 7.25, 9.5], "rotation": 90, "texture": "#0"}, + "south": {"uv": [6, 11, 7.25, 9.75], "texture": "#0"}, + "west": {"uv": [7.25, 5.5, 6, 9.5], "rotation": 90, "texture": "#0"}, + "up": {"uv": [7.25, 9.5, 6, 5.5], "texture": "#0"}, + "down": {"uv": [7.25, 5.5, 6, 9.5], "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, 45, 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.32, 0.32, 0.32] + }, + "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/acacia/chair_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/acacia/chair_1.json new file mode 100644 index 0000000000..e6732971c3 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/acacia/chair_1.json @@ -0,0 +1,157 @@ +{ + "format_version": "1.21.6", + "credit": "Made with Blockbench", + "texture_size": [8, 8], + "textures": { + "0": "gm4_furniture:block/furniture/wood_set/acacia/chair_1", + "particle": "gm4_furniture:block/furniture/wood_set/acacia/chair_1" + }, + "elements": [ + { + "name": "seat", + "from": [2, 7, 2], + "to": [14, 8, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 7, 0]}, + "faces": { + "north": {"uv": [0, 6.5, 6, 7], "texture": "#0"}, + "east": {"uv": [0, 6.5, 6, 7], "texture": "#0"}, + "south": {"uv": [0, 6.5, 6, 7], "texture": "#0"}, + "west": {"uv": [0, 6.5, 6, 7], "texture": "#0"}, + "up": {"uv": [6, 6, 0, 0], "texture": "#0"}, + "down": {"uv": [6, 0, 0, 6], "texture": "#0"} + } + }, + { + "name": "support_top", + "from": [2, 18, 2.8], + "to": [14, 21, 3.8], + "rotation": {"angle": 37.5, "axis": "x", "origin": [2, 1, 1.8]}, + "faces": { + "north": {"uv": [0, 7.5, 6, 9], "texture": "#0"}, + "east": {"uv": [4.5, 9.5, 6, 10], "rotation": 90, "texture": "#0"}, + "south": {"uv": [0, 7.5, 6, 9], "texture": "#0"}, + "west": {"uv": [4.5, 9.5, 6, 10], "rotation": 90, "texture": "#0"}, + "up": {"uv": [6, 10, 0, 9.5], "texture": "#0"}, + "down": {"uv": [6, 9.5, 0, 10], "texture": "#0"} + } + }, + { + "name": "support_big", + "from": [2, 3, 1.8], + "to": [14, 4, 3.8], + "rotation": {"angle": 37.5, "axis": "x", "origin": [2, 1, 1.8]}, + "faces": { + "north": {"uv": [0, 12, 6, 12.5], "texture": "#0"}, + "east": {"uv": [0, 12, 1, 12.5], "texture": "#0"}, + "south": {"uv": [0, 12, 6, 12.5], "texture": "#0"}, + "west": {"uv": [0, 12, 1, 12.5], "texture": "#0"}, + "up": {"uv": [6, 11.5, 0, 10.5], "texture": "#0"}, + "down": {"uv": [6, 10.5, 0, 11.5], "texture": "#0"} + } + }, + { + "name": "long_left", + "from": [14, 1, 1.8], + "to": [15, 21, 3.8], + "rotation": {"angle": 37.5, "axis": "x", "origin": [13, 1, 1.8]}, + "faces": { + "north": {"uv": [8, 0, 8.5, 10], "texture": "#0"}, + "east": {"uv": [6.5, 0, 7.5, 10], "texture": "#0"}, + "south": {"uv": [8, 0, 8.5, 10], "texture": "#0"}, + "west": {"uv": [6.5, 0, 7.5, 10], "texture": "#0"}, + "up": {"uv": [9.5, 10, 9, 9], "texture": "#0"}, + "down": {"uv": [9.5, 9, 9, 10], "texture": "#0"} + } + }, + { + "name": "long_right", + "from": [1, 1, 1.8], + "to": [2, 21, 3.8], + "rotation": {"angle": 37.5, "axis": "x", "origin": [0, 1, 1.8]}, + "faces": { + "north": {"uv": [8, 0, 8.5, 10], "texture": "#0"}, + "east": {"uv": [6.5, 0, 7.5, 10], "texture": "#0"}, + "south": {"uv": [8, 0, 8.5, 10], "texture": "#0"}, + "west": {"uv": [6.5, 0, 7.5, 10], "texture": "#0"}, + "up": {"uv": [9.5, 10, 9, 9], "texture": "#0"}, + "down": {"uv": [9.5, 9, 9, 10], "texture": "#0"} + } + }, + { + "name": "short_right", + "from": [1, -0.5, 14.15], + "to": [2, 10.5, 16.15], + "rotation": {"angle": -22.5, "axis": "x", "origin": [0, -0.5, 14.15]}, + "faces": { + "north": {"uv": [10.5, 0, 11, 5.5], "texture": "#0"}, + "east": {"uv": [9, 0, 10, 5.5], "texture": "#0"}, + "south": {"uv": [10.5, 0, 11, 5.5], "texture": "#0"}, + "west": {"uv": [9, 0, 10, 5.5], "texture": "#0"}, + "up": {"uv": [9.5, 7, 9, 6], "texture": "#0"}, + "down": {"uv": [9.5, 6, 9, 7], "texture": "#0"} + } + }, + { + "name": "short_left", + "from": [14, -0.5, 14.15], + "to": [15, 10.5, 16.15], + "rotation": {"angle": -22.5, "axis": "x", "origin": [13, -0.5, 14.15]}, + "faces": { + "north": {"uv": [10.5, 0, 11, 5.5], "texture": "#0"}, + "east": {"uv": [9, 0, 10, 5.5], "texture": "#0"}, + "south": {"uv": [10.5, 0, 11, 5.5], "texture": "#0"}, + "west": {"uv": [9, 0, 10, 5.5], "texture": "#0"}, + "up": {"uv": [9.5, 7, 9, 6], "texture": "#0"}, + "down": {"uv": [9.5, 6, 9, 7], "texture": "#0"} + } + }, + { + "name": "support_small", + "from": [2, 1.5, 14.15], + "to": [14, 2.5, 16.15], + "rotation": {"angle": -22.5, "axis": "x", "origin": [6, -0.5, 14.15]}, + "faces": { + "north": {"uv": [0, 12, 6, 12.5], "texture": "#0"}, + "east": {"uv": [0, 12, 1, 12.5], "texture": "#0"}, + "south": {"uv": [0, 12, 6, 12.5], "texture": "#0"}, + "west": {"uv": [5, 12, 6, 12.5], "texture": "#0"}, + "up": {"uv": [6, 11.5, 0, 10.5], "texture": "#0"}, + "down": {"uv": [6, 10.5, 0, 11.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, 45, 0], + "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, -1, 0], + "scale": [0.55, 0.55, 0.55] + }, + "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/wood_set/acacia/light_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/acacia/light_1.json new file mode 100644 index 0000000000..6eb5d79ca9 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/acacia/light_1.json @@ -0,0 +1,286 @@ +{ + "format_version": "1.21.6", + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "0": "gm4_furniture:block/furniture/wood_set/acacia/light_1", + "1": "gm4_furniture:block/furniture/wood_set/acacia/campfire_fire", + "2": "gm4_furniture:block/furniture/wood_set/acacia/campfire_lit", + "particle": "gm4_furniture:block/furniture/wood_set/acacia/light_1" + }, + "elements": [ + { + "name": "stone", + "from": [1, 0, 1], + "to": [15, 1, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -1]}, + "faces": { + "north": {"uv": [0, 14.5, 7, 15], "texture": "#2"}, + "east": {"uv": [0, 15.5, 7, 16], "texture": "#2"}, + "south": {"uv": [0, 14.5, 7, 15], "texture": "#2"}, + "west": {"uv": [0, 15.5, 7, 16], "texture": "#2"}, + "up": {"uv": [7, 7, 0, 0], "texture": "#2"}, + "down": {"uv": [7, 7, 0, 14], "texture": "#2"} + } + }, + { + "name": "ns_south", + "from": [3, 1, 2], + "to": [6, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [3, 1, 2]}, + "faces": { + "north": {"uv": [7.5, 9, 9, 10], "texture": "#2"}, + "east": {"uv": [7.5, 7.5, 13.5, 8.5], "texture": "#2"}, + "south": {"uv": [7.5, 9, 9, 10], "texture": "#2"}, + "west": {"uv": [7.5, 6, 13.5, 7], "texture": "#2"}, + "up": {"uv": [15.5, 8.5, 14, 2.5], "texture": "#2"}, + "down": {"uv": [15.5, 2.5, 14, 8.5], "texture": "#2"} + } + }, + { + "name": "ns_east", + "from": [10, 1, 2], + "to": [13, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [10, 1, 2]}, + "faces": { + "north": {"uv": [7.5, 9, 9, 10], "texture": "#2"}, + "east": {"uv": [7.5, 6, 13.5, 7], "texture": "#2"}, + "south": {"uv": [7.5, 9, 9, 10], "texture": "#2"}, + "west": {"uv": [7.5, 7.5, 13.5, 8.5], "texture": "#2"}, + "up": {"uv": [14, 8.5, 15.5, 2.5], "texture": "#2"}, + "down": {"uv": [15.5, 2.5, 14, 8.5], "texture": "#2"} + } + }, + { + "name": "ew_south", + "from": [2, 2, 10], + "to": [14, 5, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 2, 11]}, + "faces": { + "north": {"uv": [7.5, 2, 13.5, 3.5], "texture": "#2"}, + "east": {"uv": [14, 0, 15.5, 1.5], "texture": "#2"}, + "south": {"uv": [7.5, 0, 13.5, 1.5], "texture": "#2"}, + "west": {"uv": [14, 0, 15.5, 1.5], "texture": "#2"}, + "up": {"uv": [13.5, 1.5, 7.5, 0], "texture": "#2"}, + "down": {"uv": [13.5, 4, 7.5, 5.5], "texture": "#2"} + } + }, + { + "name": "ew_north", + "from": [2, 2, 3], + "to": [14, 5, 6], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 2, 4]}, + "faces": { + "north": {"uv": [7.5, 0, 13.5, 1.5], "texture": "#2"}, + "east": {"uv": [14, 0, 15.5, 1.5], "texture": "#2"}, + "south": {"uv": [7.5, 2, 13.5, 3.5], "texture": "#2"}, + "west": {"uv": [14, 0, 15.5, 1.5], "texture": "#2"}, + "up": {"uv": [13.5, 0, 7.5, 1.5], "texture": "#2"}, + "down": {"uv": [13.5, 4, 7.5, 5.5], "texture": "#2"} + } + }, + { + "name": "stick_front_right", + "from": [0, -0.91494, 3.18888], + "to": [1, 20.08506, 5.18888], + "rotation": {"angle": 20, "axis": "x", "origin": [0.5, 8.58506, 4.18888]}, + "faces": { + "north": {"uv": [3, 4.25, 3.25, 9.5], "texture": "#0"}, + "east": {"uv": [2.25, 4.25, 2.75, 9.5], "texture": "#0"}, + "south": {"uv": [3.5, 4.25, 3.75, 9.5], "texture": "#0"}, + "west": {"uv": [0, 4.25, 0.5, 9.5], "texture": "#0"}, + "up": {"uv": [3.75, 10.25, 3.5, 9.75], "texture": "#0"}, + "down": {"uv": [3.25, 9.75, 3, 10.25], "texture": "#0"} + } + }, + { + "name": "stick_back_right", + "from": [0, -0.91494, 10.81112], + "to": [1, 20.08506, 12.81112], + "rotation": {"angle": -20, "axis": "x", "origin": [0.5, 8.58506, 11.81112]}, + "faces": { + "north": {"uv": [3.5, 4.25, 3.75, 9.5], "texture": "#0"}, + "east": {"uv": [1.5, 4.25, 2, 9.5], "texture": "#0"}, + "south": {"uv": [3, 4.25, 3.25, 9.5], "texture": "#0"}, + "west": {"uv": [0.75, 4.25, 1.25, 9.5], "texture": "#0"}, + "up": {"uv": [3.75, 10.25, 3.5, 9.75], "texture": "#0"}, + "down": {"uv": [3.25, 9.75, 3, 10.25], "texture": "#0"} + } + }, + { + "name": "stick_front_left", + "from": [15, -0.91494, 3.18888], + "to": [16, 20.08506, 5.18888], + "rotation": {"angle": 20, "axis": "x", "origin": [15.5, 8.58506, 4.18888]}, + "faces": { + "north": {"uv": [3, 4.25, 3.25, 9.5], "texture": "#0"}, + "east": {"uv": [0.75, 4.25, 1.25, 9.5], "texture": "#0"}, + "south": {"uv": [3.5, 4.25, 3.75, 9.5], "texture": "#0"}, + "west": {"uv": [1.5, 4.25, 2, 9.5], "texture": "#0"}, + "up": {"uv": [3.75, 10.25, 3.5, 9.75], "texture": "#0"}, + "down": {"uv": [3.25, 9.75, 3, 10.25], "texture": "#0"} + } + }, + { + "name": "stick_back_left", + "from": [15, -0.91494, 10.81112], + "to": [16, 20.08506, 12.81112], + "rotation": {"angle": -20, "axis": "x", "origin": [15.5, 8.58506, 11.81112]}, + "faces": { + "north": {"uv": [3.5, 4.25, 3.75, 9.5], "texture": "#0"}, + "east": {"uv": [0, 4.25, 0.5, 9.5], "texture": "#0"}, + "south": {"uv": [3, 4.25, 3.25, 9.5], "texture": "#0"}, + "west": {"uv": [2.25, 4.25, 2.75, 9.5], "texture": "#0"}, + "up": {"uv": [3.75, 10.25, 3.5, 9.75], "texture": "#0"}, + "down": {"uv": [3.25, 9.75, 3, 10.25], "texture": "#0"} + } + }, + { + "name": "stick_top", + "from": [-1, 17, 7], + "to": [17, 18, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 17.5, 8]}, + "faces": { + "north": {"uv": [6, 0.75, 10.5, 1], "texture": "#0"}, + "east": {"uv": [10.75, 0.75, 11.25, 1], "texture": "#0"}, + "south": {"uv": [6, 0.75, 10.5, 1], "texture": "#0"}, + "west": {"uv": [10.75, 0.75, 11.25, 1], "texture": "#0"}, + "up": {"uv": [10.5, 0.5, 6, 0], "texture": "#0"}, + "down": {"uv": [10.5, 0, 6, 0.5], "texture": "#0"} + } + }, + { + "name": "pot", + "from": [4, 11, 4], + "to": [12, 15, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [4, 11, 4]}, + "faces": { + "north": {"uv": [3.75, 4.5, 5.75, 5.5], "texture": "#0"}, + "east": {"uv": [3.75, 4.5, 5.75, 5.5], "texture": "#0"}, + "south": {"uv": [3.75, 4.5, 5.75, 5.5], "texture": "#0"}, + "west": {"uv": [3.75, 4.5, 5.75, 5.5], "texture": "#0"}, + "up": {"uv": [5.75, 2, 3.75, 0], "texture": "#0"}, + "down": {"uv": [5.75, 2.25, 3.75, 4.25], "texture": "#0"} + } + }, + { + "name": "chain_right", + "from": [3.9, 12, 6], + "to": [3.9, 19, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [2.9, 17, 8]}, + "faces": { + "north": {"uv": [0, 0, 0, 1.75], "texture": "#0"}, + "east": {"uv": [4, 5.75, 5, 7.5], "texture": "#0"}, + "south": {"uv": [0, 0, 0, 1.75], "texture": "#0"}, + "west": {"uv": [5, 5.75, 4, 7.5], "texture": "#0"}, + "up": {"uv": [0, 1, 0, 0], "texture": "#0"}, + "down": {"uv": [0, 0, 0, 1], "texture": "#0"} + } + }, + { + "name": "chain_left", + "from": [12.1, 12, 6], + "to": [12.1, 19, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [11.1, 17, 8]}, + "faces": { + "north": {"uv": [0, 0, 0, 1.75], "texture": "#0"}, + "east": {"uv": [4, 5.75, 5, 7.5], "texture": "#0"}, + "south": {"uv": [0, 0, 0, 1.75], "texture": "#0"}, + "west": {"uv": [5, 5.75, 4, 7.5], "texture": "#0"}, + "up": {"uv": [0, 1, 0, 0], "texture": "#0"}, + "down": {"uv": [0, 0, 0, 1], "texture": "#0"} + } + }, + { + "name": "pot_handles", + "from": [3, 13, 7], + "to": [13, 14, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [3, 13, 7]}, + "faces": { + "north": {"uv": [6, 5.75, 8.5, 6], "texture": "#0"}, + "east": {"uv": [8.75, 5.75, 9.25, 6], "texture": "#0"}, + "south": {"uv": [6, 5.75, 8.5, 6], "texture": "#0"}, + "west": {"uv": [8.75, 5.75, 9.25, 6], "texture": "#0"}, + "up": {"uv": [8.5, 6.75, 6, 6.25], "texture": "#0"}, + "down": {"uv": [8.5, 6.25, 6, 6.75], "texture": "#0"} + } + }, + { + "name": "pot_lid", + "from": [7, 15, 7], + "to": [9, 16, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 14, 7]}, + "faces": { + "north": {"uv": [6, 7, 6.5, 7.25], "texture": "#0"}, + "east": {"uv": [6, 7, 6.5, 7.25], "texture": "#0"}, + "south": {"uv": [6, 7, 6.5, 7.25], "texture": "#0"}, + "west": {"uv": [6, 7, 6.5, 7.25], "texture": "#0"}, + "up": {"uv": [5.75, 7.5, 5.25, 7], "texture": "#0"}, + "down": {"uv": [5.75, 7, 5.25, 7.5], "texture": "#0"} + } + }, + { + "name": "fire_1", + "from": [1, 1, 8], + "to": [15, 11, 8], + "rotation": {"angle": -45, "axis": "y", "origin": [8, 5.5, 8]}, + "faces": { + "north": {"uv": [2, 1, 14, 11], "texture": "#1"}, + "east": {"uv": [0, 0, 0, 10], "texture": "#1"}, + "south": {"uv": [2, 1, 14, 11], "texture": "#1"}, + "west": {"uv": [0, 0, 0, 10], "texture": "#1"}, + "up": {"uv": [0, 0, 12, 0], "texture": "#1"}, + "down": {"uv": [0, 0, 12, 0], "texture": "#1"} + } + }, + { + "name": "fire_2", + "from": [1, 1, 8], + "to": [15, 11, 8], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 5.5, 8]}, + "faces": { + "north": {"uv": [2, 1, 14, 11], "texture": "#1"}, + "east": {"uv": [0, 0, 0, 10], "texture": "#1"}, + "south": {"uv": [2, 1, 14, 11], "texture": "#1"}, + "west": {"uv": [0, 0, 0, 10], "texture": "#1"}, + "up": {"uv": [0, 0, 12, 0], "rotation": 180, "texture": "#1"}, + "down": {"uv": [0, 0, 12, 0], "rotation": 180, "texture": "#1"} + } + } + ], + "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, 110, 0], + "translation": [0, 3.25, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 110, 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, -135, 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/acacia/stool_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/acacia/stool_1.json new file mode 100644 index 0000000000..07e9c1ce28 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/acacia/stool_1.json @@ -0,0 +1,85 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "gm4_furniture:block/furniture/wood_set/acacia/stool_1", + "particle": "gm4_furniture:block/furniture/wood_set/acacia/stool_1" + }, + "elements": [ + { + "name": "centre", + "from": [3, 0, 3], + "to": [13, 8, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 3]}, + "faces": { + "north": {"uv": [0.5, 6.5, 5.5, 10.5], "texture": "#0"}, + "east": {"uv": [0.5, 6.5, 5.5, 10.5], "texture": "#0"}, + "south": {"uv": [0.5, 6.5, 5.5, 10.5], "texture": "#0"}, + "west": {"uv": [0.5, 6.5, 5.5, 10.5], "texture": "#0"}, + "up": {"uv": [5.5, 5.5, 0.5, 0.5], "texture": "#0"}, + "down": {"uv": [5.5, 0.5, 0.5, 5.5], "texture": "#0"} + } + }, + { + "name": "north_south", + "from": [2, 0, 4], + "to": [14, 8, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [3, 0, 8]}, + "faces": { + "north": {"uv": [0, 6.5, 6, 10.5], "texture": "#0"}, + "east": {"uv": [1, 6.5, 5, 10.5], "texture": "#0"}, + "south": {"uv": [0, 6.5, 6, 10.5], "texture": "#0"}, + "west": {"uv": [1, 6.5, 5, 10.5], "texture": "#0"}, + "up": {"uv": [6, 5, 0, 1], "texture": "#0"}, + "down": {"uv": [6, 1, 0, 5], "texture": "#0"} + } + }, + { + "name": "east_west", + "from": [4, 0, 2], + "to": [12, 8, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [6, 0, 3]}, + "faces": { + "north": {"uv": [1, 6.5, 5, 10.5], "texture": "#0"}, + "east": {"uv": [0, 6.5, 6, 10.5], "texture": "#0"}, + "south": {"uv": [1, 6.5, 5, 10.5], "texture": "#0"}, + "west": {"uv": [0, 6.5, 6, 10.5], "texture": "#0"}, + "up": {"uv": [5, 6, 1, 0], "texture": "#0"}, + "down": {"uv": [5, 0, 1, 6], "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, 45, 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.5, 0], + "scale": [0.77, 0.77, 0.77] + }, + "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/cherry/1x1_table_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/cherry/1x1_table_1.json new file mode 100644 index 0000000000..bc2bf1a050 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/cherry/1x1_table_1.json @@ -0,0 +1,142 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "gm4_furniture:block/furniture/wood_set/cherry/1x1_table_1", + "particle": "gm4_furniture:block/furniture/wood_set/cherry/1x1_table_1" + }, + "elements": [ + { + "name": "table_top", + "from": [0, 14, 0], + "to": [16, 16, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 14, 0]}, + "faces": { + "north": {"uv": [0, 8.5, 8, 9.5], "texture": "#0"}, + "east": {"uv": [0, 8.5, 8, 9.5], "texture": "#0"}, + "south": {"uv": [0, 8.5, 8, 9.5], "texture": "#0"}, + "west": {"uv": [0, 8.5, 8, 9.5], "texture": "#0"}, + "up": {"uv": [8, 8, 0, 0], "texture": "#0"}, + "down": {"uv": [8, 0, 0, 8], "texture": "#0"} + } + }, + { + "name": "cloth", + "from": [-0.1, 9.1, -0.1], + "to": [16.1, 16.1, 16.1], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 14.1, 7]}, + "faces": { + "north": {"uv": [0, 11, 8, 14.5], "texture": "#0", "tintindex": 0}, + "east": {"uv": [0, 11, 8, 14.5], "texture": "#0", "tintindex": 0}, + "south": {"uv": [0, 11, 8, 14.5], "texture": "#0", "tintindex": 0}, + "west": {"uv": [0, 11, 8, 14.5], "texture": "#0", "tintindex": 0}, + "up": {"uv": [16, 8, 8, 0], "rotation": 90, "texture": "#0", "tintindex": 0}, + "down": {"uv": [8, 13.5, 0, 16], "texture": "#0"} + } + }, + { + "name": "inside_cloth", + "from": [16, 16, 16], + "to": [0, 9, 0], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 21, 30]}, + "faces": { + "north": {"uv": [0, 14.5, 8, 11], "texture": "#0", "tintindex": 0}, + "east": {"uv": [0, 14.5, 8, 11], "texture": "#0", "tintindex": 0}, + "south": {"uv": [0, 14.5, 8, 11], "texture": "#0", "tintindex": 0}, + "west": {"uv": [0, 14.5, 8, 11], "texture": "#0", "tintindex": 0}, + "up": {"uv": [8, 16, 5.5, 13.5], "texture": "#0"}, + "down": {"uv": [8, 13.5, 5.5, 16], "texture": "#0"} + } + }, + { + "name": "front_left_leg", + "from": [12, 0, 2], + "to": [14, 14, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [12, 0, 2]}, + "faces": { + "north": {"uv": [12, 8, 13, 15], "texture": "#0"}, + "east": {"uv": [13.5, 8, 14.5, 15], "texture": "#0"}, + "south": {"uv": [12, 8, 13, 15], "texture": "#0"}, + "west": {"uv": [13.5, 8, 14.5, 15], "texture": "#0"}, + "up": {"uv": [16, 9, 15, 8], "texture": "#0"}, + "down": {"uv": [16, 8, 15, 9], "texture": "#0"} + } + }, + { + "name": "front_right_leg", + "from": [2, 0, 2], + "to": [4, 14, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [2, 0, 2]}, + "faces": { + "north": {"uv": [12, 8, 13, 15], "texture": "#0"}, + "east": {"uv": [13.5, 8, 14.5, 15], "texture": "#0"}, + "south": {"uv": [12, 8, 13, 15], "texture": "#0"}, + "west": {"uv": [13.5, 8, 14.5, 15], "texture": "#0"}, + "up": {"uv": [16, 9, 15, 8], "texture": "#0"}, + "down": {"uv": [16, 8, 15, 9], "texture": "#0"} + } + }, + { + "name": "back_left_leg", + "from": [12, 0, 12], + "to": [14, 14, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [12, 0, 12]}, + "faces": { + "north": {"uv": [12, 8, 13, 15], "texture": "#0"}, + "east": {"uv": [12, 8, 13, 15], "texture": "#0"}, + "south": {"uv": [13.5, 8, 14.5, 15], "texture": "#0"}, + "west": {"uv": [13.5, 8, 14.5, 15], "texture": "#0"}, + "up": {"uv": [16, 9, 15, 8], "texture": "#0"}, + "down": {"uv": [16, 8, 15, 9], "texture": "#0"} + } + }, + { + "name": "back_right_leg", + "from": [2, 0, 12], + "to": [4, 14, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [2, 0, 12]}, + "faces": { + "north": {"uv": [12, 8, 13, 15], "texture": "#0"}, + "east": {"uv": [13.5, 8, 14.5, 15], "texture": "#0"}, + "south": {"uv": [12, 8, 13, 15], "texture": "#0"}, + "west": {"uv": [13.5, 8, 14.5, 15], "texture": "#0"}, + "up": {"uv": [16, 9, 15, 8], "texture": "#0"}, + "down": {"uv": [16, 8, 15, 9], "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, 45, 0], + "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, -0.25, 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/cherry/2x2_table_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/cherry/2x2_table_1.json new file mode 100644 index 0000000000..3f6d51814b --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/cherry/2x2_table_1.json @@ -0,0 +1,144 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [128, 128], + "textures": { + "0": "gm4_furniture:block/furniture/wood_set/cherry/2x2_table_1", + "particle": "gm4_furniture:block/furniture/wood_set/cherry/2x2_table_1" + }, + "elements": [ + { + "name": "table_top", + "from": [-8, 14, -8], + "to": [24, 16, 24], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 14, 0]}, + "faces": { + "north": {"uv": [0, 8.25, 4, 8.75], "texture": "#0"}, + "east": {"uv": [0, 8.25, 4, 8.75], "texture": "#0"}, + "south": {"uv": [0, 8.25, 4, 8.75], "texture": "#0"}, + "west": {"uv": [0, 8.25, 4, 8.75], "texture": "#0"}, + "up": {"uv": [8, 8, 0, 0], "texture": "#0"}, + "down": {"uv": [8, 0, 0, 8], "texture": "#0"} + } + }, + { + "name": "front_left_leg", + "from": [20, 0, -6], + "to": [22, 14, -4], + "rotation": {"angle": 0, "axis": "y", "origin": [20, 0, -6]}, + "faces": { + "north": {"uv": [0, 9, 0.5, 12.5], "texture": "#0"}, + "east": {"uv": [0.75, 9, 1.25, 12.5], "texture": "#0"}, + "south": {"uv": [0, 9, 0.5, 12.5], "texture": "#0"}, + "west": {"uv": [0.75, 9, 1.25, 12.5], "texture": "#0"}, + "up": {"uv": [2, 9.5, 1.5, 9], "texture": "#0"}, + "down": {"uv": [2, 9, 1.5, 9.5], "texture": "#0"} + } + }, + { + "name": "front_right_leg", + "from": [-6, 0, -6], + "to": [-4, 14, -4], + "rotation": {"angle": 0, "axis": "y", "origin": [-6, 0, -6]}, + "faces": { + "north": {"uv": [0, 9, 0.5, 12.5], "texture": "#0"}, + "east": {"uv": [0.75, 9, 1.25, 12.5], "texture": "#0"}, + "south": {"uv": [0, 9, 0.5, 12.5], "texture": "#0"}, + "west": {"uv": [0.75, 9, 1.25, 12.5], "texture": "#0"}, + "up": {"uv": [2, 9.5, 1.5, 9], "texture": "#0"}, + "down": {"uv": [2, 9, 1.5, 9.5], "texture": "#0"} + } + }, + { + "name": "back_left_leg", + "from": [20, 0, 20], + "to": [22, 14, 22], + "rotation": {"angle": 0, "axis": "y", "origin": [20, 0, 20]}, + "faces": { + "north": {"uv": [0, 9, 0.5, 12.5], "texture": "#0"}, + "east": {"uv": [0, 9, 0.5, 12.5], "texture": "#0"}, + "south": {"uv": [0.75, 9, 1.25, 12.5], "texture": "#0"}, + "west": {"uv": [0.75, 9, 1.25, 12.5], "texture": "#0"}, + "up": {"uv": [2, 9.5, 1.5, 9], "texture": "#0"}, + "down": {"uv": [2, 9, 1.5, 9.5], "texture": "#0"} + } + }, + { + "name": "back_right_leg", + "from": [-6, 0, 20], + "to": [-4, 14, 22], + "rotation": {"angle": 0, "axis": "y", "origin": [-6, 0, 20]}, + "faces": { + "north": {"uv": [0, 9, 0.5, 12.5], "texture": "#0"}, + "east": {"uv": [0.75, 9, 1.25, 12.5], "texture": "#0"}, + "south": {"uv": [0, 9, 0.5, 12.5], "texture": "#0"}, + "west": {"uv": [0.75, 9, 1.25, 12.5], "texture": "#0"}, + "up": {"uv": [2, 9.5, 1.5, 9], "texture": "#0"}, + "down": {"uv": [2, 9, 1.5, 9.5], "texture": "#0"} + } + }, + { + "name": "cloth", + "from": [-8.1, 9.1, -2], + "to": [24.1, 16.1, 18], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 14.1, 7]}, + "faces": { + "north": {"uv": [9.5, 6.75, 14.5, 8.5], "texture": "#0"}, + "east": {"uv": [9.5, 5, 14.5, 6.75], "texture": "#0", "tintindex": 0}, + "south": {"uv": [9.5, 6.75, 14.5, 8.5], "texture": "#0"}, + "west": {"uv": [9.5, 5, 14.5, 6.75], "texture": "#0", "tintindex": 0}, + "up": {"uv": [16, 5, 8, 0], "texture": "#0", "tintindex": 0}, + "down": {"uv": [16, 11, 8, 16], "texture": "#0"} + } + }, + { + "name": "inside_cloth", + "from": [24, 16, 24], + "to": [-8, 9, -8], + "rotation": {"angle": 0, "axis": "y", "origin": [24, 21, 38]}, + "faces": { + "north": {"uv": [8, 11, 16, 8.5], "texture": "#0"}, + "east": {"uv": [8, 6.75, 16, 5], "texture": "#0", "tintindex": 0}, + "south": {"uv": [8, 11, 16, 8.5], "texture": "#0"}, + "west": {"uv": [8, 6.75, 16, 5], "texture": "#0", "tintindex": 0}, + "up": {"uv": [8, 16, 3, 11], "texture": "#0"}, + "down": {"uv": [8, 11, 3, 16], "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.27, 0.27, 0.27] + }, + "firstperson_lefthand": { + "rotation": [0, 45, 0], + "scale": [0.27, 0.27, 0.27] + }, + "ground": { + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, -135, 0], + "translation": [0, -1, 0], + "scale": [0.35, 0.35, 0.35] + }, + "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/cherry/bench_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/cherry/bench_1.json new file mode 100644 index 0000000000..95835a4d1b --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/cherry/bench_1.json @@ -0,0 +1,239 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "0": "gm4_furniture:block/furniture/wood_set/cherry/bench_1", + "particle": "gm4_furniture:block/furniture/wood_set/cherry/bench_1" + }, + "elements": [ + { + "name": "top_across", + "from": [-14, 19, 13], + "to": [30, 21, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [-9, 20, 13]}, + "faces": { + "north": {"uv": [0, 7.25, 5.5, 7.5], "texture": "#0"}, + "east": {"uv": [5.625, 7.625, 5.875, 7.875], "texture": "#0"}, + "south": {"uv": [0, 8, 5.5, 8.25], "texture": "#0"}, + "west": {"uv": [5.625, 7.625, 5.875, 7.875], "texture": "#0"}, + "up": {"uv": [5.5, 7.875, 0, 7.625], "texture": "#0"}, + "down": {"uv": [10.75, 4, 5.25, 4.25], "texture": "#0"} + } + }, + { + "name": "top_right", + "from": [-11, 19, 12], + "to": [5, 20, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 19, 11]}, + "faces": { + "north": {"uv": [0, 5.75, 2, 5.875], "texture": "#0", "tintindex": 0}, + "east": {"uv": [2.125, 5.5, 2.25, 5.625], "texture": "#0", "tintindex": 0}, + "south": {"uv": [0, 6, 2, 6.125], "texture": "#0"}, + "west": {"uv": [2.125, 5.5, 2.25, 5.625], "texture": "#0", "tintindex": 0}, + "up": {"uv": [0, 5.5, 2, 5.625], "texture": "#0", "tintindex": 0}, + "down": {"uv": [0, 6, 2, 6.125], "texture": "#0"} + } + }, + { + "name": "top_left", + "from": [11, 19, 12], + "to": [27, 20, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [11, 19, 11]}, + "faces": { + "north": {"uv": [0, 5.875, 2, 5.75], "texture": "#0", "tintindex": 0}, + "east": {"uv": [2.125, 5.5, 2.25, 5.625], "texture": "#0", "tintindex": 0}, + "south": {"uv": [0, 6, 2, 6.125], "texture": "#0"}, + "west": {"uv": [2.125, 5.5, 2.25, 5.625], "texture": "#0", "tintindex": 0}, + "up": {"uv": [0, 5.5, 2, 5.625], "texture": "#0", "tintindex": 0}, + "down": {"uv": [0, 6, 2, 6.125], "texture": "#0"} + } + }, + { + "name": "ear_left", + "from": [20.5, 18.96447, 13.1], + "to": [24.5, 22.96447, 14.9], + "rotation": {"angle": -45, "axis": "z", "origin": [22.5, 20.96447, 13.95]}, + "faces": { + "north": {"uv": [7, 0, 7.5, 0.5], "texture": "#0"}, + "east": {"uv": [8.25, 0, 8.5, 0.5], "texture": "#0"}, + "south": {"uv": [7.625, 0, 8.125, 0.5], "texture": "#0"}, + "west": {"uv": [8.25, 0, 8.5, 0.5], "texture": "#0"}, + "up": {"uv": [7, 0.625, 7.5, 0.8625], "texture": "#0"}, + "down": {"uv": [7, 0.625, 7.5, 0.8625], "texture": "#0"} + } + }, + { + "name": "ear_right", + "from": [-8.5, 18.96447, 13.1], + "to": [-4.5, 22.96447, 14.9], + "rotation": {"angle": -45, "axis": "z", "origin": [-6.5, 20.96447, 13.95]}, + "faces": { + "north": {"uv": [7, 0, 7.5, 0.5], "texture": "#0"}, + "east": {"uv": [8.25, 0, 8.5, 0.5], "texture": "#0"}, + "south": {"uv": [7.625, 0, 8.125, 0.5], "texture": "#0"}, + "west": {"uv": [8.25, 0, 8.5, 0.5], "texture": "#0"}, + "up": {"uv": [7, 0.625, 7.5, 0.8625], "texture": "#0"}, + "down": {"uv": [7, 0.625, 7.5, 0.8625], "texture": "#0"} + } + }, + { + "name": "under_seat_panel", + "from": [-13, 4, 1], + "to": [29, 6, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [22, 4, 2]}, + "faces": { + "north": {"uv": [0, 7.625, 5.25, 7.875], "texture": "#0"}, + "east": {"uv": [7, 4.25, 8.75, 4.5], "texture": "#0"}, + "south": {"uv": [0, 6.875, 5.25, 7.125], "texture": "#0"}, + "west": {"uv": [5.25, 4.25, 7, 4.5], "texture": "#0"}, + "up": {"uv": [10.625, 7.125, 5.375, 5.375], "texture": "#0"}, + "down": {"uv": [5.25, 0, 0, 1.75], "texture": "#0"} + } + }, + { + "name": "Left_Panel", + "from": [29, 4, 3], + "to": [31, 12, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [28, 3, 5]}, + "faces": { + "north": {"uv": [7.375, 4.5, 7.625, 5.5], "texture": "#0"}, + "east": {"uv": [5.5, 0, 6.75, 1], "texture": "#0"}, + "south": {"uv": [7.125, 4.5, 7.375, 5.5], "texture": "#0"}, + "west": {"uv": [5.5, 0, 6.75, 1], "texture": "#0"}, + "up": {"uv": [7.125, 3.625, 6.875, 2.375], "texture": "#0"}, + "down": {"uv": [7.125, 2.375, 6.875, 3.625], "texture": "#0"} + } + }, + { + "name": "Right_Panel", + "from": [-15, 4, 3], + "to": [-13, 12, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [-16, 3, 5]}, + "faces": { + "north": {"uv": [6.875, 4.5, 7.125, 5.5], "texture": "#0"}, + "east": {"uv": [5.5, 0, 6.75, 1], "texture": "#0"}, + "south": {"uv": [6.625, 4.5, 6.875, 5.5], "texture": "#0"}, + "west": {"uv": [5.5, 0, 6.75, 1], "texture": "#0"}, + "up": {"uv": [7.125, 3.625, 6.875, 2.375], "texture": "#0"}, + "down": {"uv": [7.125, 2.375, 6.875, 3.625], "texture": "#0"} + } + }, + { + "name": "back_seat_panel", + "from": [-13, 6, 12], + "to": [29, 19, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 18, 13]}, + "faces": { + "north": {"uv": [0, 1.875, 5.25, 3.5], "texture": "#0", "tintindex": 0}, + "east": {"uv": [6.25, 2, 6.625, 3.625], "texture": "#0", "tintindex": 0}, + "south": {"uv": [0, 0, 5.25, 1.625], "texture": "#0"}, + "west": {"uv": [6.25, 2, 6.625, 3.625], "texture": "#0", "tintindex": 0}, + "up": {"uv": [5.25, 4, 0, 3.625], "texture": "#0", "tintindex": 0}, + "down": {"uv": [10.5, 3.625, 5.25, 4], "texture": "#0"} + } + }, + { + "name": "flat_seat", + "from": [-13, 6, 2], + "to": [29, 8, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 6, 0]}, + "faces": { + "north": {"uv": [0, 8.375, 5.25, 8.625], "texture": "#0", "tintindex": 0}, + "east": {"uv": [5.25, 4.5, 6.5, 4.75], "texture": "#0"}, + "south": {"uv": [5.25, 3.625, 10.5, 3.875], "texture": "#0"}, + "west": {"uv": [8.75, 4.25, 10, 4.5], "texture": "#0"}, + "up": {"uv": [5.25, 5.375, 0, 4.125], "texture": "#0", "tintindex": 0}, + "down": {"uv": [10.5, 3.625, 5.25, 4.875], "texture": "#0"} + } + }, + { + "name": "Leg_Front_Left", + "from": [29, 0, 1], + "to": [31, 12, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [29, 0, 1]}, + "faces": { + "north": {"uv": [5.5, 2.125, 5.75, 3.625], "texture": "#0"}, + "east": {"uv": [5.875, 2.125, 6.125, 3.625], "texture": "#0"}, + "south": {"uv": [5.5, 2.125, 5.75, 3.625], "texture": "#0"}, + "west": {"uv": [5.875, 2.125, 6.125, 3.625], "texture": "#0"}, + "up": {"uv": [6.5, 1.375, 6.25, 1.125], "texture": "#0"}, + "down": {"uv": [6.5, 1.125, 6.25, 1.375], "texture": "#0"} + } + }, + { + "name": "Leg_Back_Left", + "from": [29, 0, 13], + "to": [31, 20, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [29, 0, 13]}, + "faces": { + "north": {"uv": [5.5, 1.125, 5.75, 3.625], "texture": "#0"}, + "east": {"uv": [5.875, 1.125, 6.125, 3.625], "texture": "#0"}, + "south": {"uv": [5.5, 1.125, 5.75, 3.625], "texture": "#0"}, + "west": {"uv": [6.125, 1.125, 5.875, 3.625], "texture": "#0"}, + "up": {"uv": [6.5, 1.375, 6.25, 1.125], "texture": "#0"}, + "down": {"uv": [6.5, 1.125, 6.25, 1.375], "texture": "#0"} + } + }, + { + "name": "Leg_Back_Right", + "from": [-15, 0, 13], + "to": [-13, 20, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [-15, 0, 13]}, + "faces": { + "north": {"uv": [5.5, 1.125, 5.75, 3.625], "texture": "#0"}, + "east": {"uv": [5.875, 1.125, 6.125, 3.625], "texture": "#0"}, + "south": {"uv": [5.5, 1.125, 5.75, 3.625], "texture": "#0"}, + "west": {"uv": [5.875, 1.125, 6.125, 3.625], "texture": "#0"}, + "up": {"uv": [6.5, 1.375, 6.25, 1.125], "texture": "#0"}, + "down": {"uv": [6.5, 1.125, 6.25, 1.375], "texture": "#0"} + } + }, + { + "name": "Leg_Front_Right", + "from": [-15, 0, 1], + "to": [-13, 12, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [-15, 0, 1]}, + "faces": { + "north": {"uv": [5.5, 2.125, 5.75, 3.625], "texture": "#0"}, + "east": {"uv": [5.875, 2.125, 6.125, 3.625], "texture": "#0"}, + "south": {"uv": [5.5, 2.125, 5.75, 3.625], "texture": "#0"}, + "west": {"uv": [5.875, 2.125, 6.125, 3.625], "texture": "#0"}, + "up": {"uv": [6.5, 1.375, 6.25, 1.125], "texture": "#0"}, + "down": {"uv": [6.5, 1.125, 6.25, 1.375], "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, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, -135, 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/cherry/chair_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/cherry/chair_1.json new file mode 100644 index 0000000000..98ef3c8a3f --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/cherry/chair_1.json @@ -0,0 +1,226 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "gm4_furniture:block/furniture/wood_set/cherry/chair_1", + "particle": "gm4_furniture:block/furniture/wood_set/cherry/chair_1" + }, + "elements": [ + { + "name": "top_shaping", + "from": [2, 19, 13], + "to": [14, 21, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [-9, 20, 13]}, + "faces": { + "north": {"uv": [0, 15, 6, 16], "texture": "#0"}, + "east": {"uv": [7, 15, 8, 16], "texture": "#0"}, + "south": {"uv": [0, 15, 6, 16], "texture": "#0"}, + "west": {"uv": [7, 15, 8, 16], "texture": "#0"}, + "up": {"uv": [6, 16, 0, 15], "texture": "#0"}, + "down": {"uv": [6, 15, 0, 16], "texture": "#0"} + } + }, + { + "name": "cushion_shaping", + "from": [4, 19, 12], + "to": [12, 20, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [3, 19, 12]}, + "faces": { + "north": {"uv": [5.5, 14, 9.5, 14.5], "texture": "#0", "tintindex": 0}, + "east": {"uv": [10, 14, 10.5, 14.5], "texture": "#0", "tintindex": 0}, + "south": {"uv": [5.5, 14, 9.5, 14.5], "texture": "#0"}, + "west": {"uv": [10, 14, 10.5, 14.5], "texture": "#0", "tintindex": 0}, + "up": {"uv": [9.5, 14.5, 5.5, 14], "texture": "#0", "tintindex": 0}, + "down": {"uv": [9.5, 14, 5.5, 14.5], "texture": "#0"} + } + }, + { + "name": "left_ear", + "from": [9.5, 19.5, 13.1], + "to": [12.5, 22.5, 14.9], + "rotation": {"angle": 45, "axis": "z", "origin": [11, 21, 14]}, + "faces": { + "north": {"uv": [14, 14.5, 15.5, 16], "texture": "#0"}, + "east": {"uv": [12.5, 14, 13.5, 15.5], "texture": "#0"}, + "south": {"uv": [14, 12.5, 15.5, 14], "texture": "#0"}, + "west": {"uv": [12.5, 14, 13.5, 15.5], "texture": "#0"}, + "up": {"uv": [12, 15.5, 10.5, 14.5], "texture": "#0"}, + "down": {"uv": [12, 14.5, 10.5, 15.5], "texture": "#0"} + } + }, + { + "name": "right_ear", + "from": [3.5, 19.5, 13.1], + "to": [6.5, 22.5, 14.9], + "rotation": {"angle": 45, "axis": "z", "origin": [5, 21, 14]}, + "faces": { + "north": {"uv": [14, 14.5, 15.5, 16], "texture": "#0"}, + "east": {"uv": [12.5, 14, 13.5, 15.5], "texture": "#0"}, + "south": {"uv": [14, 12.5, 15.5, 14], "texture": "#0"}, + "west": {"uv": [12.5, 14, 13.5, 15.5], "texture": "#0"}, + "up": {"uv": [12, 15.5, 10.5, 14.5], "texture": "#0"}, + "down": {"uv": [12, 14.5, 10.5, 15.5], "texture": "#0"} + } + }, + { + "name": "under_seat_panel", + "from": [3, 4, 1], + "to": [13, 6, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [22, 4, 2]}, + "faces": { + "north": {"uv": [0, 13.5, 5, 14.5], "texture": "#0"}, + "east": {"uv": [0, 15, 7, 16], "texture": "#0"}, + "south": {"uv": [0, 12, 5, 13], "texture": "#0"}, + "west": {"uv": [0, 15, 7, 16], "texture": "#0"}, + "up": {"uv": [5, 7, 0, 0], "texture": "#0"}, + "down": {"uv": [5, 0, 0, 7], "texture": "#0"} + } + }, + { + "name": "Left_Panel", + "from": [13, 4, 3], + "to": [15, 12, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [12, 3, 5]}, + "faces": { + "north": {"uv": [15, 1, 16, 5], "texture": "#0"}, + "east": {"uv": [0, 7.5, 5, 11.5], "texture": "#0"}, + "south": {"uv": [15, 1, 16, 5], "texture": "#0"}, + "west": {"uv": [0, 7.5, 5, 11.5], "texture": "#0"}, + "up": {"uv": [16, 5, 15, 0], "texture": "#0"}, + "down": {"uv": [15, 0, 14, 5], "texture": "#0"} + } + }, + { + "name": "Right_Panel", + "from": [1, 4, 3], + "to": [3, 12, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 3, 5]}, + "faces": { + "north": {"uv": [15, 1, 16, 5], "texture": "#0"}, + "east": {"uv": [0, 7.5, 5, 11.5], "texture": "#0"}, + "south": {"uv": [15, 1, 16, 5], "texture": "#0"}, + "west": {"uv": [0, 7.5, 5, 11.5], "texture": "#0"}, + "up": {"uv": [16, 5, 15, 0], "texture": "#0"}, + "down": {"uv": [15, 0, 14, 5], "texture": "#0"} + } + }, + { + "name": "back_seat_panel", + "from": [3, 6, 12], + "to": [13, 19, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 18, 13]}, + "faces": { + "north": {"uv": [5.5, 0, 10.5, 6.5], "texture": "#0", "tintindex": 0}, + "east": {"uv": [14, 5, 15.5, 11.5], "texture": "#0", "tintindex": 0}, + "south": {"uv": [0, 0, 5, 6.5], "texture": "#0"}, + "west": {"uv": [15.5, 5, 14, 11.5], "texture": "#0", "tintindex": 0}, + "up": {"uv": [10.5, 12, 5.5, 10.5], "texture": "#0", "tintindex": 0}, + "down": {"uv": [5, 10, 0, 11.5], "texture": "#0"} + } + }, + { + "name": "flat_seat", + "from": [3, 6, 2], + "to": [13, 8, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 6, 0]}, + "faces": { + "north": {"uv": [5.5, 12.5, 10.5, 13.5], "texture": "#0", "tintindex": 0}, + "east": {"uv": [11, 11.5, 16, 12.5], "texture": "#0"}, + "south": {"uv": [11, 11.5, 16, 12.5], "texture": "#0"}, + "west": {"uv": [11, 11.5, 16, 12.5], "texture": "#0"}, + "up": {"uv": [10.5, 12, 5.5, 7], "texture": "#0", "tintindex": 0}, + "down": {"uv": [10.5, 7, 5.5, 12], "texture": "#0"} + } + }, + { + "name": "Leg_Front_Left", + "from": [13, 0, 1], + "to": [15, 12, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [13, 0, 1]}, + "faces": { + "north": {"uv": [11, 4, 12, 10], "texture": "#0"}, + "east": {"uv": [12.5, 4, 13.5, 10], "texture": "#0"}, + "south": {"uv": [11, 4, 12, 10], "texture": "#0"}, + "west": {"uv": [12.5, 4, 13.5, 10], "texture": "#0"}, + "up": {"uv": [12, 11.5, 11, 10.5], "texture": "#0"}, + "down": {"uv": [12, 10.5, 11, 11.5], "texture": "#0"} + } + }, + { + "name": "Leg_Back_Left", + "from": [13, 0, 13], + "to": [15, 20, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [13, 0, 13]}, + "faces": { + "north": {"uv": [11, 0, 12, 10], "texture": "#0"}, + "east": {"uv": [12.5, 0, 13.5, 10], "texture": "#0"}, + "south": {"uv": [11, 0, 12, 10], "texture": "#0"}, + "west": {"uv": [12.5, 0, 13.5, 10], "texture": "#0"}, + "up": {"uv": [12, 11.5, 11, 10.5], "texture": "#0"}, + "down": {"uv": [12, 10.5, 11, 11.5], "texture": "#0"} + } + }, + { + "name": "Leg_Back_Right", + "from": [1, 0, 13], + "to": [3, 20, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [1, 0, 13]}, + "faces": { + "north": {"uv": [11, 0, 12, 10], "texture": "#0"}, + "east": {"uv": [12.5, 0, 13.5, 10], "texture": "#0"}, + "south": {"uv": [11, 0, 12, 10], "texture": "#0"}, + "west": {"uv": [12.5, 0, 13.5, 10], "texture": "#0"}, + "up": {"uv": [12, 11.5, 11, 10.5], "texture": "#0"}, + "down": {"uv": [12, 10.5, 11, 11.5], "texture": "#0"} + } + }, + { + "name": "Leg_Front_Right", + "from": [1, 0, 1], + "to": [3, 12, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [1, 0, 1]}, + "faces": { + "north": {"uv": [11, 4, 12, 10], "texture": "#0"}, + "east": {"uv": [12.5, 4, 13.5, 10], "texture": "#0"}, + "south": {"uv": [11, 4, 12, 10], "texture": "#0"}, + "west": {"uv": [12.5, 4, 13.5, 10], "texture": "#0"}, + "up": {"uv": [12, 11.5, 11, 10.5], "texture": "#0"}, + "down": {"uv": [12, 10.5, 11, 11.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, 45, 0], + "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, -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/cherry/light_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/cherry/light_1.json new file mode 100644 index 0000000000..dce3232043 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/cherry/light_1.json @@ -0,0 +1,130 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "0": "gm4_furniture:block/furniture/wood_set/cherry/light_1", + "particle": "gm4_furniture:block/furniture/wood_set/cherry/light_1" + }, + "elements": [ + { + "name": "Lines", + "from": [-16, 0, 15.75], + "to": [32, 16, 15.75], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 13.75]}, + "faces": { + "north": {"uv": [0, 0, 12, 4], "texture": "#0"}, + "east": {"uv": [0, 0, 0, 4], "texture": "#0"}, + "south": {"uv": [0, 0, 12, 4], "texture": "#0"}, + "west": {"uv": [0, 0, 0, 4], "texture": "#0"}, + "up": {"uv": [12, 0, 0, 0], "texture": "#0"}, + "down": {"uv": [12, 0, 0, 0], "texture": "#0"} + } + }, + { + "name": "Lights", + "from": [-16, 0, 15.9], + "to": [32, 16, 15.9], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 13.9]}, + "faces": { + "north": {"uv": [0, 4, 12, 8], "texture": "#0", "tintindex": 0}, + "east": {"uv": [0, 0, 0, 4], "texture": "#0"}, + "south": {"uv": [0, 4, 12, 8], "texture": "#0", "tintindex": 0}, + "west": {"uv": [0, 0, 0, 4], "texture": "#0"}, + "up": {"uv": [12, 0, 0, 0], "texture": "#0"}, + "down": {"uv": [12, 0, 0, 0], "texture": "#0"} + } + }, + { + "name": "Pin_1", + "from": [31, 15, 15], + "to": [32, 16, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [31, 14, 14]}, + "faces": { + "north": {"uv": [0, 8.75, 0.25, 9], "texture": "#0"}, + "east": {"uv": [0.5, 8.75, 0.75, 9], "texture": "#0"}, + "south": {"uv": [1, 8.75, 1.25, 9], "texture": "#0"}, + "west": {"uv": [1.5, 8.75, 1.75, 9], "texture": "#0"}, + "up": {"uv": [2, 8.75, 2.25, 9], "texture": "#0"}, + "down": {"uv": [2.5, 8.75, 2.75, 9], "texture": "#0"} + } + }, + { + "name": "Pin_2", + "from": [15, 10, 15], + "to": [17, 11, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 9, 14]}, + "faces": { + "north": {"uv": [0, 8.25, 0.5, 8.5], "texture": "#0"}, + "east": {"uv": [0.75, 8.25, 1, 8.5], "texture": "#0"}, + "south": {"uv": [1.25, 8.25, 1.75, 8.5], "texture": "#0"}, + "west": {"uv": [2, 8.25, 2.25, 8.5], "texture": "#0"}, + "up": {"uv": [2.5, 8.25, 3, 8.5], "texture": "#0"}, + "down": {"uv": [3.25, 8.25, 3.75, 8.5], "texture": "#0"} + } + }, + { + "name": "Pin_3", + "from": [-1, 10, 15], + "to": [1, 11, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [-1, 9, 14]}, + "faces": { + "north": {"uv": [0, 8.25, 0.5, 8.5], "texture": "#0"}, + "east": {"uv": [0.75, 8.25, 1, 8.5], "texture": "#0"}, + "south": {"uv": [1.25, 8.25, 1.75, 8.5], "texture": "#0"}, + "west": {"uv": [2, 8.25, 2.25, 8.5], "texture": "#0"}, + "up": {"uv": [2.5, 8.25, 3, 8.5], "texture": "#0"}, + "down": {"uv": [3.25, 8.25, 3.75, 8.5], "texture": "#0"} + } + }, + { + "name": "Pin_4", + "from": [-16, 15, 15], + "to": [-15, 16, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [-16, 14, 14]}, + "faces": { + "north": {"uv": [0, 8.75, 0.25, 9], "texture": "#0"}, + "east": {"uv": [0.5, 8.75, 0.75, 9], "texture": "#0"}, + "south": {"uv": [1, 8.75, 1.25, 9], "texture": "#0"}, + "west": {"uv": [1.5, 8.75, 1.75, 9], "texture": "#0"}, + "up": {"uv": [2, 8.75, 2.25, 9], "texture": "#0"}, + "down": {"uv": [2.5, 8.75, 2.75, 9], "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], + "translation": [0, -2, 0], + "scale": [0.3125, 0.3125, 0.3125] + }, + "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/cherry/stool_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/cherry/stool_1.json new file mode 100644 index 0000000000..d60454f819 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/cherry/stool_1.json @@ -0,0 +1,197 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "0": "gm4_furniture:block/furniture/wood_set/cherry/stool_1", + "particle": "gm4_furniture:block/furniture/wood_set/cherry/stool_1" + }, + "elements": [ + { + "name": "Leg_Front_Left", + "from": [13, 0, 1], + "to": [15, 3, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [13, 0, 1]}, + "faces": { + "north": {"uv": [8.25, 1.5, 8.75, 2.25], "texture": "#0"}, + "east": {"uv": [8.25, 2.5, 8.75, 3.25], "texture": "#0"}, + "south": {"uv": [8.25, 1.5, 8.75, 2.25], "texture": "#0"}, + "west": {"uv": [8.25, 2.5, 8.75, 3.25], "texture": "#0"}, + "up": {"uv": [9.5, 3.25, 9, 2.75], "texture": "#0"}, + "down": {"uv": [9.5, 2.75, 9, 3.25], "texture": "#0"} + } + }, + { + "name": "Leg_Back_Left", + "from": [13, 0, 13], + "to": [15, 3, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [13, 0, 13]}, + "faces": { + "north": {"uv": [8.25, 1.5, 8.75, 2.25], "texture": "#0"}, + "east": {"uv": [8.25, 2.5, 8.75, 3.25], "texture": "#0"}, + "south": {"uv": [8.25, 1.5, 8.75, 2.25], "texture": "#0"}, + "west": {"uv": [8.25, 2.5, 8.75, 3.25], "texture": "#0"}, + "up": {"uv": [9.5, 3.25, 9, 2.75], "texture": "#0"}, + "down": {"uv": [9.5, 2.75, 9, 3.25], "texture": "#0"} + } + }, + { + "name": "Leg_Back_Right", + "from": [1, 0, 13], + "to": [3, 3, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [1, 0, 13]}, + "faces": { + "north": {"uv": [8.25, 1.5, 8.75, 2.25], "texture": "#0"}, + "east": {"uv": [8.25, 2.5, 8.75, 3.25], "texture": "#0"}, + "south": {"uv": [8.25, 1.5, 8.75, 2.25], "texture": "#0"}, + "west": {"uv": [8.25, 2.5, 8.75, 3.25], "texture": "#0"}, + "up": {"uv": [9.5, 3.25, 9, 2.75], "texture": "#0"}, + "down": {"uv": [9.5, 2.75, 9, 3.25], "texture": "#0"} + } + }, + { + "name": "Leg_Front_Right", + "from": [1, 0, 1], + "to": [3, 3, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [1, 0, 1]}, + "faces": { + "north": {"uv": [8.25, 1.5, 8.75, 2.25], "texture": "#0"}, + "east": {"uv": [8.25, 2.5, 8.75, 3.25], "texture": "#0"}, + "south": {"uv": [8.25, 1.5, 8.75, 2.25], "texture": "#0"}, + "west": {"uv": [8.25, 2.5, 8.75, 3.25], "texture": "#0"}, + "up": {"uv": [9.5, 3.25, 9, 2.75], "texture": "#0"}, + "down": {"uv": [9.5, 2.75, 9, 3.25], "texture": "#0"} + } + }, + { + "name": "back_seat_panel", + "from": [1, 3, 13], + "to": [15, 10, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 16, 13]}, + "faces": { + "north": {"uv": [3.75, 3.25, 7.25, 5], "texture": "#0"}, + "east": {"uv": [7.5, 1.5, 8, 3.25], "texture": "#0"}, + "south": {"uv": [0, 3.25, 3.5, 5], "texture": "#0"}, + "west": {"uv": [8, 1.5, 7.5, 3.25], "texture": "#0"}, + "up": {"uv": [11, 0.5, 7.5, 0], "texture": "#0"}, + "down": {"uv": [11, 0.75, 7.5, 1.25], "texture": "#0"} + } + }, + { + "name": "flat_seat_bottom", + "from": [1, 3, 1], + "to": [15, 4, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 3, 0]}, + "faces": { + "north": {"uv": [3.25, 5.75, 6.75, 6], "texture": "#0"}, + "east": {"uv": [3.25, 5.75, 6.25, 6], "texture": "#0"}, + "south": {"uv": [3.25, 5.75, 6.75, 6], "texture": "#0"}, + "west": {"uv": [3.25, 5.75, 6.25, 6], "texture": "#0"}, + "up": {"uv": [6.75, 9.25, 3.25, 6.25], "texture": "#0"}, + "down": {"uv": [3.5, 0, 0, 3], "texture": "#0"} + } + }, + { + "name": "flat_seat_dyeable", + "from": [1, 4, 1], + "to": [15, 6, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 4, 0]}, + "faces": { + "north": {"uv": [3.25, 5.25, 6.75, 5.75], "texture": "#0", "tintindex": 0}, + "east": {"uv": [3.25, 5.25, 6.25, 5.75], "texture": "#0", "tintindex": 0}, + "south": {"uv": [3.25, 5.25, 6.75, 5.75], "texture": "#0"}, + "west": {"uv": [3.25, 5.25, 6.25, 5.75], "texture": "#0", "tintindex": 0}, + "up": {"uv": [7.25, 3, 3.75, 0], "texture": "#0", "tintindex": 0}, + "down": {"uv": [6.75, 6.25, 3.25, 9.25], "texture": "#0"} + } + }, + { + "name": "arm_left", + "from": [13.75, 4.5, 1.1], + "to": [15.75, 8.5, 13], + "rotation": {"angle": -22.5, "axis": "z", "origin": [14.75, 6.5, 7]}, + "faces": { + "north": {"uv": [11, 3.25, 10.5, 4.25], "texture": "#0", "tintindex": 0}, + "east": {"uv": [0, 6.5, 3, 7.5], "texture": "#0", "tintindex": 0}, + "south": {"uv": [8.25, 3.75, 7.75, 4.75], "texture": "#0", "tintindex": 0}, + "west": {"uv": [0, 5.25, 3, 6.25], "texture": "#0", "tintindex": 0}, + "up": {"uv": [9.75, 4.5, 10.25, 1.5], "texture": "#0", "tintindex": 0}, + "down": {"uv": [10.25, 1.5, 9.75, 4.5], "texture": "#0"} + } + }, + { + "name": "arm_right", + "from": [0.25, 4.5, 1.1], + "to": [2.25, 8.5, 13], + "rotation": {"angle": 22.5, "axis": "z", "origin": [1.25, 6.5, 7]}, + "faces": { + "north": {"uv": [10.5, 3.25, 11, 4.25], "texture": "#0", "tintindex": 0}, + "east": {"uv": [0, 5.25, 3, 6.25], "texture": "#0", "tintindex": 0}, + "south": {"uv": [7.75, 3.75, 8.25, 4.75], "texture": "#0", "tintindex": 0}, + "west": {"uv": [0, 6.5, 3, 7.5], "texture": "#0", "tintindex": 0}, + "up": {"uv": [10.25, 4.5, 9.75, 1.5], "texture": "#0", "tintindex": 0}, + "down": {"uv": [10.25, 1.5, 9.75, 4.5], "texture": "#0"} + } + }, + { + "name": "ear_right", + "from": [2, 7.75, 13.1], + "to": [6, 11.75, 14.9], + "rotation": {"angle": -45, "axis": "z", "origin": [4.5, 9.25, 14]}, + "faces": { + "north": {"uv": [7, 5.25, 8, 6.25], "texture": "#0"}, + "east": {"uv": [9.5, 5.25, 10, 6.25], "texture": "#0"}, + "south": {"uv": [8.25, 5.25, 9.25, 6.25], "texture": "#0"}, + "west": {"uv": [9.5, 5.25, 10, 6.25], "texture": "#0"}, + "up": {"uv": [11.25, 6.25, 10.25, 5.75], "texture": "#0"}, + "down": {"uv": [11.25, 5.75, 10.25, 6.25], "texture": "#0"} + } + }, + { + "name": "ear_left", + "from": [9.7, 7.5, 13.1], + "to": [13.7, 11.5, 14.9], + "rotation": {"angle": -45, "axis": "z", "origin": [12.2, 10, 14]}, + "faces": { + "north": {"uv": [7, 5.25, 8, 6.25], "texture": "#0"}, + "east": {"uv": [9.5, 5.25, 10, 6.25], "texture": "#0"}, + "south": {"uv": [8.25, 5.25, 9.25, 6.25], "texture": "#0"}, + "west": {"uv": [9.5, 5.25, 10, 6.25], "texture": "#0"}, + "up": {"uv": [11.25, 6.25, 10.25, 5.75], "texture": "#0"}, + "down": {"uv": [11.25, 5.75, 10.25, 6.25], "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, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, -135, 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/dark_oak/1x1_table_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/dark_oak/1x1_table_1.json new file mode 100644 index 0000000000..da5c103d52 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/dark_oak/1x1_table_1.json @@ -0,0 +1,165 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "0": "gm4_furniture:block/furniture/wood_set/dark_oak/1x1_table_1", + "particle": "gm4_furniture:block/furniture/wood_set/dark_oak/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, 45, 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, -0.25, 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/dark_oak/2x2_table_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/dark_oak/2x2_table_1.json new file mode 100644 index 0000000000..a4bf4e3f5d --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/dark_oak/2x2_table_1.json @@ -0,0 +1,223 @@ +{ + "texture_size": [128, 128], + "textures": { + "0": "gm4_furniture:block/furniture/wood_set/dark_oak/2x2_table_1", + "particle": "gm4_furniture:block/furniture/wood_set/dark_oak/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.27, 0.27, 0.27] + }, + "firstperson_lefthand": { + "rotation": [0, 45, 0], + "scale": [0.27, 0.27, 0.27] + }, + "ground": { + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "translation": [0, -1, 0], + "scale": [0.35, 0.35, 0.35] + }, + "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/dark_oak/bench_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/dark_oak/bench_1.json new file mode 100644 index 0000000000..8154646240 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/dark_oak/bench_1.json @@ -0,0 +1,385 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [128, 128], + "textures": { + "0": "gm4_furniture:block/furniture/wood_set/dark_oak/bench_1", + "particle": "gm4_furniture:block/furniture/wood_set/dark_oak/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, 45, 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/dark_oak/chair_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/dark_oak/chair_1.json new file mode 100644 index 0000000000..0f0fdf19e4 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/dark_oak/chair_1.json @@ -0,0 +1,252 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "0": "gm4_furniture:block/furniture/wood_set/dark_oak/chair_1", + "particle": "gm4_furniture:block/furniture/wood_set/dark_oak/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, 45, 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.35, 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/dark_oak/light_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/dark_oak/light_1.json new file mode 100644 index 0000000000..40787b7e79 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/dark_oak/light_1.json @@ -0,0 +1,121 @@ +{ + "texture_size": [32, 32], + "textures": { + "0": "gm4_furniture:block/furniture/wood_set/dark_oak/light_1", + "particle": "gm4_furniture:block/furniture/wood_set/dark_oak/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/dark_oak/stool_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/dark_oak/stool_1.json new file mode 100644 index 0000000000..1bfd9027bd --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/dark_oak/stool_1.json @@ -0,0 +1,167 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "gm4_furniture:block/furniture/wood_set/dark_oak/stool_1", + "particle": "gm4_furniture:block/furniture/wood_set/dark_oak/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, 45, 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/oak/1x1_table_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/oak/1x1_table_1.json new file mode 100644 index 0000000000..1479ff4776 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/oak/1x1_table_1.json @@ -0,0 +1,102 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "gm4_furniture:block/furniture/wood_set/oak/1x1_table_1", + "particle": "gm4_furniture:block/furniture/wood_set/oak/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, 45, 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, -0.25, 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/oak/2x2_table_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/oak/2x2_table_1.json new file mode 100644 index 0000000000..de91d5e87c --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/oak/2x2_table_1.json @@ -0,0 +1,128 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [128, 128], + "textures": { + "0": "gm4_furniture:block/furniture/wood_set/oak/2x2_table_1", + "particle": "gm4_furniture:block/furniture/wood_set/oak/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.27, 0.27, 0.27] + }, + "firstperson_lefthand": { + "rotation": [0, 45, 0], + "scale": [0.27, 0.27, 0.27] + }, + "ground": { + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "translation": [0, -1, 0], + "scale": [0.35, 0.35, 0.35] + }, + "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/oak/bench_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/oak/bench_1.json new file mode 100644 index 0000000000..9e6f9d4183 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/oak/bench_1.json @@ -0,0 +1,104 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "0": "gm4_furniture:block/furniture/wood_set/oak/bench_1", + "particle": "gm4_furniture:block/furniture/wood_set/oak/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, 45, 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/oak/chair_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/oak/chair_1.json new file mode 100644 index 0000000000..b3acf22027 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/oak/chair_1.json @@ -0,0 +1,145 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "gm4_furniture:block/furniture/wood_set/oak/chair_1", + "particle": "gm4_furniture:block/furniture/wood_set/oak/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, 45, 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/oak/light_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/oak/light_1.json new file mode 100644 index 0000000000..d007693f70 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/oak/light_1.json @@ -0,0 +1,101 @@ +{ + "textures": { + "0": "gm4_furniture:block/furniture/misc/candle_wick_1", + "1": "gm4_furniture:block/furniture/misc/candle_1", + "2": "gm4_furniture:block/furniture/wood_set/oak/light_1", + "particle": "gm4_furniture:block/furniture/wood_set/oak/light_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/oak/light_1_lit.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/oak/light_1_lit.json new file mode 100644 index 0000000000..2efd208635 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/oak/light_1_lit.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/oak/light_1", + "particle": "gm4_furniture:block/furniture/wood_set/oak/light_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/oak/stool_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/oak/stool_1.json new file mode 100644 index 0000000000..4aad8790cb --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/oak/stool_1.json @@ -0,0 +1,102 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "gm4_furniture:block/furniture/wood_set/oak/stool_1", + "particle": "gm4_furniture:block/furniture/wood_set/oak/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, 45, 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/spruce/1x1_table_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/spruce/1x1_table_1.json new file mode 100644 index 0000000000..7e4fe992dd --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/spruce/1x1_table_1.json @@ -0,0 +1,114 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "gm4_furniture:block/furniture/wood_set/spruce/1x1_table_1", + "particle": "gm4_furniture:block/furniture/wood_set/spruce/1x1_table_1" + }, + "elements": [ + { + "name": "top_flat", + "from": [0, 14, 0], + "to": [16, 16, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 14, 0]}, + "faces": { + "north": {"uv": [0, 8, 8, 7], "texture": "#0"}, + "east": {"uv": [0, 8.5, 8, 9.5], "texture": "#0"}, + "south": {"uv": [8, 0, 0, 1], "texture": "#0"}, + "west": {"uv": [0, 8.5, 8, 9.5], "texture": "#0"}, + "up": {"uv": [8, 8, 0, 0], "texture": "#0"}, + "down": {"uv": [8, 0, 0, 8], "texture": "#0"} + } + }, + { + "name": "undertop_flat", + "from": [3, 13, 3], + "to": [13, 14, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 12, 0]}, + "faces": { + "north": {"uv": [8.5, 4.5, 13.5, 5], "texture": "#0"}, + "east": {"uv": [8.5, 5.5, 13.5, 6], "texture": "#0"}, + "south": {"uv": [8.5, 4.5, 13.5, 5], "texture": "#0"}, + "west": {"uv": [8.5, 5.5, 13.5, 6], "texture": "#0"}, + "up": {"uv": [13.5, 12.5, 8.5, 7.5], "texture": "#0"}, + "down": {"uv": [13.5, 0, 8.5, 5], "texture": "#0"} + } + }, + { + "name": "leg", + "from": [7, 2, 7], + "to": [9, 13, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [6.5, 0, 6.5]}, + "faces": { + "north": {"uv": [14, 5.5, 15, 0], "texture": "#0"}, + "east": {"uv": [14, 6, 15, 11.5], "texture": "#0"}, + "south": {"uv": [14, 5.5, 15, 0], "texture": "#0"}, + "west": {"uv": [14, 6, 15, 11.5], "texture": "#0"}, + "up": {"uv": [11, 15, 9, 13], "texture": "#0"}, + "down": {"uv": [16, 12, 14, 14], "texture": "#0"} + } + }, + { + "name": "foot_e+w", + "from": [3, 0, 7], + "to": [13, 2, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 6.5]}, + "faces": { + "north": {"uv": [0, 8.5, 5, 9.5], "texture": "#0"}, + "east": {"uv": [7, 8.5, 8, 9.5], "texture": "#0"}, + "south": {"uv": [0, 8.5, 5, 9.5], "texture": "#0"}, + "west": {"uv": [7, 8.5, 8, 9.5], "texture": "#0"}, + "up": {"uv": [8, 11, 3, 10], "texture": "#0"}, + "down": {"uv": [8, 12.5, 3, 13.5], "texture": "#0"} + } + }, + { + "name": "foot_n+s", + "from": [7, 0, 3], + "to": [9, 2, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [7.5, 0, 2]}, + "faces": { + "north": {"uv": [7, 8.5, 8, 9.5], "texture": "#0"}, + "east": {"uv": [0, 8.5, 5, 9.5], "texture": "#0"}, + "south": {"uv": [7, 8.5, 8, 9.5], "texture": "#0"}, + "west": {"uv": [0, 8.5, 5, 9.5], "texture": "#0"}, + "up": {"uv": [1, 16, 0, 10], "texture": "#0"}, + "down": {"uv": [1, 10, 0, 16], "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, 45, 0], + "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, -0.25, 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/spruce/2x2_table_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/spruce/2x2_table_1.json new file mode 100644 index 0000000000..3d41452052 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/spruce/2x2_table_1.json @@ -0,0 +1,130 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [128, 128], + "textures": { + "0": "gm4_furniture:block/furniture/wood_set/spruce/2x2_table_1", + "particle": "gm4_furniture:block/furniture/wood_set/spruce/2x2_table_1" + }, + "elements": [ + { + "name": "front_leg", + "from": [5, 2, -5], + "to": [11, 14, -3], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 2, -5]}, + "faces": { + "north": {"uv": [8.25, 0, 9.75, 3], "texture": "#0"}, + "east": {"uv": [9, 5.25, 9.5, 8.25], "texture": "#0"}, + "south": {"uv": [10, 0, 11.5, 3], "texture": "#0"}, + "west": {"uv": [9, 5.25, 9.5, 8.25], "texture": "#0"}, + "up": {"uv": [11.25, 5.75, 9.75, 5.25], "texture": "#0"}, + "down": {"uv": [11.25, 5.25, 9.75, 5.75], "texture": "#0"} + } + }, + { + "name": "back_leg", + "from": [5, 2, 19], + "to": [11, 14, 21], + "rotation": {"angle": 0, "axis": "y", "origin": [6, 0, 19]}, + "faces": { + "north": {"uv": [8.25, 0, 9.75, 3], "texture": "#0"}, + "east": {"uv": [9, 5.25, 9.5, 8.25], "texture": "#0"}, + "south": {"uv": [10, 0, 11.5, 3], "texture": "#0"}, + "west": {"uv": [9, 5.25, 9.5, 8.25], "texture": "#0"}, + "up": {"uv": [11.25, 5.75, 9.75, 5.25], "texture": "#0"}, + "down": {"uv": [11.25, 5.25, 9.75, 5.75], "texture": "#0"} + } + }, + { + "name": "support_beam", + "from": [7, 6, -6], + "to": [9, 8, 22], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 6, 24]}, + "faces": { + "north": {"uv": [0.25, 9.75, 0.75, 10.25], "texture": "#0"}, + "east": {"uv": [1, 9.75, 8, 10.25], "texture": "#0"}, + "south": {"uv": [0.25, 9.75, 0.75, 10.25], "texture": "#0"}, + "west": {"uv": [1, 9.75, 8, 10.25], "texture": "#0"}, + "up": {"uv": [8.75, 10.25, 8.25, 3.25], "texture": "#0"}, + "down": {"uv": [8.75, 3.25, 8.25, 10.25], "texture": "#0"} + } + }, + { + "name": "top", + "from": [-8, 14, -8], + "to": [24, 16, 24], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 14, -8]}, + "faces": { + "north": {"uv": [0, 8.25, 8, 8.75], "texture": "#0"}, + "east": {"uv": [0, 9, 8, 9.5], "texture": "#0"}, + "south": {"uv": [0, 8.25, 8, 8.75], "texture": "#0"}, + "west": {"uv": [0, 9, 8, 9.5], "texture": "#0"}, + "up": {"uv": [8, 8, 0, 0], "texture": "#0"}, + "down": {"uv": [8, 0, 0, 8], "texture": "#0"} + } + }, + { + "name": "front_foot", + "from": [-1, 0, -6], + "to": [17, 2, -2], + "rotation": {"angle": 0, "axis": "y", "origin": [11, 0, -5.5]}, + "faces": { + "north": {"uv": [9, 4.5, 13.5, 5], "texture": "#0"}, + "east": {"uv": [13.75, 4.5, 14.75, 5], "texture": "#0"}, + "south": {"uv": [9, 4.5, 13.5, 5], "texture": "#0"}, + "west": {"uv": [13.75, 4.5, 14.75, 5], "texture": "#0"}, + "up": {"uv": [13.5, 4.25, 9, 3.25], "texture": "#0"}, + "down": {"uv": [13.5, 3.25, 9, 4.25], "texture": "#0"} + } + }, + { + "name": "back_foot", + "from": [-1, 0, 18], + "to": [17, 2, 22], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 19.5]}, + "faces": { + "north": {"uv": [9, 4.5, 13.5, 5], "texture": "#0"}, + "east": {"uv": [13.75, 4.5, 14.75, 5], "texture": "#0"}, + "south": {"uv": [9, 4.5, 13.5, 5], "texture": "#0"}, + "west": {"uv": [13.75, 4.5, 14.75, 5], "texture": "#0"}, + "up": {"uv": [13.5, 4.25, 9, 3.25], "texture": "#0"}, + "down": {"uv": [13.5, 3.25, 9, 4.25], "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.27, 0.27, 0.27] + }, + "firstperson_lefthand": { + "rotation": [0, 45, 0], + "scale": [0.27, 0.27, 0.27] + }, + "ground": { + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, -135, 0], + "translation": [0, -1, 0], + "scale": [0.35, 0.35, 0.35] + }, + "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/spruce/bench_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/spruce/bench_1.json new file mode 100644 index 0000000000..886df79a62 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/spruce/bench_1.json @@ -0,0 +1,268 @@ +{ + "format_version": "1.21.6", + "credit": "Made with Blockbench", + "textures": { + "0": "gm4_furniture:block/furniture/wood_set/spruce/bench_1", + "particle": "gm4_furniture:block/furniture/wood_set/spruce/bench_1" + }, + "elements": [ + { + "name": "flat_seat", + "from": [-14, 6, 0], + "to": [30, 8, 14.9], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 6, 0]}, + "faces": { + "north": {"uv": [0, 8, 11, 8.5], "texture": "#0"}, + "east": {"uv": [11.25, 8, 15, 8.5], "texture": "#0"}, + "south": {"uv": [0, 8, 11, 8.5], "texture": "#0"}, + "west": {"uv": [11.25, 8, 15, 8.5], "texture": "#0"}, + "up": {"uv": [11, 7.75, 0, 4], "texture": "#0"}, + "down": {"uv": [11, 4, 0, 7.75], "texture": "#0"} + } + }, + { + "name": "top_panel_rim", + "from": [-13, 23, 13], + "to": [29, 25, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 23, 13]}, + "faces": { + "north": {"uv": [0, 10.5, 10.5, 10], "texture": "#0"}, + "east": {"uv": [15.5, 15.5, 16, 16], "texture": "#0"}, + "south": {"uv": [0, 10, 10.5, 10.5], "texture": "#0"}, + "west": {"uv": [15.5, 15.5, 16, 16], "texture": "#0"}, + "up": {"uv": [10.5, 10.5, 0, 10], "texture": "#0"}, + "down": {"uv": [10.5, 10, 0, 10.5], "texture": "#0"} + } + }, + { + "name": "left_arm_rest", + "from": [29, 13, 1], + "to": [31, 14, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [29, 13, 13]}, + "faces": { + "north": {"uv": [12, 7, 12.5, 7.25], "texture": "#0"}, + "east": {"uv": [12, 7.5, 15, 7.75], "texture": "#0"}, + "south": {"uv": [15.5, 15.75, 16, 16], "texture": "#0"}, + "west": {"uv": [12, 7.5, 15, 7.75], "texture": "#0"}, + "up": {"uv": [12.5, 4.5, 12, 1.5], "texture": "#0"}, + "down": {"uv": [12.5, 1.5, 12, 4.5], "texture": "#0"} + } + }, + { + "name": "right_arm_rest", + "from": [-15, 13, 1], + "to": [-13, 14, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [-15, 13, 13]}, + "faces": { + "north": {"uv": [12, 7, 12.5, 7.25], "texture": "#0"}, + "east": {"uv": [12, 7.5, 15, 7.75], "texture": "#0"}, + "south": {"uv": [15.5, 15.75, 16, 16], "texture": "#0"}, + "west": {"uv": [12, 7.5, 15, 7.75], "texture": "#0"}, + "up": {"uv": [12.5, 4.5, 12, 1.5], "texture": "#0"}, + "down": {"uv": [12.5, 1.5, 12, 4.5], "texture": "#0"} + } + }, + { + "name": "back_panel", + "from": [-13, 8, 14], + "to": [29, 23, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 14]}, + "faces": { + "north": {"uv": [0, 0, 10.5, 3.75], "texture": "#0"}, + "east": {"uv": [13.5, 22, 13.5, 26.25], "texture": "#0"}, + "south": {"uv": [0, 0, 10.5, 3.75], "texture": "#0"}, + "west": {"uv": [13.75, 22, 13.75, 26.25], "texture": "#0"}, + "up": {"uv": [10.5, 10.75, 0, 10.75], "texture": "#0"}, + "down": {"uv": [10.5, 10.75, 0, 10.75], "texture": "#0"} + } + }, + { + "name": "bottom_inside", + "from": [30, 6, 14], + "to": [-14, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [26, 0.5, 12]}, + "faces": { + "north": {"uv": [0, 8.75, 11, 9.75], "texture": "#0"}, + "east": {"uv": [8, 8.75, 11, 9.75], "texture": "#0"}, + "south": {"uv": [0, 8.75, 11, 9.75], "texture": "#0"}, + "west": {"uv": [8, 8.75, 11, 9.75], "texture": "#0"}, + "up": {"uv": [16, 16, 14.75, 15], "texture": "#0"}, + "down": {"uv": [16, 15, 14.75, 16], "texture": "#0"} + } + }, + { + "name": "Bottom_outside", + "from": [-14, 2, 2], + "to": [30, 6, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 2, 2]}, + "faces": { + "north": {"uv": [0, 8.75, 11, 9.75], "texture": "#0"}, + "east": {"uv": [8, 8.75, 11, 9.75], "texture": "#0"}, + "south": {"uv": [0, 8.75, 11, 9.75], "texture": "#0"}, + "west": {"uv": [8, 8.75, 11, 9.75], "texture": "#0"}, + "up": {"uv": [14.75, 1.25, 13.5, 0], "texture": "#0"}, + "down": {"uv": [14.75, 0, 13.5, 1.25], "texture": "#0"} + } + }, + { + "name": "Left_Panel", + "from": [30, 8, 3], + "to": [30, 13, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [28, 3, 5]}, + "faces": { + "north": {"uv": [23, 22.25, 23, 23.5], "texture": "#0"}, + "east": {"uv": [10.75, 0, 13.25, 1.25], "texture": "#0"}, + "south": {"uv": [16, 14.75, 16, 16], "texture": "#0"}, + "west": {"uv": [10.75, 0, 13.25, 1.25], "texture": "#0"}, + "up": {"uv": [16, 16, 16, 13.5], "texture": "#0"}, + "down": {"uv": [16, 13.5, 16, 16], "texture": "#0"} + } + }, + { + "name": "Right_Panel", + "from": [-14, 8, 3], + "to": [-14, 13, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [-16, 3, 5]}, + "faces": { + "north": {"uv": [14, 4, 14, 5.25], "texture": "#0"}, + "east": {"uv": [10.75, 0, 13.25, 1.25], "texture": "#0"}, + "south": {"uv": [15, 4, 15, 5.25], "texture": "#0"}, + "west": {"uv": [10.75, 0, 13.25, 1.25], "texture": "#0"}, + "up": {"uv": [16, 16, 16, 13.5], "texture": "#0"}, + "down": {"uv": [16, 13.5, 16, 16], "texture": "#0"} + } + }, + { + "name": "Leg_Front_Left", + "from": [29, 0, 1], + "to": [31, 13, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [29, 0, 1]}, + "faces": { + "north": {"uv": [11.25, 4.75, 11.75, 8], "texture": "#0"}, + "east": {"uv": [11.25, 4.75, 11.75, 8], "texture": "#0"}, + "south": {"uv": [11.25, 4.75, 11.75, 8], "texture": "#0"}, + "west": {"uv": [11.25, 4.75, 11.75, 8], "texture": "#0"}, + "up": {"uv": [16, 16, 15.5, 15.5], "texture": "#0"}, + "down": {"uv": [12.5, 4.75, 12, 5.25], "texture": "#0"} + } + }, + { + "name": "Leg_Back_Left", + "from": [29, 0, 13], + "to": [31, 26, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [29, 0, 13]}, + "faces": { + "north": {"uv": [11.25, 1.5, 11.75, 8], "texture": "#0"}, + "east": {"uv": [11.25, 1.5, 11.75, 8], "texture": "#0"}, + "south": {"uv": [11.25, 1.5, 11.75, 8], "texture": "#0"}, + "west": {"uv": [11.25, 1.5, 11.75, 8], "texture": "#0"}, + "up": {"uv": [12.5, 5.25, 12, 4.75], "texture": "#0"}, + "down": {"uv": [12.5, 4.75, 12, 5.25], "texture": "#0"} + } + }, + { + "name": "Leg_Back_Right", + "from": [-15, 0, 13], + "to": [-13, 26, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [-15, 0, 13]}, + "faces": { + "north": {"uv": [11.25, 1.5, 11.75, 8], "texture": "#0"}, + "east": {"uv": [11.25, 1.5, 11.75, 8], "texture": "#0"}, + "south": {"uv": [11.25, 1.5, 11.75, 8], "texture": "#0"}, + "west": {"uv": [11.25, 1.5, 11.75, 8], "texture": "#0"}, + "up": {"uv": [12.5, 5.25, 12, 4.75], "texture": "#0"}, + "down": {"uv": [12.5, 4.75, 12, 5.25], "texture": "#0"} + } + }, + { + "name": "Leg_Front_Right", + "from": [-15, 0, 1], + "to": [-13, 13, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [-15, 0, 1]}, + "faces": { + "north": {"uv": [11.25, 4.75, 11.75, 8], "texture": "#0"}, + "east": {"uv": [11.25, 4.75, 11.75, 8], "texture": "#0"}, + "south": {"uv": [11.25, 4.75, 11.75, 8], "texture": "#0"}, + "west": {"uv": [11.25, 4.75, 11.75, 8], "texture": "#0"}, + "up": {"uv": [16, 16, 15.5, 15.5], "texture": "#0"}, + "down": {"uv": [12.5, 4.75, 12, 5.25], "texture": "#0"} + } + }, + { + "name": "Back_Left_divider", + "from": [18, 8, 13], + "to": [20, 23, 14.9], + "rotation": {"angle": 0, "axis": "y", "origin": [18, 15, 13]}, + "faces": { + "north": {"uv": [11.25, 1.5, 11.75, 5.25], "texture": "#0"}, + "east": {"uv": [11.25, 1.5, 11.75, 5.25], "texture": "#0"}, + "south": {"uv": [11.25, 1.5, 11.75, 5.25], "texture": "#0"}, + "west": {"uv": [11.25, 1.5, 11.75, 5.25], "texture": "#0"}, + "up": {"uv": [21.75, 0.75, 21.25, 0.25], "texture": "#0"}, + "down": {"uv": [16, 15.5, 15.5, 16], "texture": "#0"} + } + }, + { + "name": "Back_Middle_Divider", + "from": [7, 8, 13], + "to": [9, 23, 14.9], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 15, 13]}, + "faces": { + "north": {"uv": [11.25, 1.5, 11.75, 5.25], "texture": "#0"}, + "east": {"uv": [11.25, 1.5, 11.75, 5.25], "texture": "#0"}, + "south": {"uv": [11.25, 1.5, 11.75, 5.25], "texture": "#0"}, + "west": {"uv": [11.25, 1.5, 11.75, 5.25], "texture": "#0"}, + "up": {"uv": [16, 16, 15.5, 15.5], "texture": "#0"}, + "down": {"uv": [16, 15.5, 15.5, 16], "texture": "#0"} + } + }, + { + "name": "Back_Right_Divider", + "from": [-4, 8, 13], + "to": [-2, 23, 14.9], + "rotation": {"angle": 0, "axis": "y", "origin": [-4, 15, 13]}, + "faces": { + "north": {"uv": [11.25, 1.5, 11.75, 5.25], "texture": "#0"}, + "east": {"uv": [11.25, 1.5, 11.75, 5.25], "texture": "#0"}, + "south": {"uv": [11.25, 1.5, 11.75, 5.25], "texture": "#0"}, + "west": {"uv": [11.25, 1.5, 11.75, 5.25], "texture": "#0"}, + "up": {"uv": [21, 1, 20.5, 0.5], "texture": "#0"}, + "down": {"uv": [16, 15.5, 15.5, 16], "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, 45, 0], + "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, -1, 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/spruce/chair_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/spruce/chair_1.json new file mode 100644 index 0000000000..2cfbd3ef9e --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/spruce/chair_1.json @@ -0,0 +1,227 @@ +{ + "format_version": "1.21.6", + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "gm4_furniture:block/furniture/wood_set/spruce/chair_1", + "particle": "gm4_furniture:block/furniture/wood_set/spruce/chair_1" + }, + "elements": [ + { + "name": "flat_seat", + "from": [2, 6, 0], + "to": [14, 8, 14.9], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 6, 0]}, + "faces": { + "north": {"uv": [0, 6.5, 6, 7.5], "texture": "#0"}, + "east": {"uv": [6.5, 0, 14, 1], "texture": "#0"}, + "south": {"uv": [0, 6.5, 6, 7.5], "texture": "#0"}, + "west": {"uv": [6.5, 0, 14, 1], "texture": "#0"}, + "up": {"uv": [6, 7.5, 0, 0], "texture": "#0"}, + "down": {"uv": [6, 0, 0, 7.5], "texture": "#0"} + } + }, + { + "name": "top_panel_rim", + "from": [3, 23, 13], + "to": [13, 25, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 23, 13]}, + "faces": { + "north": {"uv": [5.5, 8, 10.5, 9], "texture": "#0"}, + "east": {"uv": [14.5, 14.5, 15.5, 15.5], "texture": "#0"}, + "south": {"uv": [5.5, 8, 10.5, 9], "texture": "#0"}, + "west": {"uv": [14.5, 14.5, 15.5, 15.5], "texture": "#0"}, + "up": {"uv": [10.5, 9, 5.5, 8], "texture": "#0"}, + "down": {"uv": [10.5, 8, 5.5, 9], "texture": "#0"} + } + }, + { + "name": "left_arm_rest", + "from": [13, 13, 1], + "to": [15, 14, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [13, 13, 13]}, + "faces": { + "north": {"uv": [13, 8, 14, 8.5], "texture": "#0"}, + "east": {"uv": [6.5, 7, 12.5, 7.5], "texture": "#0"}, + "south": {"uv": [13, 8.5, 14, 9], "texture": "#0"}, + "west": {"uv": [6.5, 7, 12.5, 7.5], "texture": "#0"}, + "up": {"uv": [14, 7.5, 13, 1.5], "texture": "#0"}, + "down": {"uv": [14, 1.5, 13, 7.5], "texture": "#0"} + } + }, + { + "name": "right_arm_rest", + "from": [1, 13, 1], + "to": [3, 14, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [1, 13, 13]}, + "faces": { + "north": {"uv": [13, 8, 14, 8.5], "texture": "#0"}, + "east": {"uv": [6.5, 7, 12.5, 7.5], "texture": "#0"}, + "south": {"uv": [13, 8.5, 14, 9], "texture": "#0"}, + "west": {"uv": [6.5, 7, 12.5, 7.5], "texture": "#0"}, + "up": {"uv": [14, 7.5, 13, 1.5], "texture": "#0"}, + "down": {"uv": [14, 1.5, 13, 7.5], "texture": "#0"} + } + }, + { + "name": "back_panel", + "from": [3, 8, 14], + "to": [13, 23, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 14]}, + "faces": { + "north": {"uv": [0, 8, 5, 15.5], "texture": "#0"}, + "east": {"uv": [0, 0, 0, 7.5], "texture": "#0"}, + "south": {"uv": [0, 8, 5, 15.5], "texture": "#0"}, + "west": {"uv": [0, 0, 0, 7.5], "texture": "#0"}, + "up": {"uv": [5, 0, 0, 0], "texture": "#0"}, + "down": {"uv": [5, 0, 0, 0], "texture": "#0"} + } + }, + { + "name": "Bottom", + "from": [2, 2, 2], + "to": [14, 6, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [22, 4, 2]}, + "faces": { + "north": {"uv": [6.5, 1.5, 12.5, 3.5], "texture": "#0"}, + "east": {"uv": [6.5, 1.5, 12.5, 3.5], "texture": "#0"}, + "south": {"uv": [6.5, 1.5, 12.5, 3.5], "texture": "#0"}, + "west": {"uv": [6.5, 1.5, 12.5, 3.5], "texture": "#0"}, + "up": {"uv": [11.5, 15.5, 5.5, 9.5], "texture": "#0"}, + "down": {"uv": [11.5, 9.5, 5.5, 15.5], "texture": "#0"} + } + }, + { + "name": "Bottom_Inside", + "from": [14, 6, 14], + "to": [2, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [14, 6, 14]}, + "faces": { + "north": {"uv": [6.5, 1.5, 12.5, 3.5], "texture": "#0"}, + "east": {"uv": [6.5, 1.5, 12.5, 3.5], "texture": "#0"}, + "south": {"uv": [6.5, 1.5, 12.5, 3.5], "texture": "#0"}, + "west": {"uv": [6.5, 1.5, 12.5, 3.5], "texture": "#0"}, + "up": {"uv": [11.5, 15.5, 5.5, 9.5], "texture": "#0"}, + "down": {"uv": [11.5, 9.5, 5.5, 15.5], "texture": "#0"} + } + }, + { + "name": "Left_Panel", + "from": [14, 8, 3], + "to": [14, 13, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [12, 3, 5]}, + "faces": { + "north": {"uv": [0, 0, 0, 2.5], "texture": "#0"}, + "east": {"uv": [6.5, 4, 11.5, 6.5], "texture": "#0"}, + "south": {"uv": [0, 0, 0, 2.5], "texture": "#0"}, + "west": {"uv": [6.5, 4, 11.5, 6.5], "texture": "#0"}, + "up": {"uv": [0, 5, 0, 0], "texture": "#0"}, + "down": {"uv": [0, 0, 0, 5], "texture": "#0"} + } + }, + { + "name": "Right_Panel", + "from": [2, 8, 3], + "to": [2, 13, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 3, 5]}, + "faces": { + "north": {"uv": [0, 0, 0, 2.5], "texture": "#0"}, + "east": {"uv": [6.5, 4, 11.5, 6.5], "texture": "#0"}, + "south": {"uv": [0, 0, 0, 2.5], "texture": "#0"}, + "west": {"uv": [6.5, 4, 11.5, 6.5], "texture": "#0"}, + "up": {"uv": [0, 5, 0, 0], "texture": "#0"}, + "down": {"uv": [0, 0, 0, 5], "texture": "#0"} + } + }, + { + "name": "Leg_Front_Left", + "from": [13, 0, 1], + "to": [15, 13, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [13, 0, 1]}, + "faces": { + "north": {"uv": [14.5, 6.5, 15.5, 13], "texture": "#0"}, + "east": {"uv": [14.5, 6.5, 15.5, 13], "texture": "#0"}, + "south": {"uv": [14.5, 6.5, 15.5, 13], "texture": "#0"}, + "west": {"uv": [14.5, 6.5, 15.5, 13], "texture": "#0"}, + "up": {"uv": [15.5, 15.5, 14.5, 14.5], "texture": "#0"}, + "down": {"uv": [15.5, 13.5, 14.5, 14.5], "texture": "#0"} + } + }, + { + "name": "Leg_Front_Right", + "from": [1, 0, 1], + "to": [3, 13, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [1, 0, 1]}, + "faces": { + "north": {"uv": [14.5, 6.5, 15.5, 13], "texture": "#0"}, + "east": {"uv": [14.5, 6.5, 15.5, 13], "texture": "#0"}, + "south": {"uv": [14.5, 6.5, 15.5, 13], "texture": "#0"}, + "west": {"uv": [14.5, 6.5, 15.5, 13], "texture": "#0"}, + "up": {"uv": [15.5, 15.5, 14.5, 14.5], "texture": "#0"}, + "down": {"uv": [15.5, 13.5, 14.5, 14.5], "texture": "#0"} + } + }, + { + "name": "Leg_Back_Left", + "from": [13, 0, 13], + "to": [15, 26, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [13, 0, 13]}, + "faces": { + "north": {"uv": [14.5, 0, 15.5, 13], "texture": "#0"}, + "east": {"uv": [14.5, 0, 15.5, 13], "texture": "#0"}, + "south": {"uv": [14.5, 0, 15.5, 13], "texture": "#0"}, + "west": {"uv": [14.5, 0, 15.5, 13], "texture": "#0"}, + "up": {"uv": [15.5, 14.5, 14.5, 13.5], "texture": "#0"}, + "down": {"uv": [15.5, 13.5, 14.5, 14.5], "texture": "#0"} + } + }, + { + "name": "Leg_Back_Right", + "from": [1, 0, 13], + "to": [3, 26, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [1, 0, 13]}, + "faces": { + "north": {"uv": [14.5, 0, 15.5, 13], "texture": "#0"}, + "east": {"uv": [14.5, 0, 15.5, 13], "texture": "#0"}, + "south": {"uv": [14.5, 0, 15.5, 13], "texture": "#0"}, + "west": {"uv": [14.5, 0, 15.5, 13], "texture": "#0"}, + "up": {"uv": [15.5, 14.5, 14.5, 13.5], "texture": "#0"}, + "down": {"uv": [15.5, 13.5, 14.5, 14.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, 45, 0], + "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.48, 0.48, 0.48] + }, + "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/spruce/light_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/spruce/light_1.json new file mode 100644 index 0000000000..b973621337 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/spruce/light_1.json @@ -0,0 +1,126 @@ +{ + "format_version": "1.21.6", + "credit": "Made with Blockbench", + "textures": { + "0": "gm4_furniture:block/furniture/wood_set/spruce/light_1", + "particle": "gm4_furniture:block/furniture/wood_set/spruce/light_1" + }, + "elements": [ + { + "name": "torch", + "from": [7, 2, 13.1], + "to": [9, 12, 15.1], + "rotation": {"angle": -22.5, "axis": "x", "origin": [9, 7, 14.1]}, + "faces": { + "north": {"uv": [14, 6, 16, 16], "texture": "#0"}, + "east": {"uv": [14, 6, 16, 16], "texture": "#0"}, + "south": {"uv": [14, 6, 16, 16], "texture": "#0"}, + "west": {"uv": [14, 6, 16, 16], "texture": "#0"}, + "up": {"uv": [14, 6, 16, 8], "texture": "#0"}, + "down": {"uv": [11, 14, 13, 16], "texture": "#0"} + } + }, + { + "name": "torch", + "from": [11, 3, 14.1], + "to": [13, 13, 16.1], + "rotation": {"angle": -22.5, "axis": "x", "origin": [13, 8, 15.1]}, + "faces": { + "north": {"uv": [14, 6, 16, 16], "texture": "#0"}, + "east": {"uv": [14, 6, 16, 16], "texture": "#0"}, + "south": {"uv": [14, 6, 16, 16], "texture": "#0"}, + "west": {"uv": [14, 6, 16, 16], "texture": "#0"}, + "up": {"uv": [14, 6, 16, 8], "texture": "#0"}, + "down": {"uv": [11, 14, 13, 16], "texture": "#0"} + } + }, + { + "name": "torch", + "from": [3, 3, 14.1], + "to": [5, 13, 16.1], + "rotation": {"angle": -22.5, "axis": "x", "origin": [5, 8, 15.1]}, + "faces": { + "north": {"uv": [14, 6, 16, 16], "texture": "#0"}, + "east": {"uv": [14, 6, 16, 16], "texture": "#0"}, + "south": {"uv": [14, 6, 16, 16], "texture": "#0"}, + "west": {"uv": [14, 6, 16, 16], "texture": "#0"}, + "up": {"uv": [14, 6, 16, 8], "texture": "#0"}, + "down": {"uv": [11, 14, 13, 16], "texture": "#0"} + } + }, + { + "from": [2, 5, 14], + "to": [14, 7, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 5, 10]}, + "faces": { + "north": {"uv": [0, 4, 12, 6], "texture": "#0"}, + "east": {"uv": [14, 0, 16, 2], "texture": "#0"}, + "south": {"uv": [0, 2, 12, 4], "texture": "#0"}, + "west": {"uv": [14, 2, 16, 4], "texture": "#0"}, + "up": {"uv": [0, 0, 12, 2], "texture": "#0"}, + "down": {"uv": [0, 6, 12, 8], "texture": "#0"} + } + }, + { + "from": [3, 5, 13], + "to": [13, 7, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 5, 7]}, + "faces": { + "north": {"uv": [0, 9, 10, 11], "texture": "#0"}, + "east": {"uv": [12, 9, 13, 11], "texture": "#0"}, + "south": {"uv": [16, 16, 16, 16], "texture": "#0"}, + "west": {"uv": [11, 9, 12, 11], "texture": "#0"}, + "up": {"uv": [0, 8, 10, 9], "texture": "#0"}, + "down": {"uv": [0, 11, 10, 12], "texture": "#0"} + } + }, + { + "from": [5, 5, 12], + "to": [11, 7, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 5, 6]}, + "faces": { + "north": {"uv": [0, 13, 6, 15], "texture": "#0"}, + "east": {"uv": [8, 12, 9, 14], "texture": "#0"}, + "south": {"uv": [16, 16, 16, 16], "texture": "#0"}, + "west": {"uv": [7, 12, 8, 14], "texture": "#0"}, + "up": {"uv": [0, 12, 6, 13], "texture": "#0"}, + "down": {"uv": [0, 15, 6, 16], "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, -135, 0], + "translation": [4, -2, 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/spruce/stool_1.json b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/spruce/stool_1.json new file mode 100644 index 0000000000..1833778800 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/models/block/furniture/wood_set/spruce/stool_1.json @@ -0,0 +1,142 @@ +{ + "format_version": "1.21.6", + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "gm4_furniture:block/furniture/wood_set/spruce/stool_1", + "particle": "gm4_furniture:block/furniture/wood_set/spruce/stool_1" + }, + "elements": [ + { + "name": "top_seat", + "from": [2, 10, 2], + "to": [14, 12, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 10, 1]}, + "faces": { + "north": {"uv": [0, 6.5, 6, 7.5], "texture": "#0"}, + "east": {"uv": [0, 8, 6, 9], "texture": "#0"}, + "south": {"uv": [0, 6.5, 6, 7.5], "texture": "#0"}, + "west": {"uv": [0, 8, 6, 9], "texture": "#0"}, + "up": {"uv": [6, 6, 0, 0], "texture": "#0"}, + "down": {"uv": [6, 0, 0, 6], "texture": "#0"} + } + }, + { + "name": "back_panel", + "from": [12, 10, 12], + "to": [4, 7, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [5, 8, 12]}, + "faces": { + "north": {"uv": [6.5, 0, 10.5, 1.5], "texture": "#0"}, + "east": {"uv": [6.5, 0, 10.5, 1.5], "texture": "#0"}, + "south": {"uv": [6.5, 0, 10.5, 1.5], "texture": "#0"}, + "west": {"uv": [6.5, 0, 10.5, 1.5], "texture": "#0"}, + "up": {"uv": [10, 11, 6, 7], "texture": "#0"}, + "down": {"uv": [10, 7, 6, 11], "texture": "#0"} + } + }, + { + "name": "Front_panel", + "from": [4, 7, 4], + "to": [12, 10, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [23, 8, 4]}, + "faces": { + "north": {"uv": [6.5, 0, 10.5, 1.5], "texture": "#0"}, + "east": {"uv": [6.5, 0, 10.5, 1.5], "texture": "#0"}, + "south": {"uv": [6.5, 0, 10.5, 1.5], "texture": "#0"}, + "west": {"uv": [6.5, 0, 10.5, 1.5], "texture": "#0"}, + "up": {"uv": [10, 11, 6, 7], "texture": "#0"}, + "down": {"uv": [10, 7, 6, 11], "texture": "#0"} + } + }, + { + "name": "Leg_Front_Left", + "from": [11, 0, 3], + "to": [13, 10, 5], + "rotation": {"angle": 0, "axis": "y", "origin": [11, 0, 3]}, + "faces": { + "north": {"uv": [6.5, 2, 7.5, 7], "texture": "#0"}, + "east": {"uv": [8, 2, 9, 7], "texture": "#0"}, + "south": {"uv": [6.5, 2, 7.5, 7], "texture": "#0"}, + "west": {"uv": [8, 2, 9, 7], "texture": "#0"}, + "up": {"uv": [10.5, 4.5, 9.5, 3.5], "texture": "#0"}, + "down": {"uv": [10.5, 2, 9.5, 3], "texture": "#0"} + } + }, + { + "name": "Leg_Back_Left", + "from": [11, 0, 11], + "to": [13, 10, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [11, 0, 11]}, + "faces": { + "north": {"uv": [6.5, 2, 7.5, 7], "texture": "#0"}, + "east": {"uv": [8, 2, 9, 7], "texture": "#0"}, + "south": {"uv": [6.5, 2, 7.5, 7], "texture": "#0"}, + "west": {"uv": [8, 2, 9, 7], "texture": "#0"}, + "up": {"uv": [10.5, 4.5, 9.5, 3.5], "texture": "#0"}, + "down": {"uv": [10.5, 2, 9.5, 3], "texture": "#0"} + } + }, + { + "name": "Leg_Back_Right", + "from": [3, 0, 11], + "to": [5, 10, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [3, 0, 11]}, + "faces": { + "north": {"uv": [6.5, 2, 7.5, 7], "texture": "#0"}, + "east": {"uv": [8, 2, 9, 7], "texture": "#0"}, + "south": {"uv": [6.5, 2, 7.5, 7], "texture": "#0"}, + "west": {"uv": [8, 2, 9, 7], "texture": "#0"}, + "up": {"uv": [10.5, 4.5, 9.5, 3.5], "texture": "#0"}, + "down": {"uv": [10.5, 2, 9.5, 3], "texture": "#0"} + } + }, + { + "name": "Leg_Front_Right", + "from": [3, 0, 3], + "to": [5, 10, 5], + "rotation": {"angle": 0, "axis": "y", "origin": [3, 0, 3]}, + "faces": { + "north": {"uv": [6.5, 2, 7.5, 7], "texture": "#0"}, + "east": {"uv": [8, 2, 9, 7], "texture": "#0"}, + "south": {"uv": [6.5, 2, 7.5, 7], "texture": "#0"}, + "west": {"uv": [8, 2, 9, 7], "texture": "#0"}, + "up": {"uv": [10.5, 4.5, 9.5, 3.5], "texture": "#0"}, + "down": {"uv": [10.5, 2, 9.5, 3], "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, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, -135, 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] + } + } +} \ No newline at end of file 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/desk_lamp.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/metal_set/iron/desk_lamp.png new file mode 100644 index 0000000000..3ce5ca99da Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/metal_set/iron/desk_lamp.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/metal_set/iron/foldable_chair.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/metal_set/iron/foldable_chair.png new file mode 100644 index 0000000000..4a31fe8dd6 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/metal_set/iron/foldable_chair.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/metal_set/iron/foldable_chair_gm4.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/metal_set/iron/foldable_chair_gm4.png new file mode 100644 index 0000000000..5286ee1a1c Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/metal_set/iron/foldable_chair_gm4.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/metal_set/iron/foldable_chair_old.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/metal_set/iron/foldable_chair_old.png new file mode 100644 index 0000000000..271f797671 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/metal_set/iron/foldable_chair_old.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/metal_set/iron/spotlight.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/metal_set/iron/spotlight.png new file mode 100644 index 0000000000..55fecb2950 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/metal_set/iron/spotlight.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/metal_set/iron/spotlight_off.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/metal_set/iron/spotlight_off.png new file mode 100644 index 0000000000..b8a2e80651 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/metal_set/iron/spotlight_off.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/misc/candle_wick_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/misc/candle_wick_1.png new file mode 100644 index 0000000000..313eb0f825 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/misc/candle_wick_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/stone_set/lantern.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/stone_set/lantern.png new file mode 100644 index 0000000000..51be9c34e7 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/stone_set/lantern.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/stone_set/lantern_big.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/stone_set/lantern_big.png new file mode 100644 index 0000000000..f4a284cb6a Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/stone_set/lantern_big.png differ 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/cat.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/stone_set/statues/cat.png new file mode 100644 index 0000000000..e9e062e852 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/stone_set/statues/cat.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/stone_set/statues/chicken.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/stone_set/statues/chicken.png new file mode 100644 index 0000000000..deacaf6879 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/stone_set/statues/chicken.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/stone_set/statues/fox.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/stone_set/statues/fox.png new file mode 100644 index 0000000000..dbd720634c Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/stone_set/statues/fox.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/silverfish.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/stone_set/statues/silverfish.png new file mode 100644 index 0000000000..7f16653220 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/stone_set/statues/silverfish.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/stone_set/statues/slime.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/stone_set/statues/slime.png new file mode 100644 index 0000000000..49950c343e Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/stone_set/statues/slime.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/acacia/1x1_table_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/acacia/1x1_table_1.png new file mode 100644 index 0000000000..fa40f8e5e5 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/acacia/1x1_table_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/acacia/2x2_table_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/acacia/2x2_table_1.png new file mode 100644 index 0000000000..4feabb8dca Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/acacia/2x2_table_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/acacia/bench_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/acacia/bench_1.png new file mode 100644 index 0000000000..d6ad051d93 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/acacia/bench_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/acacia/campfire_fire.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/acacia/campfire_fire.png new file mode 100644 index 0000000000..0d0309b347 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/acacia/campfire_fire.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/acacia/campfire_fire.png.mcmeta b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/acacia/campfire_fire.png.mcmeta new file mode 100644 index 0000000000..6637c41ec5 --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/acacia/campfire_fire.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 2 + } +} diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/acacia/campfire_lit.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/acacia/campfire_lit.png new file mode 100644 index 0000000000..108ada151c Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/acacia/campfire_lit.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/acacia/campfire_lit.png.mcmeta b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/acacia/campfire_lit.png.mcmeta new file mode 100644 index 0000000000..1f1869422e --- /dev/null +++ b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/acacia/campfire_lit.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "frametime": 20, + "interpolate":true, + } +} diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/acacia/chair_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/acacia/chair_1.png new file mode 100644 index 0000000000..b3d30dfd3d Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/acacia/chair_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/acacia/light_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/acacia/light_1.png new file mode 100644 index 0000000000..077e54ff5b Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/acacia/light_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/acacia/stool_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/acacia/stool_1.png new file mode 100644 index 0000000000..312aef5af8 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/acacia/stool_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/cherry/1x1_table_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/cherry/1x1_table_1.png new file mode 100644 index 0000000000..e1916a39c4 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/cherry/1x1_table_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/cherry/2x2_table_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/cherry/2x2_table_1.png new file mode 100644 index 0000000000..117eb62dba Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/cherry/2x2_table_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/cherry/bench_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/cherry/bench_1.png new file mode 100644 index 0000000000..b8dcfce22c Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/cherry/bench_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/cherry/chair_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/cherry/chair_1.png new file mode 100644 index 0000000000..4e0728c5ae Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/cherry/chair_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/cherry/light_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/cherry/light_1.png new file mode 100644 index 0000000000..591c56aee5 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/cherry/light_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/cherry/stool_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/cherry/stool_1.png new file mode 100644 index 0000000000..1e21fc0932 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/cherry/stool_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/dark_oak/1x1_table_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/dark_oak/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/dark_oak/1x1_table_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/dark_oak/2x2_table_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/dark_oak/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/dark_oak/2x2_table_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/dark_oak/bench_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/dark_oak/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/dark_oak/bench_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/dark_oak/chair_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/dark_oak/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/dark_oak/chair_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/dark_oak/light_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/dark_oak/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/dark_oak/light_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/dark_oak/stool_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/dark_oak/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/dark_oak/stool_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/oak/1x1_table_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/oak/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/oak/1x1_table_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/oak/2x2_table_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/oak/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/oak/2x2_table_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/oak/bench_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/oak/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/oak/bench_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/oak/chair_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/oak/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/oak/chair_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/oak/light_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/oak/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/oak/light_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/oak/stool_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/oak/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/oak/stool_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/spruce/1x1_table_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/spruce/1x1_table_1.png new file mode 100644 index 0000000000..b58136b579 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/spruce/1x1_table_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/spruce/2x2_table_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/spruce/2x2_table_1.png new file mode 100644 index 0000000000..7dd0495adb Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/spruce/2x2_table_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/spruce/bench_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/spruce/bench_1.png new file mode 100644 index 0000000000..10aa287cb0 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/spruce/bench_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/spruce/chair_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/spruce/chair_1.png new file mode 100644 index 0000000000..725811b51d Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/spruce/chair_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/spruce/light_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/spruce/light_1.png new file mode 100644 index 0000000000..112b6d8258 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/spruce/light_1.png differ diff --git a/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/spruce/stool_1.png b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/spruce/stool_1.png new file mode 100644 index 0000000000..aeb5e9bc64 Binary files /dev/null and b/gm4_furniture/assets/gm4_furniture/textures/block/furniture/wood_set/spruce/stool_1.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[BROKEN]/rendertype_entity_cutout.fsh b/gm4_furniture/assets/minecraft/shaders/core[BROKEN]/rendertype_entity_cutout.fsh new file mode 100644 index 0000000000..38df056d8f --- /dev/null +++ b/gm4_furniture/assets/minecraft/shaders/core[BROKEN]/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[BROKEN]/rendertype_entity_cutout.vsh b/gm4_furniture/assets/minecraft/shaders/core[BROKEN]/rendertype_entity_cutout.vsh new file mode 100644 index 0000000000..3b7b51503a --- /dev/null +++ b/gm4_furniture/assets/minecraft/shaders/core[BROKEN]/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[BROKEN]/rendertype_entity_cutout_no_cull.fsh b/gm4_furniture/assets/minecraft/shaders/core[BROKEN]/rendertype_entity_cutout_no_cull.fsh new file mode 100644 index 0000000000..38df056d8f --- /dev/null +++ b/gm4_furniture/assets/minecraft/shaders/core[BROKEN]/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[BROKEN]/rendertype_entity_cutout_no_cull.vsh b/gm4_furniture/assets/minecraft/shaders/core[BROKEN]/rendertype_entity_cutout_no_cull.vsh new file mode 100644 index 0000000000..3b7b51503a --- /dev/null +++ b/gm4_furniture/assets/minecraft/shaders/core[BROKEN]/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[BROKEN]/rendertype_entity_cutout_no_cull_z_offset.fsh b/gm4_furniture/assets/minecraft/shaders/core[BROKEN]/rendertype_entity_cutout_no_cull_z_offset.fsh new file mode 100644 index 0000000000..38df056d8f --- /dev/null +++ b/gm4_furniture/assets/minecraft/shaders/core[BROKEN]/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[BROKEN]/rendertype_entity_cutout_no_cull_z_offset.vsh b/gm4_furniture/assets/minecraft/shaders/core[BROKEN]/rendertype_entity_cutout_no_cull_z_offset.vsh new file mode 100644 index 0000000000..3b7b51503a --- /dev/null +++ b/gm4_furniture/assets/minecraft/shaders/core[BROKEN]/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[BROKEN]/rendertype_entity_no_outline.fsh b/gm4_furniture/assets/minecraft/shaders/core[BROKEN]/rendertype_entity_no_outline.fsh new file mode 100644 index 0000000000..3830d7aaf9 --- /dev/null +++ b/gm4_furniture/assets/minecraft/shaders/core[BROKEN]/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[BROKEN]/rendertype_entity_no_outline.vsh b/gm4_furniture/assets/minecraft/shaders/core[BROKEN]/rendertype_entity_no_outline.vsh new file mode 100644 index 0000000000..53e2cff82b --- /dev/null +++ b/gm4_furniture/assets/minecraft/shaders/core[BROKEN]/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[BROKEN]/rendertype_entity_solid.fsh b/gm4_furniture/assets/minecraft/shaders/core[BROKEN]/rendertype_entity_solid.fsh new file mode 100644 index 0000000000..632a5b6a6b --- /dev/null +++ b/gm4_furniture/assets/minecraft/shaders/core[BROKEN]/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[BROKEN]/rendertype_entity_solid.vsh b/gm4_furniture/assets/minecraft/shaders/core[BROKEN]/rendertype_entity_solid.vsh new file mode 100644 index 0000000000..3b7b51503a --- /dev/null +++ b/gm4_furniture/assets/minecraft/shaders/core[BROKEN]/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[BROKEN]/rendertype_entity_translucent.fsh b/gm4_furniture/assets/minecraft/shaders/core[BROKEN]/rendertype_entity_translucent.fsh new file mode 100644 index 0000000000..38df056d8f --- /dev/null +++ b/gm4_furniture/assets/minecraft/shaders/core[BROKEN]/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[BROKEN]/rendertype_entity_translucent.vsh b/gm4_furniture/assets/minecraft/shaders/core[BROKEN]/rendertype_entity_translucent.vsh new file mode 100644 index 0000000000..3b7b51503a --- /dev/null +++ b/gm4_furniture/assets/minecraft/shaders/core[BROKEN]/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[BROKEN]/rendertype_entity_translucent_cull.fsh b/gm4_furniture/assets/minecraft/shaders/core[BROKEN]/rendertype_entity_translucent_cull.fsh new file mode 100644 index 0000000000..a62d0c6bce --- /dev/null +++ b/gm4_furniture/assets/minecraft/shaders/core[BROKEN]/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[BROKEN]/rendertype_entity_translucent_cull.vsh b/gm4_furniture/assets/minecraft/shaders/core[BROKEN]/rendertype_entity_translucent_cull.vsh new file mode 100644 index 0000000000..b8e09ee88a --- /dev/null +++ b/gm4_furniture/assets/minecraft/shaders/core[BROKEN]/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[BROKEN]/rendertype_item_entity_translucent_cull.fsh b/gm4_furniture/assets/minecraft/shaders/core[BROKEN]/rendertype_item_entity_translucent_cull.fsh new file mode 100644 index 0000000000..796551d212 --- /dev/null +++ b/gm4_furniture/assets/minecraft/shaders/core[BROKEN]/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[BROKEN]/rendertype_item_entity_translucent_cull.vsh b/gm4_furniture/assets/minecraft/shaders/core[BROKEN]/rendertype_item_entity_translucent_cull.vsh new file mode 100644 index 0000000000..b8e09ee88a --- /dev/null +++ b/gm4_furniture/assets/minecraft/shaders/core[BROKEN]/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/beet.yaml b/gm4_furniture/beet.yaml new file mode 100644 index 0000000000..bbd8b032ed --- /dev/null +++ b/gm4_furniture/beet.yaml @@ -0,0 +1,41 @@ +id: gm4_furniture +name: Furniture +version: 1.2.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.5.0 + lib_custom_crafters: 3.4.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..c4ea26bbf1 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/advancement/hit_furniture.json @@ -0,0 +1,39 @@ +{ + "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\"]}" + } + } + ] + } + } + }, + "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..d05215d4b1 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/advancement/interact_with_furniture.json @@ -0,0 +1,37 @@ +{ + "criteria": { + "interact_with_furniture": { + "trigger": "minecraft:player_interacted_with_entity", + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type_specific": { + "type": "minecraft:player", + "gamemode": [ + "survival", + "creative" + ] + } + } + } + ], + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:interaction", + "nbt": "{Tags:[\"gm4_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..e073ac95fb --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/advancement/place_furniture.json @@ -0,0 +1,22 @@ +{ + "criteria": { + "placed_furniture": { + "trigger": "minecraft:placed_block", + "conditions": { + "location": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": [ + "minecraft:player_head" + ] + } + } + ] + } + } + }, + "rewards": { + "function": "gm4_furniture:place/place_furniture" + } +} diff --git a/gm4_furniture/data/gm4_furniture/advancement/recipe/furniture_station.json b/gm4_furniture/data/gm4_furniture/advancement/recipe/furniture_station.json new file mode 100644 index 0000000000..1fe38db123 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/advancement/recipe/furniture_station.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "gm4_furniture:furniture_station" + } + }, + "has_materials": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:iron_ingot", + "minecraft:crafting_table" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_materials" + ] + ], + "rewards": { + "recipes": [ + "gm4_furniture:furniture_station" + ] + } +} diff --git a/gm4_furniture/data/gm4_furniture/advancement/recipe/paintbrush.json b/gm4_furniture/data/gm4_furniture/advancement/recipe/paintbrush.json new file mode 100644 index 0000000000..a424d7d1b3 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/advancement/recipe/paintbrush.json @@ -0,0 +1,36 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "gm4_furniture:paintbrush" + } + }, + "has_materials": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:string", + "minecraft:iron_ingot", + "minecraft:stick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_materials" + ] + ], + "rewards": { + "recipes": [ + "gm4_furniture:paintbrush" + ] + } +} 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..cfb5050d1b --- /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/function/break/destroy.mcfunction b/gm4_furniture/data/gm4_furniture/function/break/destroy.mcfunction new file mode 100644 index 0000000000..7e5a607688 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/break/destroy.mcfunction @@ -0,0 +1,29 @@ +# 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" + +# 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 + +# kill item displays +execute as @e[type=item_display,tag=gm4_furniture,distance=..8] if score @s gm4_furniture_id = $check_id gm4_furniture_id run kill @s + +# kill markers +execute as @e[type=marker,tag=gm4_furniture,distance=..8] if score @s gm4_furniture_id = $check_id gm4_furniture_id run kill @s + +# 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/destroy_find_main.mcfunction b/gm4_furniture/data/gm4_furniture/function/break/destroy_find_main.mcfunction new file mode 100644 index 0000000000..0a0381b346 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/break/destroy_find_main.mcfunction @@ -0,0 +1,8 @@ +# destroy furniture from any interaction, targeting the main interaction +# @s = furniture's interaction 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 +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/destroy 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..6b41e4f108 --- /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 +# with {furniture_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:dyed_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..33f95cd2c5 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/break/eval_color.mcfunction @@ -0,0 +1,7 @@ +# eval color and add to held brush +# @s = furniture main interaction entity +# at @s +# run from break/get_color +# with {rgb} + +$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..4894ffec0c --- /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" +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..db372afa8b --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/break/process_hit.mcfunction @@ -0,0 +1,22 @@ +# 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.dyeable] run return run function gm4_furniture:break/get_color + +# 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..2e763b2ea1 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/break/remove_block.mcfunction @@ -0,0 +1,8 @@ +# 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] +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..abde4a0398 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/check_recipes.mcfunction @@ -0,0 +1,9 @@ +# @s = custom crafter running recipes +# at custom crafter +# 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 items block ~ ~ ~ container.0 #minecraft:planks if items block ~ ~ ~ container.2 #minecraft:planks if items block ~ ~ ~ container.3 #minecraft:planks if items block ~ ~ ~ container.5 #minecraft:planks if items block ~ ~ ~ container.6 #minecraft:planks if items block ~ ~ ~ container.8 #minecraft:planks \ + if items block ~ ~ ~ container.1 minecraft:crafting_table if items block ~ ~ ~ container.4 minecraft:iron_ingot \ + 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/metal_set/gold.3_candelabra_1.mcfunction b/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/metal_set/gold.3_candelabra_1.mcfunction new file mode 100644 index 0000000000..2a0f27ea1e --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/metal_set/gold.3_candelabra_1.mcfunction @@ -0,0 +1,15 @@ +# process candle right click event +# @s = interacted furniture's item display +# at @s +# run from interact/custom/resolve_function + +# attempt to light +execute if score $holding_lighter gm4_furniture_data matches 1 store success score $ignited_candle gm4_furniture_data \ + run data modify entity @s item.components merge value {"minecraft:item_model":"gm4_furniture:metal_set/gold/3_candelabra_1_lit","minecraft:custom_data":{gm4_furniture:{block_id:"light[level=13]"}}} +execute if score $ignited_candle gm4_furniture_data matches 0 unless score $offhand_candle_igniter gm4_furniture_data matches 1 run return run scoreboard players reset $ignited_candle gm4_furniture_data +execute if score $ignited_candle gm4_furniture_data matches 1 run return run setblock ~ ~ ~ light[level=13] + +# extinguish +data modify entity @s item.components merge value {"minecraft:item_model":"gm4_furniture:metal_set/gold/3_candelabra_1","minecraft:custom_data":{gm4_furniture:{block_id:"light[level=0]"}}} +setblock ~ ~ ~ light[level=0] +playsound block.candle.extinguish block @a[distance=..16] diff --git a/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/metal_set/iron.3_candelabra_1.mcfunction b/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/metal_set/iron.3_candelabra_1.mcfunction new file mode 100644 index 0000000000..7edca8e453 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/metal_set/iron.3_candelabra_1.mcfunction @@ -0,0 +1,15 @@ +# process candle right click event +# @s = interacted furniture's item display +# at @s +# run from interact/custom/resolve_function + +# attempt to light +execute if score $holding_lighter gm4_furniture_data matches 1 store success score $ignited_candle gm4_furniture_data \ + run data modify entity @s item.components merge value {"minecraft:item_model":"gm4_furniture:metal_set/iron/3_candelabra_1_lit","minecraft:custom_data":{gm4_furniture:{block_id:"light[level=13]"}}} +execute if score $ignited_candle gm4_furniture_data matches 0 unless score $offhand_candle_igniter gm4_furniture_data matches 1 run return run scoreboard players reset $ignited_candle gm4_furniture_data +execute if score $ignited_candle gm4_furniture_data matches 1 run return run setblock ~ ~ ~ light[level=13] + +# extinguish +data modify entity @s item.components merge value {"minecraft:item_model":"gm4_furniture:metal_set/iron/3_candelabra_1","minecraft:custom_data":{gm4_furniture:{block_id:"light[level=0]"}}} +setblock ~ ~ ~ light[level=0] +playsound block.candle.extinguish block @a[distance=..16] diff --git a/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/metal_set/iron.spotlight.mcfunction b/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/metal_set/iron.spotlight.mcfunction new file mode 100644 index 0000000000..4c04aac019 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/metal_set/iron.spotlight.mcfunction @@ -0,0 +1,17 @@ +# process spotlight right click event +# @s = interacted furniture's item display +# at @s +# run from interact/custom/resolve_function + +execute store success score $lit gm4_furniture_data run data modify entity @s item.components."minecraft:custom_data".gm4_furniture.lit set value 0 +playsound block.dispenser.fail block @a[distance=..16] + +# turn off +execute if score $lit gm4_furniture_data matches 1 as @e[type=item_display,tag=gm4_furniture.display_2,distance=..1] if score @s gm4_furniture_id = $check_id gm4_furniture_id run data modify entity @s item.components."minecraft:item_model" set value "gm4_furniture:metal_set/iron/spotlight/off/lamp" +execute if score $lit gm4_furniture_data matches 1 as @e[type=item_display,tag=gm4_furniture.display_3,distance=..1] if score @s gm4_furniture_id = $check_id gm4_furniture_id run data modify entity @s item.components."minecraft:item_model" set value "gm4_furniture:metal_set/iron/spotlight/off/beam" +execute if score $lit gm4_furniture_data matches 1 run return 0 + +# turn on +data modify entity @s item.components."minecraft:custom_data".gm4_furniture.lit set value 1 +execute as @e[type=item_display,tag=gm4_furniture.display_2,distance=..1] if score @s gm4_furniture_id = $check_id gm4_furniture_id run data modify entity @s item.components."minecraft:item_model" set value "gm4_furniture:metal_set/iron/spotlight/default/lamp" +execute as @e[type=item_display,tag=gm4_furniture.display_3,distance=..1] if score @s gm4_furniture_id = $check_id gm4_furniture_id run data modify entity @s item.components."minecraft:item_model" set value "gm4_furniture:metal_set/iron/spotlight/default/beam" diff --git a/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/misc/candle/find_igniter.mcfunction b/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/misc/candle/find_igniter.mcfunction new file mode 100644 index 0000000000..1ba65f98cd --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/misc/candle/find_igniter.mcfunction @@ -0,0 +1,11 @@ +# finds igniter player used to light candle and processes the feedback +# @s = player who ignited candle +# at @s +# run from interact/detect + +scoreboard players reset $ignited_candle gm4_furniture_data + +execute if score $mainhand_candle_igniter gm4_furniture_data matches 1 if items entity @s weapon.mainhand fire_charge run function gm4_furniture:interact/custom/furniture/misc/candle/used_mainhand_fire_charge +execute if score $mainhand_candle_igniter gm4_furniture_data matches 1 if items entity @s weapon.mainhand flint_and_steel run function gm4_furniture:interact/custom/furniture/misc/candle/used_mainhand_flint_and_steel +execute if score $offhand_candle_igniter gm4_furniture_data matches 1 if items entity @s weapon.offhand fire_charge run function gm4_furniture:interact/custom/furniture/misc/candle/used_offhand_fire_charge +execute if score $offhand_candle_igniter gm4_furniture_data matches 1 if items entity @s weapon.offhand flint_and_steel run function gm4_furniture:interact/custom/furniture/misc/candle/used_offhand_flint_and_steel diff --git a/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/misc/candle/used_mainhand_fire_charge.mcfunction b/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/misc/candle/used_mainhand_fire_charge.mcfunction new file mode 100644 index 0000000000..cb9de4a317 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/misc/candle/used_mainhand_fire_charge.mcfunction @@ -0,0 +1,13 @@ +# mainhand fire charge use logic +# @s = player who ignited candle +# at @s +# run from interact/custom/furniture/misc/candle/find_igniter + +# sound +playsound minecraft:item.firecharge.use player @a[distance=..16] + +# return if creative +execute if entity @s[gamemode=creative] run return 1 + +# use item +item modify entity @s weapon.mainhand {function:"minecraft:set_count",count:-1,add:1b} diff --git a/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/misc/candle/used_mainhand_flint_and_steel.mcfunction b/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/misc/candle/used_mainhand_flint_and_steel.mcfunction new file mode 100644 index 0000000000..d8061991d5 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/misc/candle/used_mainhand_flint_and_steel.mcfunction @@ -0,0 +1,23 @@ +# calculates damage for mainhand flint and steel +# @s = player who ignited candle +# at @s +# run from interact/custom/furniture/misc/candle/find_igniter + +# sound +playsound minecraft:item.flintandsteel.use player @a[distance=..16] + +# return if creative +execute if entity @s[gamemode=creative] run return 1 + +# damage +execute store result score $unbreaking_level gm4_furniture_data run data get entity @s SelectedItem.components."minecraft:enchantments"."minecraft:unbreaking" +scoreboard players add $unbreaking_level gm4_furniture_data 1 +scoreboard players set $damage_chance gm4_furniture_data 100 +scoreboard players operation $damage_chance gm4_furniture_data /= $unbreaking_level gm4_furniture_data +execute store result score $rand gm4_furniture_data run random value 1..100 +execute if score $rand gm4_furniture_data < $damage_chance gm4_furniture_data run item modify entity @s weapon.mainhand {"function":"minecraft:set_damage","damage":-0.0205,"add":true} + +execute unless items entity @s weapon.mainhand flint_and_steel[damage=64] run return 1 +# 0 durability remaining, break item +item replace entity @s weapon.mainhand with air +playsound minecraft:entity.item.break player @a[distance=..16] diff --git a/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/misc/candle/used_offhand_fire_charge.mcfunction b/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/misc/candle/used_offhand_fire_charge.mcfunction new file mode 100644 index 0000000000..0f48552e35 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/misc/candle/used_offhand_fire_charge.mcfunction @@ -0,0 +1,13 @@ +# offhand fire charge use logic +# @s = player who ignited candle +# at @s +# run from interact/custom/furniture/misc/candle/find_igniter + +# sound +playsound minecraft:item.firecharge.use player @a[distance=..16] + +# return if creative +execute if entity @s[gamemode=creative] run return 1 + +# use item +item modify entity @s weapon.offhand {function:"minecraft:set_count",count:-1,add:1b} diff --git a/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/misc/candle/used_offhand_flint_and_steel.mcfunction b/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/misc/candle/used_offhand_flint_and_steel.mcfunction new file mode 100644 index 0000000000..36f05139b7 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/misc/candle/used_offhand_flint_and_steel.mcfunction @@ -0,0 +1,23 @@ +# calculates damage for offhand flint and steel +# @s = player who ignited candle +# at @s +# run from interact/custom/furniture/misc/candle/find_igniter + +# sound +playsound minecraft:item.flintandsteel.use player @a[distance=..16] + +# return if creative +execute if entity @s[gamemode=creative] run return 1 + +# damage +execute store result score $unbreaking_level gm4_furniture_data run data get entity @s equipment.offhand.components."minecraft:enchantments"."minecraft:unbreaking" +scoreboard players add $unbreaking_level gm4_furniture_data 1 +scoreboard players set $damage_chance gm4_furniture_data 100 +scoreboard players operation $damage_chance gm4_furniture_data /= $unbreaking_level gm4_furniture_data +execute store result score $rand gm4_furniture_data run random value 1..100 +execute if score $rand gm4_furniture_data < $damage_chance gm4_furniture_data run item modify entity @s weapon.offhand {"function":"minecraft:set_damage","damage":-0.0205,"add":true} + +execute unless items entity @s weapon.offhand flint_and_steel[damage=64] run return 1 +# 0 durability remaining, break item +item replace entity @s weapon.offhand with air +playsound minecraft:entity.item.break player @a[distance=..16] 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..6d48a98d69 --- /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 = interacted furniture's item display +# 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..6cb7d19b8f --- /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 = interacted furniture's item display +# at @s +# run from interact/custom/resolve_function + +execute if predicate gm4_furniture:chance/animal_statue_sound run playsound entity.axolotl.idle_air 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..68a6ad5128 --- /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 = interacted furniture's item display +# 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.cat.mcfunction b/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/stone_set/statues.cat.mcfunction new file mode 100644 index 0000000000..b5728475f0 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/stone_set/statues.cat.mcfunction @@ -0,0 +1,7 @@ +# 2% chance to play an animal sound +# @s = interacted furniture's item display +# at @s +# run from interact/custom/resolve_function + +execute if predicate gm4_furniture:chance/animal_statue_sound run playsound entity.cat.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.chicken.mcfunction b/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/stone_set/statues.chicken.mcfunction new file mode 100644 index 0000000000..cac7a2d72e --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/stone_set/statues.chicken.mcfunction @@ -0,0 +1,7 @@ +# 2% chance to play an animal sound +# @s = interacted furniture's item display +# at @s +# run from interact/custom/resolve_function + +execute if predicate gm4_furniture:chance/animal_statue_sound run playsound entity.chicken.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.fox.mcfunction b/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/stone_set/statues.fox.mcfunction new file mode 100644 index 0000000000..0ec755f7ac --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/stone_set/statues.fox.mcfunction @@ -0,0 +1,7 @@ +# 2% chance to play an animal sound +# @s = interacted furniture's item display +# at @s +# run from interact/custom/resolve_function + +execute if predicate gm4_furniture:chance/animal_statue_sound run playsound entity.fox.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.frog.mcfunction b/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/stone_set/statues.frog.mcfunction new file mode 100644 index 0000000000..e9d5cc8fec --- /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 = interacted furniture's item display +# 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..d3cd1c61f5 --- /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 = interacted furniture's item display +# at @s +# run from interact/custom/resolve_function + +execute if predicate gm4_furniture:chance/animal_statue_sound run playsound entity.puffer_fish.blow_up 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.silverfish.mcfunction b/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/stone_set/statues.silverfish.mcfunction new file mode 100644 index 0000000000..fc1a141b9c --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/stone_set/statues.silverfish.mcfunction @@ -0,0 +1,7 @@ +# 2% chance to play an animal sound +# @s = interacted furniture's item display +# at @s +# run from interact/custom/resolve_function + +execute if predicate gm4_furniture:chance/animal_statue_sound run playsound entity.silverfish.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.slime.mcfunction b/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/stone_set/statues.slime.mcfunction new file mode 100644 index 0000000000..f195ee3efa --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/stone_set/statues.slime.mcfunction @@ -0,0 +1,7 @@ +# 2% chance to play an animal sound +# @s = interacted furniture's item display +# at @s +# run from interact/custom/resolve_function + +execute if predicate gm4_furniture:chance/animal_statue_sound run playsound entity.slime.squish 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/wood_set/dark_oak.light_1.mcfunction b/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/wood_set/dark_oak.light_1.mcfunction new file mode 100644 index 0000000000..91c9d104dc --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/wood_set/dark_oak.light_1.mcfunction @@ -0,0 +1,19 @@ +# toggle lamp on and off +# @s = interacted furniture's item display +# at @s +# run from interact/custom/resolve_function + +execute store success score $lit gm4_furniture_data if block ~ ~ ~ light[level=12] + +execute if score $lit gm4_furniture_data matches 1 run setblock ~ ~ ~ light[level=0] +execute if score $lit gm4_furniture_data matches 1 run data modify entity @s item.components merge value \ + {"minecraft:item_model":"gm4_furniture:wood_set/dark_oak/light_1","minecraft:custom_data":{gm4_furniture:{block_id:"light[level=0]"}}} + +execute if score $lit gm4_furniture_data matches 0 run setblock ~ ~ ~ light[level=12] +execute if score $lit gm4_furniture_data matches 0 run data modify entity @s item.components merge value \ + {"minecraft:item_model":"gm4_furniture:wood_set/dark_oak/light_1","minecraft:custom_data":{gm4_furniture:{block_id:"light[level=12]"}}} + +playsound block.dispenser.fail block @a[distance=..16] + +## NEEDS MODELS +# | One with emissive texture, one without diff --git a/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/wood_set/oak.light_1.mcfunction b/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/wood_set/oak.light_1.mcfunction new file mode 100644 index 0000000000..0ce0be10e9 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/custom/furniture/wood_set/oak.light_1.mcfunction @@ -0,0 +1,15 @@ +# process candle right click event +# @s = interacted furniture's item display +# at @s +# run from interact/custom/resolve_function + +# attempt to light +execute if score $holding_lighter gm4_furniture_data matches 1 store success score $ignited_candle gm4_furniture_data \ + run data modify entity @s item.components merge value {"minecraft:item_model":"gm4_furniture:wood_set/oak/light_1_lit","minecraft:custom_data":{gm4_furniture:{block_id:"light[level=15]"}}} +execute if score $ignited_candle gm4_furniture_data matches 0 unless score $offhand_candle_igniter gm4_furniture_data matches 1 run return run scoreboard players reset $ignited_candle gm4_furniture_data +execute if score $ignited_candle gm4_furniture_data matches 1 run return run setblock ~ ~ ~ light[level=15] + +# extinguish +data modify entity @s item.components merge value {"minecraft:item_model":"gm4_furniture:wood_set/oak/light_1","minecraft:custom_data":{gm4_furniture:{block_id:"light[level=0]"}}} +setblock ~ ~ ~ light[level=0] +playsound block.candle.extinguish block @a[distance=..16] 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..30024ae0b9 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/custom/process.mcfunction @@ -0,0 +1,10 @@ +# process custom furniture interactions +# @s = interacted furniture's item display +# at @s +# run from interact/custom/select_item_display + +# find this furniture's item_display and store its furniture_id +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..c10b1d6776 --- /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 = interacted furniture's item display +# at @s +# run from interact/custom/process +# with {furniture_id} + +$function gm4_furniture:interact/custom/furniture/$(furniture_id) diff --git a/gm4_furniture/data/gm4_furniture/function/interact/custom/select_item_display.mcfunction b/gm4_furniture/data/gm4_furniture/function/interact/custom/select_item_display.mcfunction new file mode 100644 index 0000000000..09fa6d748c --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/custom/select_item_display.mcfunction @@ -0,0 +1,7 @@ +# selects item display for interacted interaction entity +# @s = furniture's interacted interaction entity +# at @s +# run from interact/process + +# find this furniture's item_display +execute as @e[type=item_display,tag=gm4_furniture.display,distance=..8] if score @s gm4_furniture_id = $check_id gm4_furniture_id at @s run function gm4_furniture:interact/custom/process 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..4f0602b7de --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/detect.mcfunction @@ -0,0 +1,18 @@ +# detect interacting (right-click) on furniture +# @s = player interacting with furniture +# at @s +advancement revoke @s only gm4_furniture:interact_with_furniture + +# item data +# | candle lighting +execute store result score $mainhand_candle_igniter gm4_furniture_data store result score $offhand_candle_igniter gm4_furniture_data run scoreboard players set $holding_lighter gm4_furniture_data 0 +execute if items entity @s weapon.mainhand #gm4_furniture:candle_igniters store result score $holding_lighter gm4_furniture_data run scoreboard players set $mainhand_candle_igniter gm4_furniture_data 1 +execute unless score $mainhand_candle_igniter gm4_furniture_data matches 1 if items entity @s weapon.offhand #gm4_furniture:candle_igniters store result score $holding_lighter gm4_furniture_data run scoreboard players set $offhand_candle_igniter gm4_furniture_data 1 + +# 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 + +# item use interactions +execute if score $ignited_candle gm4_furniture_data matches 1 run function gm4_furniture:interact/custom/furniture/misc/candle/find_igniter 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..d3d142563f --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/furniture_station/swap_tool.mcfunction @@ -0,0 +1,18 @@ +# 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 +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..bc919599a9 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/paint/detect.mcfunction @@ -0,0 +1,10 @@ +# detect interaction on paintable furniture by a player holding a paintbrush +# @s = player holding paintbrush +# at furniture's interacted interaction entity +# run from interact/process + +# store color from paintbrush and process application if there is some +execute if predicate gm4_furniture:holding_paintbrush_offhand run data modify storage gm4_furniture:temp color set from entity @s equipment.offhand.components."minecraft:dyed_color" +execute if predicate gm4_furniture:holding_paintbrush_mainhand run data modify storage gm4_furniture:temp color set from entity @s SelectedItem.components."minecraft:dyed_color" +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..47410dfef6 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/paint/process.mcfunction @@ -0,0 +1,13 @@ +# check if this furniture should be painted +# @s = player holding paintbrush +# at furniture's interacted interaction entity +# run from interact/paint/detect + +# find this furniture's item_display and try to paint it +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" 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 0 run return 1 +playsound item.dye.use player @a[distance=..8] ~ ~ ~ 1 1 +scoreboard players set $interaction_processed gm4_furniture_data 1 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..24fa5349dd --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/process.mcfunction @@ -0,0 +1,38 @@ +# process interacting (right-click) on furniture +# @s = furniture's interacted interaction entity +# at @s +# run from interact/detect + +# store time to check +execute store result score $gametime gm4_furniture_data run time query gametime +execute store result score $check_gametime gm4_furniture_data run data get entity @s interaction.timestamp 1 + +# clean +data remove entity @s interaction + +# fail if old interaction +execute unless score $gametime gm4_furniture_data = $check_gametime gm4_furniture_data run return fail + +# store interaction id +scoreboard players operation $check_id gm4_furniture_id = @s gm4_furniture_id + +# 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 as @a[tag=gm4_furniture_target,predicate=gm4_furniture:holding_bucket,distance=..8,limit=1] 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.dyeable] as @a[tag=gm4_furniture_target,predicate=gm4_furniture:holding_paintbrush,distance=..8,limit=1] 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/select_item_display 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..4a6c6b8107 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/sit/spawn_seat.mcfunction @@ -0,0 +1,8 @@ +# spawn the seat in the correct place +# @s = furniture's seat item_display entity +# at @s +# run from interact/sit/find_seat +# with {height} + +# 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..9d92845868 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/waterlog/check.mcfunction @@ -0,0 +1,13 @@ +# check if the furniture should waterlog or water-unlog +# @s = player holding bucket +# at furniture's interacted interaction entity +# run from interact/process + +# mainhand +scoreboard players set $mainhand_bucket gm4_furniture_data 1 +execute if block ~ ~ ~ #gm4_furniture:furniture_blocks[waterlogged=true] if items entity @s weapon.mainhand minecraft: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 items entity @s weapon.mainhand minecraft:water_bucket run function gm4_furniture:interact/waterlog/log +# offhand +execute if score $interaction_processed gm4_furniture_data matches 0 run scoreboard players set $mainhand_bucket gm4_furniture_data 0 +execute if score $interaction_processed gm4_furniture_data matches 0 if block ~ ~ ~ #gm4_furniture:furniture_blocks[waterlogged=true] if items entity @s weapon.offhand minecraft: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 items entity @s weapon.offhand minecraft: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..fa93bd7ddd --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/waterlog/log.mcfunction @@ -0,0 +1,29 @@ +# waterlog this part of the furniture +# @s = player holding bucket +# at furniture's interacted interaction entity +# run from interact/waterlog/check + +execute if score $mainhand_bucket gm4_furniture_data matches 1 run item replace entity @s[gamemode=!creative] weapon.mainhand with bucket +execute if score $mainhand_bucket gm4_furniture_data matches 0 run item replace entity @s[gamemode=!creative] weapon.offhand 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/modify_mainhand.mcfunction b/gm4_furniture/data/gm4_furniture/function/interact/waterlog/modify_mainhand.mcfunction new file mode 100644 index 0000000000..8462940669 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/waterlog/modify_mainhand.mcfunction @@ -0,0 +1,10 @@ +# swap empty bucket for water bucket mainhand +# @s = player holding bucket +# at furniture's interacted interaction entity +# run from interact/waterlog/unlog + +execute if items entity @s weapon.mainhand bucket[count=1] run return run item replace entity @s[gamemode=!creative] weapon.mainhand with water_bucket + +# stacked buckets +item modify entity @s weapon.mainhand {function:"minecraft:set_count",count:-1,add:1b} +execute at @s run summon item ~ ~ ~ {Item:{id:"water_bucket",count:1}} diff --git a/gm4_furniture/data/gm4_furniture/function/interact/waterlog/modify_offhand.mcfunction b/gm4_furniture/data/gm4_furniture/function/interact/waterlog/modify_offhand.mcfunction new file mode 100644 index 0000000000..ae72db04fd --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/waterlog/modify_offhand.mcfunction @@ -0,0 +1,10 @@ +# swap empty bucket for water bucket offhand +# @s = player holding bucket +# at furniture's interacted interaction entity +# run from interact/waterlog/unlog + +execute if items entity @s weapon.offhand bucket[count=1] run return run item replace entity @s[gamemode=!creative] weapon.offhand with water_bucket + +# stacked buckets +item modify entity @s weapon.offhand {function:"minecraft:set_count",count:-1,add:1b} +execute at @s run summon item ~ ~ ~ {Item:{id:"water_bucket",count: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..c8bead4204 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/interact/waterlog/unlog.mcfunction @@ -0,0 +1,29 @@ +# water-unlog this part of the furniture +# @s = player holding bucket +# at furniture's interacted interaction entity +# run from interact/waterlog/check + +execute if score $mainhand_bucket gm4_furniture_data matches 1 run function gm4_furniture:interact/waterlog/modify_mainhand +execute if score $mainhand_bucket gm4_furniture_data matches 0 run function gm4_furniture:interact/waterlog/modify_offhand + +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..8b59be682a --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/main.mcfunction @@ -0,0 +1,14 @@ +schedule function gm4_furniture:main 8t + +# 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 +# break if wither nearby furniture +execute as @e[type=wither] unless data entity @s NoAI if data entity @s {Invul:0} \ + at @s as @e[type=interaction,tag=gm4_furniture.main,distance=..3] at @s run function gm4_furniture:break/lost_connection +# break if non-furniture block inside furniture +execute as @e[type=interaction,tag=gm4_furniture.interaction] at @s unless block ~ ~0.1 ~ #gm4_furniture:furniture_blocks run function gm4_furniture:break/destroy_find_main +# particles +execute as @e[type=marker,tag=gm4_furniture.particle_marker] at @s run function gm4_furniture:particle/process +# campfire +execute if score gm4_cozy_camfires load.status matches 1.. as @e[type=marker,tag=gm4_furniture.particle.campfire_smoke] at @s as @a[distance=..3,gamemode=!spectator] at @s run function gm4_cozy_campfires:cozy_player diff --git a/gm4_furniture/data/gm4_furniture/function/particle/process.mcfunction b/gm4_furniture/data/gm4_furniture/function/particle/process.mcfunction new file mode 100644 index 0000000000..80eba838fe --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/particle/process.mcfunction @@ -0,0 +1,12 @@ +# process particle +# @s = furniture particle marker +# at @s +# run from main + +execute store result score $rand gm4_furniture_data run random value 1..10 + +execute if entity @s[tag=gm4_furniture.particle.smoke] if score $rand gm4_furniture_data matches 1..6 run particle smoke ~ ~.02 ~ + +execute if entity @s[tag=gm4_furniture.particle.flame] if score $rand gm4_furniture_data matches 2..10 run particle flame ~ ~ ~ + +execute if entity @s[tag=gm4_furniture.particle.campfire_smoke] if score $rand gm4_furniture_data matches 1..9 run particle smoke ~ ~.02 ~ 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/custom/furniture/metal_set/iron.spotlight.mcfunction b/gm4_furniture/data/gm4_furniture/function/place/custom/furniture/metal_set/iron.spotlight.mcfunction new file mode 100644 index 0000000000..7b0034d9b7 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/place/custom/furniture/metal_set/iron.spotlight.mcfunction @@ -0,0 +1,19 @@ +# custom placement +# @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/furniture/metal_set/iron.spotlight (generated) + +# set main display to base +data modify entity @n[type=item_display,tag=gm4_new_furniture,tag=gm4_furniture.display,limit=1,distance=..1] item.components merge value {"minecraft:item_model":"gm4_furniture:metal_set/iron/spotlight/default/base","custom_data":{gm4_furniture:{lit:1}}} + +# summon additional displays +# | if not sneaking face player +execute unless predicate gm4_furniture:is_sneaking run summon item_display ~ ~0.0625 ~ {Tags:["gm4_furniture","gm4_furniture.additional_display","gm4_furniture.display_2","smithed.entity","smithed.strict","gm4_new_furniture"],CustomName:"gm4_furniture_display.metal_set.iron.spotlight_lamp",item:{id:"leather_horse_armor",count:1,components:{"minecraft:item_model":"gm4_furniture:metal_set/iron/spotlight/default/lamp"}},item_display:head,transformation:{left_rotation:[0.707f,0f,0f,0.707f],right_rotation:[0f,0f,0f,1f],translation:[0f,0f,0f],scale:[1.0f,1.0f,1.0f]}} +execute unless predicate gm4_furniture:is_sneaking run summon item_display ~ ~0.0625 ~ {Tags:["gm4_furniture","gm4_furniture.additional_display","gm4_furniture.display_3","smithed.entity","smithed.strict","gm4_new_furniture"],CustomName:"gm4_furniture_display.metal_set.iron.spotlight_beam",item:{id:"leather_horse_armor",count:1,components:{"minecraft:item_model":"gm4_furniture:metal_set/iron/spotlight/default/beam"}},item_display:head,transformation:{left_rotation:[0.707f,0f,0f,0.707f],right_rotation:[0f,0f,0f,1f],translation:[0f,0f,0.6875f],scale:[5.33f,5.33f,5.33f]}} +# | if sneaking face away from player +execute if predicate gm4_furniture:is_sneaking run summon item_display ~ ~0.0625 ~ {Tags:["gm4_furniture","gm4_furniture.additional_display","gm4_furniture.display_2","smithed.entity","smithed.strict","gm4_new_furniture"],CustomName:"gm4_furniture_display.metal_set.iron.spotlight_lamp",item:{id:"leather_horse_armor",count:1,components:{"minecraft:item_model":"gm4_furniture:metal_set/iron/spotlight/default/lamp"}},item_display:head,transformation:{left_rotation:[-0.707f,0f,0f,0.707f],right_rotation:[0f,0f,0f,1f],translation:[0f,0f,0f],scale:[1.0f,1.0f,1.0f]}} +execute if predicate gm4_furniture:is_sneaking run summon item_display ~ ~0.0625 ~ {Tags:["gm4_furniture","gm4_furniture.additional_display","gm4_furniture.display_3","smithed.entity","smithed.strict","gm4_new_furniture"],CustomName:"gm4_furniture_display.metal_set.iron.spotlight_beam",item:{id:"leather_horse_armor",count:1,components:{"minecraft:item_model":"gm4_furniture:metal_set/iron/spotlight/default/beam"}},item_display:head,transformation:{left_rotation:[-0.707f,0f,0f,0.707f],right_rotation:[0f,0f,0f,1f],translation:[0f,0f,-0.6875f],scale:[5.33f,5.33f,5.33f]}} + +# rotate +rotate @n[type=item_display,tag=gm4_furniture.display_2,tag=gm4_new_furniture,distance=..1] facing entity @s eyes +rotate @n[type=item_display,tag=gm4_furniture.display_3,tag=gm4_new_furniture,distance=..1] facing entity @s eyes diff --git a/gm4_furniture/data/gm4_furniture/function/place/custom/furniture/stone_set/lantern_2.mcfunction b/gm4_furniture/data/gm4_furniture/function/place/custom/furniture/stone_set/lantern_2.mcfunction new file mode 100644 index 0000000000..f77fd8168c --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/place/custom/furniture/stone_set/lantern_2.mcfunction @@ -0,0 +1,6 @@ +# custom placement +# @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/furniture/stone_set/lantern_2 (generated) + +setblock ~ ~ ~ barrier diff --git a/gm4_furniture/data/gm4_furniture/function/place/custom/furniture/stone_set/lantern_big_1.mcfunction b/gm4_furniture/data/gm4_furniture/function/place/custom/furniture/stone_set/lantern_big_1.mcfunction new file mode 100644 index 0000000000..d92f6a08f6 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/place/custom/furniture/stone_set/lantern_big_1.mcfunction @@ -0,0 +1,7 @@ +# custom placement +# @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/furniture/stone_set/lantern_big_1 (generated) + +setblock ~ ~ ~ barrier +setblock ~ ~1 ~ barrier diff --git a/gm4_furniture/data/gm4_furniture/function/place/custom/furniture/wood_set/acacia.light_1.mcfunction b/gm4_furniture/data/gm4_furniture/function/place/custom/furniture/wood_set/acacia.light_1.mcfunction new file mode 100644 index 0000000000..1e3bde5d71 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/place/custom/furniture/wood_set/acacia.light_1.mcfunction @@ -0,0 +1,8 @@ +# custom placement +# @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/furniture/wood_set/acacia.light_1 (generated) + +setblock ~ ~ ~ barrier + +summon marker ~ ~ ~ {Tags:["gm4_furniture","gm4_furniture.particle_marker","gm4_furniture.particle.campfire_smoke","smithed.entity","smithed.strict","gm4_new_furniture"]} diff --git a/gm4_furniture/data/gm4_furniture/function/place/custom/furniture/wood_set/spruce.light_1.mcfunction b/gm4_furniture/data/gm4_furniture/function/place/custom/furniture/wood_set/spruce.light_1.mcfunction new file mode 100644 index 0000000000..c7c4adb422 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/place/custom/furniture/wood_set/spruce.light_1.mcfunction @@ -0,0 +1,8 @@ +# custom placement +# @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/furniture/wood_set/spruce.light_1 (generated) + +execute positioned ^ ^.34 ^-.25 run summon marker ~ ~ ~ {Tags:["gm4_furniture","gm4_furniture.particle_marker","gm4_furniture.particle.smoke","gm4_furniture.particle.flame","smithed.entity","smithed.strict","gm4_new_furniture"]} +execute positioned ^.25 ^.4 ^-.3125 run summon marker ~ ~ ~ {Tags:["gm4_furniture","gm4_furniture.particle_marker","gm4_furniture.particle.smoke","gm4_furniture.particle.flame","smithed.entity","smithed.strict","gm4_new_furniture"]} +execute positioned ^-.25 ^.4 ^-.3125 run summon marker ~ ~ ~ {Tags:["gm4_furniture","gm4_furniture.particle_marker","gm4_furniture.particle.smoke","gm4_furniture.particle.flame","smithed.entity","smithed.strict","gm4_new_furniture"]} 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..f994495926 --- /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 return run setblock ~ ~ ~ air + +# 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:item_model":"gm4_furniture:furniture_station","minecraft:custom_data":{gm4_furniture:{furniture_id:"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:item_model" set from storage gm4_furniture:data furniture_station[0]."minecraft:item_model" +data modify entity @e[type=item_display,tag=gm4_new_furniture,tag=gm4_furniture.tool_next,limit=1,distance=..2] item.components."minecraft:item_model" set from storage gm4_furniture:data furniture_station[1]."minecraft:item_model" +data modify entity @e[type=item_display,tag=gm4_new_furniture,tag=gm4_furniture.tool_prev,limit=1,distance=..2] item.components."minecraft:item_model" set from storage gm4_furniture:data furniture_station[-1]."minecraft:item_model" +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[tag=gm4_new_furniture,distance=..4] 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=..4] remove gm4_new_furniture +execute positioned ~ ~999.5001 ~ run tag @e[distance=..4] 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..31e272e69b --- /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 equipment.offhand.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/replace_furniture_block.mcfunction b/gm4_furniture/data/gm4_furniture/function/place/replace_furniture_block.mcfunction new file mode 100644 index 0000000000..831ed1a277 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/place/replace_furniture_block.mcfunction @@ -0,0 +1,7 @@ +# replace blocks on furniture to stored block id from item display +# @s = furniture item display +# unspecified +# with {block_id} +# run from place/furniture/{set_name}/{row['technical_id']} (generated) + +$execute as @e[type=interaction,tag=gm4_furniture.interaction,distance=..8] if score @s gm4_furniture_id = $check_id gm4_furniture_id at @s run setblock ~ ~0.1 ~ $(block_id) 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..4af1590efb --- /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 {furniture_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..432fe72741 --- /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,tag=!gm4_furniture.tp_down] 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..dccbbdf32d --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/technical/furniture_station/activation/turn_active.mcfunction @@ -0,0 +1,21 @@ +# turn furniture station on if no player interacted with it +# @s = furniture reactivation interaction entity +# at @s +# run from interact/process +# run from 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]}} + +# set temp ids for new villager +scoreboard players operation $temp gm4_furniture_id = @s gm4_furniture_id +scoreboard players operation $temp gm4_furniture_index = @s gm4_furniture_index +# spawn villager +execute align xyz positioned ~.5 ~1000.0001 ~.5 summon villager run function gm4_furniture:technical/furniture_station/init_villager +# reset temp scores +scoreboard players reset $temp gm4_furniture_id +scoreboard players reset $temp gm4_furniture_index + +# 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..64657e2573 --- /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 item_model +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:item_model" set from storage gm4_furniture:temp trade_data[0]."minecraft:item_model" +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:item_model" set from storage gm4_furniture:temp trade_data[1]."minecraft:item_model" +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:item_model" set from storage gm4_furniture:temp trade_data[-1]."minecraft:item_model" + +# 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..6b1c9fff86 --- /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 {furniture_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/delayed_init.mcfunction b/gm4_furniture/data/gm4_furniture/function/technical/furniture_station/delayed_init.mcfunction new file mode 100644 index 0000000000..1f0020e9a1 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/technical/furniture_station/delayed_init.mcfunction @@ -0,0 +1,6 @@ +# select villagers that need to be teleported down into position +# @s = unspecified +# at unspecified +# scheduled from technical/furniture_station/init_villager + +execute as @e[type=villager,tag=gm4_furniture.tp_down] at @s run function gm4_furniture:technical/furniture_station/delayed_tp diff --git a/gm4_furniture/data/gm4_furniture/function/technical/furniture_station/delayed_tp.mcfunction b/gm4_furniture/data/gm4_furniture/function/technical/furniture_station/delayed_tp.mcfunction new file mode 100644 index 0000000000..f4b4ff026d --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/technical/furniture_station/delayed_tp.mcfunction @@ -0,0 +1,7 @@ +# tp new villager down +# @s = new villager tag=gm4_furniture.tp_down +# at @s +# run from technical/furniture_station/delayed_init + +tp @s ~ ~-1000 ~ +tag @s remove gm4_furniture.tp_down 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..bf4f2cdbf2 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/technical/furniture_station/init_villager.mcfunction @@ -0,0 +1,23 @@ +# spawn villager for furniture_station +# @s = new villager +# at @s +# 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","gm4_furniture.tp_down"],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 + +# tp villager down in a moment so it is not visible the first tick +schedule function gm4_furniture:technical/furniture_station/delayed_init 0.2s + +# set ids on new villager if reinit +execute if score $temp gm4_furniture_id matches -2147483648..2147483647 run scoreboard players operation @s gm4_furniture_id = $temp gm4_furniture_id +execute if score $temp gm4_furniture_index matches -2147483648..2147483647 run scoreboard players operation @s gm4_furniture_index = $temp gm4_furniture_index + +# build trades +execute at @s run function gm4_furniture:technical/furniture_station/build_trades/prep + +# remove tag if reinit (tag is needed for place) +execute if score $temp gm4_furniture_id matches -2147483648..2147483647 run tag @s remove gm4_new_furniture 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..9eacdd3ba8 --- /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 $temp gm4_furniture_id = @s gm4_furniture_id +scoreboard players operation $temp 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..dd4227b337 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/function/technical/furniture_station/lightning/revive_villager.mcfunction @@ -0,0 +1,17 @@ +# Replace witch with villager +# @s = witch that replaced the villager +# at @s +# run 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 +execute positioned ~ ~1000 ~ summon villager run function gm4_furniture:technical/furniture_station/init_villager +# reset temp scores +scoreboard players reset $temp gm4_furniture_id +scoreboard players reset $temp gm4_furniture_index + +# kill witch +tp @s ~ -10000 ~ +kill @s 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..f225473ede --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/loot_table/furniture/base.json @@ -0,0 +1,36 @@ +{ + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:player_head", + "functions": [ + { + "function": "minecraft:set_components", + "components": { + "minecraft:profile": { + "id": [ + -707596328, + 1172655652, + -1728361039, + 1029722411 + ], + "properties": [ + { + "name": "textures", + "value": "ewogICJ0aW1lc3RhbXAiIDogMTY5Mjg3NTg0Njc2OCwKICAicHJvZmlsZUlkIiA6ICJhNWZlYWViNDdhYjA0ZDZiYTk2ZjMyOGJjMDQ3MDZjMyIsCiAgInByb2ZpbGVOYW1lIiA6ICJYeW5kcmEyIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzMzMDU1YjMzMGVmZTY0ZTQxMmQxZDc4MTE5MTM5YzRkMTA3YjZlMDdkNmUyMGU5MTVkYWE5MjFlYTgzMDgwMiIsCiAgICAgICJtZXRhZGF0YSIgOiB7CiAgICAgICAgIm1vZGVsIiA6ICJzbGltIgogICAgICB9CiAgICB9CiAgfQp9", + "signature": "gm4_furniture" + } + ] + }, + "!minecraft:equippable": {} + } + } + ] + } + ] + } + ] +} 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..dd420bf627 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/loot_table/items/furniture_station.json @@ -0,0 +1,53 @@ +{ + "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:item_model":"gm4_furniture:furniture_station", + "minecraft:profile": { + "id": [ + -707596328, + 1172655652, + -1728361039, + 1029722411 + ], + "properties": [ + { + "name": "textures", + "value": "ewogICJ0aW1lc3RhbXAiIDogMTY5Mjg3NTg0Njc2OCwKICAicHJvZmlsZUlkIiA6ICJhNWZlYWViNDdhYjA0ZDZiYTk2ZjMyOGJjMDQ3MDZjMyIsCiAgInByb2ZpbGVOYW1lIiA6ICJYeW5kcmEyIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzMzMDU1YjMzMGVmZTY0ZTQxMmQxZDc4MTE5MTM5YzRkMTA3YjZlMDdkNmUyMGU5MTVkYWE5MjFlYTgzMDgwMiIsCiAgICAgICJtZXRhZGF0YSIgOiB7CiAgICAgICAgIm1vZGVsIiA6ICJzbGltIgogICAgICB9CiAgICB9CiAgfQp9", + "signature": "gm4_furniture" + } + ] + }, + "!minecraft:equippable": {} + } + }, + { + "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..7bb455a75e --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/loot_table/items/paintbrush.json @@ -0,0 +1,72 @@ +{ + "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:item_model": "gm4_furniture:paintbrush", + "!minecraft:equippable": {} + } + }, + { + "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..26cf2cf0a1 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/predicate/holding_bucket.json @@ -0,0 +1,33 @@ +{ + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "equipment": { + "mainhand": { + "items": [ + "minecraft:bucket", + "minecraft:water_bucket" + ] + } + } + } + }, + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "equipment": { + "offhand": { + "items": [ + "minecraft:bucket", + "minecraft:water_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..363f6edf14 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/predicate/holding_paintbrush.json @@ -0,0 +1,13 @@ +{ + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:reference", + "name": "gm4_furniture:holding_paintbrush_mainhand" + }, + { + "condition": "minecraft:reference", + "name": "gm4_furniture:holding_paintbrush_offhand" + } + ] +} diff --git a/gm4_furniture/data/gm4_furniture/predicate/holding_paintbrush_mainhand.json b/gm4_furniture/data/gm4_furniture/predicate/holding_paintbrush_mainhand.json new file mode 100644 index 0000000000..9e062a4c5d --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/predicate/holding_paintbrush_mainhand.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_paintbrush_offhand.json b/gm4_furniture/data/gm4_furniture/predicate/holding_paintbrush_offhand.json new file mode 100644 index 0000000000..ad5268da4b --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/predicate/holding_paintbrush_offhand.json @@ -0,0 +1,16 @@ +{ + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "equipment": { + "offhand": { + "items": [ + "minecraft:leather_horse_armor" + ], + "components": { + "minecraft:custom_data": "{gm4_furniture:paintbrush}" + } + } + } + } +} 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/recipe/furniture_station.json b/gm4_furniture/data/gm4_furniture/recipe/furniture_station.json new file mode 100644 index 0000000000..69059f3c2d --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/recipe/furniture_station.json @@ -0,0 +1,44 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "PCP", + "PIP", + "P P" + ], + "key": { + "C": "minecraft:crafting_table", + "I": "minecraft:iron_ingot", + "P": "#minecraft:planks" + }, + "result": { + "id": "minecraft:player_head", + "components": { + "minecraft:custom_data": "{gm4_furniture:{furniture_id:\"furniture_station\"}}", + "minecraft:item_model": "gm4_furniture:furniture_station", + "minecraft:profile": { + "id": [ + -308545246, + 403555340, + 412409013, + -705374452 + ], + "properties": [ + { + "name": "furniture_station", + "value": "ewogICJ0aW1lc3RhbXAiIDogMTY5Mjg3NTg0Njc2OCwKICAicHJvZmlsZUlkIiA6ICJhNWZlYWViNDdhYjA0ZDZiYTk2ZjMyOGJjMDQ3MDZjMyIsCiAgInByb2ZpbGVOYW1lIiA6ICJYeW5kcmEyIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzMzMDU1YjMzMGVmZTY0ZTQxMmQxZDc4MTE5MTM5YzRkMTA3YjZlMDdkNmUyMGU5MTVkYWE5MjFlYTgzMDgwMiIsCiAgICAgICJtZXRhZGF0YSIgOiB7CiAgICAgICAgIm1vZGVsIiA6ICJzbGltIgogICAgICB9CiAgICB9CiAgfQp9", + "signature": "gm4_furniture" + } + ] + }, + "minecraft:item_name": { + "translate": "item.gm4_furniture.furniture_station", + "fallback": "Furniture Station", + "color": "white", + "italic": false + }, + "!minecraft:equippable": {} + } + }, + "show_notification": true +} diff --git a/gm4_furniture/data/gm4_furniture/recipe/paintbrush.json b/gm4_furniture/data/gm4_furniture/recipe/paintbrush.json new file mode 100644 index 0000000000..87340c6040 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/recipe/paintbrush.json @@ -0,0 +1,58 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "SSS", + " I ", + " / " + ], + "key": { + "S": "minecraft:string", + "I": "minecraft:iron_ingot", + "/": "minecraft:stick" + }, + "result": { + "id": "minecraft:leather_horse_armor", + "components": { + "minecraft:tooltip_display": { + "hidden_components": [ + "minecraft:attribute_modifiers" + ] + }, + "minecraft:item_model": "gm4_furniture:paintbrush", + "minecraft:custom_data": "{gm4_furniture:\"paintbrush\"}", + "minecraft:item_name": { + "translate": "item.gm4_furniture.paintbrush", + "fallback": "Paintbrush", + "color": "white", + "italic": false + }, + "!minecraft:equippable": {}, + "minecraft: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 + } + ] + } + }, + "show_notification": 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/tags/item/buckets.json b/gm4_furniture/data/gm4_furniture/tags/item/buckets.json new file mode 100644 index 0000000000..9ab2f1c41f --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/tags/item/buckets.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:bucket", + "minecraft:water_bucket" + ] +} diff --git a/gm4_furniture/data/gm4_furniture/tags/item/candle_igniters.json b/gm4_furniture/data/gm4_furniture/tags/item/candle_igniters.json new file mode 100644 index 0000000000..a2db61b729 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/tags/item/candle_igniters.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:fire_charge", + "minecraft:flint_and_steel" + ] +} 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..b631eaa376 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/template/function/furniture_place_template.mcfunction @@ -0,0 +1,94 @@ +# 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 $dyeable gm4_furniture_data {{ dyeable }} +scoreboard players set $table gm4_furniture_data {{ table }} +scoreboard players set $custom_interaction gm4_furniture_data {{ custom_interaction }} +scoreboard players set $custom_placement gm4_furniture_data {{ custom_placement }} +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] +# store dyed_color +data modify storage gm4_furniture:temp furniture_data.color set from block ~ ~ ~ components."minecraft:dyed_color" + +# 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 store success score $existing_interaction gm4_furniture_data positioned ~ ~-0.5001 ~ store result score $check_id gm4_furniture_id run scoreboard players get @e[type=interaction,tag=gm4_furniture.interaction,distance=..0.1,limit=1] gm4_furniture_id +execute if score $existing_interaction gm4_furniture_data matches 1 run scoreboard players set $valid_placement 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 @n[type=marker,tag=gm4_furniture.middle,distance=..2] +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 $existing_interaction gm4_furniture_data matches 1 as @e[type=item_display,tag=gm4_furniture.display,distance=..8] if score @s gm4_furniture_id = $check_id gm4_furniture_id run function gm4_furniture:place/replace_furniture_block with entity @s item.components."minecraft:custom_data".gm4_furniture +execute if score $valid_placement gm4_furniture_data matches 0 run return run data modify entity @n[type=item,nbt={Age:0s},distance=..0.1] Item.components."minecraft:dyed_color" set from storage gm4_furniture:temp furniture_data.color + +# 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 }}",block_id:"{{ block_id }}"}},"minecraft:item_model":"{{ item_model }}"}},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 dyeable set to basic white +execute if score $dyeable gm4_furniture_data matches 1 positioned ~ ~-0.4999 ~ run data modify entity @n[type=minecraft:item_display,tag=gm4_new_furniture,tag=gm4_furniture.display,distance=..0.1] item.components."minecraft:dyed_color" set from storage gm4_furniture:temp furniture_data.color +execute if score $dyeable gm4_furniture_data matches 1 run tag @e[type=interaction,tag=gm4_new_furniture,distance=..8] add gm4_furniture.dyeable + +# 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 + +# custom placement +execute if score $custom_placement gm4_furniture_data matches 1 run function gm4_furniture:place/custom/furniture/{{ category }}/{{ technical_id }} + +# 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..ff9ebe65d8 --- /dev/null +++ b/gm4_furniture/data/gm4_furniture/template/loot_table/furniture_item_template.json @@ -0,0 +1,48 @@ +{ + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:loot_table", + "value": "gm4_furniture:furniture/base", + "functions": [ + { + "function": "minecraft:set_components", + "components": { + "minecraft:dyed_color": 16383998 + }, + "conditions": [ + { + "condition": "minecraft:random_chance", + "chance": {{ dyeable }} + } + ] + }, + { + "function": "minecraft:set_custom_data", + "tag": "{gm4_furniture:{furniture_id:\"{{ category }}/{{ technical_id }}\",block_id:\"{{ block_id }}\"}}" + }, + { + "function": "minecraft:set_components", + "components": { + "minecraft:item_model": "{{ item_model }}" + } + }, + { + "function": "minecraft:set_name", + "entity": "this", + "target": "item_name", + "name": { + "translate": "block.gm4_furniture.{{ category }}.{{ technical_id }}", + "fallback": "{{ display_name }}", + "color": "white", + "italic": false + } + } + ] + } + ] + } + ] +} diff --git a/gm4_furniture/generate.py b/gm4_furniture/generate.py new file mode 100644 index 0000000000..5503e0289f --- /dev/null +++ b/gm4_furniture/generate.py @@ -0,0 +1,147 @@ +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:item_model\":\"gm4_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 prepend from storage gm4_furniture:temp new_trades." + 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: + + # set item model + item_model = "gm4_furniture:" + set_name + "/" + row['technical_id'].replace(".","/") + + # 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'], + "item_model": item_model, + "block_id": row['block_id'], + "sittable": row['sittable'], + "wall_only": str(int(row['wall_only'] == 'TRUE')), + "ceiling_only": str(int(row['ceiling_only'] == 'TRUE')), + "dyeable": str(int(row['dyeable'] == '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_interaction'] == 'TRUE')), + "custom_placement" : str(int(row['custom_placement'] == '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..4f129ae959 --- /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,custom_placement,sittable,dyeable,wall_only,ceiling_only,table,scale,diag,custom_interaction +candle,1,paper,4,1,paper_lantern_1,Paper Lantern,light[level=15],1,1,1,FALSE,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,FALSE,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..85b78247d0 --- /dev/null +++ b/gm4_furniture/raw_data/furniture_set/metal_set.csv @@ -0,0 +1,8 @@ +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,custom_placement,sittable,dyeable,wall_only,ceiling_only,table,scale,diag,custom_interaction +iron_ingot,3,candle,3,1,iron.3_candelabra_1,Iron Candelabra,light[level=0],1,1,1,FALSE,0,TRUE,FALSE,FALSE,FALSE,1,FALSE,TRUE +iron_ingot,3,candle,1,1,iron.lantern_1,Iron Lantern,light[level=10],1,1,1,FALSE,0,FALSE,FALSE,FALSE,FALSE,1,TRUE,FALSE +gold_ingot,3,candle,3,1,gold.3_candelabra_1,Golden Candelabra,light[level=0],1,1,1,FALSE,0,TRUE,FALSE,FALSE,FALSE,1,FALSE,TRUE +gold_ingot,8,air,0,1,gold.skull_1,Golden Skull,light[level=0],1,1,1,FALSE,0,FALSE,FALSE,FALSE,FALSE,1,TRUE,FALSE +iron_ingot,3,redstone_lamp,1,1,iron.desk_lamp,Iron Desk Lamp,light[level=12],1,1,1,FALSE,0,FALSE,FALSE,FALSE,FALSE,1,FALSE,FALSE +iron_ingot,6,wool,1,1,iron.foldable_chair,Iron Foldable Chair,barrier,1,1,1,FALSE,50,TRUE,FALSE,FALSE,FALSE,1,TRUE,FALSE +iron_ingot,16,redstone_lamp,2,1,iron.spotlight,Iron Spotlight,barrier,1,1,1,TRUE,0,FALSE,FALSE,FALSE,FALSE,1,FALSE,TRUE \ 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..3fa693f939 --- /dev/null +++ b/gm4_furniture/raw_data/furniture_set/stone_set.csv @@ -0,0 +1,14 @@ +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,custom_placement,sittable,dyeable,wall_only,ceiling_only,table,scale,diag,custom_interaction +stone_bricks,8,tadpole_bucket,1,1,statues.frog,Stone Frog Statue,barrier,1,1,1,FALSE,0,FALSE,FALSE,FALSE,FALSE,1,FALSE,TRUE +stone_bricks,8,bee_nest,1,1,statues.bee,Stone Bee Statue,barrier,1,1,1,FALSE,0,FALSE,FALSE,FALSE,FALSE,1,FALSE,TRUE +stone_bricks,8,pufferfish_bucket,1,1,statues.pufferfish,Stone Pufferfish Statue,barrier,1,1,1,FALSE,0,FALSE,FALSE,FALSE,FALSE,1,FALSE,TRUE +stone_bricks,8,axolotl_bucket,1,1,statues.axolotl,Stone Axolotl Statue,barrier,1,1,1,FALSE,0,FALSE,FALSE,FALSE,FALSE,1,FALSE,TRUE +stone_bricks,8,jukebox,1,1,statues.allay,Stone Allay Statue,barrier,1,1,1,FALSE,0,FALSE,FALSE,FALSE,FALSE,1,FALSE,TRUE +stone_bricks,8,slime_block,1,1,statues.slime,Stone Slime Statue,barrier,1,1,1,FALSE,0,FALSE,FALSE,FALSE,FALSE,1,FALSE,TRUE +stone_bricks,8,egg,1,1,statues.chicken,Stone Chicken Statue,barrier,1,1,1,FALSE,0,FALSE,FALSE,FALSE,FALSE,1,FALSE,TRUE +stone_bricks,8,sweet_berries,1,1,statues.fox,Stone Fox Statue,barrier,1,1,1,FALSE,0,FALSE,FALSE,FALSE,FALSE,1,FALSE,TRUE +stone_bricks,8,salmon,1,1,statues.cat,Stone Cat Statue,barrier,1,1,1,FALSE,0,FALSE,FALSE,FALSE,FALSE,1,FALSE,TRUE +stone_bricks,8,stone,1,1,statues.silverfish,Stone Silverfish Statue,barrier,1,1,1,FALSE,0,FALSE,FALSE,FALSE,FALSE,1,FALSE,TRUE +stone_bricks,1,lantern,1,1,lantern_1,Small Stone Lantern,light[level=14],1,1,1,FALSE,0,FALSE,FALSE,FALSE,FALSE,1,FALSE,FALSE +stone_bricks,2,lantern,1,1,lantern_2,Medium Stone Lantern,light[level=14],1,1,2,TRUE,0,FALSE,FALSE,FALSE,FALSE,1,FALSE,FALSE +stone_bricks,8,lantern,1,1,lantern_big_1,Large Stone Lantern,light[level=14],1,1,3,TRUE,0,FALSE,FALSE,FALSE,FALSE,2,FALSE,FALSE \ 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..ce7c43f92a --- /dev/null +++ b/gm4_furniture/raw_data/furniture_set/wood_set.csv @@ -0,0 +1,31 @@ +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,custom_placement,sittable,dyeable,wall_only,ceiling_only,table,scale,diag,custom_interaction +oak_planks,4,air,0,1,oak.1x1_table_1,Small Oak Table,barrier,1,1,1,FALSE,0,FALSE,FALSE,FALSE,TRUE,1,FALSE,FALSE +oak_planks,16,air,0,1,oak.2x2_table_1,Large Oak Table,barrier,2,2,1,FALSE,0,FALSE,FALSE,FALSE,TRUE,1,FALSE,FALSE +oak_planks,12,air,0,1,oak.bench_1,Oak Bench,barrier,3,1,1,FALSE,50,FALSE,FALSE,FALSE,FALSE,1,FALSE,FALSE +oak_planks,4,air,0,1,oak.chair_1,Oak Chair,barrier,1,1,1,FALSE,50,FALSE,FALSE,FALSE,FALSE,1,FALSE,FALSE +oak_planks,4,air,0,1,oak.stool_1,Oak Stool,barrier,1,1,1,FALSE,50,FALSE,FALSE,FALSE,FALSE,1,FALSE,FALSE +oak_planks,1,candle,1,1,oak.light_1,Oak Candle Holder,light[level=0],1,1,1,FALSE,0,TRUE,FALSE,FALSE,FALSE,1,FALSE,TRUE +dark_oak_planks,4,white_wool,1,1,dark_oak.1x1_table_1,Small Dark Oak Table,barrier,1,1,1,FALSE,0,TRUE,FALSE,FALSE,TRUE,1,FALSE,FALSE +dark_oak_planks,16,white_wool,4,1,dark_oak.2x2_table_1,Large Dark Oak Table,barrier,2,2,1,FALSE,0,TRUE,FALSE,FALSE,TRUE,1,FALSE,FALSE +dark_oak_planks,12,white_wool,3,1,dark_oak.bench_1,Dark Oak Bench,barrier,3,1,1,FALSE,50,TRUE,FALSE,FALSE,FALSE,1,FALSE,FALSE +dark_oak_planks,4,white_wool,1,1,dark_oak.chair_1,Dark Oak Chair,barrier,1,1,1,FALSE,50,TRUE,FALSE,FALSE,FALSE,1,FALSE,FALSE +dark_oak_planks,4,white_wool,1,1,dark_oak.stool_1,Dark Oak Stool,barrier,1,1,1,FALSE,50,TRUE,FALSE,FALSE,FALSE,1,FALSE,FALSE +dark_oak_planks,1,redstone_lamp,1,1,dark_oak.light_1,Dark Oak Lamp Shade,light[level=12],1,1,1,FALSE,0,TRUE,FALSE,FALSE,FALSE,1,FALSE,TRUE +spruce_planks,4,air,0,1,spruce.1x1_table_1,Small Spruce Table,barrier,1,1,1,FALSE,0,FALSE,FALSE,FALSE,TRUE,1,FALSE,FALSE +spruce_planks,16,air,0,1,spruce.2x2_table_1,Large Spruce Table,barrier,2,2,1,FALSE,0,FALSE,FALSE,FALSE,TRUE,1,FALSE,FALSE +spruce_planks,12,air,0,1,spruce.bench_1,Spruce Bench,barrier,3,1,1,FALSE,50,FALSE,FALSE,FALSE,FALSE,1,FALSE,FALSE +spruce_planks,4,air,0,1,spruce.chair_1,Spruce Chair,barrier,1,1,1,FALSE,50,FALSE,FALSE,FALSE,FALSE,1,FALSE,FALSE +spruce_planks,4,air,0,1,spruce.stool_1,Spruce Stool,barrier,1,1,1,FALSE,75,FALSE,FALSE,FALSE,FALSE,1,FALSE,FALSE +spruce_planks,1,torch,3,1,spruce.light_1,Spruce Torch Sconce,light[level=14],1,1,1,TRUE,0,FALSE,TRUE,FALSE,FALSE,1,FALSE,FALSE +cherry_planks,4,white_wool,1,1,cherry.1x1_table_1,Small Cherry Table,barrier,1,1,1,FALSE,0,TRUE,FALSE,FALSE,TRUE,1,FALSE,FALSE +cherry_planks,16,white_wool,4,1,cherry.2x2_table_1,Large Cherry Table,barrier,2,2,1,FALSE,0,TRUE,FALSE,FALSE,TRUE,1,FALSE,FALSE +cherry_planks,12,white_wool,3,1,cherry.bench_1,Cherry Bench,barrier,3,1,1,FALSE,50,TRUE,FALSE,FALSE,FALSE,1,FALSE,FALSE +cherry_planks,4,white_wool,1,1,cherry.chair_1,Cherry Chair,barrier,1,1,1,FALSE,50,TRUE,FALSE,FALSE,FALSE,1,FALSE,FALSE +cherry_planks,4,white_wool,1,1,cherry.stool_1,Cherry Stool,barrier,1,1,1,FALSE,40,TRUE,FALSE,FALSE,FALSE,1,FALSE,FALSE +cherry_planks,1,glow_lichen,1,1,cherry.light_1,Cherry Fairy Lights,light[level=8],3,1,1,FALSE,0,TRUE,TRUE,FALSE,FALSE,1,FALSE,FALSE +acacia_planks,4,air,0,1,acacia.1x1_table_1,Small Acacia Table,barrier,1,1,1,FALSE,0,FALSE,FALSE,FALSE,TRUE,1,FALSE,FALSE +acacia_planks,16,air,0,1,acacia.2x2_table_1,Large Acacia Table,barrier,2,2,1,FALSE,0,FALSE,FALSE,FALSE,TRUE,1,FALSE,FALSE +acacia_planks,12,air,0,1,acacia.bench_1,Acacia Bench,barrier,3,1,1,FALSE,65,FALSE,FALSE,FALSE,FALSE,1,FALSE,FALSE +acacia_planks,4,air,0,1,acacia.chair_1,Acacia Chair,barrier,1,1,1,FALSE,50,FALSE,FALSE,FALSE,FALSE,1,FALSE,FALSE +acacia_planks,4,air,0,1,acacia.stool_1,Acacia Stool,barrier,1,1,1,FALSE,50,FALSE,FALSE,FALSE,FALSE,1,FALSE,FALSE +acacia_planks,1,campfire,1,1,acacia.light_1,Acacia Campfire,light[level=15],1,1,2,TRUE,0,FALSE,FALSE,FALSE,FALSE,1,FALSE,TRUE diff --git a/gm4_lightning_in_a_bottle/assets/translations.csv b/gm4_lightning_in_a_bottle/assets/translations.csv index 82e721b98d..9d725929d0 100644 --- a/gm4_lightning_in_a_bottle/assets/translations.csv +++ b/gm4_lightning_in_a_bottle/assets/translations.csv @@ -3,7 +3,7 @@ advancement.gm4.lightning_in_a_bottle.lightning_drink.description,Drink a Bottle advancement.gm4.lightning_in_a_bottle.lightning_drink.title,Shocking! advancement.gm4.lightning_in_a_bottle.lightning_shulker.description,Strike a Purpur Block with lightning to create a Shulker advancement.gm4.lightning_in_a_bottle.lightning_shulker.title,It's Alive! -container.gm4.liquid_tank.lightning,Lightning Tank +container.gm4.liquid_tank.liab_lightning,Lightning Tank effect.gm4.lightning_in_a_bottle.lightning,Lightning item.gm4.bottle.effect.lightning,Bottle of Lightning item.gm4.lingering_bottle.effect.lightning,Lingering Bottle of Lightning diff --git a/gm4_lightning_in_a_bottle/beet.yaml b/gm4_lightning_in_a_bottle/beet.yaml index 8bcac90928..688c39bb25 100644 --- a/gm4_lightning_in_a_bottle/beet.yaml +++ b/gm4_lightning_in_a_bottle/beet.yaml @@ -8,12 +8,19 @@ data_pack: resource_pack: load: . +require: + - bolt + pipeline: + - gm4_liquid_tanks.bolt_liquid_wrappers - gm4.plugins.extend.module - gm4.plugins.include.lib_brewing - gm4.plugins.include.lib_potion_tracking meta: + bolt: + entrypoint: + gm4_lightning_in_a_bottle:liquid_tanks/liquid_features gm4: versioning: required: diff --git a/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/item_drain.mcfunction b/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/item_drain.mcfunction deleted file mode 100644 index d219819f8b..0000000000 --- a/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/item_drain.mcfunction +++ /dev/null @@ -1,5 +0,0 @@ -# @s = liquid tank with item in first slot -# run from #gm4_liquid_tanks:item_drain - -# lightning from lightning in a bottle -execute if entity @s[tag=gm4_lt_liab_lightning] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:custom_data":{gm4_lightning_in_a_bottle:1b}}}} run function gm4_standard_liquids:item_drain/bottle diff --git a/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/item_fill.mcfunction b/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/item_fill.mcfunction deleted file mode 100644 index 381d8b9756..0000000000 --- a/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/item_fill.mcfunction +++ /dev/null @@ -1,5 +0,0 @@ -# @s = liquid tank with item in first slot -# run from #gm4_liquid_tanks:item_fill - -# lightning from lightning in a bottle -execute if entity @s[tag=gm4_lt_liab_lightning] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_lightning_in_a_bottle:liquid_tanks/item_fill/lightning_bottle diff --git a/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/item_fill/lightning_bottle.mcfunction b/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/item_fill/lightning_bottle.mcfunction deleted file mode 100644 index 21341ffc02..0000000000 --- a/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/item_fill/lightning_bottle.mcfunction +++ /dev/null @@ -1,9 +0,0 @@ -# run from #liquid_tanks:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -loot replace entity @e[type=armor_stand,tag=gm4_liquid_tank_stand,limit=1,sort=nearest,distance=..1] weapon.mainhand loot gm4_lightning_in_a_bottle:items/bottle_of_lightning -data modify storage gm4_liquid_tanks:temp/tank output set from entity @e[type=armor_stand,tag=gm4_liquid_tank_stand,limit=1,sort=nearest,distance=..1] equipment.mainhand -item replace entity @e[type=armor_stand,tag=gm4_liquid_tank_stand,limit=1,sort=nearest,distance=..1] weapon.mainhand with air -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/liquid_init/lightning.mcfunction b/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/liquid_init/lightning.mcfunction deleted file mode 100644 index df67666c5a..0000000000 --- a/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/liquid_init/lightning.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.lightning","fallback":"Lightning Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.lightning","fallback":"Lightning Tank","font":"gm4:default","color":"#404040"}]]}} -summon armor_stand ~ ~-.95 ~ {CustomName:"gm4_liquid_tank_display",Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1b,Marker:1b,Silent:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{id:"player_head",count:1,components:{"minecraft:profile":"$lightning_liquid"}}}} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_liab_lightning" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_liab_lightning -tag @s remove gm4_lt_empty diff --git a/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/remove_liquid_tags.mcfunction b/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/remove_liquid_tags.mcfunction deleted file mode 100644 index 3f92f7210e..0000000000 --- a/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/remove_liquid_tags.mcfunction +++ /dev/null @@ -1,5 +0,0 @@ -# @s = liquid tank stand -# removes all liquid tags from the stand. Used for emptying tank and reassigning liquid type -# run from #gm4_liquid_tanks:tank_init - -tag @s remove gm4_lt_liab_lightning diff --git a/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/tank_init.mcfunction b/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/tank_init.mcfunction deleted file mode 100644 index 090b32bdf5..0000000000 --- a/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/tank_init.mcfunction +++ /dev/null @@ -1,3 +0,0 @@ - -# lightning from lightning in a bottle -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:custom_data":{gm4_lightning_in_a_bottle:1b}}}} run function gm4_lightning_in_a_bottle:liquid_tanks/liquid_init/lightning diff --git a/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/util/lightning.mcfunction b/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/util/lightning.mcfunction deleted file mode 100644 index c210eda2a5..0000000000 --- a/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/util/lightning.mcfunction +++ /dev/null @@ -1,8 +0,0 @@ -# @s = living-base entity below ink tank -# run from gm4_lightning_in_a_bottle:liquid_tanks/util_below - -execute at @s run summon lightning_bolt ~ ~ ~ -scoreboard players remove @e[type=armor_stand,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.firework_rocket.twinkle block @a[distance=..8] ~ ~ ~ 2 1.5 - -advancement grant @s only gm4:lightning_in_a_bottle_drink diff --git a/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/util_below.mcfunction b/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/util_below.mcfunction deleted file mode 100644 index 0810bc5bd7..0000000000 --- a/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/util_below.mcfunction +++ /dev/null @@ -1,9 +0,0 @@ -#@s = tank with entity below it positioned ~ ~-1 ~ -#run from liquid_tanks:process via #gm4_liquid_tanks:util_below - -tag @s add gm4_processing_tank - -# lightning -execute if score @s[tag=gm4_lt_liab_lightning] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,limit=1,dx=0] unless entity @s[gamemode=spectator] unless entity @s[predicate=gm4_lightning_in_a_bottle:on_fire] run function gm4_lightning_in_a_bottle:liquid_tanks/util/lightning - -tag @s remove gm4_processing_tank diff --git a/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/modules/liquid_tanks/liquid_features.bolt b/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/modules/liquid_tanks/liquid_features.bolt new file mode 100644 index 0000000000..99007f40b2 --- /dev/null +++ b/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/modules/liquid_tanks/liquid_features.bolt @@ -0,0 +1,25 @@ +from gm4_liquid_tanks:liquid_wrappers import liquid + +@liquid +class BottledLightning: + id = 'liab_lightning' + name = "Lightning" + capacity = 300 + skin = 'lightning_liquid' + + liquid.init() + + @liquid.item_fill("glass_bottle", "potion[custom_data~{gm4_lightning_in_a_bottle:1b}]", 1) + def fill_bottle(): + loot replace entity 344d47-4-4-4-f04ce104d weapon.mainhand loot gm4_lightning_in_a_bottle:items/bottle_of_lightning + + @liquid.util_below + def lightning_strike(): + execute as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] + unless entity @s[gamemode=spectator] + unless entity @s[predicate=gm4_lightning_in_a_bottle:on_fire] + run function gm4_lightning_in_a_bottle:liquid_tanks/util/lightning: + execute at @s run summon lightning_bolt ~ ~ ~ + scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 + playsound entity.firework_rocket.twinkle block @a[distance=..8] ~ ~ ~ 2 1.5 + advancement grant @s only gm4:lightning_in_a_bottle_drink diff --git a/gm4_lightning_in_a_bottle/data/gm4_liquid_tanks/tags/function/item_drain.json b/gm4_lightning_in_a_bottle/data/gm4_liquid_tanks/tags/function/item_drain.json deleted file mode 100644 index 426040887e..0000000000 --- a/gm4_lightning_in_a_bottle/data/gm4_liquid_tanks/tags/function/item_drain.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "gm4_lightning_in_a_bottle:liquid_tanks/item_drain" - ] -} diff --git a/gm4_lightning_in_a_bottle/data/gm4_liquid_tanks/tags/function/item_fill.json b/gm4_lightning_in_a_bottle/data/gm4_liquid_tanks/tags/function/item_fill.json deleted file mode 100644 index a4f3df6a97..0000000000 --- a/gm4_lightning_in_a_bottle/data/gm4_liquid_tanks/tags/function/item_fill.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "gm4_lightning_in_a_bottle:liquid_tanks/item_fill" - ] -} diff --git a/gm4_lightning_in_a_bottle/data/gm4_liquid_tanks/tags/function/remove_liquid_tags.json b/gm4_lightning_in_a_bottle/data/gm4_liquid_tanks/tags/function/remove_liquid_tags.json deleted file mode 100644 index 66814f37b2..0000000000 --- a/gm4_lightning_in_a_bottle/data/gm4_liquid_tanks/tags/function/remove_liquid_tags.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "gm4_lightning_in_a_bottle:liquid_tanks/remove_liquid_tags" - ] -} diff --git a/gm4_lightning_in_a_bottle/data/gm4_liquid_tanks/tags/function/tank_init.json b/gm4_lightning_in_a_bottle/data/gm4_liquid_tanks/tags/function/tank_init.json deleted file mode 100644 index a16cbd3e3a..0000000000 --- a/gm4_lightning_in_a_bottle/data/gm4_liquid_tanks/tags/function/tank_init.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "gm4_lightning_in_a_bottle:liquid_tanks/tank_init" - ] -} diff --git a/gm4_lightning_in_a_bottle/data/gm4_liquid_tanks/tags/function/util_below.json b/gm4_lightning_in_a_bottle/data/gm4_liquid_tanks/tags/function/util_below.json deleted file mode 100644 index cfc90890f7..0000000000 --- a/gm4_lightning_in_a_bottle/data/gm4_liquid_tanks/tags/function/util_below.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "gm4_lightning_in_a_bottle:liquid_tanks/util_below" - ] -} diff --git a/gm4_liquid_minecarts/beet.yaml b/gm4_liquid_minecarts/beet.yaml index 1c7146161a..742b15ff67 100644 --- a/gm4_liquid_minecarts/beet.yaml +++ b/gm4_liquid_minecarts/beet.yaml @@ -1,6 +1,6 @@ id: gm4_liquid_minecarts name: Liquid Minecarts -version: 1.7.X +version: 1.8.X data_pack: load: . @@ -16,7 +16,7 @@ meta: gm4: versioning: required: - gm4_liquid_tanks: 2.7.0 + gm4_liquid_tanks: 3.0.0 lib_machines: 1.4.0 schedule_loops: [main] model_data: diff --git a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/compare_load_liquid.mcfunction b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/compare_load_liquid.mcfunction index dbf825a117..9eccb0ed7f 100644 --- a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/compare_load_liquid.mcfunction +++ b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/compare_load_liquid.mcfunction @@ -2,6 +2,6 @@ #run from try_to_load data modify storage gm4_liquid_minecarts:compare liquid set from entity @e[type=marker,limit=1,sort=nearest,distance=..1,tag=gm4_liquid_tank] data.gm4_liquid_tanks.liquid_tag -execute store success score @s gm4_lm_data run data modify storage gm4_liquid_minecarts:compare liquid set from entity @s Passengers[0].equipment.feet.components."minecraft:custom_data".gm4_liquid_minecarts.liquid_tag +execute store success score @s gm4_lm_data run data modify storage gm4_liquid_minecarts:compare liquid set from entity @s Passengers[0].item.components."minecraft:custom_data".gm4_liquid_minecarts.liquid_tag execute if score @s gm4_lm_data matches 0 run function gm4_liquid_minecarts:load_liquid diff --git a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/compare_unload_liquid.mcfunction b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/compare_unload_liquid.mcfunction index c73f615e06..0ff7529d5c 100644 --- a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/compare_unload_liquid.mcfunction +++ b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/compare_unload_liquid.mcfunction @@ -2,6 +2,6 @@ #run from try_to_unload data modify storage gm4_liquid_minecarts:compare liquid set from entity @e[type=marker,limit=1,sort=nearest,distance=..0.1,tag=gm4_liquid_tank] data.gm4_liquid_tanks.liquid_tag -execute store success score @s gm4_lm_data run data modify storage gm4_liquid_minecarts:compare liquid set from entity @s Passengers[0].equipment.feet.components."minecraft:custom_data".gm4_liquid_minecarts.liquid_tag +execute store success score @s gm4_lm_data run data modify storage gm4_liquid_minecarts:compare liquid set from entity @s Passengers[0].item.components."minecraft:custom_data".gm4_liquid_minecarts.liquid_tag execute if score @s gm4_lm_data matches 0 run function gm4_liquid_minecarts:unload_liquid diff --git a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/copy_tank_data.mcfunction b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/copy_tank_data.mcfunction index 90ee36ae55..6df5c93ee5 100644 --- a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/copy_tank_data.mcfunction +++ b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/copy_tank_data.mcfunction @@ -1,6 +1,6 @@ -#@s = gm4_liquid_minecart_stand copying tank data to it's armor items, at location of tank +#@s = gm4_liquid_minecart_display copying tank data to it's item, at location of tank #run from init_liquid -data modify entity @s equipment.feet.components."minecraft:custom_data".gm4_liquid_minecarts.liquid_tag set from entity @e[type=marker,limit=1,tag=gm4_liquid_tank,sort=nearest] data.gm4_liquid_tanks.liquid_tag -data modify entity @s equipment.feet.components."minecraft:custom_data".gm4_liquid_minecarts.tank.texture set from entity @e[type=armor_stand,tag=gm4_liquid_tank_display,limit=1,sort=nearest] equipment.head -data modify entity @s equipment.feet.components."minecraft:custom_data".gm4_liquid_minecarts.tank.CustomName set from block ~ ~ ~ CustomName +data modify entity @s item.components."minecraft:custom_data".gm4_liquid_minecarts.liquid_tag set from entity @e[type=marker,limit=1,tag=gm4_liquid_tank,sort=nearest,distance=..2] data.gm4_liquid_tanks.liquid_tag +data modify entity @s item.components."minecraft:custom_data".gm4_liquid_minecarts.tank.texture set from entity @e[type=item_display,tag=gm4_liquid_tank_liquid_display,limit=1,sort=nearest,distance=..2] item +data modify entity @s item.components."minecraft:custom_data".gm4_liquid_minecarts.tank.CustomName set from block ~ ~ ~ CustomName diff --git a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/drain_minecart.mcfunction b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/drain_minecart.mcfunction index 1a444c704e..152c2bd6f1 100644 --- a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/drain_minecart.mcfunction +++ b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/drain_minecart.mcfunction @@ -3,6 +3,6 @@ scoreboard players set @s gm4_lt_value 0 tag @s add gm4_liquid_minecart_empty -execute as @e[type=armor_stand,limit=1,sort=nearest,tag=gm4_liquid_minecart_stand] run function gm4_liquid_minecarts:set_empty_data +execute as @e[type=item_display,limit=1,sort=nearest,tag=gm4_liquid_minecart_display] run function gm4_liquid_minecarts:set_empty_data function gm4_liquid_minecarts:liquid_value_update playsound minecraft:block.brewing_stand.brew block @a ~ ~ ~ 1.0 0.0 diff --git a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/glass_block.mcfunction b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/glass_block.mcfunction deleted file mode 100644 index f5bc619608..0000000000 --- a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/glass_block.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# @s = glass block on the ground -# run from main - -tag @s add gm4_liquid_minecarts_checking_glass -execute as @e[type=hopper_minecart,tag=!gm4_machine,nbt={Items:[{id:"minecraft:hopper",count:1},{id:"minecraft:iron_trapdoor",count:1},{id:"minecraft:comparator",count:1},{id:"minecraft:dispenser",count:1},{id:"minecraft:bucket",count:1}]}] at @s run function gm4_liquid_minecarts:create -tag @s add gm4_liquid_minecarts_checked -tag @s remove gm4_liquid_minecarts_checking_glass diff --git a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/init_liquid.mcfunction b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/init_liquid.mcfunction index c23a614cb1..91f51ee924 100644 --- a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/init_liquid.mcfunction +++ b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/init_liquid.mcfunction @@ -1,7 +1,7 @@ #@s = empty liquid minecart next to a liquid tank pointed at it containing liquid, at tank location #run from liquid_minecarts:try_to_load -execute anchored feet facing entity @s feet positioned ^ ^ ^1 as @e[type=armor_stand,limit=1,sort=nearest,distance=..1,tag=gm4_liquid_minecart_stand] positioned ^ ^ ^-1 run function gm4_liquid_minecarts:copy_tank_data +execute anchored feet facing entity @s feet positioned ^ ^ ^1 as @e[type=item_display,limit=1,sort=nearest,distance=..1,tag=gm4_liquid_minecart_display] positioned ^ ^ ^-1 run function gm4_liquid_minecarts:copy_tank_data tag @s remove gm4_liquid_minecart_empty #set tank max based on 40% of hopper max diff --git a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/init_tank.mcfunction b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/init_tank.mcfunction index b06b4b7507..157ff89d3a 100644 --- a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/init_tank.mcfunction +++ b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/init_tank.mcfunction @@ -1,21 +1,21 @@ #@s = liquid minecart #run from try_to_unload -#summon display stand -summon armor_stand ~ ~-.95 ~ {CustomName:"gm4_liquid_tank_display",Tags:["gm4_no_edit","gm4_liquid_tank_display","gm4_lm_needs_texture","smithed.entity","smithed.strict"],NoGravity:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b} -data modify entity @e[type=armor_stand,tag=gm4_lm_needs_texture,limit=1,sort=nearest] equipment.head set from entity @s Passengers[0].equipment.feet.components."minecraft:custom_data".gm4_liquid_minecarts.tank.texture -data modify entity @e[type=marker,tag=gm4_liquid_tank,limit=1,sort=nearest,distance=..0.1] data.gm4_liquid_tanks.liquid_tag set from entity @s Passengers[0].equipment.feet.components."minecraft:custom_data".gm4_liquid_minecarts.liquid_tag -tag @e[type=armor_stand] remove gm4_lm_needs_texture +#summon item_display +summon item_display ~ ~ ~ {CustomName:"gm4_liquid_tank_liquid_display",Tags:["gm4_liquid_tank_liquid_display","smithed.entity","smithed.strict","gm4_lm_needs_texture"],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation: [0f,0f,0f,1f],translation:[0f,0.2185f,0f],scale:[0.83,0.83,0.83]},item_display:head} +data modify entity @e[type=item_display,tag=gm4_lm_needs_texture,limit=1,sort=nearest] item set from entity @s Passengers[0].item.components."minecraft:custom_data".gm4_liquid_minecarts.tank.texture +data modify entity @e[type=marker,tag=gm4_liquid_tank,limit=1,sort=nearest,distance=..0.1] data.gm4_liquid_tanks.liquid_tag set from entity @s Passengers[0].item.components."minecraft:custom_data".gm4_liquid_minecarts.liquid_tag +tag @e[type=item_display] remove gm4_lm_needs_texture #setup tank data -data modify block ~ ~ ~ CustomName set from entity @s Passengers[0].equipment.feet.components."minecraft:custom_data".gm4_liquid_minecarts.tank.CustomName +data modify block ~ ~ ~ CustomName set from entity @s Passengers[0].item.components."minecraft:custom_data".gm4_liquid_minecarts.tank.CustomName scoreboard players operation @s gm4_lm_data = @s gm4_lt_max scoreboard players operation @s gm4_lm_data *= #5 gm4_lm_data scoreboard players operation @s gm4_lm_data /= #2 gm4_lm_data scoreboard players operation @e[type=marker,tag=gm4_liquid_tank,limit=1,sort=nearest,distance=..0.1] gm4_lt_max = @s gm4_lm_data #apply liquid tag -data modify entity @e[type=marker,tag=gm4_liquid_tank,limit=1,sort=nearest,distance=..0.1] Tags append from entity @s Passengers[0].equipment.feet.components."minecraft:custom_data".gm4_liquid_minecarts.liquid_tag +data modify entity @e[type=marker,tag=gm4_liquid_tank,limit=1,sort=nearest,distance=..0.1] Tags append from entity @s Passengers[0].item.components."minecraft:custom_data".gm4_liquid_minecarts.liquid_tag tag @e[type=marker,tag=gm4_liquid_tank,limit=1,sort=nearest,distance=..0.1] remove gm4_lt_empty #load all cart liquid into tank diff --git a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/liquid_value_update.mcfunction b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/liquid_value_update.mcfunction index 352c0a81f7..79067d8994 100644 --- a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/liquid_value_update.mcfunction +++ b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/liquid_value_update.mcfunction @@ -7,10 +7,10 @@ scoreboard players operation @s gm4_lm_data *= #100 gm4_lm_data scoreboard players operation @s gm4_lm_data /= @s gm4_lt_max #1%-50% -execute if score @s gm4_lt_value matches 1.. if score @s gm4_lm_data matches 0..50 run data modify entity @e[type=armor_stand,tag=gm4_liquid_minecart_stand,limit=1,sort=nearest] equipment.head merge value {id:"minecraft:player_head",count:1,components:{"minecraft:profile":"$liquid_minecart_display/low"}} +execute if score @s gm4_lt_value matches 1.. if score @s gm4_lm_data matches 0..50 on passengers run data modify entity @s[type=item_display,tag=gm4_liquid_minecart_display] item merge value {id:"minecraft:player_head",count:1,components:{"minecraft:profile":"$liquid_minecart_display/low"}} #51%-99% -execute unless score @s gm4_lt_value = @s gm4_lt_max if score @s gm4_lm_data matches 51..100 run data modify entity @e[type=armor_stand,tag=gm4_liquid_minecart_stand,limit=1,sort=nearest] equipment.head merge value {id:"minecraft:player_head",count:1,components:{"minecraft:profile":"$liquid_minecart_display/high"}} +execute unless score @s gm4_lt_value = @s gm4_lt_max if score @s gm4_lm_data matches 51..100 on passengers run data modify entity @s[type=item_display,tag=gm4_liquid_minecart_display] item merge value {id:"minecraft:player_head",count:1,components:{"minecraft:profile":"$liquid_minecart_display/high"}} #100% -execute if score @s gm4_lt_value = @s gm4_lt_max run data modify entity @e[type=armor_stand,tag=gm4_liquid_minecart_stand,limit=1,sort=nearest] equipment.head merge value {id:"minecraft:player_head",count:1,components:{"minecraft:profile":"$liquid_minecart_display/full"}} +execute if score @s gm4_lt_value = @s gm4_lt_max on passengers run data modify entity @s[type=item_display,tag=gm4_liquid_minecart_display] item merge value {id:"minecraft:player_head",count:1,components:{"minecraft:profile":"$liquid_minecart_display/full"}} #0% -execute if score @s gm4_lt_value matches 0 run data modify entity @e[type=armor_stand,tag=gm4_liquid_minecart_stand,limit=1,sort=nearest] equipment.head merge value {id:"minecraft:player_head",count:1,components:{"minecraft:profile":"$liquid_minecart_display/empty"}} +execute if score @s gm4_lt_value matches 0 on passengers run data modify entity @s[type=item_display,tag=gm4_liquid_minecart_display] item merge value {id:"minecraft:player_head",count:1,components:{"minecraft:profile":"$liquid_minecart_display/empty"}} diff --git a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/machine/create_cart.mcfunction b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/machine/create_cart.mcfunction index 0b9982ef98..7fde25a071 100644 --- a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/machine/create_cart.mcfunction +++ b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/machine/create_cart.mcfunction @@ -6,9 +6,9 @@ scoreboard players set $placed_block gm4_machine_data 1 # summon new command block minecart -summon command_block_minecart ~ ~ ~ {Command:"execute if score @s gm4_lt_value matches 1.. run function gm4_liquid_minecarts:drain_minecart",CustomName:{"text":"Liquid Minecart","italic":false},Tags:["gm4_liquid_minecart","gm4_liquid_minecart_empty","gm4_machine_cart","gm4_new_machine"],DisplayState:{"Name":"minecraft:hopper"},Passengers:[{id:"minecraft:armor_stand",Tags:["gm4_no_edit","gm4_liquid_minecart_stand","gm4_machine_cart","smithed.entity","smithed.strict","gm4_new_machine"],Invisible:1b,DisabledSlots:2039583,Small:1b,equipment:{feet:{id:"minecraft:stick",count:1,components:{"minecraft:custom_data":{gm4_liquid_minecarts:{liquid_tag:"null"}}}}},Pose:{Head:[180.0f,0.0f,0.0f],RightArm:[0.0f,-90.0f,0.0f]}}]} +summon command_block_minecart ~ ~ ~ {Command:"execute if score @s gm4_lt_value matches 1.. run function gm4_liquid_minecarts:drain_minecart",CustomName:{"text":"Liquid Minecart","italic":false},Tags:["gm4_liquid_minecart","gm4_liquid_minecart_empty","gm4_machine_cart","gm4_new_machine"],DisplayState:{"Name":"minecraft:hopper"},DisplayOffset:1,Passengers:[{id:"minecraft:item_display",Tags:["gm4_liquid_minecart_display","gm4_machine_cart","smithed.entity","smithed.strict","gm4_new_machine"],item:{id:"minecraft:player_head",count:1,components:{"minecraft:profile":"$liquid_minecart_display/empty","minecraft:custom_data":{gm4_liquid_minecarts:{liquid_tag:"null"}}}},transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0.0,0.7275,0.0],scale:[0.83,0.83,0.83]},item_display:"head"}]} tp @e[type=command_block_minecart,distance=..0.1,tag=gm4_new_machine] @s -scoreboard players set @e[distance=..2,tag=gm4_new_machine] gm4_entity_version 1 +scoreboard players set @e[distance=..2,tag=gm4_new_machine] gm4_entity_version 2 execute as @e[type=command_block_minecart,distance=..0.1,tag=gm4_new_machine,limit=1] run function gm4_liquid_minecarts:liquid_value_update # clean up diff --git a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/machine/verify_destroy_cart.mcfunction b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/machine/verify_destroy_cart.mcfunction index d55b538201..ae10121d76 100644 --- a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/machine/verify_destroy_cart.mcfunction +++ b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/machine/verify_destroy_cart.mcfunction @@ -3,4 +3,4 @@ # located at @s # run from #gm4_machines:destroy -execute if entity @s[tag=gm4_liquid_minecart_stand] run function gm4_liquid_minecarts:machine/destroy_cart +execute if entity @s[tag=gm4_liquid_minecart_display] run function gm4_liquid_minecarts:machine/destroy_cart diff --git a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/set_empty_data.mcfunction b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/set_empty_data.mcfunction index fafd0eaf72..03f7f357a7 100644 --- a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/set_empty_data.mcfunction +++ b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/set_empty_data.mcfunction @@ -1,5 +1,5 @@ #@s liquid minecart display of a minecart that has 0 liquid in it #run from unload_liquid or init_tank or drain_minecart -data modify entity @s equipment.feet.components."minecraft:custom_data".gm4_liquid_minecarts.liquid_tag set value "empty" -data modify entity @s equipment.feet.components."minecraft:custom_data".gm4_liquid_minecarts.tank set value {texture:"null",CustomName:"null"} +data modify entity @s item.components."minecraft:custom_data".gm4_liquid_minecarts.liquid_tag set value "empty" +data modify entity @s item.components."minecraft:custom_data".gm4_liquid_minecarts.tank set value {texture:"null",CustomName:"null"} diff --git a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/unload_liquid.mcfunction b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/unload_liquid.mcfunction index a01a1c52c5..4e97d94a8c 100644 --- a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/unload_liquid.mcfunction +++ b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/unload_liquid.mcfunction @@ -19,4 +19,4 @@ playsound minecraft:block.brewing_stand.brew block @a ~ ~ ~ 1.0 1.5 #if cart is empty, reset cart execute if score @s gm4_lt_value matches 0 run tag @s add gm4_liquid_minecart_empty -execute if score @s gm4_lt_value matches 0 as @e[type=armor_stand,limit=1,sort=nearest,tag=gm4_liquid_minecart_stand] run function gm4_liquid_minecarts:set_empty_data +execute if score @s gm4_lt_value matches 0 as @e[type=item_display,limit=1,sort=nearest,tag=gm4_liquid_minecart_display] run function gm4_liquid_minecarts:set_empty_data diff --git a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/upgrade_paths/1.8.mcfunction b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/upgrade_paths/1.8.mcfunction new file mode 100644 index 0000000000..e77ae4a18f --- /dev/null +++ b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/upgrade_paths/1.8.mcfunction @@ -0,0 +1 @@ +execute as @e[type=command_block_minecart,tag=gm4_liquid_minecart,scores={gm4_entity_version=1}] at @s run function gm4_liquid_minecarts:upgrade_paths/1.8/entity_replacement diff --git a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/upgrade_paths/1.8/entity_replacement.mcfunction b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/upgrade_paths/1.8/entity_replacement.mcfunction new file mode 100644 index 0000000000..3b9462f472 --- /dev/null +++ b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/upgrade_paths/1.8/entity_replacement.mcfunction @@ -0,0 +1,15 @@ +# @s = gm4_liquid_minecart cart +# at self +# run by upgrade_paths/1.8 + +# add new block offset data +data merge entity @s {DisplayOffset:1} + +# replace armor stand with item display +summon item_display ~ ~ ~ {Tags:["gm4_liquid_minecart_display","gm4_machine_cart","smithed.entity","smithed.strict","gm4_new_machine"],item:{id:"minecraft:player_head",count:1,components:{"minecraft:profile":"$liquid_minecart_display/empty","minecraft:custom_data":{gm4_liquid_minecarts:{liquid_tag:"null"}}}},transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0.0,0.7275,0.0],scale:[0.83,0.83,0.83]},item_display:"head"} +data modify entity @e[tag=gm4_new_machine,distance=..2,limit=1] item.components."minecraft:custom_data".gm4_liquid_minecarts set from entity @e[type=armor_stand,limit=1,distance=..1,sort=nearest,tag=gm4_liquid_minecart_stand] equipment.feet +ride @e[tag=gm4_new_machine,tag=gm4_liquid_minecart_display,limit=1] mount @s +execute on passengers run kill @s[type=armor_stand,tag=gm4_liquid_minecart_stand] +tag @e[tag=gm4_new_machine,distance=..1] remove gm4_new_machine + +scoreboard players set @s gm4_entity_version 2 diff --git a/gm4_liquid_tanks/assets/translations.csv b/gm4_liquid_tanks/assets/translations.csv index ef0eec7990..717c7f0f89 100644 --- a/gm4_liquid_tanks/assets/translations.csv +++ b/gm4_liquid_tanks/assets/translations.csv @@ -30,3 +30,8 @@ text.gm4.guidebook.standard_liquids.rabbit_stew_and_beetroot_soup,"Rabbit Stew T text.gm4.guidebook.standard_liquids.mushroom_stew_and_milk,Mushroom Stew Tank\n- Drains mushroom stew\n- Fills bowls\n- Milks mooshrooms\n- Feeds drinkers\n\nMilk Tank\n- Drains milk buckets\n- Fills buckets\n- Milks cows\n- Clear mob effects text.gm4.guidebook.standard_liquids.honey,"Honey Tanks\n- Drains honey bottles, honey blocks\n- Fills bottles\n- Casts honey blocks into cauldrons\n- Clears mob poison\n- Feeds drinkers" text.gm4.guidebook.standard_liquids.experience,"Experience Tanks\n- Drains bottles o' enchanting, enchanted books\n- Fills bottles\n- Absorbs experience orbs, experience points\n- Fills experience points" +container.gm4.liquid_tank.ominous_bottle_0,Ominous I Tank +container.gm4.liquid_tank.ominous_bottle_1,Ominous II Tank +container.gm4.liquid_tank.ominous_bottle_2,Ominous III Tank +container.gm4.liquid_tank.ominous_bottle_3,Ominous IV Tank +container.gm4.liquid_tank.ominous_bottle_4,Ominous V Tank diff --git a/gm4_liquid_tanks/beet.yaml b/gm4_liquid_tanks/beet.yaml index bc48ac0ffb..bb63b8147d 100644 --- a/gm4_liquid_tanks/beet.yaml +++ b/gm4_liquid_tanks/beet.yaml @@ -1,6 +1,6 @@ id: gm4_liquid_tanks name: Liquid Tanks -version: 2.7.X +version: 3.0.X data_pack: load: . @@ -8,12 +8,19 @@ data_pack: resource_pack: load: . +require: + - bolt + pipeline: + - override_formatting - gm4.plugins.extend.module - gm4.plugins.include.lib_machines - gm4.plugins.include.lib_custom_crafters meta: + bolt: + entrypoint: + - gm4_standard_liquids:main gm4: versioning: required: diff --git a/gm4_liquid_tanks/bolt-docs.md b/gm4_liquid_tanks/bolt-docs.md new file mode 100644 index 0000000000..292974b3ec --- /dev/null +++ b/gm4_liquid_tanks/bolt-docs.md @@ -0,0 +1,91 @@ +# Liquid Tanks Bolt Wrappers +Liquid tanks has a bolt-powered interface to define the myriad of liquid types and items that interact with them, without needing to create lots of redundant function files directly. + +This interface is an *experimental* design, and so maybe not recommended to be replicated for other modules without careful thought. + +# Prereqs +- Add `bolt` to the beet.yaml requirements +- Add `gm4_liquid_tanks.bolt_liquid_wrappers` to the beet.yaml pipeline +- Configure a beet entrypoint; typically: +``` +meta: + bolt: + entrypoint: + - gm4_potion_liquids:main +``` + +# Basic Usage +Liquids are defined through a class definitions, typically done in a `main.bolt` file, located in `data/gm4_module_namespace/modules/main.bolt`. At the start of the file, import the wrapper with `from gm4_liquid_tanks:liquid_wrappers import liquid` + +Each liquid type is a class, defined with the `@liquid` decorator, with 4 class attributes. + - `id`: internal id of the liquid + - `name`: display name in the hopper ie "Water" becomes "Water Tank" + - `capacity`: maximum fluid units the tank holds + - `skin`: (optional) resource location for the liquid's skin texture. If omitted, defaults to `liquids/id` + +Additional behavior is added by calling or defining methods within the class. + +## Tank Init +The default tank init function is created by calling `liquid.init()`. Additional commands can be appended to the end of the init function by decorating a method: +```py +@liquid.init() +def arbitrary_fcn_name(): + say additional commands done here! + advancement grant @a[distance=..2] gm4:blood_tank +``` + +## Item Fill/Drain +Each item that a tank fills or drains is registered by calling `liquid.item_fill` or `liquid.item_drain`. Most items that can be both filled or drained (like a bucket or bottle) only need to call `item_fill`, which also in turn defines its `item_drain` reverse direction. + +An item that only is fillable (like adding water to concrete powder) can be created with `item_fill(reversible=False)`. +Similarly, an item that is only drainable (like enchanted pages) can be created with `item_drain` directly. + +The arguments of the method define the two items and the amount of liquid imparted to/from the tank by that item. These items are defined by their item stack component test. e.g. `paper[custom_data~{gm4_book_binders:{item:"enchanted_page"}}]` + +```py +liquid.item_fill('bucket', 'water_bucket', 3) +liquid.item_fill('glass_bottle', 'minecraft:potion[potion_contents={potion:"water"}]', 1) +liquid.item_drain('paper[custom_data~{gm4_book_binders:{item:"enchanted_page"}}]', 'paper', 5) +``` + +If the output item requires additional data to be set after being processed by the liquid tank, or if any additional commands are present at the end of the item process file (for advancements for example), then the decorator approach is required. The first set of commands placed before a `yield` is called at the step where the final item data is applied to the `weapon.mainhand` of the forceload armorstand (UUID=`344d47-4-4-4-f04ce104d`), generally following the form: +`loot replace entity 344d47-4-4-4-f04ce104d weapon.mainhand loot gm4_standard_liquids:ink_bottle`. The second set of commands after a `yield` generates at the end of the function. + +```py +@liquid.item_fill('glass_bottle', 'experience_bottle', 9) + def experience_bottle(): + item replace entity 344d47-4-4-4-f04ce104d weapon.mainhand with minecraft:experience_bottle + yield + execute if score $smart_success gm4_lt_value matches 1 run advancement grant @a[distance=..4,gamemode=!spectator] only gm4:standard_liquids +``` + +## Util Below +Some basic util-below functionality is available for liquids that have a "dispense" function. Other util-below functionality should be added directly through the creation of the usual function files. + +This set of commands is called on tanks of the matching type, and run as provided by a decorated method. +```py +@liquid.util_below + def dispense_ink(): + execute as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:blindness'}]}] run function gm4_standard_liquids:util/liquid_dispensing/ink +``` + +# Advanced Usage +## Standard Units +Liquid containers that are commonly used by many items can easily be defined as a "Standard Unit", which will reuse function files wherever possible. Glass bottles and buckets are examples of this. + +A defined standard unit acts in place of the normal `liquid.item_fill` method, with all set arguments already bound. + +```py +bottle = liquid.standard_unit('glass_bottle', 1) + +liquid.item_fill('glass_bottle', 'honey_bottle', 1) # then becomes +bottle('honey_bottle') +``` + +Standard units take an optional `f_name` string parameter that allows the actual function name to be defined, which may prevent collisions when more than one standard unit uses the same item type. + +## Naming Schemes +By default, function files are names according to a preset number of schemes, usually by the item name or potion type if available. Additioinal schemes can be registered to the wrapper via its `schemes` attribute. This functionality is not used yet in the codebase, so please refer to the source code for more details. + +## Partially Bound Liquid Defaults +Liquids with commonly repeated properties (mainly liquid value) can be made with a new instance of the "Liquid" object, replacing the usage of the included `liquid` instance. diff --git a/gm4_liquid_tanks/bolt_liquid_wrappers.py b/gm4_liquid_tanks/bolt_liquid_wrappers.py new file mode 100644 index 0000000000..b16f796599 --- /dev/null +++ b/gm4_liquid_tanks/bolt_liquid_wrappers.py @@ -0,0 +1,8 @@ +# beet plugin to add the liquid_wrappers.bolt module to other gm4 datapacks more easily +from beet import Context +from bolt import Module +from pathlib import Path + + +def beet_default(ctx: Context): + ctx.data[Module]['gm4_liquid_tanks:liquid_wrappers'] = Module(source_path=Path("gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt")) diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/apply_output.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/apply_output.mcfunction index dfe1185077..4091d364de 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/apply_output.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/apply_output.mcfunction @@ -2,8 +2,17 @@ # @s = processing tank # merge count from input and set to tank -data modify storage gm4_liquid_tanks:temp/tank output.count set from storage gm4_liquid_tanks:temp/tank input_slot.count -data modify block ~ ~ ~ Items[{Slot:0b}] set from storage gm4_liquid_tanks:temp/tank output +item_modifier gm4_liquid_tanks:apply_output_count: + function: "minecraft:set_count" + count: + type: "minecraft:score" + target: + type: "minecraft:fixed" + name: "$stack_size" + score: "gm4_lt_value" + +item replace block ~ ~ ~ container.0 from entity 344d47-4-4-4-f04ce104d weapon.mainhand gm4_liquid_tanks:apply_output_count +item replace entity 344d47-4-4-4-f04ce104d weapon.mainhand with air # apply value delta scoreboard players operation @s gm4_lt_value += $stack_value gm4_lt_value diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/empty.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/empty.mcfunction index ec6932e52a..9b14d84013 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/empty.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/empty.mcfunction @@ -2,7 +2,7 @@ #run from liquid_tanks:liquid_value_update scoreboard players set @s gm4_lt_value 0 -execute positioned ~ ~-0.5 ~ run kill @e[type=armor_stand,tag=gm4_liquid_tank_display,distance=..0.5] +execute positioned ~ ~ ~ run kill @e[type=item_display,tag=gm4_liquid_tank_liquid_display,distance=..0.5] data merge block ~ ~ ~ {CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank","font":"gm4:default","color":"#404040"}]]}} data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "empty" function #gm4_liquid_tanks:remove_liquid_tags diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/init.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/init.mcfunction index f3b1e33f67..ee6be514b0 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/init.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/init.mcfunction @@ -3,7 +3,7 @@ scoreboard objectives add gm4_lt_max dummy scoreboard objectives add gm4_lt_prior_val dummy scoreboard objectives add gm4_lt_disp_val dummy scoreboard objectives add gm4_lt_util dummy -#declare storage gm4_liquid_tanks:temp/tank +#declare storage gm4_liquid_tanks:temp execute unless score liquid_tanks gm4_modules matches 1 run data modify storage gm4:log queue append value {type:"install",module:"Liquid Tanks"} execute unless score liquid_tanks gm4_earliest_version < liquid_tanks gm4_modules run scoreboard players operation liquid_tanks gm4_earliest_version = liquid_tanks gm4_modules diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/item_process.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/item_process.mcfunction index d351fa520e..a3aa5f4be0 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/item_process.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/item_process.mcfunction @@ -2,7 +2,7 @@ #run from liquid_tanks:process # get stack count for smart interface -execute store result score $stack_size gm4_lt_value run data get storage gm4_liquid_tanks:temp/tank input_slot.count 1.0 +execute store result score $stack_size gm4_lt_value if items block ~ ~ ~ container.0 * #tank init execute if score @s[tag=gm4_lt_empty] gm4_lt_value matches 0 unless entity @s[tag=gm4_lt_fill] run function #gm4_liquid_tanks:tank_init @@ -12,7 +12,3 @@ execute unless entity @s[tag=gm4_lt_fill] run function #gm4_liquid_tanks:item_dr #item fill execute unless entity @s[tag=gm4_lt_drain] run function #gm4_liquid_tanks:item_fill - -#storage cleanup -data remove storage gm4_liquid_tanks:temp/tank input_slot -data remove storage gm4_liquid_tanks:temp/tank output diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/liquid_value_update.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/liquid_value_update.mcfunction index eea442f7b6..f052dec812 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/liquid_value_update.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/liquid_value_update.mcfunction @@ -20,5 +20,5 @@ scoreboard players operation @s gm4_lt_disp_val = liquid_height_calc gm4_lt_disp scoreboard players operation liquid_height_calc gm4_lt_disp_val -= last_liquid_height gm4_lt_disp_val #teleport proper number of times. -execute if score liquid_height_calc gm4_lt_disp_val matches 1.. at @s positioned ~ ~-.5 ~ run function gm4_liquid_tanks:teleport_display_up -execute if score liquid_height_calc gm4_lt_disp_val matches ..-1 at @s positioned ~ ~-.5 ~ run function gm4_liquid_tanks:teleport_display_down +execute if score liquid_height_calc gm4_lt_disp_val matches 1.. at @s run function gm4_liquid_tanks:teleport_display_up +execute if score liquid_height_calc gm4_lt_disp_val matches ..-1 at @s run function gm4_liquid_tanks:teleport_display_down diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/create.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/create.mcfunction index 4aa815a6c3..b20a0a979a 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/create.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/create.mcfunction @@ -16,5 +16,5 @@ execute as @e[type=marker,tag=gm4_new_machine,limit=1] run function gm4_liquid_t # mark block as placed playsound block.end_portal_frame.fill block @a[distance=..30] ~ ~ ~ 1 0.5 scoreboard players set $placed_block gm4_machine_data 1 -scoreboard players set @e[distance=..2,tag=gm4_new_machine] gm4_entity_version 1 +scoreboard players set @e[distance=..2,tag=gm4_new_machine] gm4_entity_version 2 tag @e[distance=..2] remove gm4_new_machine diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/destroy.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/destroy.mcfunction index 2682c46f32..c682cfbb78 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/destroy.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/destroy.mcfunction @@ -4,8 +4,9 @@ # run from gm4_liquid_tanks:machine/verify_destroy # kill entities related to machine block -execute positioned ~ ~-0.5 ~ run kill @e[type=armor_stand,tag=gm4_liquid_tank_stand,limit=1,distance=..0.01] -execute positioned ~ ~-0.75 ~ run kill @e[type=armor_stand,tag=gm4_liquid_tank_display,distance=..0.3,limit=1] +execute positioned ~ ~0.4 ~ run kill @e[type=item_display,tag=gm4_liquid_tank_display,limit=1,distance=..0.01] +execute positioned ~ ~0.15 ~ run kill @e[type=item_display,tag=gm4_liquid_tank_liquid_display,distance=..0.3,limit=1] + execute positioned ~ ~0.5 ~ run kill @e[type=area_effect_cloud,distance=..0.5,tag=gm4_lt_util_block] execute store result score $dropped_item gm4_machine_data run kill @e[type=item,distance=..1,nbt={Age:0s,Item:{id:"minecraft:hopper",count:1,components:{}}},limit=1,sort=nearest] kill @s diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/down.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/down.mcfunction index 967a2dfd1a..3d45a10f95 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/down.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/down.mcfunction @@ -6,6 +6,6 @@ # place hopper setblock ~ ~ ~ hopper[facing=down]{CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank","font":"gm4:default","color":"#404040"}]]}} -# summon display armor stand and marker entity -summon armor_stand ~ ~-0.5 ~ {Small:1b,NoGravity:1b,Marker:1b,Invulnerable:1b,Invisible:1b,Silent:1b,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_liquid_tank_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1b,CustomName:"gm4_liquid_tank_stand",equipment:{head:{id:"glass",count:1,components:{"minecraft:custom_model_data":"block/liquid_tank"}}},Rotation:[0.0f,0.0f]} +# summon display entity and marker entity +summon item_display ~ ~0.4 ~ {Tags:["gm4_liquid_tank_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:"gm4_liquid_tank_display",item:{id:"glass",count:1,components:{"minecraft:custom_model_data":"block/liquid_tank"}},Rotation:[0.0f,0.0f],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0.001f,0f],scale:[0.438,0.438,0.438]},item_display:'head'} summon marker ~ ~ ~ {Tags:["gm4_liquid_tank","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:"gm4_liquid_tank",Rotation:[0.0f,0.0f]} diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/east.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/east.mcfunction index cc5f24a308..c8cefda9b3 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/east.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/east.mcfunction @@ -6,6 +6,6 @@ # place hopper setblock ~ ~ ~ hopper[facing=east]{CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank","font":"gm4:default","color":"#404040"}]]}} -# summon display armor stand and marker entity -summon armor_stand ~ ~-0.5 ~ {Small:1b,NoGravity:1b,Marker:1b,Invulnerable:1b,Invisible:1b,Silent:1b,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_liquid_tank_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1b,CustomName:"gm4_liquid_tank_stand",equipment:{head:{id:"glass",count:1,components:{"minecraft:custom_model_data":"block/liquid_tank_side"}}},Rotation:[-90.0f,0.0f]} +# summon display entity and marker entity +summon item_display ~ ~0.4 ~ {Tags:["gm4_liquid_tank_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:"gm4_liquid_tank_display",item:{id:"glass",count:1,components:{"minecraft:custom_model_data":"block/liquid_tank_side"}},Rotation:[-90.0f,0.0f],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0.001f,0f],scale:[0.438,0.438,0.438]},item_display:'head'} summon marker ~ ~ ~ {Tags:["gm4_liquid_tank","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:"gm4_liquid_tank",Rotation:[-90.0f,0.0f]} diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/north.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/north.mcfunction index a8d02b4ac2..a3df587b2d 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/north.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/north.mcfunction @@ -6,6 +6,6 @@ # place hopper setblock ~ ~ ~ hopper[facing=north]{CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank","font":"gm4:default","color":"#404040"}]]}} -# summon display armor stand and marker entity -summon armor_stand ~ ~-0.5 ~ {Small:1b,NoGravity:1b,Marker:1b,Invulnerable:1b,Invisible:1b,Silent:1b,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_liquid_tank_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1b,CustomName:"gm4_liquid_tank_stand",equipment:{head:{id:"glass",count:1,components:{"minecraft:custom_model_data":"block/liquid_tank_side"}}},Rotation:[180.0f,0.0f]} +# summon display entity and marker entity +summon item_display ~ ~0.4 ~ {Tags:["gm4_liquid_tank_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:"gm4_liquid_tank_display",item:{id:"glass",count:1,components:{"minecraft:custom_model_data":"block/liquid_tank_side"}},Rotation:[180.0f,0.0f],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0.001f,0f],scale:[0.438,0.438,0.438]},item_display:'head'} summon marker ~ ~ ~ {Tags:["gm4_liquid_tank","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:"gm4_liquid_tank",Rotation:[180.0f,0.0f]} diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/south.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/south.mcfunction index b45d7d55c7..665fb75c5d 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/south.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/south.mcfunction @@ -6,6 +6,7 @@ # place hopper setblock ~ ~ ~ hopper[facing=south]{CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank","font":"gm4:default","color":"#404040"}]]}} -# summon display armor stand and marker entity -summon armor_stand ~ ~-0.5 ~ {Small:1b,NoGravity:1b,Marker:1b,Invulnerable:1b,Invisible:1b,Silent:1b,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_liquid_tank_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1b,CustomName:"gm4_liquid_tank_stand",equipment:{head:{id:"glass",count:1,components:{"minecraft:custom_model_data":"block/liquid_tank_side"}}},Rotation:[0.0f,0.0f]} +# summon display entity and marker entity +summon item_display ~ ~0.4 ~ {Tags:["gm4_liquid_tank_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:"gm4_liquid_tank_display",item:{id:"glass",count:1,components:{"minecraft:custom_model_data":"block/liquid_tank_side"}},Rotation:[0.0f,0.0f],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0.001f,0f],scale:[0.438,0.438,0.438]},item_display:'head'} + summon marker ~ ~ ~ {Tags:["gm4_liquid_tank","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:"gm4_liquid_tank",Rotation:[0.0f,0.0f]} diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/west.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/west.mcfunction index 95736eeaf2..3fd1b4e774 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/west.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/west.mcfunction @@ -6,6 +6,7 @@ # place hopper setblock ~ ~ ~ hopper[facing=west]{CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank","font":"gm4:default","color":"#404040"}]]}} -# summon display armor stand and marker entity -summon armor_stand ~ ~-0.5 ~ {Small:1b,NoGravity:1b,Marker:1b,Invulnerable:1b,Invisible:1b,Silent:1b,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_liquid_tank_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1b,CustomName:"gm4_liquid_tank_stand",equipment:{head:{id:"glass",count:1,components:{"minecraft:custom_model_data":"block/liquid_tank_side"}}},Rotation:[90.0f,0.0f]} +# summon display entity and marker entity +summon item_display ~ ~0.4 ~ {Tags:["gm4_liquid_tank_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:"gm4_liquid_tank_display",item:{id:"glass",count:1,components:{"minecraft:custom_model_data":"block/liquid_tank_side"}},Rotation:[90.0f,0.0f],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0.001f,0f],scale:[0.438,0.438,0.438]},item_display:'head'} + summon marker ~ ~ ~ {Tags:["gm4_liquid_tank","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:"gm4_liquid_tank",Rotation:[90.0f,0.0f]} diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/process.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/process.mcfunction index 7f42f2955d..8e7467335a 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/process.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/process.mcfunction @@ -2,12 +2,11 @@ #run from main #item processing -data modify storage gm4_liquid_tanks:temp/tank input_slot merge from block ~ ~ ~ Items[{Slot:0b}] -execute if data storage gm4_liquid_tanks:temp/tank input_slot run function gm4_liquid_tanks:item_process +execute if items block ~ ~ ~ container.0 * run function gm4_liquid_tanks:item_process #last item action resetting (requires updated tank data, so no refrence to storage) -execute unless block ~ ~ ~ hopper{Items:[{Slot:0b}]} run tag @s remove gm4_lt_drain -execute unless block ~ ~ ~ hopper{Items:[{Slot:0b}]} run tag @s remove gm4_lt_fill +execute unless items block ~ ~ ~ container.0 * run tag @s remove gm4_lt_drain +execute unless items block ~ ~ ~ container.0 * run tag @s remove gm4_lt_fill #entity processing execute if block ~ ~ ~ hopper[enabled=true] align xyz positioned ~ ~1 ~ if entity @e[type=!armor_stand,dx=0] run function #gm4_liquid_tanks:util_above diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/relocate/place_down.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/relocate/place_down.mcfunction index 69fe4221ae..9028428a90 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/relocate/place_down.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/relocate/place_down.mcfunction @@ -7,7 +7,8 @@ execute if block ~ ~ ~ command_block[facing=south] run setblock ~ ~ ~ hopper[fac execute if block ~ ~ ~ command_block[facing=north] run setblock ~ ~ ~ hopper[facing=north] execute if block ~ ~ ~ command_block[facing=down] run setblock ~ ~ ~ hopper[facing=down] -data merge block ~ ~ ~ {CustomName:{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank"}} -summon armor_stand ~ ~-.5 ~ {CustomName:"gm4_liquid_tank",Tags:["gm4_no_edit","gm4_liquid_tank"],NoGravity:1b,Marker:1b,Silent:1b,Invisible:1b,Invulnerable:1b,Small:1b,DisabledSlots:2039552,equipment:{head:{id:"minecraft:glass",count:1,components:{"minecraft:custom_model_data":"block/liquid_tank"}}}} +data merge block ~ ~ ~ {CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank","font":"gm4:default","color":"#404040"}]]}} +summon item_display ~ ~0.4 ~ {Tags:["gm4_liquid_tank_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:"gm4_liquid_tank_display",item:{id:"glass",count:1,components:{"minecraft:custom_model_data":"block/liquid_tank"}},Rotation:[0.0f,0.0f],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0.001f,0f],scale:[0.438,0.438,0.438]},item_display:'head'} +summon marker ~ ~ ~ {Tags:["gm4_liquid_tank","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:"gm4_liquid_tank",Rotation:[0.0f,0.0f]} execute as @e[tag=gm4_liquid_tank,limit=1,distance=..0.3] run function gm4_liquid_tanks:init_tank_scores playsound block.end_portal_frame.fill block @a[distance=..30] ~ ~ ~ 1 0.5 diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/relocate/restore_liquid.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/relocate/restore_liquid.mcfunction index 9d8677549c..1f68a980b2 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/relocate/restore_liquid.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/relocate/restore_liquid.mcfunction @@ -9,6 +9,6 @@ execute store result score @s gm4_lt_max run data get storage gm4_relocators:tem scoreboard players set @s gm4_lt_disp_val 0 function #gm4_liquid_tanks:relocate/restore_liquid -execute unless entity @s[tag=gm4_lt_empty] run summon armor_stand ~ ~-.95 ~ {CustomName:"gm4_liquid_tank_display",Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict","gm4_new_display"],NoGravity:1b,Marker:1b,Silent:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{id:"player_head",count:1}}} -data modify entity @e[type=armor_stand,tag=gm4_new_display,distance=..1,limit=1] {} merge from storage gm4_relocators:temp gm4_relocation.entity_data.display +summon item_display ~ ~ ~ {CustomName: "gm4_liquid_tank_liquid_display",Tags: ["gm4_liquid_tank_liquid_display","smithed.entity","smithed.strict","gm4_new_display"],transformation:{left_rotation: [0f,0f,0f,1f],right_rotation: [0f,0f,0f,1f],translation: [0f,0.2185f,0f],scale: [0.83, 0.83, 0.83]},item_display: head} +data modify entity @e[type=item_display,tag=gm4_new_display,distance=..1,limit=1] {} merge from storage gm4_relocators:temp gm4_relocation.entity_data.liquid_display function gm4_liquid_tanks:liquid_value_update diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/relocate/set_pick_up_data.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/relocate/set_pick_up_data.mcfunction index 091dd588fe..ab7e21dd49 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/relocate/set_pick_up_data.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/relocate/set_pick_up_data.mcfunction @@ -11,11 +11,11 @@ data modify storage gm4_relocators:temp merge_data.entity_data.marker.Tags set f tag @s add gm4_relocating_block data modify storage gm4_relocators:temp merge_data.entity_data.marker.data set from entity @s data -data modify storage gm4_relocators:temp merge_data.entity_data.stand.equipment set from entity @e[type=armor_stand,tag=gm4_liquid_tank_stand,distance=..0.5,limit=1] equipment -data modify storage gm4_relocators:temp merge_data.entity_data.stand.Tags set from entity @e[type=armor_stand,tag=gm4_liquid_tank_stand,distance=..0.5,limit=1] Tags +data modify storage gm4_relocators:temp merge_data.entity_data.display.item set from entity @e[type=item_display,tag=gm4_liquid_tank_display,distance=..0.5,limit=1] item +data modify storage gm4_relocators:temp merge_data.entity_data.display.Tags set from entity @e[type=item_display,tag=gm4_liquid_tank_display,distance=..0.5,limit=1] Tags -execute positioned ~ ~-0.75 ~ run data modify storage gm4_relocators:temp merge_data.entity_data.display set from entity @e[type=armor_stand,tag=gm4_liquid_tank_display,distance=..0.3,limit=1] {} -data remove storage gm4_relocators:temp merge_data.entity_data.display.Pos +execute positioned ~ ~ ~ run data modify storage gm4_relocators:temp merge_data.entity_data.liquid_display set from entity @e[type=item_display,tag=gm4_liquid_tank_liquid_display,distance=..0.8,limit=1] {} +data remove storage gm4_relocators:temp merge_data.entity_data.liquid_display.Pos execute store result storage gm4_relocators:temp merge_data.entity_data.lt_value int 1 run scoreboard players get @s gm4_lt_value execute store result storage gm4_relocators:temp merge_data.entity_data.lt_max int 1 run scoreboard players get @s gm4_lt_max @@ -23,8 +23,9 @@ execute store result storage gm4_relocators:temp merge_data.entity_data.lt_prior function #gm4_liquid_tanks:relocate/set_data -execute positioned ~ ~-0.5 ~ run kill @e[type=armor_stand,tag=gm4_liquid_tank_stand,limit=1,distance=..0.01] -execute positioned ~ ~-0.75 ~ run kill @e[type=armor_stand,tag=gm4_liquid_tank_display,distance=..0.3,limit=1] +execute positioned ~ ~ ~ run kill @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.01] +execute positioned ~ ~0.4 ~ run kill @e[type=item_display,tag=gm4_liquid_tank_display,distance=..0.1,limit=1] +execute positioned ~ ~ ~ run kill @e[type=item_display,tag=gm4_liquid_tank_liquid_display,distance=..0.8,limit=1] execute positioned ~ ~0.5 ~ run kill @e[type=area_effect_cloud,distance=..0.5,tag=gm4_lt_util_block] kill @s scoreboard players set $found_marker gm4_rl_data 1 diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/relocate/summon_block_markers.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/relocate/summon_block_markers.mcfunction index 0dc0dedcae..11b6f43763 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/relocate/summon_block_markers.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/relocate/summon_block_markers.mcfunction @@ -5,13 +5,13 @@ scoreboard players set $placed_block gm4_rl_data 1 -summon armor_stand ~ ~-0.5 ~ {Small:1b,NoGravity:1b,Marker:1b,Invulnerable:1b,Invisible:1b,Silent:1b,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_liquid_tank_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1b,CustomName:"gm4_liquid_tank_stand",equipment:{head:{id:"glass",count:1,components:{"minecraft:custom_model_data":"block/liquid_tank"}}},Rotation:[0.0f,0.0f]} +summon item_display ~ ~0.4 ~ {Tags:["gm4_liquid_tank_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:"gm4_liquid_tank_display",item:{id:"glass",count:1,components:{"minecraft:custom_model_data":"block/liquid_tank"}},Rotation:[0.0f,0.0f],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0.001f,0f],scale:[0.438,0.438,0.438]},item_display:'head'} summon marker ~ ~ ~ {Tags:["gm4_liquid_tank","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:"gm4_liquid_tank",Rotation:[0.0f,0.0f]} execute as @e[type=marker,tag=gm4_new_machine,limit=1,distance=..0.1] run function gm4_liquid_tanks:relocate/restore_liquid execute as @e[tag=gm4_new_machine,distance=..2] run data modify entity @s Rotation set from storage gm4_relocators:temp gm4_relocation.entity_data.Rotation execute as @e[tag=gm4_new_machine,distance=..2] at @s rotated as @e[type=marker,tag=gm4_new_machine,distance=..2,limit=1] run tp ~ ~ ~ -execute as @e[type=armor_stand,tag=gm4_new_machine,distance=..2] run data modify entity @s {} merge from storage gm4_relocators:temp gm4_relocation.entity_data.stand -scoreboard players set @e[distance=..2,tag=gm4_new_machine] gm4_entity_version 1 +execute as @e[type=item_display,tag=gm4_new_machine,distance=..2] run data modify entity @s {} merge from storage gm4_relocators:temp gm4_relocation.entity_data.display +scoreboard players set @e[distance=..2,tag=gm4_new_machine] gm4_entity_version 2 tag @e[distance=..2] remove gm4_new_machine diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/teleport_display_down.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/teleport_display_down.mcfunction index 1d62becdb5..69e14560ab 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/teleport_display_down.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/teleport_display_down.mcfunction @@ -1,8 +1,8 @@ #@s = liquid tank #run from liquid_value_update -#teleport stand down -execute as @e[type=armor_stand,tag=gm4_liquid_tank_display,distance=..0.5,limit=1] at @s run teleport @s ~ ~-.04 ~ +#teleport display down +execute as @e[type=item_display,tag=gm4_liquid_tank_liquid_display,distance=..0.5,limit=1] at @s run teleport @s ~ ~-.04 ~ scoreboard players add liquid_height_calc gm4_lt_disp_val 1 diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/teleport_display_up.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/teleport_display_up.mcfunction index 0d301d60bd..ff8a3b6d0a 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/teleport_display_up.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/teleport_display_up.mcfunction @@ -1,8 +1,8 @@ #@s = liquid tank #run from liquid_value_update -#teleport stand up -execute as @e[type=armor_stand,tag=gm4_liquid_tank_display,distance=..0.5,limit=1] at @s run teleport @s ~ ~.04 ~ +#teleport display up +execute as @e[type=item_display,tag=gm4_liquid_tank_liquid_display,distance=..0.5,limit=1] at @s run teleport @s ~ ~.04 ~ scoreboard players remove liquid_height_calc gm4_lt_disp_val 1 diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/upgrade_paths/2.8.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/upgrade_paths/2.8.mcfunction new file mode 100644 index 0000000000..0b60790349 --- /dev/null +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/upgrade_paths/2.8.mcfunction @@ -0,0 +1 @@ +execute as @e[type=marker,tag=gm4_liquid_tank,scores={gm4_entity_version=1}] at @s run function gm4_liquid_tanks:upgrade_paths/2.8/entity_replacement diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/upgrade_paths/2.8/entity_replacement.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/upgrade_paths/2.8/entity_replacement.mcfunction new file mode 100644 index 0000000000..6c8be4b09a --- /dev/null +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/upgrade_paths/2.8/entity_replacement.mcfunction @@ -0,0 +1,19 @@ +# @s = gm4_liquid_tank marker +# at center of block +# run by upgrade_paths/2.5 + +# replace primary armor stand with item display +summon item_display ~ ~0.4 ~ {Tags:["gm4_liquid_tank_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:"gm4_liquid_tank_display",item:{id:"glass",count:1,components:{"minecraft:custom_model_data":"block/liquid_tank"}},Rotation:[0.0f,0.0f],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0.001f,0f],scale:[0.438,0.438,0.438]}} +data modify entity @e[type=item_display,limit=1,distance=..1,tag=gm4_new_machine] Rotation set from entity @e[type=armor_stand,limit=1,distance=..1,tag=gm4_liquid_tank_stand] Rotation +kill @e[type=armor_stand,limit=1,distance=..1,tag=gm4_liquid_tank_stand] +scoreboard players set @e[distance=..2,tag=gm4_new_machine] gm4_entity_version 2 +tag @e[tag=gm4_new_machine,distance=..1] remove gm4_new_machine + +# replace liquid armor stand with item display +execute at @e[type=armor_stand,limit=1,tag=gm4_liquid_tank_display,distance=..1] positioned ~ ~1.15 ~ run summon item_display ~ ~ ~ {CustomName:"gm4_liquid_tank_liquid_display",Tags:["gm4_liquid_tank_liquid_display","smithed.entity","smithed.strict","gm4_new_liquid"],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0.001f,0f],scale:[0.83,0.83,0.83]},item_display:'head'} +data modify entity @e[type=item_display,tag=gm4_new_liquid,limit=1,distance=..1] item set from entity @e[type=armor_stand,limit=1,tag=gm4_liquid_tank_display,distance=..1] equipment.head +kill @e[type=armor_stand,limit=1,tag=gm4_liquid_tank_display,distance=..1] +tag @e[tag=gm4_new_liquid,distance=..1] remove gm4_new_liquid + + +scoreboard players set @s gm4_entity_version 2 diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt new file mode 100644 index 0000000000..c18b80ff92 --- /dev/null +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt @@ -0,0 +1,323 @@ +from functools import wraps, partial +import re +from inspect import isgeneratorfunction + +from beet import Context +from mecha import Mecha, AstItemStack +from bolt.contrib.defer import Defer + +from gm4.utils import add_namespace + +from gm4_liquid_tanks.mcmeta_stacksize import retrieve_stacksizes +unstackables, stackable_16, _ = retrieve_stacksizes(ctx.cache, "1.21.8") + +# function that generates no mcfunction +def emptyfunc(): + pass + +class Liquid: + """Base class providing decorators and infrastructure for adding Liquid Tanks liquids""" + id: str = None + capacity: int = None + name: str = None + skin: str = None # defaults to value of `liquids/id` if not otherwise set + _fields = ['id', 'capacity', 'name'] + _generators = [] # functions that create mcfunction using bolt + _defer_counters = { + '_singleton_util_below_tail': 0, + '_singleton_util_below_head': 0 + } # classvar for util_below cleanup defers + + + + def __init__(self, *args, **kwargs): + # create instance attributes (named defined by _fields) based on constructor + input_args = dict(zip(self._fields, args)) | kwargs + for field in self._fields: + if input_args.get(field, None): + setattr(self, field, input_args.get(field, None)) + self.units = {} # reusable quantities shared amongst liquids + self.naming_schemes = NamingSchemes() # stores which function names are taken and generates new ones + self.struc = Liquid + self.mc = ctx.inject(Mecha) + self.defer = ctx.inject(Defer) + + def __call__(self, cls): + """instance acts as decorator for defining new class-structures""" + @wraps(cls, updated=()) + class DecoratedLiquid(cls, Liquid): + pass + + # set unbound DecoratedLiquid class attributes + for field in self._fields: + if getattr(self, field, None): + setattr(DecoratedLiquid, field, getattr(self, field, None)) + + # use the skin file of "id" if not otherwise specified. + if not DecoratedLiquid.skin: + DecoratedLiquid.skin = "liquids/"+DecoratedLiquid.id + + self.struc = DecoratedLiquid # link access to class variables through `self` + for fcn in DecoratedLiquid._generators: + fcn() # create the mcfunction + DecoratedLiquid._generators.clear() + + return DecoratedLiquid + + def init(self, fcn=emptyfunc): + @wraps(fcn) + def wrapped_fcn(): + function ~/../liquid_init/{self.struc.id}: + data merge block ~ ~ ~ {CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":f"container.gm4.liquid_tank.{self.struc.id}","fallback":f"{self.struc.name} Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":f"container.gm4.liquid_tank.{self.struc.id}","fallback":f"{self.struc.name} Tank","font":"gm4:default","color":"#404040"}]]}} + summon item_display ~ ~ ~: + CustomName: "gm4_liquid_tank_liquid_display" + Tags: ["gm4_liquid_tank_liquid_display","smithed.entity","smithed.strict"] + item: + id: player_head + count:1b + components:{ + "minecraft:profile": f"${(~/).split(':')[0]}:{self.struc.skin}" + } + transformation: + left_rotation: [0f,0f,0f,1f] + right_rotation: [0f,0f,0f,1f] + translation: [0f,0.2185f,0f] + scale: [0.83, 0.83, 0.83] + item_display: head + data modify entity @s data.gm4_liquid_tanks.liquid_tag set value f"gm4_lt_{self.struc.id}" + scoreboard players set @s gm4_lt_max self.struc.capacity + tag @s add f'gm4_lt_{self.struc.id}' + tag @s remove gm4_lt_empty + fcn() + + append function ~/../remove_liquid_tags: + append function_tag gm4_liquid_tanks:remove_liquid_tags {"values": [(~/)]} + tag @s remove f'gm4_lt_{self.struc.id}' + + # add function-tag hooks + append function_tag gm4_liquid_tanks:tank_init {"values": [(~/../tank_init)]} + append function_tag gm4_liquid_tanks:item_fill {"values": [(~/../item_fill)]} + append function_tag gm4_liquid_tanks:item_drain {"values": [(~/../item_drain)]} + append function_tag gm4_liquid_tanks:util_below {"values": [(~/../util_below)]} + # append function_tag gm4_liquid_tanks:util_above {"values": [(~/../util_above)]} + + # give nicer info about this wrapped function if not used as decorator + if fcn: + wrapped_fcn.__qualname__ = "Liquid.init" + else: + wrapped_fcn.__qualname__ = fcn.__qualname__ + + self.struc._generators.append(wrapped_fcn) + return wrapped_fcn + + @staticmethod + def _default_set_output(item:str): + item replace entity 344d47-4-4-4-f04ce104d weapon.mainhand with item + + + def item_fill(self, input: str, output: str, value: int, reversable: bool = True, ignore_standard_units: bool = False): + def dec_with_args(fcn, fcn_to_replace): + @wraps(fcn) + def wrapped_fcn(): + output_id = output.split('[', 1)[0].removeprefix('minecraft:') + ns_output = add_namespace(output_id, "minecraft") + + # retrieve max allowable stack size + if ns_output in unstackables: + stack_limit = "1" + elif ns_output in stackable_16: + stack_limit = "..16" + else: + stack_limit = "..64" # FIXME this should remove that execute subcommand from the chain.. somehow + + # retrieve name for generated function + if not isinstance(fcn, partial): # not Liquid._default_set_output: + func_name = fcn.__name__ + self.naming_schemes.register(func_name, ~/../item_fill) + else: + func_name = self.naming_schemes.retrieve_and_register(input, output, ~/../item_fill) + + # transform any supplied mcfunction into generator + genfcn = self._multiple_mcfunction(fcn) + + append function ~/../item_fill: + execute if entity @s[tag=f'gm4_lt_{self.struc.id}'] if score $stack_size gm4_lt_value matches stack_limit if items block ~ ~ ~ container.0 input run function ~/{func_name}: + scoreboard players set $item_value gm4_lt_value (-value) + next(genfcn) # runs _default_set_output unless alternative is supplied + function gm4_liquid_tanks:smart_item_fill + tag @s add gm4_lt_fill + next(genfcn) + + # give nicer info about this wrapped function if not used as decorator + if isinstance(fcn, partial): + wrapped_fcn.__qualname__ = "Liquid.item_fill" + else: + wrapped_fcn.__qualname__ = fcn.__qualname__ + + if fcn_to_replace in self.struc._generators: + self.struc._generators.remove(fcn_to_replace) + self.struc._generators.append(wrapped_fcn) + return wrapped_fcn + + # create reverse + if reversable: + self.item_drain(output, input, value) + + default_dec = dec_with_args(partial(self._default_set_output, item=output), None) + + return_dec = partial(dec_with_args, fcn_to_replace=default_dec) + return return_dec + + def standard_unit(self, item: str, value: int, f_name: str = None): + if not f_name: # mcfunction name + f_name = item + self.units.update({(item, value): f_name}) + # let unit act as an 'item_fill' decorator with input already set + def dispatch(output: str): + return partial(self.item_fill, input=item, value=value)(output=output) + return dispatch + + + def item_drain(self, input: str, output: str, value: int): + def dec_with_args(fcn, fcn_to_replace): + @wraps(fcn) + def wrapped_fcn(): + # see if we can reuse a standard unit + func_name = self.units.get((output, value), None) + if func_name: + self.naming_schemes.register(func_name, ~/../item_drain) + + # if not, retrive the name for the generated function + if not func_name: + func_name = self.naming_schemes.retrieve_and_register(input, output, ~/../item_drain) + + # transform any supplied mcfunction into generator + genfcn = self._multiple_mcfunction(fcn) + + append function ~/../item_drain: + execute if entity @s[tag=f'gm4_lt_{self.struc.id}'] if items block ~ ~ ~ container.0 input run function ~/{func_name}: + scoreboard players set $item_value gm4_lt_value value + next(genfcn) # runs _default_set_output unless alternative is supplied + function gm4_liquid_tanks:smart_item_drain + tag @s add gm4_lt_drain + + append function ~/../tank_init: + execute if items block ~ ~ ~ container.0 input run function ~/../liquid_init/{self.struc.id} + + # give nicer info about this wrapped function if not used as decorator + if isinstance(fcn, partial): + wrapped_fcn.__qualname__ = "Liquid.item_fill" + else: + wrapped_fcn.__qualname__ = fcn.__qualname__ + + if fcn_to_replace in self.struc._generators: + self.struc._generators.remove(fcn_to_replace) + self.struc._generators.append(wrapped_fcn) + return wrapped_fcn + + default_dec = dec_with_args(partial(self._default_set_output, item=output), None) + + return_dec = partial(dec_with_args, fcn_to_replace=default_dec) + return return_dec + + def util_below(self, fcn=emptyfunc): + # util below must always be used as a decorator - there is no "standard" interface + # util is designed to work alongside existing functions (and not entirely in bolt) + @wraps(fcn) + def wrapped_fcn(): + # function header if needed + if ~/../util_below not in ctx.data.functions or "tag @s add gm4_processing_tank" not in ctx.data.functions[~/../util_below].lines: + Liquid._defer_counters['_singleton_util_below_head'] += 1 + @self.defer + def _end_util_below(): + Liquid._defer_counters['_singleton_util_below_head'] -= 1 + if Liquid._defer_counters['_singleton_util_below_head'] <= 0: # only emit the commands if this is the last section of util_below + prepend function ~/../util_below: + tag @s add gm4_processing_tank + + # NOTE the function tail (tag remove processing_tank) cannot be removed easily by bolt, + # so modules using both these wrappers and normal files will need to leave that line omitted + + # add commands + append function ~/../util_below: + execute if score @s[tag=f'gm4_lt_{self.struc.id}'] gm4_lt_value matches 1.. expand: + fcn() + @self.defer + def _end_util_below(): + Liquid._defer_counters['_singleton_util_below_tail'] -= 1 + if Liquid._defer_counters['_singleton_util_below_tail'] <= 0: # only emit the commands if this is the last section of util_below + append function ~/../util_below: + tag @s remove gm4_processing_tank + + self.struc._generators.append(wrapped_fcn) + Liquid._defer_counters['_singleton_util_below_tail'] += 1 + return wrapped_fcn + + @staticmethod + def _multiple_mcfunction(fcn): + """Ensures the given function operates as a generator, allowing for multiple chunks of returned mcfunction""" + if isgeneratorfunction(fcn): + def accept_stopiteration(): # bolt does not have try/except yet, so this is an alternate implementation + fcninst = fcn() + while True: + yield next(fcninst, None) + return accept_stopiteration() + else: + def genfunc(): + yield fcn() + while True: + yield None + return genfunc() + +class NamingSchemes(): + """Helper class for controlling how item_drain/ and item_fill/ functions are named""" + used_names: dict[str, set[str]] = {} + + def __init__(self): + self.schemes = [ + self.potion, + self.not_air, + self.output_name, + self.input_name, + self.combined_name + ] + + def retrieve_and_register(self, input: str, output: str, location: str) -> str: + local_used_names = self.used_names.setdefault(location, set()) + for scheme in self.schemes: + func_name = scheme(input, output) + if func_name and func_name not in local_used_names: + local_used_names.add(func_name) + return func_name + return "NULL" # FIXME error logging from bolt? How to + + def register(self, func_name: str, location: str): + local_used_names = self.used_names.setdefault(location, set()) + local_used_names.add(func_name) + + @staticmethod + def output_name(input_name: str, output_name: str) -> str: + return output_name.split('[', 1)[0].removeprefix('minecraft:') + + @staticmethod + def input_name(input_name: str, output_name: str) -> str: + return input_name.split('[', 1)[0].removeprefix('minecraft:') + + @staticmethod + def combined_name(input_name: str, output_name: str) -> str: + return f"{input_name.split('[', 1)[0].removeprefix('minecraft:')}_{output_name.split('[', 1)[0].removeprefix('minecraft:')}" + + @staticmethod + def potion(input_name: str, output_name: str) -> str | bool: + m = re.match(r'.+?potion_contents=\{potion:\"(.+)\"\}', output_name) + if m: + return f"{m.group(1)}_potion" + return False + + @staticmethod + def not_air(input_name: str, output_name: str) -> str | bool: + if output_name == "air": + return input_name # always name a clear item operation after what is being cleared + return False + +liquid = Liquid() # common instance for most cases diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/test/honey_cast.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/test/honey_cast.mcfunction new file mode 100644 index 0000000000..2a8b2dac86 --- /dev/null +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/test/honey_cast.mcfunction @@ -0,0 +1,20 @@ +# @template gm4_liquid_tanks:test_setup +# @dummy ~ ~1 ~ +# @timeout 800 + +# create honey tank +item replace block ~1 ~3 ~1 container.0 with minecraft:honey_block +await not items block ~1 ~3 ~1 container.0 minecraft:honey_block + +# place cauldron +setblock ~2 ~3 ~1 cauldron + +# link cauldron (dummy faces tank) +execute at @s run tp @s ~ ~ ~ -45 -45 +await delay 1s +assert entity @e[tag=gm4_lt_util_block,type=area_effect_cloud] inside + +# check casting success +await entity @e[type=item_display,tag=gm4_lt_honey_display] inside +await delay 5s +assert entity @e[type=item,nbt={Item:{id:"minecraft:honey_block"}}] inside diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/test/lava_fuel.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/test/lava_fuel.mcfunction new file mode 100644 index 0000000000..6c11f9e7f4 --- /dev/null +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/test/lava_fuel.mcfunction @@ -0,0 +1,40 @@ +# @template gm4_liquid_tanks:test_setup +# @dummy ~ ~1 ~ + +# create lava tank +item replace block ~1 ~3 ~1 container.0 with minecraft:lava_bucket +await not items block ~1 ~3 ~1 container.0 minecraft:lava_bucket + +# place furnace +setblock ~2 ~3 ~1 furnace + +# link furnace (dummy faces tank) +execute at @s run tp @s ~ ~ ~ -45 ~-45 +await delay 1s +assert entity @e[tag=gm4_lt_util_block,type=area_effect_cloud] inside + +# check furnace fueling +item replace block ~2 ~3 ~1 container.0 with minecraft:raw_iron +await delay 1s +assert block ~2 ~3 ~1 minecraft:furnace[lit=true] +assert score @n[tag=gm4_liquid_tank] gm4_lt_value matches 2 + +# check we don't duplicate fuel +setblock ~2 ~3 ~1 stone +setblock ~1 ~3 ~ blast_furnace +setblock ~1 ~3 ~2 furnace +setblock ~ ~3 ~1 furnace +await entity @e[tag=gm4_lt_util_block,type=area_effect_cloud,y_rotation=90] inside +item replace block ~1 ~3 ~ container.0 with minecraft:raw_iron +item replace block ~1 ~3 ~2 container.0 with minecraft:raw_iron +item replace block ~ ~3 ~1 container.0 with minecraft:raw_iron +await delay 1s + +scoreboard objectives add gm4_test dummy +scoreboard players set $fueled gm4_test 0 +execute if block ~1 ~3 ~ minecraft:blast_furnace[lit=true] run scoreboard players add $fueled gm4_test 1 +execute if block ~1 ~3 ~2 minecraft:furnace[lit=true] run scoreboard players add $fueled gm4_test 1 +execute if block ~ ~3 ~1 minecraft:furnace[lit=true] run scoreboard players add $fueled gm4_test 1 + +assert score $fueled gm4_test matches 2 +assert score @n[tag=gm4_liquid_tank] gm4_lt_value matches 0 diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain.mcfunction deleted file mode 100644 index 49d7deac55..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain.mcfunction +++ /dev/null @@ -1,42 +0,0 @@ -#@s = liquid tank with item in first slot -#run from liquid_tanks:item_process - -#water -execute if entity @s[tag=gm4_lt_water] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:water_bucket"}} run function gm4_standard_liquids:item_drain/bucket -execute if entity @s[tag=gm4_lt_water] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:water"}}}} run function gm4_standard_liquids:item_drain/bottle - -#lava -execute if entity @s[tag=gm4_lt_lava] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:lava_bucket"}} run function gm4_standard_liquids:item_drain/bucket - -#milk -execute if entity @s[tag=gm4_lt_milk] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:milk_bucket"}} run function gm4_standard_liquids:item_drain/bucket - -#mushroom stew -execute if entity @s[tag=gm4_lt_mushroom_stew] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:mushroom_stew"}} run function gm4_standard_liquids:item_drain/bowl - -#rabbit stew -execute if entity @s[tag=gm4_lt_rabbit_stew] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:rabbit_stew"}} run function gm4_standard_liquids:item_drain/bowl - -#beetroot soup -execute if entity @s[tag=gm4_lt_beetroot_soup] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:beetroot_soup"}} run function gm4_standard_liquids:item_drain/bowl -execute if entity @s[tag=gm4_lt_beetroot_soup] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:beetroot"}} run function gm4_standard_liquids:item_drain/beetroot - -#experience -execute if entity @s[tag=gm4_lt_experience] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:experience_bottle"}} run function gm4_standard_liquids:item_drain/experience_bottle -execute if entity @s[tag=gm4_lt_experience] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:enchanted_book"}} run function gm4_standard_liquids:item_drain/enchanted_book -execute if entity @s[tag=gm4_lt_experience] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:paper",components:{"minecraft:custom_data":{gm4_book_binders:{item:"enchanted_page"}}}}} run function gm4_standard_liquids:item_drain/enchanted_page - -#honey -execute if entity @s[tag=gm4_lt_honey] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:honey_bottle"}} run function gm4_standard_liquids:item_drain/bottle -execute if entity @s[tag=gm4_lt_honey] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:honey_block"}} run function gm4_standard_liquids:item_drain/honey_block - -#powder snow -execute if entity @s[tag=gm4_lt_powder_snow] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:powder_snow_bucket"}} run function gm4_standard_liquids:item_drain/bucket - -#ink -execute if entity @s[tag=gm4_lt_ink] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:ink_sac"}} run function gm4_standard_liquids:item_drain/ink_sac -execute if entity @s[tag=gm4_lt_ink] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:custom_data":{gm4_standard_liquids:{potion:"blindness"}}}}} run function gm4_standard_liquids:item_drain/bottle - -#glow ink -execute if entity @s[tag=gm4_lt_glow_ink] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glow_ink_sac"}} run function gm4_standard_liquids:item_drain/ink_sac -execute if entity @s[tag=gm4_lt_glow_ink] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:custom_data":{gm4_standard_liquids:{potion:"glowing"}}}}} run function gm4_standard_liquids:item_drain/bottle diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/beetroot.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/beetroot.mcfunction deleted file mode 100644 index e0ebf8e3c1..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/beetroot.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_standard_liquids:item_drain -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value 1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"air"}} -function gm4_liquid_tanks:smart_item_drain -tag @s add gm4_lt_drain diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/bottle.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/bottle.mcfunction deleted file mode 100644 index 1c893fe96e..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/bottle.mcfunction +++ /dev/null @@ -1,8 +0,0 @@ -# run from gm4_standard_liquids:item_drain -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value 1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"glass_bottle"}} -function gm4_liquid_tanks:smart_item_drain -tag @s add gm4_lt_drain - diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/bowl.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/bowl.mcfunction deleted file mode 100644 index f460f24b46..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/bowl.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_standard_liquids:item_drain -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value 1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"bowl"}} -function gm4_liquid_tanks:smart_item_drain -tag @s add gm4_lt_drain diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/bucket.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/bucket.mcfunction deleted file mode 100644 index 63e230cd32..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/bucket.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_standard_liquids:item_drain -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value 3 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"bucket"}} -function gm4_liquid_tanks:smart_item_drain -tag @s add gm4_lt_drain diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/enchanted_book.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/enchanted_book.mcfunction deleted file mode 100644 index c841460e7d..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/enchanted_book.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_standard_liquids:item_drain -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value 7 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"book"}} -function gm4_liquid_tanks:smart_item_drain -tag @s add gm4_lt_drain diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/enchanted_page.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/enchanted_page.mcfunction deleted file mode 100644 index 2fd2b5def5..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/enchanted_page.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_standard_liquids:item_drain -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value 5 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"paper"}} -function gm4_liquid_tanks:smart_item_drain -tag @s add gm4_lt_drain diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/experience_bottle.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/experience_bottle.mcfunction deleted file mode 100644 index 9a2ae56114..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/experience_bottle.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_standard_liquids:item_drain -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value 9 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"glass_bottle"}} -function gm4_liquid_tanks:smart_item_drain -tag @s add gm4_lt_drain diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/honey_block.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/honey_block.mcfunction deleted file mode 100644 index 1f37c8a6c8..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/honey_block.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_standard_liquids:item_drain -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value 4 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"air"}} -function gm4_liquid_tanks:smart_item_drain -tag @s add gm4_lt_drain diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/ink_sac.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/ink_sac.mcfunction deleted file mode 100644 index e0ebf8e3c1..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/ink_sac.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_standard_liquids:item_drain -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value 1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"air"}} -function gm4_liquid_tanks:smart_item_drain -tag @s add gm4_lt_drain diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill.mcfunction deleted file mode 100644 index e2b258cef6..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill.mcfunction +++ /dev/null @@ -1,23 +0,0 @@ -#@s = liquid tank with item in first slot -#run from liquid_tanks:item_process - -#buckets -execute if entity @s[tag=gm4_lt_water] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:bucket"}} run function gm4_standard_liquids:item_fill/water_bucket -execute if entity @s[tag=gm4_lt_lava] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:bucket"}} run function gm4_standard_liquids:item_fill/lava_bucket -execute if entity @s[tag=gm4_lt_milk] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:bucket"}} run function gm4_standard_liquids:item_fill/milk_bucket -execute if entity @s[tag=gm4_lt_powder_snow] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:bucket"}} run function gm4_standard_liquids:item_fill/powder_snow_bucket - -#bottles -execute if entity @s[tag=gm4_lt_water] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_standard_liquids:item_fill/water_bottle -execute if entity @s[tag=gm4_lt_experience] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_standard_liquids:item_fill/experience_bottle -execute if entity @s[tag=gm4_lt_honey] if score $stack_size gm4_lt_value matches ..16 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_standard_liquids:item_fill/honey_bottle -execute if entity @s[tag=gm4_lt_ink] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_standard_liquids:item_fill/ink_bottle -execute if entity @s[tag=gm4_lt_glow_ink] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_standard_liquids:item_fill/glow_ink_bottle - -#bowls -execute if entity @s[tag=gm4_lt_mushroom_stew] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:bowl"}} run function gm4_standard_liquids:item_fill/mushroom_stew -execute if entity @s[tag=gm4_lt_rabbit_stew] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:bowl"}} run function gm4_standard_liquids:item_fill/rabbit_stew -execute if entity @s[tag=gm4_lt_beetroot_soup] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:bowl"}} run function gm4_standard_liquids:item_fill/beetroot_soup - -#item frame -execute if entity @s[tag=gm4_lt_glow_ink] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:item_frame"}} run function gm4_standard_liquids:item_fill/glow_item_frame diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/beetroot_soup.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/beetroot_soup.mcfunction deleted file mode 100644 index 65ade0d437..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/beetroot_soup.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_standard_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"beetroot_soup"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/experience_bottle.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/experience_bottle.mcfunction deleted file mode 100644 index b90d5227b9..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/experience_bottle.mcfunction +++ /dev/null @@ -1,9 +0,0 @@ -# run from gm4_standard_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -9 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"experience_bottle"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill - -execute if score $smart_success gm4_lt_value matches 1 run advancement grant @a[distance=..4,gamemode=!spectator] only gm4:standard_liquids diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/glow_ink_bottle.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/glow_ink_bottle.mcfunction deleted file mode 100644 index 7f45fe3a89..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/glow_ink_bottle.mcfunction +++ /dev/null @@ -1,9 +0,0 @@ -# run from gm4_standard_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -loot replace entity @e[type=armor_stand,tag=gm4_liquid_tank_stand,limit=1,sort=nearest,distance=..1] weapon.mainhand loot gm4_standard_liquids:glow_ink_bottle -data modify storage gm4_liquid_tanks:temp/tank output set from entity @e[type=armor_stand,tag=gm4_liquid_tank_stand,limit=1,sort=nearest,distance=..1] equipment.mainhand -item replace entity @e[type=armor_stand,tag=gm4_liquid_tank_stand,limit=1,sort=nearest,distance=..1] weapon.mainhand with air -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/glow_item_frame.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/glow_item_frame.mcfunction deleted file mode 100644 index a5bf654abd..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/glow_item_frame.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_standard_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"glow_item_frame"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/honey_bottle.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/honey_bottle.mcfunction deleted file mode 100644 index ebeddc6d71..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/honey_bottle.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_standard_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"honey_bottle"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/ink_bottle.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/ink_bottle.mcfunction deleted file mode 100644 index 0b6c3c6487..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/ink_bottle.mcfunction +++ /dev/null @@ -1,9 +0,0 @@ -# run from gm4_standard_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -loot replace entity @e[type=armor_stand,tag=gm4_liquid_tank_stand,limit=1,sort=nearest,distance=..1] weapon.mainhand loot gm4_standard_liquids:ink_bottle -data modify storage gm4_liquid_tanks:temp/tank output set from entity @e[type=armor_stand,tag=gm4_liquid_tank_stand,limit=1,sort=nearest,distance=..1] equipment.mainhand -item replace entity @e[type=armor_stand,tag=gm4_liquid_tank_stand,limit=1,sort=nearest,distance=..1] weapon.mainhand with air -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/lava_bucket.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/lava_bucket.mcfunction deleted file mode 100644 index 5f2b34d94b..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/lava_bucket.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_standard_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -3 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"lava_bucket"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/milk_bucket.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/milk_bucket.mcfunction deleted file mode 100644 index e15ab15d8e..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/milk_bucket.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_standard_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -3 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"milk_bucket"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/mushroom_stew.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/mushroom_stew.mcfunction deleted file mode 100644 index fd456515c6..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/mushroom_stew.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_standard_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"mushroom_stew"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/powder_snow_bucket.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/powder_snow_bucket.mcfunction deleted file mode 100644 index 7180be3b72..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/powder_snow_bucket.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_standard_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -3 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"powder_snow_bucket"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/rabbit_stew.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/rabbit_stew.mcfunction deleted file mode 100644 index 3e6fd9dbab..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/rabbit_stew.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_standard_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"rabbit_stew"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/water_bottle.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/water_bottle.mcfunction deleted file mode 100644 index dd8ff5c751..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/water_bottle.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_standard_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:water"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/water_bucket.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/water_bucket.mcfunction deleted file mode 100644 index f08c44825c..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/water_bucket.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_standard_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -3 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"water_bucket"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/level_report/experience.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/level_report/experience.mcfunction index 8d06efdd6d..5d4a342b6d 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/level_report/experience.mcfunction +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/level_report/experience.mcfunction @@ -5,40 +5,17 @@ scoreboard players operation gm4_lt_report_calc gm4_lt_value = @e[type=marker,tag=gm4_liquid_tank,distance=..0.1,limit=1] gm4_lt_value #values hardcoded -execute if score gm4_lt_report_calc gm4_lt_value matches 0..6 run title @s actionbar [{"text":"0 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 7..15 run title @s actionbar [{"text":"1 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 16..26 run title @s actionbar [{"text":"2 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 27..39 run title @s actionbar [{"text":"3 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 40..54 run title @s actionbar [{"text":"4 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 55..71 run title @s actionbar [{"text":"5 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 72..90 run title @s actionbar [{"text":"6 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 91..111 run title @s actionbar [{"text":"7 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 112..134 run title @s actionbar [{"text":"8 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 135..159 run title @s actionbar [{"text":"9 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 160..186 run title @s actionbar [{"text":"10 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] - -execute if score gm4_lt_report_calc gm4_lt_value matches 187..215 run title @s actionbar [{"text":"11 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 216..246 run title @s actionbar [{"text":"12 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 247..279 run title @s actionbar [{"text":"13 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 280..314 run title @s actionbar [{"text":"14 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 315..351 run title @s actionbar [{"text":"15 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 352..393 run title @s actionbar [{"text":"16 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 394..440 run title @s actionbar [{"text":"17 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 441..492 run title @s actionbar [{"text":"18 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 493..549 run title @s actionbar [{"text":"19 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 550..611 run title @s actionbar [{"text":"20 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] - -execute if score gm4_lt_report_calc gm4_lt_value matches 612..678 run title @s actionbar [{"text":"21 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 679..750 run title @s actionbar [{"text":"22 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 751..827 run title @s actionbar [{"text":"23 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 828..909 run title @s actionbar [{"text":"24 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 910..996 run title @s actionbar [{"text":"25 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 997..1088 run title @s actionbar [{"text":"26 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 1089..1185 run title @s actionbar [{"text":"27 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 1186..1287 run title @s actionbar [{"text":"28 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 1288..1394 run title @s actionbar [{"text":"29 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 1395.. run title @s actionbar [{"text":"30 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] - +# 0-15 formula +prior_points = 0 +for lvl in range(1,52): + if lvl <= 16: + current_points = lvl**2 + 6*lvl + elif lvl <= 31: + current_points = 2.5*lvl**2 - 40.5*lvl + 360 + else: + current_points = 4.5*lvl**2 - 162.5*lvl + 2220 + execute if score gm4_lt_report_calc gm4_lt_value matches (int(prior_points), int(current_points-1)) run title @s actionbar [{"text":f"{lvl-1} / 50 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] + prior_points = current_points scoreboard players reset gm4_lt_report_calc gm4_lt_value tag @s add gm4_lt_found_tank diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/level_report_check.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/level_report_check.mcfunction index d1934ade9b..bd4214705d 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/level_report_check.mcfunction +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/level_report_check.mcfunction @@ -10,8 +10,8 @@ execute if score @e[type=marker,tag=gm4_liquid_tank,distance=..0.1,limit=1] gm4_ #actual max of 400 execute if score @e[type=marker,tag=gm4_liquid_tank,distance=..0.1,limit=1] gm4_lt_max matches 400 run function gm4_standard_liquids:level_report/400 -#max 1395 (xp) -execute if score @e[type=marker,tag=gm4_liquid_tank,distance=..0.1,limit=1] gm4_lt_max matches 1395 run function gm4_standard_liquids:level_report/experience +#max 5345 (xp) +execute if score @e[type=marker,tag=gm4_liquid_tank,distance=..0.1,limit=1] gm4_lt_max matches 5345 run function gm4_standard_liquids:level_report/experience #linking of util tanks to adjacent blocks diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/beetroot_soup.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/beetroot_soup.mcfunction deleted file mode 100644 index 451cf81476..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/beetroot_soup.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.beetroot_soup","fallback":"Beetroot Soup Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.beetroot_soup","fallback":"Beetroot Soup Tank","font":"gm4:default","color":"#404040"}]]}} -summon armor_stand ~ ~-.95 ~ {CustomName:"gm4_liquid_tank_display",Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{id:"player_head",count:1,components:{"minecraft:profile":"$gm4_standard_liquids:liquids/beetroot_soup"}}}} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_beetroot_soup" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_beetroot_soup -tag @s remove gm4_lt_empty diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/experience.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/experience.mcfunction deleted file mode 100644 index 30b5c758df..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/experience.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.experience","fallback":"Experience Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.experience","fallback":"Experience Tank","font":"gm4:default","color":"#404040"}]]}} -summon armor_stand ~ ~-.95 ~ {CustomName:"gm4_liquid_tank_display",Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{id:"player_head",count:1,components:{"minecraft:profile":"$gm4_standard_liquids:liquids/experience"}}}} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_experience" -scoreboard players set @s gm4_lt_max 1395 -tag @s add gm4_lt_experience -tag @s remove gm4_lt_empty diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/glow_ink.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/glow_ink.mcfunction deleted file mode 100644 index 0db200893e..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/glow_ink.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.glow_ink","fallback":"Glow Ink Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.glow_ink","fallback":"Glow Ink Tank","font":"gm4:default","color":"#404040"}]]}} -summon armor_stand ~ ~-.95 ~ {CustomName:"gm4_liquid_tank_display",Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{id:"player_head",count:1,components:{"minecraft:profile":"$gm4_standard_liquids:liquids/glow_ink"}}}} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_glow_ink" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_glow_ink -tag @s remove gm4_lt_empty diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/honey.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/honey.mcfunction deleted file mode 100644 index 0f20035460..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/honey.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.honey","fallback":"Honey Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.honey","fallback":"Honey Tank","font":"gm4:default","color":"#404040"}]]}} -summon armor_stand ~ ~-.95 ~ {CustomName:"gm4_liquid_tank_display",Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{id:"player_head",count:1,components:{"minecraft:profile":"$gm4_standard_liquids:liquids/honey"}}}} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_honey" -scoreboard players set @s gm4_lt_max 400 -tag @s add gm4_lt_honey -tag @s remove gm4_lt_empty diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/ink.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/ink.mcfunction deleted file mode 100644 index 375ac63752..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/ink.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.ink","fallback":"Ink Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.ink","fallback":"Ink Tank","font":"gm4:default","color":"#404040"}]]}} -summon armor_stand ~ ~-.95 ~ {CustomName:"gm4_liquid_tank_display",Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{id:"player_head",count:1,components:{"minecraft:profile":"$gm4_standard_liquids:liquids/ink"}}}} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_ink" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_ink -tag @s remove gm4_lt_empty diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/lava.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/lava.mcfunction deleted file mode 100644 index 32710e966b..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/lava.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.lava","fallback":"Lava Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.lava","fallback":"Lava Tank","font":"gm4:default","color":"#404040"}]]}} -summon armor_stand ~ ~-.95 ~ {CustomName:"gm4_liquid_tank_display",Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{id:"player_head",count:1,components:{"minecraft:profile":"$gm4_standard_liquids:liquids/lava"}}}} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_lava" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_lava -tag @s remove gm4_lt_empty diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/milk.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/milk.mcfunction deleted file mode 100644 index 4fa78ee487..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/milk.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.milk","fallback":"Milk Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.milk","fallback":"Milk Tank","font":"gm4:default","color":"#404040"}]]}} -summon armor_stand ~ ~-.95 ~ {CustomName:"gm4_liquid_tank_display",Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{id:"player_head",count:1,components:{"minecraft:profile":"$gm4_standard_liquids:liquids/milk"}}}} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_milk" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_milk -tag @s remove gm4_lt_empty diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/mushroom_stew.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/mushroom_stew.mcfunction deleted file mode 100644 index 258e3de03d..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/mushroom_stew.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.mushroom_stew","fallback":"Mushroom Stew Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.mushroom_stew","fallback":"Mushroom Stew Tank","font":"gm4:default","color":"#404040"}]]}} -summon armor_stand ~ ~-.95 ~ {CustomName:"gm4_liquid_tank_display",Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{id:"player_head",count:1,components:{"minecraft:profile":"$gm4_standard_liquids:liquids/mushroom_stew"}}}} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_mushroom_stew" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_mushroom_stew -tag @s remove gm4_lt_empty diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/powder_snow.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/powder_snow.mcfunction deleted file mode 100644 index 94a21f64a4..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/powder_snow.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.powder_snow","fallback":"Powder Snow Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.powder_snow","fallback":"Powder Snow Tank","font":"gm4:default","color":"#404040"}]]}} -summon armor_stand ~ ~-.95 ~ {CustomName:"gm4_liquid_tank_display",Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{id:"player_head",count:1,components:{"minecraft:profile":"$gm4_standard_liquids:liquids/powder_snow"}}}} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_powder_snow" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_powder_snow -tag @s remove gm4_lt_empty diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/rabbit_stew.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/rabbit_stew.mcfunction deleted file mode 100644 index 8bf5afe15a..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/rabbit_stew.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.rabbit_stew","fallback":"Rabbit Stew Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.rabbit_stew","fallback":"Rabbit Stew Tank","font":"gm4:default","color":"#404040"}]]}} -summon armor_stand ~ ~-.95 ~ {CustomName:"gm4_liquid_tank_display",Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{id:"player_head",count:1,components:{"minecraft:profile":"$gm4_standard_liquids:liquids/rabbit_stew"}}}} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_rabbit_stew" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_rabbit_stew -tag @s remove gm4_lt_empty diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/water.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/water.mcfunction deleted file mode 100644 index 341586d6ee..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/water.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.water","fallback":"Water Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.water","fallback":"Water Tank","font":"gm4:default","color":"#404040"}]]}} -summon armor_stand ~ ~-.95 ~ {CustomName:"gm4_liquid_tank_display",Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{id:"player_head",count:1,components:{"minecraft:profile":"$gm4_standard_liquids:liquids/water"}}}} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_water" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_water -tag @s remove gm4_lt_empty diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/remove_liquid_tags.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/remove_liquid_tags.mcfunction deleted file mode 100644 index 3f835f0154..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/remove_liquid_tags.mcfunction +++ /dev/null @@ -1,14 +0,0 @@ -#@s = liquid tank stand -# removes all liquid tags from the stand. Used for emptying tank and reassigning liquid type - -tag @s remove gm4_lt_beetroot_soup -tag @s remove gm4_lt_experience -tag @s remove gm4_lt_lava -tag @s remove gm4_lt_milk -tag @s remove gm4_lt_mushroom_stew -tag @s remove gm4_lt_rabbit_stew -tag @s remove gm4_lt_water -tag @s remove gm4_lt_honey -tag @s remove gm4_lt_powder_snow -tag @s remove gm4_lt_ink -tag @s remove gm4_lt_glow_ink diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/tank_init.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/tank_init.mcfunction deleted file mode 100644 index 64f90d70b7..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/tank_init.mcfunction +++ /dev/null @@ -1,42 +0,0 @@ -#@s = empty liquid tank with item in first slot or entity on top -#run from liquid_tanks:item_process - -#water -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:water_bucket"}} run function gm4_standard_liquids:liquid_init/water -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:water"}}}} run function gm4_standard_liquids:liquid_init/water - -#lava -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:lava_bucket"}} run function gm4_standard_liquids:liquid_init/lava - -#milk -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:milk_bucket"}} run function gm4_standard_liquids:liquid_init/milk - -#mushroom stew -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:mushroom_stew"}} run function gm4_standard_liquids:liquid_init/mushroom_stew - -#rabbit stew -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:rabbit_stew"}} run function gm4_standard_liquids:liquid_init/rabbit_stew - -#beetroot soup -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:beetroot_soup"}} run function gm4_standard_liquids:liquid_init/beetroot_soup -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:beetroot"}} run function gm4_standard_liquids:liquid_init/beetroot_soup - -#experience -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:experience_bottle"}} run function gm4_standard_liquids:liquid_init/experience -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:enchanted_book"}} run function gm4_standard_liquids:liquid_init/experience - -#honey -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:honey_bottle"}} run function gm4_standard_liquids:liquid_init/honey -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:honey_block"}} run function gm4_standard_liquids:liquid_init/honey - -#powder snow -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:powder_snow_bucket"}} run function gm4_standard_liquids:liquid_init/powder_snow - -#ink -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:ink_sac"}} run function gm4_standard_liquids:liquid_init/ink -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:custom_data":{gm4_standard_liquids:{potion:"blindness"}}}}} run function gm4_standard_liquids:liquid_init/ink - - -#glow ink -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glow_ink_sac"}} run function gm4_standard_liquids:liquid_init/glow_ink -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:custom_data":{gm4_standard_liquids:{potion:"glowing"}}}}} run function gm4_standard_liquids:liquid_init/glow_ink diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/deposit_experience.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/deposit_experience.mcfunction deleted file mode 100644 index 171d9f86af..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/deposit_experience.mcfunction +++ /dev/null @@ -1,16 +0,0 @@ -#@s = player above experience tank at center of tank -#run from standard_liquids:tick - -#dumps experience from player into tank -execute store result score @s gm4_lt_util run experience query @s points -execute if score @s gm4_lt_util matches 0 if entity @s[level=1..] run scoreboard players set @s gm4_lt_util 5 - -execute if score @s gm4_lt_util matches 4.. if score @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.5] gm4_lt_value matches ..1390 run experience add @s -4 points -execute if score @s gm4_lt_util matches 4.. if score @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.5] gm4_lt_value matches ..1390 run scoreboard players add @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.5] gm4_lt_value 4 - -execute if score @s gm4_lt_util matches 1.. run experience add @s -1 points -execute if score @s gm4_lt_util matches 1.. run scoreboard players add @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.5] gm4_lt_value 1 - -function #gm4_liquid_tanks:level_report_check - -execute as @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.5] unless score @s gm4_lt_prior_val = @s gm4_lt_value run function gm4_liquid_tanks:liquid_value_update diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/deposit_levels.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/deposit_levels.mcfunction new file mode 100644 index 0000000000..fea22791a6 --- /dev/null +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/deposit_levels.mcfunction @@ -0,0 +1,8 @@ +#@s = player above experience tank at center of tank +#run from standard_liquids:util/experience/scheduled_deposit + +execute unless score @s gm4_lt_util matches 0.. run scoreboard players set @s gm4_lt_util 16 + +scoreboard players remove @s gm4_lt_util 1 + +execute if score @s gm4_lt_util matches ..0 run function gm4_standard_liquids:util/experience/deposit_one_level diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/deposit_one_level.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/deposit_one_level.mcfunction new file mode 100644 index 0000000000..7159a2ed74 --- /dev/null +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/deposit_one_level.mcfunction @@ -0,0 +1,44 @@ +#@s = player above experience tank at center of tank +#run from standard_liquids:util/experience/deposit_levels + +# calculate points to remove one level +execute store result score $points gm4_lt_util run experience query @s points +execute store result score $levels gm4_lt_util run experience query @s levels + +scoreboard players set #2 gm4_lt_util 2 +scoreboard players set #5 gm4_lt_util 5 +scoreboard players set #9 gm4_lt_util 9 + +scoreboard players operation $level_calc gm4_lt_util = $levels gm4_lt_util +execute unless score $levels gm4_lt_util matches 0 run scoreboard players remove $level_calc gm4_lt_util 1 +execute if score $points gm4_lt_util matches 1.. run scoreboard players operation $level_calc gm4_lt_util = $points gm4_lt_util +execute if score $points gm4_lt_util matches 0 if score $levels gm4_lt_util matches 1..15 run scoreboard players operation $level_calc gm4_lt_util *= #2 gm4_lt_util +execute if score $points gm4_lt_util matches 0 if score $levels gm4_lt_util matches 1..15 run scoreboard players add $level_calc gm4_lt_util 7 +execute if score $points gm4_lt_util matches 0 if score $levels gm4_lt_util matches 16..30 run scoreboard players operation $level_calc gm4_lt_util *= #5 gm4_lt_util +execute if score $points gm4_lt_util matches 0 if score $levels gm4_lt_util matches 16..30 run scoreboard players remove $level_calc gm4_lt_util 38 +execute if score $points gm4_lt_util matches 0 if score $levels gm4_lt_util matches 31.. run scoreboard players operation $level_calc gm4_lt_util *= #9 gm4_lt_util +execute if score $points gm4_lt_util matches 0 if score $levels gm4_lt_util matches 31.. run scoreboard players remove $level_calc gm4_lt_util 158 + +# decrease points to whatever will fit into the tank +scoreboard players set $overflow_calc gm4_lt_util 5345 +scoreboard players operation $overflow_calc gm4_lt_util -= @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.5] gm4_lt_value +scoreboard players operation $level_calc gm4_lt_util < $overflow_calc gm4_lt_util + +# add points to tank and remove from player +scoreboard players operation @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.5] gm4_lt_value += $level_calc gm4_lt_util +scoreboard players set #-1 gm4_lt_util -1 +scoreboard players operation $level_calc gm4_lt_util *= #-1 gm4_lt_util +execute store result storage gm4_liquid_tanks:temp exp.points int 1.0 run scoreboard players get $level_calc gm4_lt_util +function gm4_standard_liquids:util/experience/macro_experience with storage gm4_liquid_tanks:temp exp +execute as @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.5] unless score @s gm4_lt_prior_val = @s gm4_lt_value run function gm4_liquid_tanks:liquid_value_update + +# vfx +execute unless score $level_calc gm4_lt_util matches 0 playsound minecraft:entity.experience_orb.pickup block @s +function #gm4_liquid_tanks:level_report_check + +# reset accelerating clock +scoreboard players add @s gm4_lt_value 1 +execute if score @s gm4_lt_value matches 1..4 run scoreboard players set @s gm4_lt_util 16 +execute if score @s gm4_lt_value matches 5..10 run scoreboard players set @s gm4_lt_util 12 +execute if score @s gm4_lt_value matches 11..18 run scoreboard players set @s gm4_lt_util 8 +execute if score @s gm4_lt_value matches 19.. run scoreboard players set @s gm4_lt_util 4 diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/deposit_points.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/deposit_points.mcfunction new file mode 100644 index 0000000000..a96acfdbdf --- /dev/null +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/deposit_points.mcfunction @@ -0,0 +1,16 @@ +#@s = player above experience tank at center of tank +#run from standard_liquids:tick + +#dumps 5 (or 1) points of experience from player into tank +execute store result score $available_points gm4_lt_util run experience query @s points +execute if score $available_points gm4_lt_util matches 0 if entity @s[level=1..] run scoreboard players set $available_points gm4_lt_util 5 + +execute if score $available_points gm4_lt_util matches 4.. if score @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.5] gm4_lt_value matches ..5340 run experience add @s -4 points +execute if score $available_points gm4_lt_util matches 4.. if score @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.5] gm4_lt_value matches ..5340 run scoreboard players add @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.5] gm4_lt_value 4 + +execute if score $available_points gm4_lt_util matches 1.. run experience add @s -1 points +execute if score $available_points gm4_lt_util matches 1.. run scoreboard players add @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.5] gm4_lt_value 1 + +function #gm4_liquid_tanks:level_report_check + +execute as @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.5] unless score @s gm4_lt_prior_val = @s gm4_lt_value run function gm4_liquid_tanks:liquid_value_update diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/macro_experience.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/macro_experience.mcfunction new file mode 100644 index 0000000000..9649043a4f --- /dev/null +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/macro_experience.mcfunction @@ -0,0 +1,3 @@ +# macro-function to add/remove a dynamic number of experience points +# run from util/experience/deposit_one_level, util/experience/withdraw_one_level +$experience add @s $(points) points diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/scheduled_deposit.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/scheduled_deposit.mcfunction new file mode 100644 index 0000000000..30ce6e97d4 --- /dev/null +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/scheduled_deposit.mcfunction @@ -0,0 +1,16 @@ +# scheduled from standard_liquids:util_above + +# initialize empty tanks +execute as @a[gamemode=!spectator,level=1..] at @s if block ~ ~-0.4 ~ hopper[enabled=true] positioned ~ ~-0.4 ~ align xyz positioned ~0.5 ~0.5 ~0.5 as @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.5,tag=gm4_lt_empty] run function gm4_standard_liquids:liquid_init/experience + +# non-sneaking deposits points +execute as @a[gamemode=!spectator,predicate=!gm4_standard_liquids:sneaking] at @s if block ~ ~-0.4 ~ hopper[enabled=true] positioned ~ ~-0.4 ~ align xyz positioned ~0.5 ~0.5 ~0.5 if score @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.5,tag=gm4_lt_experience] gm4_lt_value matches ..5344 run function gm4_standard_liquids:util/experience/deposit_points + +# sneaking deposits levels +scoreboard players reset @a[gamemode=!spectator,predicate=!gm4_standard_liquids:sneaking] gm4_lt_value +scoreboard players reset @a[gamemode=!spectator,predicate=!gm4_standard_liquids:sneaking] gm4_lt_util +execute as @a[gamemode=!spectator,predicate=gm4_standard_liquids:sneaking] at @s if block ~ ~-0.4 ~ hopper[enabled=true] positioned ~ ~-0.4 ~ align xyz positioned ~0.5 ~0.5 ~0.5 if score @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.5,tag=gm4_lt_experience] gm4_lt_value matches ..5344 run function gm4_standard_liquids:util/experience/deposit_levels + + +scoreboard players set $schedule_deposit_exp gm4_lt_util 2 +schedule function gm4_standard_liquids:util/experience/scheduled_deposit 1t diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/scheduled_withdraw.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/scheduled_withdraw.mcfunction new file mode 100644 index 0000000000..f469457228 --- /dev/null +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/scheduled_withdraw.mcfunction @@ -0,0 +1,12 @@ +# scheduled from standard_liquids:util_below + +# non-sneaking retrieves points +execute as @e[type=marker,tag=gm4_liquid_tank,tag=gm4_lt_experience] at @s if block ~ ~ ~ hopper[enabled=true] positioned ~ ~-2.5 ~ if entity @a[distance=..0.5,gamemode=!spectator,predicate=!gm4_standard_liquids:sneaking] if score @s gm4_lt_value matches 1.. run function gm4_standard_liquids:util/experience/withdraw_points + +# sneaking retrieves levels +scoreboard players reset @a[gamemode=!spectator,predicate=!gm4_standard_liquids:sneaking] gm4_lt_value +scoreboard players reset @a[gamemode=!spectator,predicate=!gm4_standard_liquids:sneaking] gm4_lt_util +execute as @e[type=marker,tag=gm4_liquid_tank,tag=gm4_lt_experience] at @s if block ~ ~ ~ hopper[enabled=true] positioned ~ ~-2.5 ~ if score @s gm4_lt_value matches 1.. as @a[distance=..0.5,gamemode=!spectator,predicate=gm4_standard_liquids:sneaking,limit=1] positioned ~ ~2.5 ~ run function gm4_standard_liquids:util/experience/withdraw_levels + +scoreboard players set $schedule_withdraw_exp gm4_lt_util 2 +schedule function gm4_standard_liquids:util/experience/scheduled_withdraw 1t diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/withdraw_levels.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/withdraw_levels.mcfunction new file mode 100644 index 0000000000..b4ac5a8d53 --- /dev/null +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/withdraw_levels.mcfunction @@ -0,0 +1,8 @@ +#@s = player below experience tank at center of tank +#run from standard_liquids:util/experience/scheduled_withdraw + +execute unless score @s gm4_lt_util matches 0.. run scoreboard players set @s gm4_lt_util 16 + +scoreboard players remove @s gm4_lt_util 1 + +execute if score @s gm4_lt_util matches ..0 run function gm4_standard_liquids:util/experience/withdraw_one_level diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/withdraw_one_level.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/withdraw_one_level.mcfunction new file mode 100644 index 0000000000..325a81a2f9 --- /dev/null +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/withdraw_one_level.mcfunction @@ -0,0 +1,47 @@ +#@s = player below experience tank at center of tank +#run from standard_liquids:util/experience/deposit_levels + +# calculate points to add one level +execute store result score $points gm4_lt_util run experience query @s points +execute store result score $levels gm4_lt_util run experience query @s levels + +scoreboard players set #2 gm4_lt_util 2 +scoreboard players set #5 gm4_lt_util 5 +scoreboard players set #9 gm4_lt_util 9 + +scoreboard players operation $level_calc gm4_lt_util = $levels gm4_lt_util +execute if score $levels gm4_lt_util matches 0..15 run scoreboard players operation $level_calc gm4_lt_util *= #2 gm4_lt_util +execute if score $levels gm4_lt_util matches 0..15 run scoreboard players add $level_calc gm4_lt_util 7 +execute if score $levels gm4_lt_util matches 16..30 run scoreboard players operation $level_calc gm4_lt_util *= #5 gm4_lt_util +execute if score $levels gm4_lt_util matches 16..30 run scoreboard players remove $level_calc gm4_lt_util 38 +execute if score $levels gm4_lt_util matches 31.. run scoreboard players operation $level_calc gm4_lt_util *= #9 gm4_lt_util +execute if score $levels gm4_lt_util matches 31.. run scoreboard players remove $level_calc gm4_lt_util 158 +scoreboard players operation $level_calc gm4_lt_util -= $points gm4_lt_util + +# decrease points to not take more than tank has +scoreboard players operation $level_calc gm4_lt_util < @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.5] gm4_lt_value + +# remove points from tank and add to player +scoreboard players operation @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.5] gm4_lt_value -= $level_calc gm4_lt_util +execute store result storage gm4_liquid_tanks:temp exp.points int 1.0 run scoreboard players get $level_calc gm4_lt_util +function gm4_standard_liquids:util/experience/macro_experience with storage gm4_liquid_tanks:temp exp +execute as @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.5] unless score @s gm4_lt_prior_val = @s gm4_lt_value run function gm4_liquid_tanks:liquid_value_update + +# vfx +execute unless score $level_calc gm4_lt_util matches 0 playsound minecraft:entity.experience_orb.pickup block @s +from itertools import product, count +c = count(0) +for offset in product([0, -0.05, 0.05], repeat=2): +# summons 5 xp orbs at different locations, for a "bigger" looking withdrawl + if 0 not in offset: + continue + dx, dz = offset + execute unless score $level_calc gm4_lt_util matches 0 run summon experience_orb ~dx ~-0.6 ~dz {Age:(5994-next(c)),Value:0} +function #gm4_liquid_tanks:level_report_check + +# reset accelerating clock +scoreboard players add @s gm4_lt_value 1 +execute if score @s gm4_lt_value matches 1..4 run scoreboard players set @s gm4_lt_util 16 +execute if score @s gm4_lt_value matches 5..10 run scoreboard players set @s gm4_lt_util 12 +execute if score @s gm4_lt_value matches 11..18 run scoreboard players set @s gm4_lt_util 8 +execute if score @s gm4_lt_value matches 19.. run scoreboard players set @s gm4_lt_util 4 diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/withdraw_experience.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/withdraw_points.mcfunction similarity index 65% rename from gm4_liquid_tanks/data/gm4_standard_liquids/function/util/withdraw_experience.mcfunction rename to gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/withdraw_points.mcfunction index 08adde3543..31c446b48f 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/withdraw_experience.mcfunction +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/withdraw_points.mcfunction @@ -1,14 +1,14 @@ -#@s = tank with player below it positioned ~ ~-2 ~ +#@s = tank with player below it positioned ~ ~-2.5 ~ #run from standard_liquids:tick -execute if score @s gm4_lt_value matches 4.. run experience add @a[distance=..0.5,limit=1,gamemode=!spectator] 4 +execute if score @s gm4_lt_value matches 4.. run experience add @a[distance=..0.5,limit=1,gamemode=!spectator,predicate=!gm4_standard_liquids:sneaking] 4 execute if score @s gm4_lt_value matches 4.. run scoreboard players remove @s gm4_lt_value 4 -execute if score @s gm4_lt_value matches 1.. run experience add @a[distance=..0.5,limit=1,gamemode=!spectator] 1 +execute if score @s gm4_lt_value matches 1.. run experience add @a[distance=..0.5,limit=1,gamemode=!spectator,predicate=!gm4_standard_liquids:sneaking] 1 execute if score @s gm4_lt_value matches 1.. run scoreboard players remove @s gm4_lt_value 1 execute if score @s gm4_lt_value matches 1.. run summon experience_orb ~ ~1.8 ~ {Age:5995,Value:0} -execute as @a[distance=..0.5,limit=1,gamemode=!spectator] positioned ~ ~2 ~ run function #gm4_liquid_tanks:level_report_check +execute as @a[distance=..0.5,limit=1,gamemode=!spectator] positioned ~ ~2.5 ~ align xyz positioned ~0.5 ~0.5 ~0.5 run function #gm4_liquid_tanks:level_report_check execute unless score @s gm4_lt_prior_val = @s gm4_lt_value run function gm4_liquid_tanks:liquid_value_update diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/honey_casting/honey_cauldron.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/honey_casting/honey_cauldron.mcfunction index b66ad24aa8..954a3b5f37 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/honey_casting/honey_cauldron.mcfunction +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/honey_casting/honey_cauldron.mcfunction @@ -2,7 +2,20 @@ #run from standard_liquids:util_above execute if score @s gm4_lt_util matches 4.. run scoreboard players remove @s gm4_lt_value 4 -execute if score @s gm4_lt_util matches 4.. run summon armor_stand ~0.5 ~ ~0.5 {Marker:1b,Invisible:1b,Invulnerable:1b,NoGravity:1b,Silent:1b,Fire:4000s,Tags:["gm4_lt_honey_display","gm4_no_edit"],CustomName:"gm4_lt_honey_display",Pose:{Head:[180.0f,0.0f,0.0f]},equipment:{head:{id:"minecraft:honey_block",count:1,components:{"minecraft:custom_model_data":"block/cast_honey_block"}}},DisabledSlots:4144959} +execute if score @s gm4_lt_util matches 4.. run summon item_display ~0.5 ~ ~0.5 : + Tags:["gm4_lt_honey_display","gm4_no_edit"] + CustomName:"gm4_lt_honey_display" + item: + id: "minecraft:honey_block" + count: 1 + components: {"minecraft:custom_model_data":"block/cast_honey_block"} + transformation: + left_rotation: [0,0,0,1] + right_rotation: [0,0,0,1] + scale: [0.9,0.01,0.9] + translation: [0.0,0.2,0.0] + teleport_duration: 4 + execute if score @s gm4_lt_util matches 4.. run playsound block.honey_block.slide block @a[distance=..10] ~ ~ ~ 1 0.5 execute if score @s gm4_lt_util matches 4.. run scoreboard players remove @s gm4_lt_util 4 diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/honey_casting/honey_rise.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/honey_casting/honey_rise.mcfunction index 69c3956258..e6abe69947 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/honey_casting/honey_rise.mcfunction +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/honey_casting/honey_rise.mcfunction @@ -1,9 +1,9 @@ #@s = gm4_honey_display #run from standard_liquids:util/honey_casting/scheduled_honey_rise -teleport @s ~ ~0.0375 ~ scoreboard players add @s gm4_lt_util 1 +execute if score @s gm4_lt_util matches ..12 run teleport @s ~ ~0.060 ~ -execute unless block ~ ~1.2 ~ #minecraft:cauldrons run kill @s +execute unless block ~ ~ ~ #minecraft:cauldrons run kill @s execute if score @s gm4_lt_util matches 16.. run function gm4_standard_liquids:util/honey_casting/honey_stop diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/honey_casting/honey_stop.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/honey_casting/honey_stop.mcfunction index 29dfe44f6b..cc25cd7ce1 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/honey_casting/honey_stop.mcfunction +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/honey_casting/honey_stop.mcfunction @@ -1,8 +1,8 @@ #@s = gm4_lt_honey_display #run from standard_liquids:util/honey_casting/honey_rise -summon item ~ ~1 ~ {Item:{id:"honey_block",count:1}} +summon item ~ ~ ~ {Item:{id:"honey_block",count:1}} playsound block.honey_block.place block @a[distance=..10] kill @s -execute unless entity @e[type=armor_stand,tag=gm4_lt_honey_display,limit=1] run schedule clear gm4_standard_liquids:util/honey_casting/honey_rise +execute unless entity @e[type=item_display,tag=gm4_lt_honey_display,limit=1] run schedule clear gm4_standard_liquids:util/honey_casting/honey_rise diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/honey_casting/honey_tank.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/honey_casting/honey_tank.mcfunction index 0dba2d3226..1fabce01a1 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/honey_casting/honey_tank.mcfunction +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/honey_casting/honey_tank.mcfunction @@ -3,4 +3,4 @@ execute at @e[type=area_effect_cloud,tag=gm4_lt_util_block,tag=gm4_ltu_cauldron,dx=0] run scoreboard players add @s gm4_lt_util 4 scoreboard players operation @s gm4_lt_util < @s gm4_lt_value -execute at @e[type=area_effect_cloud,tag=gm4_lt_util_block,tag=gm4_ltu_cauldron,dx=0,limit=4] positioned ^ ^-1 ^1 if block ~ ~ ~ minecraft:cauldron align xz positioned ~ ~-1.1 ~ unless entity @e[type=armor_stand,tag=gm4_lt_honey_display,dx=0] run function gm4_standard_liquids:util/honey_casting/honey_cauldron +execute at @e[type=area_effect_cloud,tag=gm4_lt_util_block,tag=gm4_ltu_cauldron,dx=0,limit=4] positioned ^ ^-1 ^1 if block ~ ~ ~ minecraft:cauldron align xz unless entity @e[type=item_display,tag=gm4_lt_honey_display,dx=0] run function gm4_standard_liquids:util/honey_casting/honey_cauldron diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/honey_casting/scheduled_honey_rise.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/honey_casting/scheduled_honey_rise.mcfunction index 70dcad5a36..fcd266a3aa 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/honey_casting/scheduled_honey_rise.mcfunction +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/honey_casting/scheduled_honey_rise.mcfunction @@ -1,6 +1,6 @@ #@s = server #scheduled from standard_liquids:util/honey_casting/honey_cauldron and self -execute as @e[type=armor_stand,tag=gm4_lt_honey_display] at @s run function gm4_standard_liquids:util/honey_casting/honey_rise +execute as @e[type=item_display,tag=gm4_lt_honey_display] at @s run function gm4_standard_liquids:util/honey_casting/honey_rise schedule function gm4_standard_liquids:util/honey_casting/scheduled_honey_rise 4t diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/scheduled_deposit_exp.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/scheduled_deposit_exp.mcfunction deleted file mode 100644 index 2b55498ff2..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/scheduled_deposit_exp.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# scheduled from standard_liquids:util_above - -execute as @a[gamemode=!spectator,level=1..] at @s if block ~ ~-0.4 ~ hopper[enabled=true] positioned ~ ~-0.4 ~ align xyz positioned ~0.5 ~0.5 ~0.5 as @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.5,tag=gm4_lt_empty] run function gm4_standard_liquids:liquid_init/experience -execute as @a[gamemode=!spectator] at @s if block ~ ~-0.4 ~ hopper[enabled=true] positioned ~ ~-0.4 ~ align xyz positioned ~0.5 ~0.5 ~0.5 if score @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.5,tag=gm4_lt_experience] gm4_lt_value matches ..1394 run function gm4_standard_liquids:util/deposit_experience -scoreboard players set $schedule_deposit_exp gm4_lt_util 2 - -schedule function gm4_standard_liquids:util/scheduled_deposit_exp 1t diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/scheduled_withdraw_exp.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/scheduled_withdraw_exp.mcfunction deleted file mode 100644 index d920f9f506..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/scheduled_withdraw_exp.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -# scheduled from standard_liquids:util_below - -execute as @e[type=marker,tag=gm4_liquid_tank,tag=gm4_lt_experience] at @s if block ~ ~ ~ hopper[enabled=true] positioned ~ ~-2.5 ~ if entity @a[distance=..0.5,gamemode=!spectator] if score @s gm4_lt_value matches 1.. run function gm4_standard_liquids:util/withdraw_experience -scoreboard players set $schedule_withdraw_exp gm4_lt_util 2 - -schedule function gm4_standard_liquids:util/scheduled_withdraw_exp 1t diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util_above.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util_above.mcfunction index f7cda9b8ef..d0b307a164 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util_above.mcfunction +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util_above.mcfunction @@ -18,12 +18,12 @@ execute as @e[dx=0,type=glow_squid,tag=!smithed.entity] run function gm4_standar #experience orb execute positioned ~0.5 ~ ~0.5 if entity @e[distance=..0.5,type=experience_orb] if score @s[tag=gm4_lt_empty] gm4_lt_value matches 0 at @s run function gm4_standard_liquids:liquid_init/experience -execute positioned ~0.5 ~ ~0.5 if score @s[tag=gm4_lt_experience] gm4_lt_value matches ..1394 as @e[distance=..0.5,type=experience_orb] run function gm4_standard_liquids:util/experience_orb +execute positioned ~0.5 ~ ~0.5 if score @s[tag=gm4_lt_experience] gm4_lt_value matches ..5344 as @e[distance=..0.5,type=experience_orb] run function gm4_standard_liquids:util/experience_orb #player depositing experience -execute if score $schedule_deposit_exp gm4_lt_util matches 2.. run schedule clear gm4_standard_liquids:util/scheduled_deposit_exp +execute if score $schedule_deposit_exp gm4_lt_util matches 2.. run schedule clear gm4_standard_liquids:util/experience/scheduled_deposit execute positioned ~0.5 ~ ~0.5 if entity @a[distance=..0.5,gamemode=!spectator] run scoreboard players set $schedule_deposit_exp gm4_lt_util 1 -execute positioned ~0.5 ~ ~0.5 if entity @a[distance=..0.5,gamemode=!spectator] run schedule function gm4_standard_liquids:util/scheduled_deposit_exp 1t +execute positioned ~0.5 ~ ~0.5 if entity @a[distance=..0.5,gamemode=!spectator] run schedule function gm4_standard_liquids:util/experience/scheduled_deposit 1t #dripstone cauldron execute if entity @e[dx=0,type=area_effect_cloud,tag=gm4_ltu_dripstone_cauldron] run function gm4_standard_liquids:util/drain_cauldron diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util_below.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util_below.mcfunction index 5b9d85561f..2f1e09b2fb 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util_below.mcfunction +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util_below.mcfunction @@ -24,8 +24,8 @@ execute if score @s[tag=gm4_lt_ink] gm4_lt_value matches 1.. as @e[team=!invalid execute if score @s[tag=gm4_lt_glow_ink] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:glowing'}]}] run function gm4_standard_liquids:util/liquid_dispensing/glow_ink #player withdrawing experience -execute if score $schedule_withdraw_exp gm4_lt_util matches 2.. run schedule clear gm4_standard_liquids:util/scheduled_withdraw_exp +execute if score $schedule_withdraw_exp gm4_lt_util matches 2.. run schedule clear gm4_standard_liquids:util/experience/scheduled_withdraw execute if entity @s[tag=gm4_lt_experience] positioned ~0.5 ~-1 ~0.5 if entity @a[distance=..0.5,gamemode=!spectator] run scoreboard players set $schedule_withdraw_exp gm4_lt_util 1 -execute if entity @s[tag=gm4_lt_experience] positioned ~0.5 ~-1 ~0.5 if entity @a[distance=..0.5,gamemode=!spectator] run schedule function gm4_standard_liquids:util/scheduled_withdraw_exp 1t +execute if entity @s[tag=gm4_lt_experience] positioned ~0.5 ~-1 ~0.5 if entity @a[distance=..0.5,gamemode=!spectator] run schedule function gm4_standard_liquids:util/experience/scheduled_withdraw 1t -tag @s remove gm4_processing_tank +# tag @s remove gm4_processing_tank # this line is now added by main.bolt diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/loot_table/glow_ink_bottle.json b/gm4_liquid_tanks/data/gm4_standard_liquids/loot_table/glow_ink_bottle.json index a0336936c9..43738f06c7 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/loot_table/glow_ink_bottle.json +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/loot_table/glow_ink_bottle.json @@ -9,7 +9,7 @@ "name": "potion", "functions": [ { - "function": "set_components", + "function": "minecraft:set_components", "components": { "minecraft:custom_model_data": "gm4_standard_liquids:item/glow_ink_bottle", "minecraft:potion_contents": { @@ -30,16 +30,17 @@ } }, { - "function": "set_custom_data", + "function": "minecraft:set_custom_data", "tag": "{gm4_standard_liquids:{potion:'glowing'}}" }, { - "function": "set_name", + "function": "minecraft:set_name", "name": { "translate": "item.gm4.glow_ink_bottle", "fallback": "Glow Ink Bottle", "italic": false - } + }, + "target": "item_name" } ] } diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/loot_table/ink_bottle.json b/gm4_liquid_tanks/data/gm4_standard_liquids/loot_table/ink_bottle.json index 55b057295e..273d925bcb 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/loot_table/ink_bottle.json +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/loot_table/ink_bottle.json @@ -9,7 +9,7 @@ "name": "potion", "functions": [ { - "function": "set_components", + "function": "minecraft:set_components", "components": { "minecraft:custom_model_data": "gm4_standard_liquids:item/ink_bottle", "minecraft:potion_contents": { @@ -25,16 +25,17 @@ } }, { - "function": "set_custom_data", + "function": "minecraft:set_custom_data", "tag": "{gm4_standard_liquids:{potion:'blindness'}}" }, { - "function": "set_name", + "function": "minecraft:set_name", "name": { "translate": "item.gm4.ink_bottle", "fallback": "Ink Bottle", "italic": false - } + }, + "target": "item_name" } ] } diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/modules/main.bolt b/gm4_liquid_tanks/data/gm4_standard_liquids/modules/main.bolt new file mode 100644 index 0000000000..5382b251da --- /dev/null +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/modules/main.bolt @@ -0,0 +1,169 @@ +import re +from gm4_liquid_tanks:liquid_wrappers import liquid + +bucket = liquid.standard_unit('bucket', 3) +bowl = liquid.standard_unit('bowl', 1) +bottle = liquid.standard_unit('glass_bottle', 1) + +@liquid +class Lava: + id = 'lava' + name = 'Lava' + capacity = 300 + + liquid.init() + bucket('lava_bucket') # item_fill on a standard unit + +@liquid +class Water: + id = 'water' + name = 'Water' + capacity = 300 + + liquid.init() + bucket('water_bucket') + bottle('minecraft:potion[potion_contents={potion:"water"}]') + +@liquid +class Milk: + id = 'milk' + name = 'Milk' + capacity = 300 + + liquid.init() + bucket('milk_bucket') + +@liquid +class PowderSnow: + id = 'powder_snow' + name = 'Powder Snow' + capacity = 300 + + liquid.init() + bucket('powder_snow_bucket') + +@liquid +class MushroomStew: + id = 'mushroom_stew' + name = 'Mushroom Stew' + capacity = 300 + + liquid.init() + bowl('mushroom_stew') + +@liquid +class RabbitStew: + id = 'rabbit_stew' + name = 'Rabbit Stew' + capacity = 300 + + liquid.init() + bowl('rabbit_stew') + +@liquid +class BeetrootSoup: + id = 'beetroot_soup' + name = 'Beetroot Soup' + capacity = 300 + + liquid.init() + bowl('beetroot_soup') + liquid.item_drain('beetroot', 'air', 1) + +@liquid +class Honey: + id = 'honey' + name = 'Honey' + capacity = 400 + + liquid.init() + bottle('honey_bottle') + liquid.item_drain('honey_block', 'air', 4) + +@liquid +class Experience: + id = 'experience' + name = 'Experience' + capacity = 5345 + + liquid.init() + + @liquid.item_fill('glass_bottle', 'experience_bottle', 9) + def experience_bottle(): + item replace entity 344d47-4-4-4-f04ce104d weapon.mainhand with minecraft:experience_bottle + yield + execute if score $smart_success gm4_lt_value matches 1 run advancement grant @a[distance=..4,gamemode=!spectator] only gm4:standard_liquids + + liquid.item_drain('enchanted_book', 'book', 7) + liquid.item_drain('paper[custom_data~{gm4_book_binders:{item:"enchanted_page"}}]', 'paper', 5) + + #TODO I could add a custom naming rule here - more as an example than necessary - for enchanted_page + +@liquid +class Ink: + id = 'ink' + name = 'Ink' + capacity = 300 + + liquid.init() + liquid.item_drain('ink_sac', 'air', 1) + + @bottle('minecraft:potion[custom_data~{gm4_standard_liquids:{potion:"blindness"}}]') + def ink_bottle(): + loot replace entity 344d47-4-4-4-f04ce104d weapon.mainhand loot gm4_standard_liquids:ink_bottle + + @liquid.util_below + def dispense_ink(): + execute as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:blindness'}]}] run function gm4_standard_liquids:util/liquid_dispensing/ink + +@liquid +class GlowInk: + id = 'glow_ink' + name = 'Glow Ink' + capacity = 300 + + liquid.init() + liquid.item_drain('glow_ink_sac', 'air', 1) + + @bottle('minecraft:potion[custom_data~{gm4_standard_liquids:{potion:"glowing"}}]') + def glow_ink_bottle(): + loot replace entity 344d47-4-4-4-f04ce104d weapon.mainhand loot gm4_standard_liquids:glow_ink_bottle + + liquid.item_fill('item_frame', 'glow_item_frame', 1, reversable=False) + + @liquid.util_below + def dispense_ink(): + execute as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:glowing'}]}] run function gm4_standard_liquids:util/liquid_dispensing/glow_ink + +# tell bolt how to name different ominous bottles - they have the same item id so this is a special case +def omnious_naming_scheme(input_name: str, output_name: str) -> str | bool: + m = re.match(r'ominous_bottle\[ominous_bottle_amplifier=(\d+)\]', output_name) + if m: + return f"ominous_bottle_{m.group(1)}" + return False +liquid.naming_schemes.schemes.insert(0, omnious_naming_scheme) + +for lvl, numeral_lvl in zip((0,1,2,3,4), ("I", "II", "III", "IV", "V")): + @liquid + class OminousBottle: + id = f'ominous_bottle_{lvl}' + name = f'Ominous {numeral_lvl}' + capacity = 300 + skin = 'liquids/ominous_bottle' + + liquid.init() + bottle(f"ominous_bottle[ominous_bottle_amplifier={lvl}]") + + @liquid.util_below + def dispense_omen(): + execute + as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] + unless entity @s[gamemode=spectator] + if entity @s[nbt=!{active_effects:[{id:'minecraft:bad_omen'}]}] + run function f"gm4_standard_liquids:util/liquid_dispensing/ominous_bottle_{lvl}": + effect give @s bad_omen 6000 (0+lvl) + scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 + playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 + + + diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/predicate/sneaking.json b/gm4_liquid_tanks/data/gm4_standard_liquids/predicate/sneaking.json new file mode 100644 index 0000000000..3c8a7e1e95 --- /dev/null +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/predicate/sneaking.json @@ -0,0 +1,9 @@ +{ + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_sneaking": true + } + } +} diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/beetroot_soup.png b/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/beetroot_soup.png index ed3e7d10b2..ed5318dea2 100644 Binary files a/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/beetroot_soup.png and b/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/beetroot_soup.png differ diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/experience.png b/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/experience.png index b0bc275a7e..d1154af618 100644 Binary files a/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/experience.png and b/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/experience.png differ diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/honey.png b/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/honey.png index 7213c9a3aa..39149ec75c 100644 Binary files a/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/honey.png and b/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/honey.png differ diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/lava.png b/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/lava.png index 180aba1d12..b04a80bffb 100644 Binary files a/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/lava.png and b/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/lava.png differ diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/milk.png b/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/milk.png index 5114efa78b..aa26aa08f6 100644 Binary files a/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/milk.png and b/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/milk.png differ diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/mushroom_stew.png b/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/mushroom_stew.png index 5ff6fc8d2b..51122ff13e 100644 Binary files a/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/mushroom_stew.png and b/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/mushroom_stew.png differ diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/ominous_bottle.png b/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/ominous_bottle.png new file mode 100644 index 0000000000..e8b8e54e53 Binary files /dev/null and b/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/ominous_bottle.png differ diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/powder_snow.png b/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/powder_snow.png index d548770e29..1cd5a45beb 100644 Binary files a/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/powder_snow.png and b/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/powder_snow.png differ diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/rabbit_stew.png b/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/rabbit_stew.png index 835bc7529d..5ccc5a143e 100644 Binary files a/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/rabbit_stew.png and b/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/rabbit_stew.png differ diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/water.png b/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/water.png index 1d750635f3..afae9e1dde 100644 Binary files a/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/water.png and b/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/water.png differ diff --git a/gm4_liquid_tanks/mcmeta_stacksize.py b/gm4_liquid_tanks/mcmeta_stacksize.py new file mode 100644 index 0000000000..4a6b5b3efb --- /dev/null +++ b/gm4_liquid_tanks/mcmeta_stacksize.py @@ -0,0 +1,30 @@ +# beet plugin to generate lists of items of each stack size, using misodes mcmeta git repo + +import json +from beet import ProjectCache +from gm4.utils import add_namespace + +def retrieve_stacksizes(cache: ProjectCache, version: str) -> tuple[list[str], list[str], list[str]]: + # retrieve item_components.json + url = f"https://raw.githubusercontent.com/misode/mcmeta/refs/tags/{version}-summary/item_components/data.json" + path = cache["mcmeta_stacksize"].download(url) + with open(path) as f: + default_components = json.load(f) + + # parse components into stack size lists + unstackables: list[str] = [] + stackable_16: list[str] = [] + stackable_64: list[str] = [] + + for item_id, components in default_components.items(): + match components["minecraft:max_stack_size"]: + case 1: + unstackables.append(add_namespace(item_id, "minecraft")) + case 16: + stackable_16.append(add_namespace(item_id, "minecraft")) + case 64: + stackable_64.append(add_namespace(item_id, "minecraft")) + case _: + pass + + return unstackables, stackable_16, stackable_64 diff --git a/gm4_liquid_tanks/override_formatting.py b/gm4_liquid_tanks/override_formatting.py new file mode 100644 index 0000000000..4a55fef441 --- /dev/null +++ b/gm4_liquid_tanks/override_formatting.py @@ -0,0 +1,5 @@ +from beet import Context +from mecha import Mecha + +def beet_default(ctx: Context): + ctx.inject(Mecha).serialize.formatting.layout = 'dense' \ No newline at end of file diff --git a/gm4_mending_tanks/beet.yaml b/gm4_mending_tanks/beet.yaml index dcfb913c3e..d1217f6ab0 100644 --- a/gm4_mending_tanks/beet.yaml +++ b/gm4_mending_tanks/beet.yaml @@ -12,7 +12,7 @@ meta: gm4: versioning: required: - gm4_liquid_tanks: 2.7.0 + gm4_liquid_tanks: 3.0.0 website: description: Enables Liquid Tanks filled with Experience to repair tools with the mending enchant on them. recommended: [] diff --git a/gm4_mending_tanks/data/gm4_mending_tanks/function/check_item.mcfunction b/gm4_mending_tanks/data/gm4_mending_tanks/function/check_item.mcfunction index 04660e8d2f..ebcea8940e 100644 --- a/gm4_mending_tanks/data/gm4_mending_tanks/function/check_item.mcfunction +++ b/gm4_mending_tanks/data/gm4_mending_tanks/function/check_item.mcfunction @@ -1,7 +1,7 @@ #@s = experience liquid tank with item in first slot #run from mending_tanks:item_fill -execute store result score $damage gm4_lt_util run data get storage gm4_liquid_tanks:temp/tank input_slot.components."minecraft:damage" +execute store result score $damage gm4_lt_util run data get block ~ ~ ~ Items[0].components."minecraft:damage" execute if score $damage gm4_lt_util matches 1.. run function gm4_mending_tanks:repair # smart storage is bypassed within repair, which merges the data back to the tool itself. diff --git a/gm4_mending_tanks/data/gm4_mending_tanks/function/item_fill.mcfunction b/gm4_mending_tanks/data/gm4_mending_tanks/function/item_fill.mcfunction index fa28967f9f..e69e07023c 100644 --- a/gm4_mending_tanks/data/gm4_mending_tanks/function/item_fill.mcfunction +++ b/gm4_mending_tanks/data/gm4_mending_tanks/function/item_fill.mcfunction @@ -2,4 +2,4 @@ #run from liquid_tanks:item_process #experience tank -execute if entity @s[tag=gm4_lt_experience] if data storage gm4_liquid_tanks:temp/tank {input_slot:{components:{"minecraft:enchantments":{"minecraft:mending":1}}}} run function gm4_mending_tanks:check_item +execute if entity @s[tag=gm4_lt_experience] if items block ~ ~ ~ container.0 *[minecraft:enchantments~[{enchantments:["minecraft:mending"]}]] run function gm4_mending_tanks:check_item diff --git a/gm4_potion_liquids/beet.yaml b/gm4_potion_liquids/beet.yaml index f0b752a1ae..abfe80f538 100644 --- a/gm4_potion_liquids/beet.yaml +++ b/gm4_potion_liquids/beet.yaml @@ -1,19 +1,27 @@ id: gm4_potion_liquids name: Potion Liquids -version: 1.8.X +version: 1.9.X data_pack: load: . +require: + - bolt + pipeline: + - gm4_liquid_tanks.override_formatting + - gm4_liquid_tanks.bolt_liquid_wrappers - gm4.plugins.extend.module - gm4.plugins.include.lib_brewing meta: + bolt: + entrypoint: + - gm4_potion_liquids:main gm4: versioning: required: - gm4_liquid_tanks: 2.7.0 + gm4_liquid_tanks: 3.0.0 lib_brewing: 1.4.0 model_data: - item: potion diff --git a/gm4_potion_liquids/data/gm4_liquid_tanks/tags/function/item_drain.json b/gm4_potion_liquids/data/gm4_liquid_tanks/tags/function/item_drain.json deleted file mode 100644 index ea8e4638b4..0000000000 --- a/gm4_potion_liquids/data/gm4_liquid_tanks/tags/function/item_drain.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "values":[ - "gm4_potion_liquids:item_drain" - ] - -} diff --git a/gm4_potion_liquids/data/gm4_liquid_tanks/tags/function/item_fill.json b/gm4_potion_liquids/data/gm4_liquid_tanks/tags/function/item_fill.json deleted file mode 100644 index 59f9ab2296..0000000000 --- a/gm4_potion_liquids/data/gm4_liquid_tanks/tags/function/item_fill.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "values":[ - "gm4_potion_liquids:item_fill" - ] - -} diff --git a/gm4_potion_liquids/data/gm4_liquid_tanks/tags/function/remove_liquid_tags.json b/gm4_potion_liquids/data/gm4_liquid_tanks/tags/function/remove_liquid_tags.json deleted file mode 100644 index 8bc03cd31b..0000000000 --- a/gm4_potion_liquids/data/gm4_liquid_tanks/tags/function/remove_liquid_tags.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "values":[ - "gm4_potion_liquids:remove_liquid_tags" - ] - -} diff --git a/gm4_potion_liquids/data/gm4_liquid_tanks/tags/function/tank_init.json b/gm4_potion_liquids/data/gm4_liquid_tanks/tags/function/tank_init.json deleted file mode 100644 index 42a671fa08..0000000000 --- a/gm4_potion_liquids/data/gm4_liquid_tanks/tags/function/tank_init.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "values":[ - "gm4_potion_liquids:tank_init" - ] - -} diff --git a/gm4_potion_liquids/data/gm4_liquid_tanks/tags/function/util_below.json b/gm4_potion_liquids/data/gm4_liquid_tanks/tags/function/util_below.json deleted file mode 100644 index b593637464..0000000000 --- a/gm4_potion_liquids/data/gm4_liquid_tanks/tags/function/util_below.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "values":[ - "gm4_potion_liquids:util_below" - ] - -} diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_drain.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_drain.mcfunction deleted file mode 100644 index 78eb793aac..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_drain.mcfunction +++ /dev/null @@ -1,93 +0,0 @@ -#@s = liquid tank with item in first slot -#run from liquid_tanks:item_process - -#night_vision -execute if entity @s[tag=gm4_lt_night_vision] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:night_vision"}}}} run function gm4_potion_liquids:item_drain/potion -execute if entity @s[tag=gm4_lt_night_vision] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_night_vision"}}}} run function gm4_potion_liquids:item_drain/long_potion - -#invisibility -execute if entity @s[tag=gm4_lt_invisibility] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:invisibility"}}}} run function gm4_potion_liquids:item_drain/potion -execute if entity @s[tag=gm4_lt_invisibility] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_invisibility"}}}} run function gm4_potion_liquids:item_drain/long_potion - -#leaping -execute if entity @s[tag=gm4_lt_leaping] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:leaping"}}}} run function gm4_potion_liquids:item_drain/potion -execute if entity @s[tag=gm4_lt_leaping] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_leaping"}}}} run function gm4_potion_liquids:item_drain/long_potion - -#strong leaping -execute if entity @s[tag=gm4_lt_strong_leaping] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_leaping"}}}} run function gm4_potion_liquids:item_drain/potion - -#fire resistance -execute if entity @s[tag=gm4_lt_fire_resistance] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:fire_resistance"}}}} run function gm4_potion_liquids:item_drain/potion -execute if entity @s[tag=gm4_lt_fire_resistance] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_fire_resistance"}}}} run function gm4_potion_liquids:item_drain/long_potion - -#swiftness -execute if entity @s[tag=gm4_lt_swiftness] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:swiftness"}}}} run function gm4_potion_liquids:item_drain/potion -execute if entity @s[tag=gm4_lt_swiftness] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_swiftness"}}}} run function gm4_potion_liquids:item_drain/long_potion - -#strong swiftness -execute if entity @s[tag=gm4_lt_strong_swiftness] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_swiftness"}}}} run function gm4_potion_liquids:item_drain/potion - -#slowness -execute if entity @s[tag=gm4_lt_slowness] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:slowness"}}}} run function gm4_potion_liquids:item_drain/potion -execute if entity @s[tag=gm4_lt_slowness] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_slowness"}}}} run function gm4_potion_liquids:item_drain/long_potion - -#strong slowness -execute if entity @s[tag=gm4_lt_strong_slowness] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_slowness"}}}} run function gm4_potion_liquids:item_drain/potion - -#turtle master -execute if entity @s[tag=gm4_lt_turtle_master] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:turtle_master"}}}} run function gm4_potion_liquids:item_drain/potion -execute if entity @s[tag=gm4_lt_turtle_master] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_turtle_master"}}}} run function gm4_potion_liquids:item_drain/long_potion - -#strong turtle master -execute if entity @s[tag=gm4_lt_strong_turtle_master] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_turtle_master"}}}} run function gm4_potion_liquids:item_drain/potion - -#water breathing -execute if entity @s[tag=gm4_lt_water_breathing] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:water_breathing"}}}} run function gm4_potion_liquids:item_drain/potion -execute if entity @s[tag=gm4_lt_water_breathing] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_water_breathing"}}}} run function gm4_potion_liquids:item_drain/long_potion - -#healing -execute if entity @s[tag=gm4_lt_healing] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:healing"}}}} run function gm4_potion_liquids:item_drain/potion - -#strong healing -execute if entity @s[tag=gm4_lt_strong_healing] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_healing"}}}} run function gm4_potion_liquids:item_drain/potion - -#harming -execute if entity @s[tag=gm4_lt_harming] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:harming"}}}} run function gm4_potion_liquids:item_drain/potion - -#strong harming -execute if entity @s[tag=gm4_lt_strong_harming] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_harming"}}}} run function gm4_potion_liquids:item_drain/potion - -#poison -execute if entity @s[tag=gm4_lt_poison] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:poison"}}}} run function gm4_potion_liquids:item_drain/potion -execute if entity @s[tag=gm4_lt_poison] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_poison"}}}} run function gm4_potion_liquids:item_drain/long_potion - -#strong poison -execute if entity @s[tag=gm4_lt_strong_poison] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_poison"}}}} run function gm4_potion_liquids:item_drain/potion - -#regeneration -execute if entity @s[tag=gm4_lt_regeneration] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:regeneration"}}}} run function gm4_potion_liquids:item_drain/potion -execute if entity @s[tag=gm4_lt_regeneration] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_regeneration"}}}} run function gm4_potion_liquids:item_drain/long_potion - -#strong regeneration -execute if entity @s[tag=gm4_lt_strong_regeneration] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_regeneration"}}}} run function gm4_potion_liquids:item_drain/potion - -#strength -execute if entity @s[tag=gm4_lt_strength] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:strength"}}}} run function gm4_potion_liquids:item_drain/potion -execute if entity @s[tag=gm4_lt_strength] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_strength"}}}} run function gm4_potion_liquids:item_drain/long_potion - -#strong strength -execute if entity @s[tag=gm4_lt_strong_strength] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_strength"}}}} run function gm4_potion_liquids:item_drain/potion - -#weakness -execute if entity @s[tag=gm4_lt_weakness] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:weakness"}}}} run function gm4_potion_liquids:item_drain/potion -execute if entity @s[tag=gm4_lt_weakness] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_weakness"}}}} run function gm4_potion_liquids:item_drain/long_potion - -#luck -execute if entity @s[tag=gm4_lt_luck] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:luck"}}}} run function gm4_potion_liquids:item_drain/potion - -#slow falling -execute if entity @s[tag=gm4_lt_slow_falling] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:slow_falling"}}}} run function gm4_potion_liquids:item_drain/potion -execute if entity @s[tag=gm4_lt_slow_falling] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_slow_falling"}}}} run function gm4_potion_liquids:item_drain/long_potion - -#floating - added by module -execute if entity @s[tag=gm4_lt_floating] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:custom_data":{gm4_potion_liquids:{potion:"floating"}}}}} run function gm4_potion_liquids:item_drain/potion diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_drain/long_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_drain/long_potion.mcfunction deleted file mode 100644 index 4e30019591..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_drain/long_potion.mcfunction +++ /dev/null @@ -1,8 +0,0 @@ -# run from gm4_potion_liquids:item_drain -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value 3 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"glass_bottle"}} -function gm4_liquid_tanks:smart_item_drain -tag @s add gm4_lt_drain - diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_drain/potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_drain/potion.mcfunction deleted file mode 100644 index e098f77aad..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_drain/potion.mcfunction +++ /dev/null @@ -1,8 +0,0 @@ -# run from gm4_potion_liquids:item_drain -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value 1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"glass_bottle"}} -function gm4_liquid_tanks:smart_item_drain -tag @s add gm4_lt_drain - diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill.mcfunction deleted file mode 100644 index c0518a60cb..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill.mcfunction +++ /dev/null @@ -1,80 +0,0 @@ -#@s = liquid tank with item in first slot -#run from liquid_tanks:item_process - -#night_vision -execute if entity @s[tag=gm4_lt_night_vision] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/night_vision_potion - -#invisibility -execute if entity @s[tag=gm4_lt_invisibility] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/invisibility_potion - -#leaping -execute if entity @s[tag=gm4_lt_leaping] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/leaping_potion - -#strong leaping -execute if entity @s[tag=gm4_lt_strong_leaping] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/strong_leaping_potion - -#fire resistance -execute if entity @s[tag=gm4_lt_fire_resistance] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/fire_resistance_potion - -#swiftness -execute if entity @s[tag=gm4_lt_swiftness] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/swiftness_potion - -#strong swiftness -execute if entity @s[tag=gm4_lt_strong_swiftness] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/strong_swiftness_potion - -#slowness -execute if entity @s[tag=gm4_lt_slowness] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/slowness_potion - -#strong slowness -execute if entity @s[tag=gm4_lt_strong_slowness] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/strong_slowness_potion - -#turtle master -execute if entity @s[tag=gm4_lt_turtle_master] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/turtle_master_potion - -#strong turtle master -execute if entity @s[tag=gm4_lt_strong_turtle_master] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/strong_turtle_master_potion - -#water breathing -execute if entity @s[tag=gm4_lt_water_breathing] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/water_breathing_potion - -#healing -execute if entity @s[tag=gm4_lt_healing] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/healing_potion - -#strong healing -execute if entity @s[tag=gm4_lt_strong_healing] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/strong_healing_potion - -#harming -execute if entity @s[tag=gm4_lt_harming] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/harming_potion - -#strong harming -execute if entity @s[tag=gm4_lt_strong_harming] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/strong_harming_potion - -#poison -execute if entity @s[tag=gm4_lt_poison] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/poison_potion - -#strong poison -execute if entity @s[tag=gm4_lt_strong_poison] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/strong_poison_potion - -#regeneration -execute if entity @s[tag=gm4_lt_regeneration] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/regeneration_potion - -#strong regeneration -execute if entity @s[tag=gm4_lt_strong_regeneration] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/strong_regeneration_potion - -#strength -execute if entity @s[tag=gm4_lt_strength] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/strength_potion - -#strong strength -execute if entity @s[tag=gm4_lt_strong_strength] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/strong_strength_potion - -#weakness -execute if entity @s[tag=gm4_lt_weakness] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/weakness_potion - -#luck -execute if entity @s[tag=gm4_lt_luck] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/luck_potion - -#slow falling -execute if entity @s[tag=gm4_lt_slow_falling] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/slow_falling_potion - -#floating -execute if entity @s[tag=gm4_lt_floating] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/floating_potion diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/fire_resistance_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/fire_resistance_potion.mcfunction deleted file mode 100644 index 0be2ea28e3..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/fire_resistance_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:fire_resistance"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/floating_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/floating_potion.mcfunction deleted file mode 100644 index 54f2d32773..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/floating_potion.mcfunction +++ /dev/null @@ -1,9 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -loot replace entity @e[type=armor_stand,tag=gm4_liquid_tank_stand,limit=1,sort=nearest,distance=..1] weapon.mainhand loot gm4_potion_liquids:floating_potion -data modify storage gm4_liquid_tanks:temp/tank output set from entity @e[type=armor_stand,tag=gm4_liquid_tank_stand,limit=1,sort=nearest,distance=..1] equipment.mainhand -item replace entity @e[type=armor_stand,tag=gm4_liquid_tank_stand,limit=1,sort=nearest,distance=..1] weapon.mainhand with air -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/harming_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/harming_potion.mcfunction deleted file mode 100644 index 3a168405d8..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/harming_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:harming"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/healing_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/healing_potion.mcfunction deleted file mode 100644 index de5f72a60d..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/healing_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:healing"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/invisibility_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/invisibility_potion.mcfunction deleted file mode 100644 index c2689b52f3..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/invisibility_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:invisibility"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/leaping_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/leaping_potion.mcfunction deleted file mode 100644 index 5dc6036929..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/leaping_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:leaping"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/luck_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/luck_potion.mcfunction deleted file mode 100644 index b9ff59b317..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/luck_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:luck"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/night_vision_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/night_vision_potion.mcfunction deleted file mode 100644 index 2b1915080a..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/night_vision_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:night_vision"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/poison_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/poison_potion.mcfunction deleted file mode 100644 index cc9721c945..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/poison_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:poison"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/regeneration_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/regeneration_potion.mcfunction deleted file mode 100644 index 0eaab90a29..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/regeneration_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:regeneration"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/slow_falling_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/slow_falling_potion.mcfunction deleted file mode 100644 index 6e3a565f46..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/slow_falling_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:slow_falling"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/slowness_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/slowness_potion.mcfunction deleted file mode 100644 index 522c011620..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/slowness_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:slowness"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strength_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strength_potion.mcfunction deleted file mode 100644 index a6abf38a90..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strength_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:strength"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strong_harming_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strong_harming_potion.mcfunction deleted file mode 100644 index 72af668a25..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strong_harming_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_harming"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strong_healing_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strong_healing_potion.mcfunction deleted file mode 100644 index 9fb7d7b7d3..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strong_healing_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_healing"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strong_leaping_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strong_leaping_potion.mcfunction deleted file mode 100644 index 41e35d5770..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strong_leaping_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_leaping"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strong_poison_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strong_poison_potion.mcfunction deleted file mode 100644 index ed4b4b82d1..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strong_poison_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_poison"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strong_regeneration_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strong_regeneration_potion.mcfunction deleted file mode 100644 index 140e117e56..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strong_regeneration_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_regeneration"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strong_slowness_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strong_slowness_potion.mcfunction deleted file mode 100644 index 1b7e728f52..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strong_slowness_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_slowness"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strong_strength_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strong_strength_potion.mcfunction deleted file mode 100644 index 6dc5c3ac18..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strong_strength_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_strength"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strong_swiftness_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strong_swiftness_potion.mcfunction deleted file mode 100644 index fe8981d569..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strong_swiftness_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_swiftness"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strong_turtle_master_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strong_turtle_master_potion.mcfunction deleted file mode 100644 index 2c7c32a8d4..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strong_turtle_master_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_turtle_master"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/swiftness_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/swiftness_potion.mcfunction deleted file mode 100644 index 2353203986..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/swiftness_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:swiftness"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/turtle_master_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/turtle_master_potion.mcfunction deleted file mode 100644 index 719120e8eb..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/turtle_master_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:turtle_master"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/water_breathing_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/water_breathing_potion.mcfunction deleted file mode 100644 index de6c625117..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/water_breathing_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:water_breathing"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/weakness_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/weakness_potion.mcfunction deleted file mode 100644 index 8cd7c64d4c..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/weakness_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:weakness"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/fire_resistance.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/fire_resistance.mcfunction deleted file mode 100644 index ddb7b790c9..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/fire_resistance.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.fire_resistance","fallback":"Fire Resistance Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.fire_resistance","fallback":"Fire Resistance Potion Tank","font":"gm4:default","color":"#404040"}]]}} -summon armor_stand ~ ~-.95 ~ {CustomName:"gm4_liquid_tank_display",Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/fire_resistance"}}}} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_fire_resistance" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_fire_resistance -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/floating.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/floating.mcfunction deleted file mode 100644 index 57c317529c..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/floating.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.floating","fallback":"Floating Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.floating","fallback":"Floating Potion Tank","font":"gm4:default","color":"#404040"}]]}} -summon armor_stand ~ ~-.95 ~ {CustomName:"gm4_liquid_tank_display",Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/floating"}}}} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_floating" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_floating -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/harming.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/harming.mcfunction deleted file mode 100644 index 206418dbed..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/harming.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.harming","fallback":"Harming Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.harming","fallback":"Harming Potion Tank","font":"gm4:default","color":"#404040"}]]}} -summon armor_stand ~ ~-.95 ~ {CustomName:"gm4_liquid_tank_display",Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/harming"}}}} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_harming" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_harming -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/healing.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/healing.mcfunction deleted file mode 100644 index 94902013dd..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/healing.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.healing","fallback":"Healing Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.healing","fallback":"Healing Potion Tank","font":"gm4:default","color":"#404040"}]]}} -summon armor_stand ~ ~-.95 ~ {CustomName:"gm4_liquid_tank_display",Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/healing"}}}} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_healing" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_healing -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/invisibility.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/invisibility.mcfunction deleted file mode 100644 index 5de9eedef9..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/invisibility.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.invisibility","fallback":"Invisibility Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.invisibility","fallback":"Invisibility Potion Tank","font":"gm4:default","color":"#404040"}]]}} -summon armor_stand ~ ~-.95 ~ {CustomName:"gm4_liquid_tank_display",Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/invisibility"}}}} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_invisibility" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_invisibility -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/leaping.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/leaping.mcfunction deleted file mode 100644 index 1020cfd2a1..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/leaping.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.leaping","fallback":"Leaping Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.leaping","fallback":"Leaping Potion Tank","font":"gm4:default","color":"#404040"}]]}} -summon armor_stand ~ ~-.95 ~ {CustomName:"gm4_liquid_tank_display",Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/leaping"}}}} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_leaping" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_leaping -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/luck.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/luck.mcfunction deleted file mode 100644 index 135de042e6..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/luck.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.luck","fallback":"Luck Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.luck","fallback":"Luck Potion Tank","font":"gm4:default","color":"#404040"}]]}} -summon armor_stand ~ ~-.95 ~ {CustomName:"gm4_liquid_tank_display",Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/luck"}}}} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_luck" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_luck -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/night_vision.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/night_vision.mcfunction deleted file mode 100644 index 169890f9b3..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/night_vision.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.night_vision","fallback":"Night Vision Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.night_vision","fallback":"Night Vision Potion Tank","font":"gm4:default","color":"#404040"}]]}} -summon armor_stand ~ ~-.95 ~ {CustomName:"gm4_liquid_tank_display",Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/night_vision"}}}} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_night_vision" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_night_vision -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/poison.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/poison.mcfunction deleted file mode 100644 index 4f99429767..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/poison.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.poison","fallback":"Poison Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.poison","fallback":"Poison Potion Tank","font":"gm4:default","color":"#404040"}]]}} -summon armor_stand ~ ~-.95 ~ {CustomName:"gm4_liquid_tank_display",Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/poison"}}}} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_poison" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_poison -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/regeneration.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/regeneration.mcfunction deleted file mode 100644 index be30cd9288..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/regeneration.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.regeneration","fallback":"Regeneration Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.regeneration","fallback":"Regeneration Potion Tank","font":"gm4:default","color":"#404040"}]]}} -summon armor_stand ~ ~-.95 ~ {CustomName:"gm4_liquid_tank_display",Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/regeneration"}}}} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_regeneration" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_regeneration -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/slow_falling.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/slow_falling.mcfunction deleted file mode 100644 index d182fe38eb..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/slow_falling.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.slow_falling","fallback":"Slow Falling Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.slow_falling","fallback":"Slow Falling Potion Tank","font":"gm4:default","color":"#404040"}]]}} -summon armor_stand ~ ~-.95 ~ {CustomName:"gm4_liquid_tank_display",Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/slow_falling"}}}} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_slow_falling" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_slow_falling -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/slowness.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/slowness.mcfunction deleted file mode 100644 index dbafc2f081..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/slowness.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.slowness","fallback":"Slowness Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.slowness","fallback":"Slowness Potion Tank","font":"gm4:default","color":"#404040"}]]}} -summon armor_stand ~ ~-.95 ~ {CustomName:"gm4_liquid_tank_display",Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/slowness"}}}} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_slowness" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_slowness -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strength.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strength.mcfunction deleted file mode 100644 index 449ac43b8b..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strength.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.strength","fallback":"Strength Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.strength","fallback":"Strength Potion Tank","font":"gm4:default","color":"#404040"}]]}} -summon armor_stand ~ ~-.95 ~ {CustomName:"gm4_liquid_tank_display",Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/strength"}}}} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_strength" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_strength -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strong_harming.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strong_harming.mcfunction deleted file mode 100644 index 4147d3f69b..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strong_harming.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.strong_harming","fallback":"Strong Harming Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.strong_harming","fallback":"Strong Harming Potion Tank","font":"gm4:default","color":"#404040"}]]}} -summon armor_stand ~ ~-.95 ~ {CustomName:"gm4_liquid_tank_display",Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/strength"}}}} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_strong_harming" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_strong_harming -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strong_healing.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strong_healing.mcfunction deleted file mode 100644 index f03be675f3..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strong_healing.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.strong_healing","fallback":"Strong Healing Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.strong_healing","fallback":"Strong Healing Potion Tank","font":"gm4:default","color":"#404040"}]]}} -summon armor_stand ~ ~-.95 ~ {CustomName:"gm4_liquid_tank_display",Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/healing"}}}} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_strong_healing" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_strong_healing -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strong_leaping.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strong_leaping.mcfunction deleted file mode 100644 index 30f72ae990..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strong_leaping.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.strong_leaping","fallback":"Strong Leaping Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.strong_leaping","fallback":"Strong Leaping Potion Tank","font":"gm4:default","color":"#404040"}]]}} -summon armor_stand ~ ~-.95 ~ {CustomName:"gm4_liquid_tank_display",Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/leaping"}}}} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_strong_leaping" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_strong_leaping -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strong_poison.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strong_poison.mcfunction deleted file mode 100644 index 851f205884..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strong_poison.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.strong_poison","fallback":"Strong Poison Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.strong_poison","fallback":"Strong Poison Potion Tank","font":"gm4:default","color":"#404040"}]]}} -summon armor_stand ~ ~-.95 ~ {CustomName:"gm4_liquid_tank_display",Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/poison"}}}} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_strong_poison" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_strong_poison -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strong_regeneration.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strong_regeneration.mcfunction deleted file mode 100644 index a96a98b874..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strong_regeneration.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.strong_regeneration","fallback":"Strong Regeneration Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.strong_regeneration","fallback":"Strong Regeneration Potion Tank","font":"gm4:default","color":"#404040"}]]}} -summon armor_stand ~ ~-.95 ~ {CustomName:"gm4_liquid_tank_display",Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/regeneration"}}}} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_strong_regeneration" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_strong_regeneration -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strong_slowness.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strong_slowness.mcfunction deleted file mode 100644 index 56c1994117..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strong_slowness.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.strong_slowness","fallback":"Strong Slowness Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.strong_slowness","fallback":"Strong Slowness Potion Tank","font":"gm4:default","color":"#404040"}]]}} -summon armor_stand ~ ~-.95 ~ {CustomName:"gm4_liquid_tank_display",Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/slowness"}}}} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_strong_slowness" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_strong_slowness -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strong_strength.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strong_strength.mcfunction deleted file mode 100644 index 7722a8619b..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strong_strength.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.strong_strength","fallback":"Strong Strength Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.strong_strength","fallback":"Strong Strength Potion Tank","font":"gm4:default","color":"#404040"}]]}} -summon armor_stand ~ ~-.95 ~ {CustomName:"gm4_liquid_tank_display",Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/strength"}}}} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_strong_strength" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_strong_strength -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strong_swiftness.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strong_swiftness.mcfunction deleted file mode 100644 index 9c4663eb71..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strong_swiftness.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.strong_swiftness","fallback":"Strong Swiftness Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.strong_swiftness","fallback":"Strong Swiftness Potion Tank","font":"gm4:default","color":"#404040"}]]}} -summon armor_stand ~ ~-.95 ~ {CustomName:"gm4_liquid_tank_display",Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/swiftness"}}}} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_strong_swiftness" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_strong_swiftness -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strong_turtle_master.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strong_turtle_master.mcfunction deleted file mode 100644 index 4b25789c18..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strong_turtle_master.mcfunction +++ /dev/null @@ -1,9 +0,0 @@ -data merge block ~ ~ ~ {CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.strong_turtle_master","fallback":"Strong Turtle Master Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.strong_turtle_master","fallback":"Strong Turtle Master Potion Tank","font":"gm4:default","color":"#404040"}]]}} -summon armor_stand ~ ~-.95 ~ {CustomName:"gm4_liquid_tank_display",Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/turtle_master"}}}} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_strong_turtle_master" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_strong_turtle_master -tag @s remove gm4_lt_empty - - -#TEXTURE NOT COMPLETE diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/swiftness.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/swiftness.mcfunction deleted file mode 100644 index 729e818d3e..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/swiftness.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.swiftness","fallback":"Swiftness Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.swiftness","fallback":"Swiftness Potion Tank","font":"gm4:default","color":"#404040"}]]}} -summon armor_stand ~ ~-.95 ~ {CustomName:"gm4_liquid_tank_display",Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/swiftness"}}}} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_swiftness" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_swiftness -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/turtle_master.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/turtle_master.mcfunction deleted file mode 100644 index aab3abe139..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/turtle_master.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.turtle_master","fallback":"Turtle Master Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.turtle_master","fallback":"Turtle Master Potion Tank","font":"gm4:default","color":"#404040"}]]}} -summon armor_stand ~ ~-.95 ~ {CustomName:"gm4_liquid_tank_display",Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/turtle_master"}}}} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_turtle_master" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_turtle_master -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/water_breathing.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/water_breathing.mcfunction deleted file mode 100644 index f299052c61..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/water_breathing.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.water_breathing","fallback":"Water Breathing Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.water_breathing","fallback":"Water Breathing Potion Tank","font":"gm4:default","color":"#404040"}]]}} -summon armor_stand ~ ~-.95 ~ {CustomName:"gm4_liquid_tank_display",Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/water_breathing"}}}} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_water_breathing" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_water_breathing -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/weakness.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/weakness.mcfunction deleted file mode 100644 index 5c08172b06..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/weakness.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.weakness","fallback":"Weakness Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.weakness","fallback":"Weakness Potion Tank","font":"gm4:default","color":"#404040"}]]}} -summon armor_stand ~ ~-.95 ~ {CustomName:"gm4_liquid_tank_display",Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/weakness"}}}} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_weakness" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_weakness -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/remove_liquid_tags.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/remove_liquid_tags.mcfunction deleted file mode 100644 index 3c1ac4cf93..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/remove_liquid_tags.mcfunction +++ /dev/null @@ -1,29 +0,0 @@ -#@s = liquid tank stand -# removes all liquid tags from the stand. Used for emptying tank and reassigning liquid type - -tag @s remove gm4_lt_night_vision -tag @s remove gm4_lt_invisibility -tag @s remove gm4_lt_leaping -tag @s remove gm4_lt_strong_leaping -tag @s remove gm4_lt_fire_resistance -tag @s remove gm4_lt_swiftness -tag @s remove gm4_lt_strong_swiftness -tag @s remove gm4_lt_slowness -tag @s remove gm4_lt_strong_slowness -tag @s remove gm4_lt_turtle_master -tag @s remove gm4_lt_strong_turtle_master -tag @s remove gm4_lt_water_breathing -tag @s remove gm4_lt_healing -tag @s remove gm4_lt_strong_healing -tag @s remove gm4_lt_harming -tag @s remove gm4_lt_strong_harming -tag @s remove gm4_lt_poison -tag @s remove gm4_lt_strong_poison -tag @s remove gm4_lt_regeneration -tag @s remove gm4_lt_strong_regeneration -tag @s remove gm4_lt_strength -tag @s remove gm4_lt_strong_strength -tag @s remove gm4_lt_weakness -tag @s remove gm4_lt_luck -tag @s remove gm4_lt_slow_falling -tag @s remove gm4_lt_floating diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/tank_init.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/tank_init.mcfunction deleted file mode 100644 index ae58fa0484..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/tank_init.mcfunction +++ /dev/null @@ -1,93 +0,0 @@ -#@s = empty liquid tank with item in first slot or entity on top -#run from liquid_tanks:item_process - -#night vision -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:night_vision"}}}} run function gm4_potion_liquids:liquid_init/night_vision -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_night_vision"}}}} run function gm4_potion_liquids:liquid_init/night_vision - -#invisibility -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:invisibility"}}}} run function gm4_potion_liquids:liquid_init/invisibility -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_invisibility"}}}} run function gm4_potion_liquids:liquid_init/invisibility - -#leaping -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:leaping"}}}} run function gm4_potion_liquids:liquid_init/leaping -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_leaping"}}}} run function gm4_potion_liquids:liquid_init/leaping - -#strong leaping -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_leaping"}}}} run function gm4_potion_liquids:liquid_init/strong_leaping - -#fire resistance -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:fire_resistance"}}}} run function gm4_potion_liquids:liquid_init/fire_resistance -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_fire_resistance"}}}} run function gm4_potion_liquids:liquid_init/fire_resistance - -#swiftness -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:swiftness"}}}} run function gm4_potion_liquids:liquid_init/swiftness -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_swiftness"}}}} run function gm4_potion_liquids:liquid_init/swiftness - -#strong swiftness -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_swiftness"}}}} run function gm4_potion_liquids:liquid_init/strong_swiftness - -#slowness -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:slowness"}}}} run function gm4_potion_liquids:liquid_init/slowness -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_slowness"}}}} run function gm4_potion_liquids:liquid_init/slowness - -#strong slowness -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_slowness"}}}} run function gm4_potion_liquids:liquid_init/strong_slowness - -#turtle master -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:turtle_master"}}}} run function gm4_potion_liquids:liquid_init/turtle_master -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_turtle_master"}}}} run function gm4_potion_liquids:liquid_init/turtle_master - -#strong turtle master -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_turtle_master"}}}} run function gm4_potion_liquids:liquid_init/strong_turtle_master - -#water breathing -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:water_breathing"}}}} run function gm4_potion_liquids:liquid_init/water_breathing -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_water_breathing"}}}} run function gm4_potion_liquids:liquid_init/water_breathing - -#healing -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:healing"}}}} run function gm4_potion_liquids:liquid_init/healing - -#strong healing -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_healing"}}}} run function gm4_potion_liquids:liquid_init/strong_healing - -#harming -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:harming"}}}} run function gm4_potion_liquids:liquid_init/harming - -#strong harming -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_harming"}}}} run function gm4_potion_liquids:liquid_init/strong_harming - -#poison -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:poison"}}}} run function gm4_potion_liquids:liquid_init/poison -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_poison"}}}} run function gm4_potion_liquids:liquid_init/poison - -#strong poison -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_poison"}}}} run function gm4_potion_liquids:liquid_init/strong_poison - -#regeneration -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:regeneration"}}}} run function gm4_potion_liquids:liquid_init/regeneration -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_regeneration"}}}} run function gm4_potion_liquids:liquid_init/regeneration - -#strong regeneration -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_regeneration"}}}} run function gm4_potion_liquids:liquid_init/strong_regeneration - -#strength -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:strength"}}}} run function gm4_potion_liquids:liquid_init/strength -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_strength"}}}} run function gm4_potion_liquids:liquid_init/strength - -#strong strength -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_strength"}}}} run function gm4_potion_liquids:liquid_init/strong_strength - -#weakness -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:weakness"}}}} run function gm4_potion_liquids:liquid_init/weakness -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_weakness"}}}} run function gm4_potion_liquids:liquid_init/weakness - -#luck -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:luck"}}}} run function gm4_potion_liquids:liquid_init/luck - -#slow falling -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:slow_falling"}}}} run function gm4_potion_liquids:liquid_init/slow_falling -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_slow_falling"}}}} run function gm4_potion_liquids:liquid_init/slow_falling - -#floating - added by module -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:custom_data":{gm4_potion_liquids:{potion:"floating"}}}}} run function gm4_potion_liquids:liquid_init/floating diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/fire_resistance.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util/fire_resistance.mcfunction deleted file mode 100644 index 90bd4d3d34..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/fire_resistance.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below fire_resistance potion tank -#run from potion_liquids:util_below - -effect give @s fire_resistance 180 0 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/floating.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util/floating.mcfunction deleted file mode 100644 index d6185b7859..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/floating.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below floating potion tank -#run from potion_liquids:util_below - -effect give @s levitation 45 2 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/harming.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util/harming.mcfunction deleted file mode 100644 index 37898c67f2..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/harming.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below harming potion tank -#run from potion_liquids:util_below - -effect give @s instant_damage 1 0 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/healing.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util/healing.mcfunction deleted file mode 100644 index 8708c8021a..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/healing.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below healing potion tank -#run from potion_liquids:util_below - -effect give @s instant_health 1 0 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/invisibility.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util/invisibility.mcfunction deleted file mode 100644 index c038ba1488..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/invisibility.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below invisibility potion tank -#run from potion_liquids:util_below - -effect give @s invisibility 180 0 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/leaping.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util/leaping.mcfunction deleted file mode 100644 index 7e2feb6d65..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/leaping.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below leaping potion tank -#run from potion_liquids:util_below - -effect give @s jump_boost 180 0 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/luck.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util/luck.mcfunction deleted file mode 100644 index 6e3c4fb9c1..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/luck.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below luck potion tank -#run from potion_liquids:util_below - -effect give @s luck 300 0 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/night_vision.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util/night_vision.mcfunction deleted file mode 100644 index 7b591ae592..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/night_vision.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below night_vision potion tank -#run from potion_liquids:util_below - -effect give @s night_vision 180 0 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/poison.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util/poison.mcfunction deleted file mode 100644 index 7fc4db1562..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/poison.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below poison potion tank -#run from potion_liquids:util_below - -effect give @s poison 45 0 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/random_witch_init.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util/random_witch_init.mcfunction index 30dae4fc04..1fc400488b 100644 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/random_witch_init.mcfunction +++ b/gm4_potion_liquids/data/gm4_potion_liquids/function/util/random_witch_init.mcfunction @@ -1,16 +1,9 @@ #@s = liquid tank to be initialized to random potion #run from potion_liquids:util/witch -summon area_effect_cloud ~ ~ ~ {Radius:0.0f,custom_particle:{type:"minecraft:block",block_state:"minecraft:air"},CustomName:"gm4_pl_random_witch_init",Tags:["gm4_pl_random_witch_init","gm4_lt_random_regeneration"]} -summon area_effect_cloud ~ ~ ~ {Radius:0.0f,custom_particle:{type:"minecraft:block",block_state:"minecraft:air"},CustomName:"gm4_pl_random_witch_init",Tags:["gm4_pl_random_witch_init","gm4_lt_random_swiftness"]} -summon area_effect_cloud ~ ~ ~ {Radius:0.0f,custom_particle:{type:"minecraft:block",block_state:"minecraft:air"},CustomName:"gm4_pl_random_witch_init",Tags:["gm4_pl_random_witch_init","gm4_lt_random_fire_resistance"]} -summon area_effect_cloud ~ ~ ~ {Radius:0.0f,custom_particle:{type:"minecraft:block",block_state:"minecraft:air"},CustomName:"gm4_pl_random_witch_init",Tags:["gm4_pl_random_witch_init","gm4_lt_random_harming"]} +execute store result score $random_witch_init gm4_lt_util run random value 0..3 -kill @e[type=area_effect_cloud,limit=3,distance=..1,tag=gm4_pl_random_witch_init,sort=random] - -execute if entity @e[type=area_effect_cloud,tag=gm4_pl_random_witch_init,tag=gm4_lt_random_regeneration] run function gm4_potion_liquids:liquid_init/regeneration -execute if entity @e[type=area_effect_cloud,tag=gm4_pl_random_witch_init,tag=gm4_lt_random_swiftness] run function gm4_potion_liquids:liquid_init/swiftness -execute if entity @e[type=area_effect_cloud,tag=gm4_pl_random_witch_init,tag=gm4_lt_random_fire_resistance] run function gm4_potion_liquids:liquid_init/fire_resistance -execute if entity @e[type=area_effect_cloud,tag=gm4_pl_random_witch_init,tag=gm4_lt_random_harming] run function gm4_potion_liquids:liquid_init/harming - -kill @e[type=area_effect_cloud,tag=gm4_pl_random_witch_init] +execute if score $random_witch_init gm4_lt_util matches 0 run function gm4_potion_liquids:liquid_init/regeneration +execute if score $random_witch_init gm4_lt_util matches 1 run function gm4_potion_liquids:liquid_init/swiftness +execute if score $random_witch_init gm4_lt_util matches 2 run function gm4_potion_liquids:liquid_init/fire_resistance +execute if score $random_witch_init gm4_lt_util matches 3 run function gm4_potion_liquids:liquid_init/harming diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/regeneration.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util/regeneration.mcfunction deleted file mode 100644 index b1a025bb22..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/regeneration.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below regeneration potion tank -#run from potion_liquids:util_below - -effect give @s regeneration 45 0 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/slow_falling.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util/slow_falling.mcfunction deleted file mode 100644 index eaf667a98f..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/slow_falling.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below slow_falling potion tank -#run from potion_liquids:util_below - -effect give @s slow_falling 180 0 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/slowness.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util/slowness.mcfunction deleted file mode 100644 index 91bf1b7527..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/slowness.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below slowness potion tank -#run from potion_liquids:util_below - -effect give @s slowness 90 0 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/strength.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util/strength.mcfunction deleted file mode 100644 index ed0235617d..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/strength.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below strength potion tank -#run from potion_liquids:util_below - -effect give @s strength 180 0 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/strong_harming.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util/strong_harming.mcfunction deleted file mode 100644 index 458df4ec27..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/strong_harming.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below strong_harming potion tank -#run from potion_liquids:util_below - -effect give @s instant_damage 1 1 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/strong_healing.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util/strong_healing.mcfunction deleted file mode 100644 index 94bc572b94..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/strong_healing.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below strong_healing potion tank -#run from potion_liquids:util_below - -effect give @s instant_health 1 1 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/strong_leaping.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util/strong_leaping.mcfunction deleted file mode 100644 index 5eaadd51d4..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/strong_leaping.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below strong_leaping potion tank -#run from potion_liquids:util_below - -effect give @s jump_boost 90 1 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/strong_poison.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util/strong_poison.mcfunction deleted file mode 100644 index 9bfbb24821..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/strong_poison.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below strong poison potion tank -#run from potion_liquids:util_below - -effect give @s poison 21 1 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/strong_regeneration.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util/strong_regeneration.mcfunction deleted file mode 100644 index 1b45618d79..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/strong_regeneration.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below strong regeneration potion tank -#run from potion_liquids:util_below - -effect give @s regeneration 22 1 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/strong_slowness.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util/strong_slowness.mcfunction deleted file mode 100644 index 62e15cffe3..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/strong_slowness.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below strong_slowness potion tank -#run from potion_liquids:util_below - -effect give @s slowness 20 3 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/strong_strength.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util/strong_strength.mcfunction deleted file mode 100644 index aa8d4670d8..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/strong_strength.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below strong_strength potion tank -#run from potion_liquids:util_below - -effect give @s strength 90 1 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/strong_swiftness.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util/strong_swiftness.mcfunction deleted file mode 100644 index ea89d99a5a..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/strong_swiftness.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below strong_swiftness potion tank -#run from potion_liquids:util_below - -effect give @s speed 90 1 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/strong_turtle_master.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util/strong_turtle_master.mcfunction deleted file mode 100644 index fac311d66f..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/strong_turtle_master.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -#@s = living-base entity below strong_turtle_master potion tank -#run from potion_liquids:util_below - -effect give @s slowness 20 5 -effect give @s resistance 20 3 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/swiftness.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util/swiftness.mcfunction deleted file mode 100644 index c27a6b610c..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/swiftness.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below swiftness potion tank -#run from potion_liquids:util_below - -effect give @s speed 180 0 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/turtle_master.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util/turtle_master.mcfunction deleted file mode 100644 index 025db9d383..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/turtle_master.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -#@s = living-base entity below turtle_master potion tank -#run from potion_liquids:util_below - -effect give @s slowness 20 3 -effect give @s resistance 20 2 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/water_breathing.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util/water_breathing.mcfunction deleted file mode 100644 index 11b2b3a145..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/water_breathing.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below water_breathing potion tank -#run from potion_liquids:util_below - -effect give @s water_breathing 180 0 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/weakness.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util/weakness.mcfunction deleted file mode 100644 index a9d4cd354a..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/weakness.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below weakness potion tank -#run from potion_liquids:util_below - -effect give @s weakness 180 0 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_below.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_below.mcfunction deleted file mode 100644 index 414c54435a..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_below.mcfunction +++ /dev/null @@ -1,84 +0,0 @@ -#@s = tank with entity above it positioned ~ ~-1 ~ -#run from liquid_tanks:process via #gm4_liquid_tanks:util_below - -tag @s add gm4_processing_tank - -#night_vision -execute if score @s[tag=gm4_lt_night_vision] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:night_vision'}]}] run function gm4_potion_liquids:util/night_vision - -#invisibility -execute if score @s[tag=gm4_lt_invisibility] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:invisibility'}]}] run function gm4_potion_liquids:util/invisibility - -#leaping -execute if score @s[tag=gm4_lt_leaping] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:jump_boost'}]}] run function gm4_potion_liquids:util/leaping - -#strong_leaping -execute if score @s[tag=gm4_lt_strong_leaping] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:jump_boost',amplifier:1b}]}] run function gm4_potion_liquids:util/strong_leaping - -#fire_resistance -execute if score @s[tag=gm4_lt_fire_resistance] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:fire_resistance'}]}] run function gm4_potion_liquids:util/fire_resistance - -#swiftness -execute if score @s[tag=gm4_lt_swiftness] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:speed'}]}] run function gm4_potion_liquids:util/swiftness - -#strong_swiftness -execute if score @s[tag=gm4_lt_strong_swiftness] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:speed',amplifier:1b}]}] run function gm4_potion_liquids:util/strong_swiftness - -#slowness -execute if score @s[tag=gm4_lt_slowness] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:slowness'}]}] run function gm4_potion_liquids:util/slowness - -#strong_slowness -execute if score @s[tag=gm4_lt_strong_slowness] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:slowness',amplifier:1b}]}] run function gm4_potion_liquids:util/strong_slowness - -#turtle_master -execute if score @s[tag=gm4_lt_turtle_master] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:slowness',amplifier:3b},{id:'minecraft:resistance',amplifier:2b}]}] run function gm4_potion_liquids:util/turtle_master - -#strong_turtle_master -execute if score @s[tag=gm4_lt_strong_turtle_master] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:slowness',amplifier:5b},{id:'minecraft:resistance',amplifier:3b}]}] run function gm4_potion_liquids:util/strong_turtle_master - -#water_breathing -execute if score @s[tag=gm4_lt_water_breathing] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:water_breathing'}]}] run function gm4_potion_liquids:util/water_breathing - -#healing -execute if score @s[tag=gm4_lt_healing] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] run function gm4_potion_liquids:util/healing - -#strong healing -execute if score @s[tag=gm4_lt_strong_healing] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] run function gm4_potion_liquids:util/strong_healing - -#harming -execute if score @s[tag=gm4_lt_harming] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] run function gm4_potion_liquids:util/harming - -#strong harming -execute if score @s[tag=gm4_lt_strong_harming] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] run function gm4_potion_liquids:util/strong_harming - -#poison -execute if score @s[tag=gm4_lt_poison] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:poison'}]}] run function gm4_potion_liquids:util/poison - -#strong poison -execute if score @s[tag=gm4_lt_strong_poison] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:poison',amplifier:1b}]}] run function gm4_potion_liquids:util/strong_poison - -#regeneration -execute if score @s[tag=gm4_lt_regeneration] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:regeneration'}]}] run function gm4_potion_liquids:util/regeneration - -#strong regeneration -execute if score @s[tag=gm4_lt_strong_regeneration] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:regeneration',amplifier:1b}]}] run function gm4_potion_liquids:util/strong_regeneration - -#strength -execute if score @s[tag=gm4_lt_strength] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:strength'}]}] run function gm4_potion_liquids:util/strength - -#strong strength -execute if score @s[tag=gm4_lt_strong_strength] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:strength',amplifier:1b}]}] run function gm4_potion_liquids:util/strong_strength - -#weakness -execute if score @s[tag=gm4_lt_weakness] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:weakness'}]}] run function gm4_potion_liquids:util/weakness - -#luck -execute if score @s[tag=gm4_lt_luck] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:luck'}]}] run function gm4_potion_liquids:util/luck - -#slow falling -execute if score @s[tag=gm4_lt_slow_falling] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:slow_falling'}]}] run function gm4_potion_liquids:util/slow_falling - -#floating -execute if score @s[tag=gm4_lt_floating] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:levitation'}]}] run function gm4_potion_liquids:util/floating - -tag @s remove gm4_processing_tank diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/loot_table/floating_potion.json b/gm4_potion_liquids/data/gm4_potion_liquids/loot_table/floating_potion.json index b4a03ca63b..3912309868 100644 --- a/gm4_potion_liquids/data/gm4_potion_liquids/loot_table/floating_potion.json +++ b/gm4_potion_liquids/data/gm4_potion_liquids/loot_table/floating_potion.json @@ -31,9 +31,9 @@ "function": "set_name", "name": { "translate": "item.gm4.floating_potion", - "fallback": "Potion of Floating", - "italic": false - } + "fallback": "Potion of Floating" + }, + "target": "item_name" } ] } diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/loot_table/lingering_floating_potion.json b/gm4_potion_liquids/data/gm4_potion_liquids/loot_table/lingering_floating_potion.json index 351b4385e6..e3757ba24d 100644 --- a/gm4_potion_liquids/data/gm4_potion_liquids/loot_table/lingering_floating_potion.json +++ b/gm4_potion_liquids/data/gm4_potion_liquids/loot_table/lingering_floating_potion.json @@ -36,9 +36,9 @@ "function": "set_name", "name": { "translate": "item.gm4.lingering_floating_potion", - "fallback": "Lingering Potion of Floating", - "italic": false - } + "fallback": "Lingering Potion of Floating" + }, + "target": "item_name" }, { "function": "minecraft:set_lore", diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/loot_table/splash_floating_potion.json b/gm4_potion_liquids/data/gm4_potion_liquids/loot_table/splash_floating_potion.json index d75f170881..2a8a31cb9d 100644 --- a/gm4_potion_liquids/data/gm4_potion_liquids/loot_table/splash_floating_potion.json +++ b/gm4_potion_liquids/data/gm4_potion_liquids/loot_table/splash_floating_potion.json @@ -31,9 +31,9 @@ "function": "set_name", "name": { "translate": "item.gm4.splash_floating_potion", - "fallback": "Splash Potion of Floating", - "italic": false - } + "fallback": "Splash Potion of Floating" + }, + "target": "item_name" } ] } diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt b/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt new file mode 100644 index 0000000000..36fe7e74d5 --- /dev/null +++ b/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt @@ -0,0 +1,128 @@ +from gm4_liquid_tanks:liquid_wrappers import Liquid +from functools import partial +from gm4.plugins.player_heads import Skin +import numpy as np +from PIL import Image, ImageChops, ImageColor + +potion_liquid = Liquid(capacity=300) +base_potion = potion_liquid.standard_unit('glass_bottle', 1, f_name="base_potion") +potion_liquid.standard_unit('glass_bottle', 3, f_name="long_potion") # register standard unit +long_potion = partial(potion_liquid.item_drain, output='glass_bottle', value=3) # long potions cannot be filled + +from beet import JsonFile +effect_colors = JsonFile(source_path="gm4_potion_liquids/effect_colors.json").data + +class_defs = {} + +untinted_skin = Skin(source_path="gm4_potion_liquids/untint_skin.png") + +from csv import DictReader +with open("gm4_potion_liquids/potion_definitions.csv", "r") as csvfile: + potion_def_reader = DictReader(csvfile) + for row in potion_def_reader: + if row["potion_id"] in ("water"): + continue # skip this potion type + + class_key = (row["effect_id"], row["effect_amplifier"]) + if row["effect_id"]=="": # effect-less potions each get their own tank type + class_key = (row["potion_id"]) + # setup new liquid type if necessary and add to the dict + if class_key not in class_defs: + # @potion_liquid # we execute the class decorator later after setting up all the bolt stuff + class PotionLiquidClass: + id = row["potion_id"].removeprefix("long_") + name = row["potion_id"].removeprefix("long_").replace("_"," ").title()+" Potion" + + _generators = [] + if row["potion_id"].startswith("strong"): + PotionLiquidClass.skin = "liquids/"+row["potion_id"].removeprefix("strong_") + + potion_liquid.struc = PotionLiquidClass # programatically going around the decorators is odd, + # so we manually set this here so the handler + # knows the right classdef to put mcfunction into + potion_liquid.init() + + class_defs[class_key] = PotionLiquidClass + this_potion_class = class_defs[class_key] + potion_liquid.struc = this_potion_class + + # add this potion to the liquid type + if row["potion_id"].startswith("long"): + this_potion_unit = long_potion + else: + this_potion_unit = base_potion + this_potion_unit(f"minecraft:potion[potion_contents={{potion:\"{row['potion_id']}\"}}]") + + # add this potion's util_below feature + if not row["potion_id"].startswith("long") and not row["effect_id"]=="": + def dispense_potion(row): + effects = row["effect_id"].split("+") + amplifiers = map(int, row["effect_amplifier"].split("+")) + inline_predicate = { + "condition":"minecraft:entity_properties", + "entity":"this", + "predicate":{ + "effects":{} + # { e:{} for e in effects } # dict comprehension not supported by bolt + } + } + for e in effects: + inline_predicate["predicate"]["effects"][e] = {} + + m, s = row["effect_duration"].split(":") + duration = max(int(m)*60 + round(float(s)), 1) + execute as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] + unless entity @s[gamemode=spectator] + unless predicate inline_predicate + run function f"gm4_potion_liquids:util/dispense/{row["potion_id"]}": + for e, a in zip(effects, amplifiers): + effect give @s e duration (a-1) + scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 + playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 + potion_liquid.util_below(partial(dispense_potion, row)) + + # create this potion's skin texture if needed + skin_id = this_potion_class.id.removeprefix("strong_").removeprefix("long_") + if skin_id not in ctx.data["gm4_potion_liquids"][Skin].generate_tree()["liquids"]: + # compute the potion color for any mixed potions (a weighted average of their colors) + tint_colors = np.empty(shape=(3,0)) + for effect_id in row["effect_id"].split("+"): + rgb = np.array(ImageColor.getrgb(effect_colors[effect_id][0])).reshape((-1,1)) + tint_colors = np.append(tint_colors, rgb, axis=1) + tint_weights = list(map(int, row["effect_amplifier"].split("+"))) + tint_color = tuple(map(int, np.average(tint_colors, weights=tint_weights, axis=1))) + # print('#%02x%02x%02x' % tint_color) + + tint_image = Image.new("RGBA", untinted_skin.image.size, tint_color) + ctx.data[f"gm4_potion_liquids:liquids/{skin_id}"] = Skin(ImageChops.multiply(tint_image, untinted_skin.image)) + +# apply the liquid tanks decorator wrapper +for liquid_class in class_defs.values(): + potion_liquid(liquid_class) + + +# Potions added by this module +potion_liquid.struc = Liquid # return decorator to normal operation +@potion_liquid +class FloatingPotion: + id = "floating" + name = "Floating Potion" + + potion_liquid.init() + @base_potion("minecraft:potion[custom_data~{gm4_potion_liquids:{potion:'floating'}}]") + def floating_potion(): + loot replace entity 344d47-4-4-4-f04ce104d weapon.mainhand loot gm4_potion_liquids:floating_potion + + @potion_liquid.util_below + def dispense_float_potion(): + execute as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] + unless entity @s[gamemode=spectator] + unless predicate { + "condition":"minecraft:entity_properties", + "entity":"this", + "predicate":{"effects":{"levitation":{}}} + } + run function gm4_potion_liquids:util/dispense/floating: + effect give @s levitation 45 2 + scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 + playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/fire_resistance.png b/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/fire_resistance.png index 3d9328b11e..533181d918 100644 Binary files a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/fire_resistance.png and b/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/fire_resistance.png differ diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/floating.png b/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/floating.png index 6d63f6e5ff..f3f70e3d1c 100644 Binary files a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/floating.png and b/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/floating.png differ diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/harming.png b/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/harming.png index 9efe21946f..1b4c378fa2 100644 Binary files a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/harming.png and b/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/harming.png differ diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/healing.png b/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/healing.png index 14beefcbae..cfc1fa2ea0 100644 Binary files a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/healing.png and b/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/healing.png differ diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/invisibility.png b/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/invisibility.png index 57b41befd0..bbc71fd5fe 100644 Binary files a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/invisibility.png and b/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/invisibility.png differ diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/leaping.png b/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/leaping.png index 29d22dce2b..7e5473a580 100644 Binary files a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/leaping.png and b/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/leaping.png differ diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/luck.png b/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/luck.png deleted file mode 100644 index 2aa399e667..0000000000 Binary files a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/luck.png and /dev/null differ diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/night_vision.png b/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/night_vision.png index 408d01395e..ec537f0914 100644 Binary files a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/night_vision.png and b/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/night_vision.png differ diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/poison.png b/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/poison.png index a52290d62f..2e1801c38b 100644 Binary files a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/poison.png and b/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/poison.png differ diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/regeneration.png b/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/regeneration.png index 666fda641b..e8f51ca9db 100644 Binary files a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/regeneration.png and b/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/regeneration.png differ diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/slow_falling.png b/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/slow_falling.png deleted file mode 100644 index 483ed1c8a1..0000000000 Binary files a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/slow_falling.png and /dev/null differ diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/slowness.png b/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/slowness.png index 4aae2b682e..b7ab57d369 100644 Binary files a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/slowness.png and b/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/slowness.png differ diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/strength.png b/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/strength.png index d415ecb93a..4e15f439cf 100644 Binary files a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/strength.png and b/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/strength.png differ diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/swiftness.png b/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/swiftness.png index c01893a79d..355d6386ad 100644 Binary files a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/swiftness.png and b/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/swiftness.png differ diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/turtle_master.png b/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/turtle_master.png deleted file mode 100644 index 06db257b80..0000000000 Binary files a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/turtle_master.png and /dev/null differ diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/water_breathing.png b/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/water_breathing.png index 768cbf24cf..3ad30a05bf 100644 Binary files a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/water_breathing.png and b/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/water_breathing.png differ diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/weakness.png b/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/weakness.png index 46223dc926..a4ad39a4cc 100644 Binary files a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/weakness.png and b/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/weakness.png differ diff --git a/gm4_potion_liquids/effect_colors.json b/gm4_potion_liquids/effect_colors.json new file mode 100644 index 0000000000..cc50ecf633 --- /dev/null +++ b/gm4_potion_liquids/effect_colors.json @@ -0,0 +1,43 @@ +{ + "": ["#385DC6", 3694022], + "absorption": ["#2552A5", 2445989], + "bad_omen": ["#0B6138", 745784], + "blindness": ["#1F1F23", 2039587], + "conduit_power": ["#1DC2D1", 1950417], + "darkness": ["#292721", 2696993], + "dolphins_grace": ["#88A3BE", 8954814], + "fire_resistance": ["#FF9900", 16750848], + "glowing": ["#94A061", 9740385], + "haste": ["#D9C043", 14270531], + "health_boost": ["#F87D23", 16284963], + "hero_of_the_village": ["#44FF44", 4521796], + "hunger": ["#587653", 5797459], + "infested": ["#8C9B8C", 9214860], + "instant_damage": ["#A9656A", 11101546], + "instant_health": ["#F82423", 16262179], + "invisibility": ["#F6F6F6", 16185078], + "jump_boost": ["#FDFF84", 16646020], + "levitation": ["#CEFFFF", 13565951], + "luck": ["#59C106", 5882118], + "mining_fatigue": ["#4A4217", 4866583], + "nausea": ["#551D4A", 5578058], + "night_vision": ["#C2FF66", 12779366], + "oozing": ["#99FFA3", 10092451], + "poison": ["#87A363" ,8889187], + "raid_omen": ["#DE4058", 14565464], + "regeneration": ["#CD5CAB", 13458603], + "resistance": ["#9146F0", 9520880], + "saturation": ["#F82423", 16262179], + "slow_falling": ["#F3CFB9", 15978425], + "slowness": ["#8BAFE0", 9154528], + "speed": ["#33EBFF", 3402751], + "strength": ["#FFC700", 16762624], + "trial_omen": ["#16A6A6", 1484454], + "unluck": ["#C0A44D", 12624973], + "water_breathing": ["#98DAC0", 10017472], + "weakness": ["#484D48", 4738376], + "weaving": ["#78695A", 7891290], + "wind_charged": ["#BDC9FF", 12438015], + "wither": ["#736156", 7561558] +} + diff --git a/gm4_potion_liquids/potion_definitions.csv b/gm4_potion_liquids/potion_definitions.csv new file mode 100644 index 0000000000..4ebe98c39b --- /dev/null +++ b/gm4_potion_liquids/potion_definitions.csv @@ -0,0 +1,47 @@ +potion_id,"effect_id","effect_amplifier","effect_duration" +awkward,,1, +fire_resistance,fire_resistance,1,3:00 +harming,instant_damage,1,0:00 +healing,instant_health,1,0:00 +infested,infested,1,3:00 +invisibility,invisibility,1,3:00 +leaping,jump_boost,1,3:00 +long_fire_resistance,fire_resistance,1,8:00 +long_invisibility,invisibility,1,8:00 +long_leaping,jump_boost,1,8:00 +long_night_vision,night_vision,1,8:00 +long_poison,poison,1,1:30 +long_regeneration,regeneration,1,1:30 +long_slow_falling,slow_falling,1,4:00 +long_slowness,slowness,1,4:00 +long_strength,strength,1,8:00 +long_swiftness,speed,1,8:00 +long_turtle_master,slowness+resistance,4+3,0:40 +long_water_breathing,water_breathing,1,8:00 +long_weakness,weakness,1,4:00 +luck,luck,1,5:00 +mundane,,1, +night_vision,night_vision,1,3:00 +oozing,oozing,1,3:00 +poison,poison,1,0:45 +regeneration,regeneration,1,0:45 +slow_falling,slow_falling,1,1:30 +slowness,slowness,1,1:30 +strength,strength,1,3:00 +strong_harming,instant_damage,2,0:00 +strong_healing,instant_health,2,0:00 +strong_leaping,jump_boost,2,1:30 +strong_poison,poison,2,0:21.6 +strong_regeneration,regeneration,2,0:22.5 +strong_slowness,slowness,4,0:20 +strong_strength,strength,2,1:30 +strong_swiftness,speed,2,1:30 +strong_turtle_master,slowness+resistance,5+4,0:20 +swiftness,speed,1,3:00 +thick,,1, +turtle_master,slowness+resistance,4+3,0:20 +water,,1, +water_breathing,water_breathing,1,3:00 +weakness,weakness,1,1:30 +weaving,weaving,1,3:00 +wind_charged,wind_charged,1,3:00 diff --git a/gm4_potion_liquids/translations.csv b/gm4_potion_liquids/translations.csv index d4fa763656..156a63cf5e 100644 --- a/gm4_potion_liquids/translations.csv +++ b/gm4_potion_liquids/translations.csv @@ -34,3 +34,10 @@ text.gm4.guidebook.module_desc.potion_liquids,Adds the ability to store potions text.gm4.guidebook.potion_liquids.description,"Potions can be stored in liquid tanks; extended potions count as a three potions.\n\nPotions can be taken out by putting a bottle in the tank, but tanks will not output extended potions." text.gm4.guidebook.potion_liquids.mob_effects_and_shulkers,Mobs under a potion tank will gain the potion effect from that tank.\n\nShulkers on an empty or levitation potion tank will fill it with Levitation potion liquid. text.gm4.guidebook.potion_liquids.witches,"Witches on an empty tank will fill it with Regeneration, Fire Resistance, Speed, or Instant Damage potion liquid.\n\nThey will also fill pre-existing potion tanks with those four potions." +container.gm4.liquid_tank.awkward,Awkward Potion Tank +container.gm4.liquid_tank.infested,Infested Potion Tank +container.gm4.liquid_tank.mundane,Mundane Potion Tank +container.gm4.liquid_tank.oozing,Oozing Potion Tank +container.gm4.liquid_tank.thick,Thick Potion Tank +container.gm4.liquid_tank.weaving,Weaving Potion Tank +container.gm4.liquid_tank.wind_charged,Wind Charged Potion Tank diff --git a/gm4_potion_liquids/untint_skin.png b/gm4_potion_liquids/untint_skin.png new file mode 100644 index 0000000000..542da907eb Binary files /dev/null and b/gm4_potion_liquids/untint_skin.png differ diff --git a/gm4_scuba_gear/README.md b/gm4_scuba_gear/README.md index 0c0a639b52..5d8f207de8 100644 --- a/gm4_scuba_gear/README.md +++ b/gm4_scuba_gear/README.md @@ -3,6 +3,7 @@ Ease ocean exploration with craftable scuba gear! ### Features -- Adds Flippers which allow players to swim faster in Water. -- Adds the SCUBA Tank and Helmet which gives 4 minutes of conduit power when submerged. -- When worn on land, the player is given a slowness debuff. +- Adds the Wetsuit and Flippers which aids players in underwater movement. +- When wearing Flippers on land, players are given a slowness debuff. +- Adds the SCUBA Tank which adds 4 minutes of submerged air time. +- Adds the SCUBA Helmet which hastens underwater mining. diff --git a/gm4_scuba_gear/assets/gm4_scuba_gear/equipment/scuba.json b/gm4_scuba_gear/assets/gm4_scuba_gear/equipment/scuba.json new file mode 100644 index 0000000000..ca6a9f9942 --- /dev/null +++ b/gm4_scuba_gear/assets/gm4_scuba_gear/equipment/scuba.json @@ -0,0 +1,26 @@ +{ + "layers": { + "humanoid": [ + { + "texture": "gm4_scuba_gear:scuba" + }, + { + "dyeable": { + "color_when_undyed": 2321353 + }, + "texture": "gm4_scuba_gear:scuba_overlay" + } + ], + "humanoid_leggings": [ + { + "texture": "gm4_scuba_gear:scuba" + }, + { + "dyeable": { + "color_when_undyed": 2321353 + }, + "texture": "gm4_scuba_gear:scuba_overlay" + } + ] + } +} diff --git a/gm4_scuba_gear/assets/gm4_scuba_gear/items/flippers.json b/gm4_scuba_gear/assets/gm4_scuba_gear/items/flippers.json new file mode 100644 index 0000000000..67fcc7c952 --- /dev/null +++ b/gm4_scuba_gear/assets/gm4_scuba_gear/items/flippers.json @@ -0,0 +1,12 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_scuba_gear:item/flippers", + "tints": [ + { + "type": "minecraft:dye", + "default": -14455863 + } + ] + } +} diff --git a/gm4_scuba_gear/assets/gm4_scuba_gear/items/scuba_helmet.json b/gm4_scuba_gear/assets/gm4_scuba_gear/items/scuba_helmet.json new file mode 100644 index 0000000000..7a978a549a --- /dev/null +++ b/gm4_scuba_gear/assets/gm4_scuba_gear/items/scuba_helmet.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_scuba_gear:item/scuba_helmet" + } +} diff --git a/gm4_scuba_gear/assets/gm4_scuba_gear/items/scuba_tank.json b/gm4_scuba_gear/assets/gm4_scuba_gear/items/scuba_tank.json new file mode 100644 index 0000000000..58623bf574 --- /dev/null +++ b/gm4_scuba_gear/assets/gm4_scuba_gear/items/scuba_tank.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_scuba_gear:item/scuba_tank" + } +} diff --git a/gm4_scuba_gear/assets/gm4_scuba_gear/items/wetsuit.json b/gm4_scuba_gear/assets/gm4_scuba_gear/items/wetsuit.json new file mode 100644 index 0000000000..bd92a02bc5 --- /dev/null +++ b/gm4_scuba_gear/assets/gm4_scuba_gear/items/wetsuit.json @@ -0,0 +1,12 @@ +{ + "model": { + "type": "minecraft:model", + "model": "gm4_scuba_gear:item/wetsuit", + "tints": [ + { + "type": "minecraft:dye", + "default": -14455863 + } + ] + } +} diff --git a/gm4_scuba_gear/assets/gm4_scuba_gear/models/item/flippers.json b/gm4_scuba_gear/assets/gm4_scuba_gear/models/item/flippers.json new file mode 100644 index 0000000000..83ce38eea9 --- /dev/null +++ b/gm4_scuba_gear/assets/gm4_scuba_gear/models/item/flippers.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "gm4_scuba_gear:item/flippers", + "layer1": "gm4_scuba_gear:item/flippers_overlay" + } +} diff --git a/gm4_scuba_gear/assets/gm4_scuba_gear/models/item/scuba_helmet.json b/gm4_scuba_gear/assets/gm4_scuba_gear/models/item/scuba_helmet.json new file mode 100644 index 0000000000..39a60baa69 --- /dev/null +++ b/gm4_scuba_gear/assets/gm4_scuba_gear/models/item/scuba_helmet.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "gm4_scuba_gear:item/scuba_helmet" + } +} diff --git a/gm4_scuba_gear/assets/gm4_scuba_gear/models/item/scuba_tank.json b/gm4_scuba_gear/assets/gm4_scuba_gear/models/item/scuba_tank.json new file mode 100644 index 0000000000..f5432b691e --- /dev/null +++ b/gm4_scuba_gear/assets/gm4_scuba_gear/models/item/scuba_tank.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "gm4_scuba_gear:item/scuba_tank" + } +} diff --git a/gm4_scuba_gear/assets/gm4_scuba_gear/models/item/wetsuit.json b/gm4_scuba_gear/assets/gm4_scuba_gear/models/item/wetsuit.json new file mode 100644 index 0000000000..c092406f9c --- /dev/null +++ b/gm4_scuba_gear/assets/gm4_scuba_gear/models/item/wetsuit.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "gm4_scuba_gear:item/wetsuit", + "layer1": "gm4_scuba_gear:item/wetsuit_overlay" + } +} diff --git a/gm4_scuba_gear/assets/gm4_scuba_gear/textures/entity/equipment/humanoid/scuba.png b/gm4_scuba_gear/assets/gm4_scuba_gear/textures/entity/equipment/humanoid/scuba.png new file mode 100644 index 0000000000..e2ecd8b60f Binary files /dev/null and b/gm4_scuba_gear/assets/gm4_scuba_gear/textures/entity/equipment/humanoid/scuba.png differ diff --git a/gm4_scuba_gear/assets/gm4_scuba_gear/textures/entity/equipment/humanoid/scuba_overlay.png b/gm4_scuba_gear/assets/gm4_scuba_gear/textures/entity/equipment/humanoid/scuba_overlay.png new file mode 100644 index 0000000000..05d7f0ea47 Binary files /dev/null and b/gm4_scuba_gear/assets/gm4_scuba_gear/textures/entity/equipment/humanoid/scuba_overlay.png differ diff --git a/gm4_scuba_gear/assets/gm4_scuba_gear/textures/entity/equipment/humanoid_leggings/scuba.png b/gm4_scuba_gear/assets/gm4_scuba_gear/textures/entity/equipment/humanoid_leggings/scuba.png new file mode 100644 index 0000000000..ea43138f0a Binary files /dev/null and b/gm4_scuba_gear/assets/gm4_scuba_gear/textures/entity/equipment/humanoid_leggings/scuba.png differ diff --git a/gm4_scuba_gear/assets/gm4_scuba_gear/textures/entity/equipment/humanoid_leggings/scuba_overlay.png b/gm4_scuba_gear/assets/gm4_scuba_gear/textures/entity/equipment/humanoid_leggings/scuba_overlay.png new file mode 100644 index 0000000000..e426ea36e3 Binary files /dev/null and b/gm4_scuba_gear/assets/gm4_scuba_gear/textures/entity/equipment/humanoid_leggings/scuba_overlay.png differ diff --git a/gm4_scuba_gear/assets/gm4_scuba_gear/textures/item/flippers.png b/gm4_scuba_gear/assets/gm4_scuba_gear/textures/item/flippers.png index 77b97ce6d9..d5d89c0072 100644 Binary files a/gm4_scuba_gear/assets/gm4_scuba_gear/textures/item/flippers.png and b/gm4_scuba_gear/assets/gm4_scuba_gear/textures/item/flippers.png differ diff --git a/gm4_scuba_gear/assets/gm4_scuba_gear/textures/item/flippers_overlay.png b/gm4_scuba_gear/assets/gm4_scuba_gear/textures/item/flippers_overlay.png index 8fca7781bb..100f8a7517 100644 Binary files a/gm4_scuba_gear/assets/gm4_scuba_gear/textures/item/flippers_overlay.png and b/gm4_scuba_gear/assets/gm4_scuba_gear/textures/item/flippers_overlay.png differ diff --git a/gm4_scuba_gear/assets/gm4_scuba_gear/textures/item/scuba_helmet.png b/gm4_scuba_gear/assets/gm4_scuba_gear/textures/item/scuba_helmet.png index 1fd07b8c6b..9541c0d028 100644 Binary files a/gm4_scuba_gear/assets/gm4_scuba_gear/textures/item/scuba_helmet.png and b/gm4_scuba_gear/assets/gm4_scuba_gear/textures/item/scuba_helmet.png differ diff --git a/gm4_scuba_gear/assets/gm4_scuba_gear/textures/item/scuba_tank.png b/gm4_scuba_gear/assets/gm4_scuba_gear/textures/item/scuba_tank.png index 3df3e0af3f..bfddc22b4c 100644 Binary files a/gm4_scuba_gear/assets/gm4_scuba_gear/textures/item/scuba_tank.png and b/gm4_scuba_gear/assets/gm4_scuba_gear/textures/item/scuba_tank.png differ diff --git a/gm4_scuba_gear/assets/gm4_scuba_gear/textures/item/wetsuit.png b/gm4_scuba_gear/assets/gm4_scuba_gear/textures/item/wetsuit.png new file mode 100644 index 0000000000..f508f89e7f Binary files /dev/null and b/gm4_scuba_gear/assets/gm4_scuba_gear/textures/item/wetsuit.png differ diff --git a/gm4_scuba_gear/assets/gm4_scuba_gear/textures/item/wetsuit_overlay.png b/gm4_scuba_gear/assets/gm4_scuba_gear/textures/item/wetsuit_overlay.png new file mode 100644 index 0000000000..f9a21a7388 Binary files /dev/null and b/gm4_scuba_gear/assets/gm4_scuba_gear/textures/item/wetsuit_overlay.png differ diff --git a/gm4_scuba_gear/assets/gm4_scuba_gear/textures/misc/scuba_helmet.png b/gm4_scuba_gear/assets/gm4_scuba_gear/textures/misc/scuba_helmet.png new file mode 100644 index 0000000000..9dee9912b2 Binary files /dev/null and b/gm4_scuba_gear/assets/gm4_scuba_gear/textures/misc/scuba_helmet.png differ diff --git a/gm4_scuba_gear/assets/translations.csv b/gm4_scuba_gear/assets/translations.csv index 4a1251fbe6..1967bd88c0 100644 --- a/gm4_scuba_gear/assets/translations.csv +++ b/gm4_scuba_gear/assets/translations.csv @@ -2,13 +2,20 @@ key,en_us item.gm4.flippers,Flippers item.gm4.scuba_helmet,SCUBA Helmet item.gm4.scuba_tank,SCUBA Tank +item.gm4.wetsuit,Wetsuit advancement.gm4.scuba_gear.title,Things Are Going Swimmingly! advancement.gm4.scuba_gear.description,Suit up with a full set of SCUBA gear text.gm4.guidebook.module_desc.scuba_gear,Ease ocean exploration with craftable scuba gear! -text.gm4.guidebook.scuba_gear.description,SCUBA Gear can be crafted in a Custom Crafter to aid in ocean travel.\n\nScutes and gold are main components for each piece. +text.gm4.guidebook.scuba_gear.description,SCUBA Gear can be crafted to aid in ocean travel.\n\nCopper and dried kelp are main components for each piece. text.gm4.guidebook.scuba_gear.crafting_flippers,Flippers can be crafted with the following recipe: text.gm4.guidebook.scuba_gear.crafting_scuba_helmet,The SCUBA Helmet can be crafted with the following recipe: text.gm4.guidebook.scuba_gear.crafting_scuba_tank,The SCUBA Tank can be crafted with the following recipe: -text.gm4.guidebook.scuba_gear.scuba_tank_extended,"An extended water breathing potion can be used to craft the tank, but it won't provide any extra benefits.\n\nA SCUBA tank and helmet must be used in conjunction." +text.gm4.guidebook.scuba_gear.crafting_wetsuit,The Wetsuit can be crafted with the following recipe: text.gm4.guidebook.scuba_gear.usage_flippers,"Flippers allow the user to swim much faster, but land traversal is greatly slowed." -text.gm4.guidebook.scuba_gear.usage_scuba_tank,Wearing both the scuba tank and helmet will grant 4 minutes of Conduit Power when underwater. +text.gm4.guidebook.scuba_gear.usage_wetsuit,"The Wetsuit allows the user to swim up or down much faster, and maintains their current depth." +text.gm4.guidebook.scuba_gear.usage_scuba_tank,Wearing the scuba tank adds 4 minutes of underwater breathing time. +text.gm4.guidebook.scuba_gear.usage_scuba_helmet,Wearing the scuba helmet increases underwater mining speed by 6 times. +item.modifiers.gm4.scuba_gear.in_water,"When in Water:" +item.modifiers.gm4.scuba_gear.on_land,"When on Land:" +item.modifiers.gm4.scuba_gear.neutral_buoyancy,"Neutral Buoyancy" +item.modifiers.gm4.scuba_gear.vertical_swimming_speed,"Vertical Swimming Speed" diff --git a/gm4_scuba_gear/beet.yaml b/gm4_scuba_gear/beet.yaml index 60157f97c1..bf0ab11dca 100644 --- a/gm4_scuba_gear/beet.yaml +++ b/gm4_scuba_gear/beet.yaml @@ -1,6 +1,6 @@ id: gm4_scuba_gear name: SCUBA Gear -version: 1.6.X +version: 2.0.X data_pack: load: . @@ -29,22 +29,9 @@ meta: credits: Creator: - BPR + Updated by: + - TheEpyonProject Textures by: - BPR Icon Design: - DuckJr - model_data: - - item: leather_boots - reference: item/flippers - template: generated_overlay - - item: golden_chestplate - reference: item/scuba_tank - template: generated - - item: player_head - reference: item/scuba_helmet - template: generated - - item: player_head - reference: gui/advancement/scuba_gear - template: - name: advancement - forward: item/scuba_helmet diff --git a/gm4_scuba_gear/data/gm4/advancement/scuba_gear.json b/gm4_scuba_gear/data/gm4/advancement/scuba_gear.json index 1498b67dc3..c4adb57701 100644 --- a/gm4_scuba_gear/data/gm4/advancement/scuba_gear.json +++ b/gm4_scuba_gear/data/gm4/advancement/scuba_gear.json @@ -1,9 +1,9 @@ { "display": { "icon": { - "id": "minecraft:player_head", + "id": "minecraft:leather_helmet", "components": { - "minecraft:custom_model_data": "gui/advancement/scuba_gear", + "minecraft:item_model": "gm4_scuba_gear:scuba_helmet", "minecraft:profile": "$scuba_helmet" } }, diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/advancement/recipes/flippers.json b/gm4_scuba_gear/data/gm4_scuba_gear/advancement/recipes/flippers.json new file mode 100644 index 0000000000..47e50c3da5 --- /dev/null +++ b/gm4_scuba_gear/data/gm4_scuba_gear/advancement/recipes/flippers.json @@ -0,0 +1,33 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "gm4_scuba_gear:flippers" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "in_deep_water": { + "conditions": { + "player": [ + { + "condition": "minecraft:reference", + "name": "gm4_scuba_gear:in_deep_water" + } + ] + }, + "trigger": "minecraft:location" + } + }, + "requirements": [ + [ + "has_the_recipe", + "in_deep_water" + ] + ], + "rewards": { + "recipes": [ + "gm4_scuba_gear:flippers" + ] + } +} diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/advancement/recipes/scuba_helmet.json b/gm4_scuba_gear/data/gm4_scuba_gear/advancement/recipes/scuba_helmet.json new file mode 100644 index 0000000000..418d4e1113 --- /dev/null +++ b/gm4_scuba_gear/data/gm4_scuba_gear/advancement/recipes/scuba_helmet.json @@ -0,0 +1,33 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "gm4_scuba_gear:scuba_helmet" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "in_deep_water": { + "conditions": { + "player": [ + { + "condition": "minecraft:reference", + "name": "gm4_scuba_gear:in_deep_water" + } + ] + }, + "trigger": "minecraft:location" + } + }, + "requirements": [ + [ + "has_the_recipe", + "in_deep_water" + ] + ], + "rewards": { + "recipes": [ + "gm4_scuba_gear:scuba_helmet" + ] + } +} diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/advancement/recipes/scuba_tank.json b/gm4_scuba_gear/data/gm4_scuba_gear/advancement/recipes/scuba_tank.json new file mode 100644 index 0000000000..81c752e33d --- /dev/null +++ b/gm4_scuba_gear/data/gm4_scuba_gear/advancement/recipes/scuba_tank.json @@ -0,0 +1,33 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "gm4_scuba_gear:scuba_tank" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "in_deep_water": { + "conditions": { + "player": [ + { + "condition": "minecraft:reference", + "name": "gm4_scuba_gear:in_deep_water" + } + ] + }, + "trigger": "minecraft:location" + } + }, + "requirements": [ + [ + "has_the_recipe", + "in_deep_water" + ] + ], + "rewards": { + "recipes": [ + "gm4_scuba_gear:scuba_tank" + ] + } +} diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/advancement/recipes/wetsuit.json b/gm4_scuba_gear/data/gm4_scuba_gear/advancement/recipes/wetsuit.json new file mode 100644 index 0000000000..7cbea64dde --- /dev/null +++ b/gm4_scuba_gear/data/gm4_scuba_gear/advancement/recipes/wetsuit.json @@ -0,0 +1,33 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "gm4_scuba_gear:wetsuit" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "in_deep_water": { + "conditions": { + "player": [ + { + "condition": "minecraft:reference", + "name": "gm4_scuba_gear:in_deep_water" + } + ] + }, + "trigger": "minecraft:location" + } + }, + "requirements": [ + [ + "has_the_recipe", + "in_deep_water" + ] + ], + "rewards": { + "recipes": [ + "gm4_scuba_gear:wetsuit" + ] + } +} diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/enchantment/flippers.json b/gm4_scuba_gear/data/gm4_scuba_gear/enchantment/flippers.json new file mode 100644 index 0000000000..f5f607a2c7 --- /dev/null +++ b/gm4_scuba_gear/data/gm4_scuba_gear/enchantment/flippers.json @@ -0,0 +1,48 @@ +{ + "description": "", + "exclusive_set": "minecraft:depth_strider", + "supported_items": "minecraft:leather_boots", + "weight": 1, + "max_level": 1, + "min_cost": { + "base": 0, + "per_level_above_first": 0 + }, + "max_cost": { + "base": 0, + "per_level_above_first": 0 + }, + "anvil_cost": 0, + "slots": [ + "feet" + ], + "effects": { + "minecraft:location_changed": [ + { + "requirements": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "fluid": { + "fluids": "#minecraft:water" + } + } + } + } + } + ], + "effect": { + "type": "minecraft:attribute", + "attribute": "minecraft:movement_speed", + "id": "gm4_scuba_gear:flippers/on_land", + "amount": -0.25, + "operation": "add_multiplied_base" + } + } + ] + } +} diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/enchantment/wetsuit.json b/gm4_scuba_gear/data/gm4_scuba_gear/enchantment/wetsuit.json new file mode 100644 index 0000000000..9cd1e8ccfa --- /dev/null +++ b/gm4_scuba_gear/data/gm4_scuba_gear/enchantment/wetsuit.json @@ -0,0 +1,191 @@ +{ + "description": "", + "supported_items": "minecraft:leather_leggings", + "weight": 1, + "max_level": 1, + "min_cost": { + "base": 0, + "per_level_above_first": 0 + }, + "max_cost": { + "base": 0, + "per_level_above_first": 0 + }, + "anvil_cost": 0, + "slots": [ + "legs" + ], + "effects": { + "minecraft:tick": [ + { + "requirements": [ + { + "condition": "minecraft:all_of", + "terms": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:location_check", + "predicate": { + "fluid": { + "fluids": "#minecraft:water" + } + } + } + }, + { + "condition": "minecraft:entity_scores", + "entity": "this", + "scores": { + "gm4_sg_buoyancy": { + "min": -1, + "max": 1 + } + } + } + ] + } + ], + "effect": { + "type": "minecraft:run_function", + "function": "gm4_scuba_gear:wetsuit_buoyancy/clear" + } + }, + { + "requirements": [ + { + "condition": "minecraft:location_check", + "predicate": { + "fluid": { + "fluids": "#minecraft:water" + } + } + }, + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type_specific": { + "type": "minecraft:player", + "input": { + "jump": false, + "sneak": false + } + } + } + }, + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type_specific": { + "type": "minecraft:player", + "input": { + "jump": true, + "sneak": true + } + } + } + } + ] + }, + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:entity_scores", + "entity": "this", + "scores": { + "gm4_sg_buoyancy": 0 + } + } + } + ], + "effect": { + "type": "minecraft:run_function", + "function": "gm4_scuba_gear:wetsuit_buoyancy/neutral" + } + }, + { + "requirements": [ + { + "condition": "minecraft:location_check", + "predicate": { + "fluid": { + "fluids": "#minecraft:water" + } + } + }, + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:entity_scores", + "entity": "this", + "scores": { + "gm4_sg_buoyancy": -1 + } + } + }, + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type_specific": { + "type": "minecraft:player", + "input": { + "jump": false, + "sneak": true + } + } + } + } + ], + "effect": { + "type": "minecraft:run_function", + "function": "gm4_scuba_gear:wetsuit_buoyancy/negative" + } + }, + { + "requirements": [ + { + "condition": "minecraft:location_check", + "predicate": { + "fluid": { + "fluids": "#minecraft:water" + } + } + }, + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:entity_scores", + "entity": "this", + "scores": { + "gm4_sg_buoyancy": 1 + } + } + }, + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type_specific": { + "type": "minecraft:player", + "input": { + "jump": true, + "sneak": false + } + } + } + } + ], + "effect": { + "type": "minecraft:run_function", + "function": "gm4_scuba_gear:wetsuit_buoyancy/positive" + } + } + ] + } +} diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/function/breathe.mcfunction b/gm4_scuba_gear/data/gm4_scuba_gear/function/breathe.mcfunction deleted file mode 100644 index d0d73c095b..0000000000 --- a/gm4_scuba_gear/data/gm4_scuba_gear/function/breathe.mcfunction +++ /dev/null @@ -1,5 +0,0 @@ -# @s = players with SCUBA helmet and tank equipped -# run from equipped - -effect give @s minecraft:conduit_power 240 -tag @s add gm4_in_water diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/function/check_gear.mcfunction b/gm4_scuba_gear/data/gm4_scuba_gear/function/check_gear.mcfunction deleted file mode 100644 index f7ab37900a..0000000000 --- a/gm4_scuba_gear/data/gm4_scuba_gear/function/check_gear.mcfunction +++ /dev/null @@ -1,5 +0,0 @@ -# @s = player in water -# run from main - -execute unless entity @s[predicate=gm4_scuba_gear:tank_equipped] run function gm4_scuba_gear:remove_effect -execute at @s anchored eyes positioned ^ ^ ^ unless predicate gm4_scuba_gear:in_water run function gm4_scuba_gear:remove_effect diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/function/check_recipes.mcfunction b/gm4_scuba_gear/data/gm4_scuba_gear/function/check_recipes.mcfunction index 6e1f30d2e4..dfd3940db0 100644 --- a/gm4_scuba_gear/data/gm4_scuba_gear/function/check_recipes.mcfunction +++ b/gm4_scuba_gear/data/gm4_scuba_gear/function/check_recipes.mcfunction @@ -1,4 +1,4 @@ -execute if score $crafted gm4_crafting matches 0 store success score $crafted gm4_crafting if score $slot_count gm4_crafting matches 6 if score $stack_size gm4_crafting matches ..64 if data storage gm4_custom_crafters:temp/crafter {Items:[{Slot:0b,id:"minecraft:gold_ingot"},{Slot:1b,id:"minecraft:turtle_helmet"},{Slot:2b,id:"minecraft:gold_ingot"},{Slot:3b,id:"minecraft:gold_ingot"},{Slot:4b,id:"minecraft:glass_pane"},{Slot:5b,id:"minecraft:gold_ingot"}]} run loot replace block ~ ~ ~ container.0 loot gm4_scuba_gear:crafting/scuba_helmet -execute if score $crafted gm4_crafting matches 0 store success score $crafted gm4_crafting if score $slot_count gm4_crafting matches 9 if score $stack_size gm4_crafting matches 1 if data storage gm4_custom_crafters:temp/crafter {Items:[{Slot:0b,id:"minecraft:gold_ingot"},{Slot:1b,id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:water_breathing"}}},{Slot:2b,id:"minecraft:gold_ingot"},{Slot:3b,id:"minecraft:turtle_scute"},{Slot:4b,id:"minecraft:gold_ingot"},{Slot:5b,id:"minecraft:turtle_scute"},{Slot:6b,id:"minecraft:gold_ingot"},{Slot:7b,id:"minecraft:gold_ingot"},{Slot:8b,id:"minecraft:gold_ingot"}]} run loot replace block ~ ~ ~ container.0 loot gm4_scuba_gear:crafting/scuba_tank -execute if score $crafted gm4_crafting matches 0 store success score $crafted gm4_crafting if score $slot_count gm4_crafting matches 9 if score $stack_size gm4_crafting matches 1 if data storage gm4_custom_crafters:temp/crafter {Items:[{Slot:0b,id:"minecraft:gold_ingot"},{Slot:1b,id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_water_breathing"}}},{Slot:2b,id:"minecraft:gold_ingot"},{Slot:3b,id:"minecraft:turtle_scute"},{Slot:4b,id:"minecraft:gold_ingot"},{Slot:5b,id:"minecraft:turtle_scute"},{Slot:6b,id:"minecraft:gold_ingot"},{Slot:7b,id:"minecraft:gold_ingot"},{Slot:8b,id:"minecraft:gold_ingot"}]} run loot replace block ~ ~ ~ container.0 loot gm4_scuba_gear:crafting/scuba_tank -execute if score $crafted gm4_crafting matches 0 store success score $crafted gm4_crafting if score $slot_count gm4_crafting matches 6 if score $stack_size gm4_crafting matches 1 if data storage gm4_custom_crafters:temp/crafter {Items:[{Slot:0b,id:"minecraft:turtle_scute"},{Slot:2b,id:"minecraft:turtle_scute"},{Slot:3b,id:"minecraft:rabbit_hide"},{Slot:5b,id:"minecraft:rabbit_hide"},{Slot:6b,id:"minecraft:rabbit_hide"},{Slot:8b,id:"minecraft:rabbit_hide"}]} run loot replace block ~ ~ ~ container.0 loot gm4_scuba_gear:crafting/flippers +execute if score $crafted gm4_crafting matches 0 store success score $crafted gm4_crafting if score $slot_count gm4_crafting matches 6 if score $stack_size gm4_crafting matches 1 if data storage gm4_custom_crafters:temp/crafter {Items:[{Slot:0b,id:"minecraft:copper_ingot"},{Slot:1b,id:"minecraft:copper_ingot"},{Slot:2b,id:"minecraft:copper_ingot"},{Slot:3b,id:"minecraft:copper_ingot"},{Slot:4b,id:"minecraft:glass"},{Slot:5b,id:"minecraft:copper_ingot"}]} run loot replace block ~ ~ ~ container.0 loot gm4_scuba_gear:crafting/scuba_helmet +execute if score $crafted gm4_crafting matches 0 store success score $crafted gm4_crafting if score $slot_count gm4_crafting matches 8 if score $stack_size gm4_crafting matches 1 if data storage gm4_custom_crafters:temp/crafter {Items:[{Slot:0b,id:"minecraft:copper_ingot"},{Slot:2b,id:"minecraft:copper_ingot"},{Slot:3b,id:"minecraft:decorated_pot"},{Slot:4b,id:"minecraft:copper_ingot"},{Slot:5b,id:"minecraft:decorated_pot"},{Slot:6b,id:"minecraft:copper_ingot"},{Slot:7b,id:"minecraft:copper_ingot"},{Slot:8b,id:"minecraft:copper_ingot"}]} run loot replace block ~ ~ ~ container.0 loot gm4_scuba_gear:crafting/scuba_tank +execute if score $crafted gm4_crafting matches 0 store success score $crafted gm4_crafting if score $slot_count gm4_crafting matches 7 if score $stack_size gm4_crafting matches 1 if data storage gm4_custom_crafters:temp/crafter {Items:[{Slot:0b,id:"minecraft:dried_kelp"},{Slot:1b,id:"minecraft:copper_ingot"},{Slot:2b,id:"minecraft:dried_kelp"},{Slot:3b,id:"minecraft:dried_kelp"},{Slot:5b,id:"minecraft:dried_kelp"},{Slot:6b,id:"minecraft:dried_kelp"},{Slot:8b,id:"minecraft:dried_kelp"}]} run loot replace block ~ ~ ~ container.0 loot gm4_scuba_gear:crafting/wetsuit +execute if score $crafted gm4_crafting matches 0 store success score $crafted gm4_crafting if score $slot_count gm4_crafting matches 4 if score $stack_size gm4_crafting matches 1 if data storage gm4_custom_crafters:temp/crafter {Items:[{Slot:0b,id:"minecraft:copper_ingot"},{Slot:2b,id:"minecraft:copper_ingot"},{Slot:3b,id:"minecraft:dried_kelp"},{Slot:5b,id:"minecraft:dried_kelp"}]} run loot replace block ~ ~ ~ container.0 loot gm4_scuba_gear:crafting/flippers diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/function/equipped.mcfunction b/gm4_scuba_gear/data/gm4_scuba_gear/function/equipped.mcfunction deleted file mode 100644 index f6eb8a502f..0000000000 --- a/gm4_scuba_gear/data/gm4_scuba_gear/function/equipped.mcfunction +++ /dev/null @@ -1,5 +0,0 @@ -# @s = player wearing a piece of scuba gear -# run from main - -execute if entity @s[tag=!gm4_in_water,predicate=gm4_scuba_gear:tank_equipped] at @s anchored eyes positioned ^ ^ ^ if predicate gm4_scuba_gear:in_water run function gm4_scuba_gear:breathe -effect give @s[scores={gm4_sg_swim=1..},predicate=gm4_scuba_gear:flippers_equipped] dolphins_grace 3 0 true diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/function/init.mcfunction b/gm4_scuba_gear/data/gm4_scuba_gear/function/init.mcfunction index 734dc51f45..b437cf9e7d 100644 --- a/gm4_scuba_gear/data/gm4_scuba_gear/function/init.mcfunction +++ b/gm4_scuba_gear/data/gm4_scuba_gear/function/init.mcfunction @@ -1,9 +1,7 @@ -scoreboard objectives add gm4_sg_swim minecraft.custom:minecraft.swim_one_cm +scoreboard objectives add gm4_sg_buoyancy dummy execute unless score scuba_gear gm4_modules matches 1 run data modify storage gm4:log queue append value {type:"install",module:"Scuba Gear"} execute unless score scuba_gear gm4_earliest_version < scuba_gear gm4_modules run scoreboard players operation scuba_gear gm4_earliest_version = scuba_gear gm4_modules scoreboard players set scuba_gear gm4_modules 1 -schedule function gm4_scuba_gear:main 1t - #$moduleUpdateList diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/function/main.mcfunction b/gm4_scuba_gear/data/gm4_scuba_gear/function/main.mcfunction deleted file mode 100644 index cb59ce876a..0000000000 --- a/gm4_scuba_gear/data/gm4_scuba_gear/function/main.mcfunction +++ /dev/null @@ -1,8 +0,0 @@ -# check if SCUBA gear is in inventory -execute as @a[gamemode=!spectator,predicate=gm4_scuba_gear:scuba_gear_equipped] run function gm4_scuba_gear:equipped - -# reset scores and tags -scoreboard players reset @a gm4_sg_swim -execute as @a[tag=gm4_in_water] run function gm4_scuba_gear:check_gear - -schedule function gm4_scuba_gear:main 16t diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/function/remove_effect.mcfunction b/gm4_scuba_gear/data/gm4_scuba_gear/function/remove_effect.mcfunction deleted file mode 100644 index ffce14b858..0000000000 --- a/gm4_scuba_gear/data/gm4_scuba_gear/function/remove_effect.mcfunction +++ /dev/null @@ -1,5 +0,0 @@ -# @s = players that no longer fit SCUBA requirements (removes gear or out of water) -# run from main - -effect clear @s minecraft:conduit_power -execute at @s anchored eyes positioned ^ ^ ^ unless predicate gm4_scuba_gear:in_water run tag @s remove gm4_in_water diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/function/wetsuit_buoyancy/clear.mcfunction b/gm4_scuba_gear/data/gm4_scuba_gear/function/wetsuit_buoyancy/clear.mcfunction new file mode 100644 index 0000000000..a3e8e056da --- /dev/null +++ b/gm4_scuba_gear/data/gm4_scuba_gear/function/wetsuit_buoyancy/clear.mcfunction @@ -0,0 +1,8 @@ +# removes wetsuit attributes when out of water +# @s = player wearing wetsuit +# located at @s +# run from enchant, gm4_scuba_gear:enchantment/wetsuit + +item modify entity @s armor.legs gm4_scuba_gear:wetsuit_buoyancy/clear + +scoreboard players reset @s gm4_sg_buoyancy diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/function/wetsuit_buoyancy/negative.mcfunction b/gm4_scuba_gear/data/gm4_scuba_gear/function/wetsuit_buoyancy/negative.mcfunction new file mode 100644 index 0000000000..fe39dd3ba9 --- /dev/null +++ b/gm4_scuba_gear/data/gm4_scuba_gear/function/wetsuit_buoyancy/negative.mcfunction @@ -0,0 +1,8 @@ +# increases player gravity when actively sinking +# @s = player wearing wetsuit, sneak input +# located at @s, in water +# run from enchant, gm4_scuba_gear:enchantment/wetsuit + +item modify entity @s armor.legs gm4_scuba_gear:wetsuit_buoyancy/negative + +scoreboard players set @s gm4_sg_buoyancy -1 diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/function/wetsuit_buoyancy/neutral.mcfunction b/gm4_scuba_gear/data/gm4_scuba_gear/function/wetsuit_buoyancy/neutral.mcfunction new file mode 100644 index 0000000000..dfe48c5eec --- /dev/null +++ b/gm4_scuba_gear/data/gm4_scuba_gear/function/wetsuit_buoyancy/neutral.mcfunction @@ -0,0 +1,8 @@ +# negates player gravity to maintain vertical position +# @s = player wearing wetsuit, not sneak or jump input +# located at @s, in water +# run from enchant, gm4_scuba_gear:enchantment/wetsuit + +item modify entity @s armor.legs gm4_scuba_gear:wetsuit_buoyancy/neutral + +scoreboard players set @s gm4_sg_buoyancy 0 diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/function/wetsuit_buoyancy/positive.mcfunction b/gm4_scuba_gear/data/gm4_scuba_gear/function/wetsuit_buoyancy/positive.mcfunction new file mode 100644 index 0000000000..659a7fe452 --- /dev/null +++ b/gm4_scuba_gear/data/gm4_scuba_gear/function/wetsuit_buoyancy/positive.mcfunction @@ -0,0 +1,8 @@ +# decreases player gravity when actively ascending +# @s = player wearing wetsuit, jump input +# located at @s, in water +# run from enchant, gm4_scuba_gear:enchantment/wetsuit + +item modify entity @s armor.legs gm4_scuba_gear:wetsuit_buoyancy/negative + +scoreboard players set @s gm4_sg_buoyancy 1 diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/gm4_recipes/flippers.json b/gm4_scuba_gear/data/gm4_scuba_gear/gm4_recipes/flippers.json index dee6bfcba2..2d6c461b99 100644 --- a/gm4_scuba_gear/data/gm4_scuba_gear/gm4_recipes/flippers.json +++ b/gm4_scuba_gear/data/gm4_scuba_gear/gm4_recipes/flippers.json @@ -2,16 +2,15 @@ "input": { "type": "shaped", "recipe": [ - "S S", - "R R", - "R R" + "C C", + "K K" ], "key": { - "S": { - "item": "minecraft:turtle_scute" + "C": { + "item": "minecraft:copper_ingot" }, - "R": { - "item": "minecraft:rabbit_hide" + "K": { + "item": "minecraft:dried_kelp" } } }, @@ -21,7 +20,7 @@ "name": "gm4_scuba_gear:items/flippers", "count": 1, "guidebook": { - "display_color": 11009871 + "display_color": 2367281 } } } diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/gm4_recipes/scuba_helmet.json b/gm4_scuba_gear/data/gm4_scuba_gear/gm4_recipes/scuba_helmet.json index 7d059cd3e5..ad39b0e801 100644 --- a/gm4_scuba_gear/data/gm4_scuba_gear/gm4_recipes/scuba_helmet.json +++ b/gm4_scuba_gear/data/gm4_scuba_gear/gm4_recipes/scuba_helmet.json @@ -2,18 +2,15 @@ "input": { "type": "shaped", "recipe": [ - "GTG", - "GPG" + "CCC", + "CGC" ], "key": { - "G": { - "item": "minecraft:gold_ingot" - }, - "T": { - "item": "minecraft:turtle_helmet" + "C": { + "item": "minecraft:copper_ingot" }, - "P": { - "item": "minecraft:glass_pane" + "G": { + "item": "minecraft:glass" } } }, diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/gm4_recipes/scuba_tank.json b/gm4_scuba_gear/data/gm4_scuba_gear/gm4_recipes/scuba_tank.json index cf062071d8..1445fb1e1b 100644 --- a/gm4_scuba_gear/data/gm4_scuba_gear/gm4_recipes/scuba_tank.json +++ b/gm4_scuba_gear/data/gm4_scuba_gear/gm4_recipes/scuba_tank.json @@ -2,33 +2,19 @@ "input": { "type": "shaped", "recipe": [ - "GPG", - "SGS", - "GGG" + "C C", + "PCP", + "CCC" ], "key": { - "G": { - "item": "minecraft:gold_ingot" + "C": { + "item": "minecraft:copper_ingot" }, "P": [ { - "item": "minecraft:potion", - "components": {"minecraft:potion_contents":{"potion":"minecraft:water_breathing"}}, - "guidebook": { - "overlay_color": 10017472 - } - }, - { - "item": "minecraft:potion", - "components": {"minecraft:potion_contents":{"potion":"minecraft:long_water_breathing"}}, - "guidebook": { - "overlay_color": 10017472 - } + "item": "minecraft:decorated_pot" } - ], - "S": { - "item": "minecraft:turtle_scute" - } + ] } }, "output": { diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/gm4_recipes/wetsuit.json b/gm4_scuba_gear/data/gm4_scuba_gear/gm4_recipes/wetsuit.json new file mode 100644 index 0000000000..5ae5942c2a --- /dev/null +++ b/gm4_scuba_gear/data/gm4_scuba_gear/gm4_recipes/wetsuit.json @@ -0,0 +1,28 @@ +{ + "input": { + "type": "shaped", + "recipe": [ + "KCK", + "K K", + "K K" + ], + "key": { + "K": { + "item": "minecraft:dried_kelp" + }, + "C": { + "item": "minecraft:copper_ingot" + } + } + }, + "output": { + "result": { + "type": "loot_table", + "name": "gm4_scuba_gear:items/wetsuit", + "count": 1, + "guidebook": { + "display_color": 2367281 + } + } + } +} diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/guidebook/scuba_gear.json b/gm4_scuba_gear/data/gm4_scuba_gear/guidebook/scuba_gear.json index 36dd9d602b..330681be37 100644 --- a/gm4_scuba_gear/data/gm4_scuba_gear/guidebook/scuba_gear.json +++ b/gm4_scuba_gear/data/gm4_scuba_gear/guidebook/scuba_gear.json @@ -6,68 +6,70 @@ "id": "minecraft:horn_coral" }, "criteria": { - "obtain_scute": { + "obtain_copper": { "trigger": "minecraft:inventory_changed", "conditions": { "items": [ { "items": [ - "minecraft:turtle_scute" + "minecraft:copper_ingot" ] } ] } }, - "obtain_water_breathing": { + "obtain_dried_kelp": { "trigger": "minecraft:inventory_changed", "conditions": { "items": [ { - "items": "minecraft:potion", - "predicates": { - "minecraft:potion_contents": "minecraft:water_breathing" - } + "items": [ + "minecraft:dried_kelp" + ] } ] } }, - "obtain_turtle_helmet": { + "obtain_scuba_helmet": { "trigger": "minecraft:inventory_changed", "conditions": { "items": [ { "items": [ - "minecraft:turtle_helmet" - ] + "minecraft:player_head" + ], + "predicates": { + "minecraft:custom_data": "{gm4_scuba_gear:{item:\"helmet\"}}" + } } ] } }, - "obtain_scuba_helmet": { + "obtain_scuba_tank": { "trigger": "minecraft:inventory_changed", "conditions": { "items": [ { "items": [ - "minecraft:player_head" + "minecraft:leather_chestplate" ], "predicates": { - "minecraft:custom_data": "{gm4_scuba_gear:{item:\"helmet\"}}" + "minecraft:custom_data": "{gm4_scuba_gear:{item:\"tank\"}}" } } ] } }, - "obtain_scuba_tank": { + "obtain_wetsuit": { "trigger": "minecraft:inventory_changed", "conditions": { "items": [ { "items": [ - "minecraft:golden_chestplate" + "minecraft:leather_leggings" ], "predicates": { - "minecraft:custom_data": "{gm4_scuba_gear:{item:\"tank\"}}" + "minecraft:custom_data": "{gm4_scuba_gear:{item:\"wetsuit\"}}" } } ] @@ -101,7 +103,7 @@ }, { "translate": "text.gm4.guidebook.scuba_gear.description", - "fallback": "SCUBA Gear can be crafted in a Custom Crafter to aid in ocean travel.\n\nScutes and gold are main components for each piece." + "fallback": "SCUBA Gear can be crafted to aid in ocean travel.\n\nCopper and dried kelp are main components for each piece." } ] ] @@ -111,7 +113,7 @@ "enable": [], "requirements": [ [ - "obtain_scute" + "obtain_dried_kelp" ] ], "pages": [ @@ -128,12 +130,34 @@ ] ] }, + { + "name": "crafting_wetsuit", + "enable": [], + "requirements": [ + [ + "obtain_dried_kelp" + ] + ], + "pages": [ + [ + { + "translate": "text.gm4.guidebook.scuba_gear.crafting_wetsuit", + "fallback": "The Wetsuit can be crafted with the following recipe:" + }, + "\n", + { + "insert": "recipe", + "recipe": "gm4_scuba_gear:wetsuit" + } + ] + ] + }, { "name": "crafting_scuba_helmet", "enable": [], "requirements": [ [ - "obtain_turtle_helmet" + "obtain_copper" ] ], "pages": [ @@ -155,10 +179,7 @@ "enable": [], "requirements": [ [ - "obtain_scute" - ], - [ - "obtain_water_breathing" + "obtain_copper" ] ], "pages": [ @@ -172,12 +193,6 @@ "insert": "recipe", "recipe": "gm4_scuba_gear:scuba_tank" } - ], - [ - { - "translate": "text.gm4.guidebook.scuba_gear.scuba_tank_extended", - "fallback": "An extended water breathing potion can be used to craft the tank, but it won't provide any extra benefits.\n\nA SCUBA tank and helmet must be used in conjunction." - } ] ] }, @@ -198,12 +213,28 @@ ] ] }, + { + "name": "usage_wetsuit", + "enable": [], + "requirements": [ + [ + "obtain_wetsuit" + ] + ], + "pages": [ + [ + { + "translate": "text.gm4.guidebook.scuba_gear.usage_wetsuit", + "fallback": "The Wetsuit allows the user to swim up or down much faster, and maintains their current depth." + } + ] + ] + }, { "name": "usage_scuba_tank", "enable": [], "requirements": [ [ - "obtain_scuba_helmet", "obtain_scuba_tank" ] ], @@ -211,7 +242,24 @@ [ { "translate": "text.gm4.guidebook.scuba_gear.usage_scuba_tank", - "fallback": "Wearing both the scuba tank and helmet will grant 4 minutes of Conduit Power when underwater." + "fallback": "Wearing the scuba tank adds 4 minutes of underwater breathing time." + } + ] + ] + }, + { + "name": "usage_scuba_helmet", + "enable": [], + "requirements": [ + [ + "obtain_scuba_helmet" + ] + ], + "pages": [ + [ + { + "translate": "text.gm4.guidebook.scuba_gear.usage_scuba_helmet", + "fallback": "Wearing the scuba helmet increases underwater mining speed by 6 times." } ] ] diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/item_modifier/wetsuit_buoyancy/clear.json b/gm4_scuba_gear/data/gm4_scuba_gear/item_modifier/wetsuit_buoyancy/clear.json new file mode 100644 index 0000000000..20a9552762 --- /dev/null +++ b/gm4_scuba_gear/data/gm4_scuba_gear/item_modifier/wetsuit_buoyancy/clear.json @@ -0,0 +1,13 @@ +{ + "function": "minecraft:set_attributes", + "modifiers": [ + { + "attribute": "minecraft:gravity", + "id": "gm4_scuba_gear:wetsuit_buoyancy", + "amount": 0, + "operation": "add_value", + "slot": "legs" + } + ], + "replace": false +} diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/item_modifier/wetsuit_buoyancy/negative.json b/gm4_scuba_gear/data/gm4_scuba_gear/item_modifier/wetsuit_buoyancy/negative.json new file mode 100644 index 0000000000..026c6bf0f1 --- /dev/null +++ b/gm4_scuba_gear/data/gm4_scuba_gear/item_modifier/wetsuit_buoyancy/negative.json @@ -0,0 +1,13 @@ +{ + "function": "minecraft:set_attributes", + "modifiers": [ + { + "attribute": "minecraft:gravity", + "id": "gm4_scuba_gear:wetsuit_buoyancy", + "amount": -1.2, + "operation": "add_multiplied_total", + "slot": "legs" + } + ], + "replace": false +} diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/item_modifier/wetsuit_buoyancy/neutral.json b/gm4_scuba_gear/data/gm4_scuba_gear/item_modifier/wetsuit_buoyancy/neutral.json new file mode 100644 index 0000000000..61482ff4ce --- /dev/null +++ b/gm4_scuba_gear/data/gm4_scuba_gear/item_modifier/wetsuit_buoyancy/neutral.json @@ -0,0 +1,13 @@ +{ + "function": "minecraft:set_attributes", + "modifiers": [ + { + "attribute": "minecraft:gravity", + "id": "gm4_scuba_gear:wetsuit_buoyancy", + "amount": -1, + "operation": "add_multiplied_total", + "slot": "legs" + } + ], + "replace": false +} diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/item_modifier/wetsuit_buoyancy/positive.json b/gm4_scuba_gear/data/gm4_scuba_gear/item_modifier/wetsuit_buoyancy/positive.json new file mode 100644 index 0000000000..f52309c571 --- /dev/null +++ b/gm4_scuba_gear/data/gm4_scuba_gear/item_modifier/wetsuit_buoyancy/positive.json @@ -0,0 +1,13 @@ +{ + "function": "minecraft:set_attributes", + "modifiers": [ + { + "attribute": "minecraft:gravity", + "id": "gm4_scuba_gear:wetsuit_buoyancy", + "amount": 1.2, + "operation": "add_multiplied_total", + "slot": "legs" + } + ], + "replace": false +} diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/loot_table/crafting/flippers.json b/gm4_scuba_gear/data/gm4_scuba_gear/loot_table/crafting/flippers.json index b617166679..4539fc9033 100644 --- a/gm4_scuba_gear/data/gm4_scuba_gear/loot_table/crafting/flippers.json +++ b/gm4_scuba_gear/data/gm4_scuba_gear/loot_table/crafting/flippers.json @@ -1,29 +1,29 @@ { - "type": "minecraft:generic", - "pools": [ + "type": "minecraft:generic", + "pools": [ + { + "rolls": 8, + "entries": [ { - "rolls": 8, - "entries": [ - { - "type": "minecraft:loot_table", - "value": "gm4:air" - } - ] - }, + "type": "minecraft:loot_table", + "value": "gm4:air" + } + ] + }, + { + "rolls": 1, + "entries": [ { - "rolls": 1, - "entries": [ - { - "type": "minecraft:loot_table", - "value": "gm4_scuba_gear:items/flippers", - "functions": [ - { - "function": "minecraft:set_count", - "count": 1 - } - ] - } - ] + "type": "minecraft:loot_table", + "value": "gm4_scuba_gear:items/flippers", + "functions": [ + { + "function": "minecraft:set_count", + "count": 1 + } + ] } - ] + ] + } + ] } diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/loot_table/crafting/scuba_helmet.json b/gm4_scuba_gear/data/gm4_scuba_gear/loot_table/crafting/scuba_helmet.json index ce285b5b03..65f15e7b23 100644 --- a/gm4_scuba_gear/data/gm4_scuba_gear/loot_table/crafting/scuba_helmet.json +++ b/gm4_scuba_gear/data/gm4_scuba_gear/loot_table/crafting/scuba_helmet.json @@ -1,29 +1,29 @@ { - "type": "minecraft:generic", - "pools": [ + "type": "minecraft:generic", + "pools": [ + { + "rolls": 8, + "entries": [ { - "rolls": 8, - "entries": [ - { - "type": "minecraft:loot_table", - "value": "gm4:air" - } - ] - }, + "type": "minecraft:loot_table", + "value": "gm4:air" + } + ] + }, + { + "rolls": 1, + "entries": [ { - "rolls": 1, - "entries": [ - { - "type": "minecraft:loot_table", - "value": "gm4_scuba_gear:items/scuba_helmet", - "functions": [ - { - "function": "minecraft:set_count", - "count": 1 - } - ] - } - ] + "type": "minecraft:loot_table", + "value": "gm4_scuba_gear:items/scuba_helmet", + "functions": [ + { + "function": "minecraft:set_count", + "count": 1 + } + ] } - ] + ] + } + ] } diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/loot_table/crafting/scuba_tank.json b/gm4_scuba_gear/data/gm4_scuba_gear/loot_table/crafting/scuba_tank.json index 2c3968fa39..93b6f257bb 100644 --- a/gm4_scuba_gear/data/gm4_scuba_gear/loot_table/crafting/scuba_tank.json +++ b/gm4_scuba_gear/data/gm4_scuba_gear/loot_table/crafting/scuba_tank.json @@ -1,29 +1,29 @@ { - "type": "minecraft:generic", - "pools": [ + "type": "minecraft:generic", + "pools": [ + { + "rolls": 8, + "entries": [ { - "rolls": 8, - "entries": [ - { - "type": "minecraft:loot_table", - "value": "gm4:air" - } - ] - }, + "type": "minecraft:loot_table", + "value": "gm4:air" + } + ] + }, + { + "rolls": 1, + "entries": [ { - "rolls": 1, - "entries": [ - { - "type": "minecraft:loot_table", - "value": "gm4_scuba_gear:items/scuba_tank", - "functions": [ - { - "function": "minecraft:set_count", - "count": 1 - } - ] - } - ] + "type": "minecraft:loot_table", + "value": "gm4_scuba_gear:items/scuba_tank", + "functions": [ + { + "function": "minecraft:set_count", + "count": 1 + } + ] } - ] + ] + } + ] } diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/loot_table/crafting/wetsuit.json b/gm4_scuba_gear/data/gm4_scuba_gear/loot_table/crafting/wetsuit.json new file mode 100644 index 0000000000..b028d6a2dd --- /dev/null +++ b/gm4_scuba_gear/data/gm4_scuba_gear/loot_table/crafting/wetsuit.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_scuba_gear:items/wetsuit", + "functions": [ + { + "function": "minecraft:set_count", + "count": 1 + } + ] + } + ] + } + ] +} diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/loot_table/items/flippers.json b/gm4_scuba_gear/data/gm4_scuba_gear/loot_table/items/flippers.json index a00523ea6c..4dbbfab8cb 100644 --- a/gm4_scuba_gear/data/gm4_scuba_gear/loot_table/items/flippers.json +++ b/gm4_scuba_gear/data/gm4_scuba_gear/loot_table/items/flippers.json @@ -10,41 +10,64 @@ { "function": "minecraft:set_components", "components": { - "minecraft:dyed_color": 11009871, - "minecraft:tooltip_display": { - "hidden_components": [ - "minecraft:dyed_color" - ] + "minecraft:item_name": { + "translate": "item.gm4.flippers", + "fallback": "Flippers", + "color": "white", + "italic": false }, "minecraft:attribute_modifiers": [ { "type": "minecraft:armor", - "id": "gm4_scuba_gear:flippers_armor", - "slot": "feet", + "id": "minecraft:generic.armor", "amount": 1, - "operation": "add_value" + "operation": "add_value", + "slot": "feet" }, { - "type": "minecraft:movement_speed", - "id": "gm4_scuba_gear:flippers_movement_speed", - "slot": "feet", - "amount": -0.4, - "operation": "add_multiplied_base" + "type": "minecraft:water_movement_efficiency", + "id": "gm4_scuba_gear:flippers/water_movement_efficiency", + "amount": 1, + "operation": "add_value", + "slot": "feet" } ], - "minecraft:custom_model_data": "item/flippers" - } - }, - { - "function": "minecraft:set_custom_data", - "tag": "{gm4_scuba_gear:{item:'flippers'}}" - }, - { - "function": "minecraft:set_name", - "name": { - "translate": "item.gm4.flippers", - "fallback": "Flippers", - "italic": false + "minecraft:custom_data": { + "gm4_scuba_gear": { + "item": "flippers" + } + }, + "minecraft:item_model": "gm4_scuba_gear:flippers", + "!minecraft:enchantable": {}, + "minecraft:enchantments": { + "gm4_scuba_gear:flippers": 1 + }, + "minecraft:enchantment_glint_override": false, + "minecraft:equippable": { + "slot": "feet", + "asset_id": "gm4_scuba_gear:scuba" + }, + "minecraft:max_damage": 156, + "minecraft:lore": [ + { + "translate": "item.modifiers.gm4.scuba_gear.on_land", + "fallback": "When on Land:", + "color": "gray", + "italic": false + }, + { + "translate": "attribute.modifier.take.1", + "with": [ + "25", + { + "translate": "attribute.name.generic.movement_speed", + "fallback": "Speed" + } + ], + "color": "red", + "italic": false + } + ] } } ] diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/loot_table/items/scuba_helmet.json b/gm4_scuba_gear/data/gm4_scuba_gear/loot_table/items/scuba_helmet.json index cace400166..21e839672a 100644 --- a/gm4_scuba_gear/data/gm4_scuba_gear/loot_table/items/scuba_helmet.json +++ b/gm4_scuba_gear/data/gm4_scuba_gear/loot_table/items/scuba_helmet.json @@ -5,42 +5,48 @@ "entries": [ { "type": "minecraft:item", - "name": "minecraft:player_head", + "name": "minecraft:leather_helmet", "functions": [ { "function": "minecraft:set_components", "components": { + "minecraft:item_name": { + "translate": "item.gm4.scuba_helmet", + "fallback": "SCUBA Helmet", + "italic": false + }, "minecraft:attribute_modifiers": [ { "type": "minecraft:armor", - "id": "gm4_scuba_gear:helmet_armor", + "id": "minecraft:armor.helmet", "slot": "head", - "amount": 2, + "amount": 3, "operation": "add_value" }, { - "type": "minecraft:attack_speed", - "id": "gm4_scuba_gear:helmet_attack_speed", + "type": "minecraft:submerged_mining_speed", + "id": "gm4_scuba_gear:scuba_helmet/submerged_mining_speed", "slot": "head", - "amount": -0.5, - "operation": "add_value" + "amount": 5, + "operation": "add_multiplied_total" } ], - "minecraft:custom_model_data": "item/scuba_helmet", - "minecraft:profile": "$scuba_helmet" - } - }, - { - "function": "minecraft:set_custom_data", - "tag": "{gm4_scuba_gear:{item:'helmet'}}" - }, - { - "function": "minecraft:set_name", - "name": { - "translate": "item.gm4.scuba_helmet", - "fallback": "SCUBA Helmet", - "italic": false, - "color": "white" + "minecraft:custom_data": { + "gm4_scuba_gear": { + "item": "helmet" + } + }, + "!minecraft:enchantable": {}, + "minecraft:equippable": { + "slot": "head", + "asset_id": "gm4_scuba_gear:scuba", + "camera_overlay": "gm4_scuba_gear:misc/scuba_helmet" + }, + "minecraft:max_damage": 132, + "minecraft:max_stack_size": 1, + "minecraft:item_model": "gm4_scuba_gear:scuba_helmet", + "minecraft:profile": "$scuba_helmet", + "minecraft:rarity": "common" } } ] diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/loot_table/items/scuba_tank.json b/gm4_scuba_gear/data/gm4_scuba_gear/loot_table/items/scuba_tank.json index 91b00dc533..e6bd917623 100644 --- a/gm4_scuba_gear/data/gm4_scuba_gear/loot_table/items/scuba_tank.json +++ b/gm4_scuba_gear/data/gm4_scuba_gear/loot_table/items/scuba_tank.json @@ -5,40 +5,49 @@ "entries": [ { "type": "minecraft:item", - "name": "minecraft:golden_chestplate", + "name": "minecraft:leather_chestplate", "functions": [ { "function": "minecraft:set_components", "components": { + "minecraft:item_name": { + "translate": "item.gm4.scuba_tank", + "fallback": "SCUBA Tank", + "italic": false + }, "minecraft:attribute_modifiers": [ - { - "type": "minecraft:movement_speed", - "id": "gm4_scuba_gear:tank_movement_speed", - "slot": "chest", - "amount": -0.1, - "operation": "add_multiplied_base" - }, { "type": "minecraft:armor", "slot": "chest", "id": "gm4_scuba_gear:tank_armor", "amount": 4, "operation": "add_value" + }, + { + "type": "minecraft:oxygen_bonus", + "id": "gm4_scuba_gear:tank/oxygen_bonus", + "amount": 16, + "operation": "add_value", + "slot": "chest" } ], - "minecraft:custom_model_data": "item/scuba_tank" - } - }, - { - "function": "minecraft:set_custom_data", - "tag": "{gm4_scuba_gear:{item:'tank'}}" - }, - { - "function": "minecraft:set_name", - "name": { - "translate": "item.gm4.scuba_tank", - "fallback": "SCUBA Tank", - "italic": false + "minecraft:custom_data": { + "gm4_scuba_gear": { + "item": "tank" + } + }, + "minecraft:item_model": "gm4_scuba_gear:scuba_tank", + "!minecraft:enchantable": {}, + "minecraft:equippable": { + "slot": "chest", + "asset_id": "gm4_scuba_gear:scuba" + }, + "minecraft:max_damage": 192, + "minecraft:tooltip_display": { + "hidden_components": [ + "minecraft:dyed_color" + ] + } } } ] diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/loot_table/items/wetsuit.json b/gm4_scuba_gear/data/gm4_scuba_gear/loot_table/items/wetsuit.json new file mode 100644 index 0000000000..7768e605b5 --- /dev/null +++ b/gm4_scuba_gear/data/gm4_scuba_gear/loot_table/items/wetsuit.json @@ -0,0 +1,68 @@ +{ + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:leather_leggings", + "functions": [ + { + "function": "minecraft:set_components", + "components": { + "minecraft:item_name": { + "translate": "item.gm4.wetsuit", + "fallback": "Wetsuit", + "color": "white", + "italic": false + }, + "minecraft:custom_data": { + "gm4_scuba_gear": { + "item": "wetsuit" + } + }, + "minecraft:item_model": "gm4_scuba_gear:wetsuit", + "minecraft:enchantments": { + "gm4_scuba_gear:wetsuit": 1 + }, + "minecraft:enchantment_glint_override": false, + "minecraft:max_damage": 180, + "!minecraft:enchantable": {}, + "minecraft:equippable": { + "slot": "legs", + "asset_id": "gm4_scuba_gear:scuba" + }, + "minecraft:lore": [ + { + "translate": "item.modifiers.gm4.scuba_gear.in_water", + "fallback": "When in Water:", + "color": "gray", + "italic": false + }, + { + "translate": "item.modifiers.gm4.scuba_gear.neutral_buoyancy", + "fallback": "Neutral Buoyancy", + "color": "blue", + "italic": false + }, + { + "translate": "attribute.modifier.plus.1", + "with": [ + "20", + { + "translate": "item.modifiers.gm4.scuba_gear.vertical_swimming_speed", + "fallback": "Vertical Swimming Speed" + } + ], + "color": "blue", + "italic": false + } + ] + } + } + ] + } + ] + } + ] +} diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/predicate/all_gear_equipped.json b/gm4_scuba_gear/data/gm4_scuba_gear/predicate/all_gear_equipped.json index f1bc0a3403..d5cb801507 100644 --- a/gm4_scuba_gear/data/gm4_scuba_gear/predicate/all_gear_equipped.json +++ b/gm4_scuba_gear/data/gm4_scuba_gear/predicate/all_gear_equipped.json @@ -13,12 +13,20 @@ }, "chest": { "items": [ - "minecraft:golden_chestplate" + "minecraft:leather_chestplate" ], "predicates": { "minecraft:custom_data": "{gm4_scuba_gear:{item:\"tank\"}}" } }, + "legs": { + "items": [ + "minecraft:leather_chestplate" + ], + "predicates": { + "minecraft:custom_data": "{gm4_scuba_gear:{item:\"wetsuit\"}}" + } + }, "feet": { "items": [ "minecraft:leather_boots" diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/predicate/in_deep_water.json b/gm4_scuba_gear/data/gm4_scuba_gear/predicate/in_deep_water.json new file mode 100644 index 0000000000..9706b30cb9 --- /dev/null +++ b/gm4_scuba_gear/data/gm4_scuba_gear/predicate/in_deep_water.json @@ -0,0 +1,47 @@ +[ + { + "condition": "minecraft:location_check", + "offsetY": 0, + "predicate": { + "fluid": { + "fluids": "#minecraft:water" + } + } + }, + { + "condition": "minecraft:location_check", + "offsetY": 1, + "predicate": { + "fluid": { + "fluids": "#minecraft:water" + } + } + }, + { + "condition": "minecraft:location_check", + "offsetY": 2, + "predicate": { + "fluid": { + "fluids": "#minecraft:water" + } + } + }, + { + "condition": "minecraft:location_check", + "offsetY": 3, + "predicate": { + "fluid": { + "fluids": "#minecraft:water" + } + } + }, + { + "condition": "minecraft:location_check", + "offsetY": 4, + "predicate": { + "fluid": { + "fluids": "#minecraft:water" + } + } + } +] diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/predicate/scuba_gear_equipped.json b/gm4_scuba_gear/data/gm4_scuba_gear/predicate/scuba_gear_equipped.json deleted file mode 100644 index 2c03fce34f..0000000000 --- a/gm4_scuba_gear/data/gm4_scuba_gear/predicate/scuba_gear_equipped.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "condition": "minecraft:any_of", - "terms": [ - { - "condition": "minecraft:entity_properties", - "entity": "this", - "predicate": { - "equipment": { - "head": { - "items": [ - "minecraft:player_head" - ], - "predicates": { - "minecraft:custom_data": "{gm4_scuba_gear:{item:\"helmet\"}}" - } - } - } - } - }, - { - "condition": "minecraft:entity_properties", - "entity": "this", - "predicate": { - "equipment": { - "chest": { - "items": [ - "minecraft:golden_chestplate" - ], - "predicates": { - "minecraft:custom_data": "{gm4_scuba_gear:{item:\"tank\"}}" - } - } - } - } - }, - { - "condition": "minecraft:entity_properties", - "entity": "this", - "predicate": { - "equipment": { - "feet": { - "items": [ - "minecraft:leather_boots" - ], - "predicates": { - "minecraft:custom_data": "{gm4_scuba_gear:{item:\"flippers\"}}" - } - } - } - } - } - ] -} diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/predicate/tank_equipped.json b/gm4_scuba_gear/data/gm4_scuba_gear/predicate/tank_equipped.json deleted file mode 100644 index dd9fa94cf8..0000000000 --- a/gm4_scuba_gear/data/gm4_scuba_gear/predicate/tank_equipped.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "condition": "minecraft:entity_properties", - "entity": "this", - "predicate": { - "equipment": { - "head": { - "items": [ - "minecraft:player_head" - ], - "predicates": { - "minecraft:custom_data": "{gm4_scuba_gear:{item:\"helmet\"}}" - } - }, - "chest": { - "items": [ - "minecraft:golden_chestplate" - ], - "predicates": { - "minecraft:custom_data": "{gm4_scuba_gear:{item:\"tank\"}}" - } - } - } - } -} diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/recipe/flippers.json b/gm4_scuba_gear/data/gm4_scuba_gear/recipe/flippers.json new file mode 100644 index 0000000000..ec95bac195 --- /dev/null +++ b/gm4_scuba_gear/data/gm4_scuba_gear/recipe/flippers.json @@ -0,0 +1,86 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "C C", + "K K" + ], + "key": { + "C": [ + "minecraft:copper_ingot" + ], + "K": [ + "minecraft:dried_kelp" + ] + }, + "result": { + "id": "minecraft:leather_boots", + "components": { + "minecraft:item_name": { + "translate": "item.gm4.flippers", + "fallback": "Flippers", + "color": "white", + "italic": false + }, + "minecraft:attribute_modifiers": [ + { + "type": "minecraft:armor", + "id": "minecraft:generic.armor", + "amount": 1, + "operation": "add_value", + "slot": "feet" + }, + { + "type": "minecraft:water_movement_efficiency", + "id": "gm4_scuba_gear:flippers/water_movement_efficiency", + "amount": 1, + "operation": "add_value", + "slot": "feet" + } + ], + "minecraft:item_model": "gm4_scuba_gear:flippers", + "minecraft:custom_data": { + "gm4_scuba_gear": { + "item": "flippers" + } + }, + "minecraft:dyed_color": 2367281, + "!minecraft:enchantable": {}, + "minecraft:enchantments": { + "gm4_scuba_gear:flippers": 1 + }, + "minecraft:enchantment_glint_override": false, + "minecraft:equippable": { + "slot": "feet", + "asset_id": "gm4_scuba_gear:scuba" + }, + "minecraft:max_damage": 156, + "minecraft:tooltip_display": { + "hidden_components": [ + "minecraft:dyed_color" + ] + }, + "minecraft:lore": [ + { + "translate": "item.modifiers.gm4.scuba_gear.on_land", + "fallback": "When on Land:", + "color": "gray", + "italic": false + }, + { + "translate": "attribute.modifier.take.1", + "with": [ + "25", + { + "translate": "attribute.name.generic.movement_speed", + "fallback": "Speed" + } + ], + "color": "red", + "italic": false + } + ] + }, + "count": 1 + } +} diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/recipe/scuba_helmet.json b/gm4_scuba_gear/data/gm4_scuba_gear/recipe/scuba_helmet.json new file mode 100644 index 0000000000..3b99118074 --- /dev/null +++ b/gm4_scuba_gear/data/gm4_scuba_gear/recipe/scuba_helmet.json @@ -0,0 +1,60 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "CCC", + "CGC" + ], + "key": { + "C": [ + "minecraft:copper_ingot" + ], + "G": [ + "minecraft:glass" + ] + }, + "result": { + "id": "minecraft:leather_helmet", + "components": { + "minecraft:item_name": { + "translate": "item.gm4.scuba_helmet", + "fallback": "SCUBA Helmet", + "color": "white", + "italic": false + }, + "minecraft:attribute_modifiers": [ + { + "type": "minecraft:armor", + "id": "minecraft:armor.helmet", + "amount": 3, + "operation": "add_value", + "slot": "head" + }, + { + "type": "minecraft:submerged_mining_speed", + "id": "gm4_scuba_gear:scuba_helmet/submerged_mining_speed", + "amount": 5, + "operation": "add_multiplied_total", + "slot": "head" + } + ], + "minecraft:custom_data": { + "gm4_scuba_gear": { + "item": "helmet" + } + }, + "minecraft:item_model": "gm4_scuba_gear:scuba_helmet", + "!minecraft:enchantable": {}, + "minecraft:equippable": { + "slot": "head", + "asset_id": "gm4_scuba_gear:scuba", + "camera_overlay": "gm4_scuba_gear:misc/scuba_helmet" + }, + "minecraft:max_damage": 132, + "minecraft:max_stack_size": 1, + "minecraft:profile": "$scuba_helmet", + "minecraft:rarity": "common" + }, + "count": 1 + } +} diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/recipe/scuba_tank.json b/gm4_scuba_gear/data/gm4_scuba_gear/recipe/scuba_tank.json new file mode 100644 index 0000000000..a15334efdb --- /dev/null +++ b/gm4_scuba_gear/data/gm4_scuba_gear/recipe/scuba_tank.json @@ -0,0 +1,62 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "C C", + "PCP", + "CCC" + ], + "key": { + "C": [ + "minecraft:copper_ingot" + ], + "P": [ + "minecraft:decorated_pot" + ] + }, + "result": { + "id": "minecraft:leather_chestplate", + "components": { + "minecraft:item_name": { + "translate": "item.gm4.scuba_tank", + "fallback": "SCUBA Tank", + "color": "white", + "italic": false + }, + "minecraft:attribute_modifiers": [ + { + "type": "minecraft:armor", + "id": "gm4_scuba_gear:tank/armor", + "amount": 4, + "operation": "add_value", + "slot": "chest" + }, + { + "type": "minecraft:oxygen_bonus", + "id": "gm4_scuba_gear:tank/oxygen_bonus", + "amount": 16, + "operation": "add_value", + "slot": "chest" + } + ], + "minecraft:custom_data": { + "gm4_scuba_gear": { + "item": "tank" + } + }, + "minecraft:item_model": "gm4_scuba_gear:scuba_tank", + "!minecraft:enchantable": {}, + "minecraft:equippable": { + "slot": "chest", + "asset_id": "gm4_scuba_gear:scuba" + }, + "minecraft:max_damage": 192, + "minecraft:tooltip_display": { + "hidden_components": [ + "minecraft:dyed_color" + ] + } + }, + "count": 1 + } +} diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/recipe/wetsuit.json b/gm4_scuba_gear/data/gm4_scuba_gear/recipe/wetsuit.json new file mode 100644 index 0000000000..4871f18ed3 --- /dev/null +++ b/gm4_scuba_gear/data/gm4_scuba_gear/recipe/wetsuit.json @@ -0,0 +1,78 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "KCK", + "K K", + "K K" + ], + "key": { + "C": [ + "minecraft:copper_ingot" + ], + "K": [ + "minecraft:dried_kelp" + ] + }, + "result": { + "id": "minecraft:leather_leggings", + "components": { + "minecraft:item_name": { + "translate": "item.gm4.wetsuit", + "fallback": "Wetsuit", + "color": "white", + "italic": false + }, + "minecraft:max_damage": 180, + "!minecraft:enchantable": {}, + "minecraft:dyed_color": 2367281, + "minecraft:custom_data": { + "gm4_scuba_gear": { + "item": "wetsuit" + } + }, + "minecraft:item_model": "gm4_scuba_gear:wetsuit", + "minecraft:enchantments": { + "gm4_scuba_gear:wetsuit": 1 + }, + "minecraft:enchantment_glint_override": false, + "minecraft:equippable": { + "slot": "legs", + "asset_id": "gm4_scuba_gear:scuba" + }, + "minecraft:rarity": "common", + "minecraft:tooltip_display": { + "hidden_components": [ + "minecraft:dyed_color" + ] + }, + "minecraft:lore": [ + { + "translate": "item.modifiers.gm4.scuba_gear.in_water", + "fallback": "When in Water:", + "color": "gray", + "italic": false + }, + { + "translate": "item.modifiers.gm4.scuba_gear.neutral_buoyancy", + "fallback": "Neutral Buoyancy", + "color": "blue", + "italic": false + }, + { + "translate": "attribute.modifier.plus.1", + "with": [ + "20", + { + "translate": "item.modifiers.gm4.scuba_gear.vertical_swimming_speed", + "fallback": "Vertical Swimming Speed" + } + ], + "color": "blue", + "italic": false + } + ] + }, + "count": 1 + } +} diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/skins/scuba_helmet.png b/gm4_scuba_gear/data/gm4_scuba_gear/skins/scuba_helmet.png index 68991f14ba..cfa199451a 100644 Binary files a/gm4_scuba_gear/data/gm4_scuba_gear/skins/scuba_helmet.png and b/gm4_scuba_gear/data/gm4_scuba_gear/skins/scuba_helmet.png differ diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/test/craft_flippers.mcfunction b/gm4_scuba_gear/data/gm4_scuba_gear/test/craft_flippers.mcfunction index dfd10f20c0..6728c57919 100644 --- a/gm4_scuba_gear/data/gm4_scuba_gear/test/craft_flippers.mcfunction +++ b/gm4_scuba_gear/data/gm4_scuba_gear/test/craft_flippers.mcfunction @@ -1,10 +1,8 @@ # @template gm4_custom_crafters:test_platform -item replace block ~1 ~1 ~1 container.0 with turtle_scute -item replace block ~1 ~1 ~1 container.2 with turtle_scute -item replace block ~1 ~1 ~1 container.3 with rabbit_hide -item replace block ~1 ~1 ~1 container.5 with rabbit_hide -item replace block ~1 ~1 ~1 container.6 with rabbit_hide -item replace block ~1 ~1 ~1 container.8 with rabbit_hide +item replace block ~1 ~1 ~1 container.3 with copper_ingot +item replace block ~1 ~1 ~1 container.5 with copper_ingot +item replace block ~1 ~1 ~1 container.6 with dried_kelp +item replace block ~1 ~1 ~1 container.8 with dried_kelp await items block ~1 ~1 ~1 container.* minecraft:leather_boots[custom_data~{gm4_scuba_gear:{item:"flippers"}}] diff --git a/gm4_scuba_gear/data/gm4_scuba_gear/test/use_helmet_and_tank.mcfunction b/gm4_scuba_gear/data/gm4_scuba_gear/test/use_helmet_and_tank.mcfunction deleted file mode 100644 index 548b8e17a8..0000000000 --- a/gm4_scuba_gear/data/gm4_scuba_gear/test/use_helmet_and_tank.mcfunction +++ /dev/null @@ -1,30 +0,0 @@ -# @template gm4:test_tube -# @dummy ~1.5 ~1 ~1.5 - -setblock ~1 ~1 ~1 water -setblock ~1 ~2 ~1 water -loot replace entity @s armor.head loot gm4_scuba_gear:items/scuba_helmet -loot replace entity @s armor.chest loot gm4_scuba_gear:items/scuba_tank - -await entity @s[nbt={active_effects:[{id:"minecraft:conduit_power"}]}] - -# remove tank -item replace entity @s armor.chest with air - -await not entity @s[nbt={active_effects:[{id:"minecraft:conduit_power"}]}] - -# readd tank -loot replace entity @s armor.chest loot gm4_scuba_gear:items/scuba_tank - -await delay 1s - -assert not entity @s[nbt={active_effects:[{id:"minecraft:conduit_power"}]}] - -# refresh air -setblock ~1 ~2 ~1 air - -await delay 1s - -setblock ~1 ~2 ~1 water - -await entity @s[nbt={active_effects:[{id:"minecraft:conduit_power"}]}] diff --git a/gm4_scuba_gear/data/minecraft/tags/enchantment/curse.json b/gm4_scuba_gear/data/minecraft/tags/enchantment/curse.json new file mode 100644 index 0000000000..c60d1bfddf --- /dev/null +++ b/gm4_scuba_gear/data/minecraft/tags/enchantment/curse.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "gm4_scuba_gear:wetsuit", + "gm4_scuba_gear:flippers" + ] +} diff --git a/gm4_washing_tanks/backport_71/data/gm4_washing_tanks/function/wash.mcfunction b/gm4_washing_tanks/backport_71/data/gm4_washing_tanks/function/wash.mcfunction new file mode 100644 index 0000000000..f5980c97e0 --- /dev/null +++ b/gm4_washing_tanks/backport_71/data/gm4_washing_tanks/function/wash.mcfunction @@ -0,0 +1,30 @@ +#@s = water tank liquid_tank_stand with item in first slot +#run from item_fill + +conversions = { + "glass": "glass", + "glass_pane": "glass_pane", + "terracotta": "terracotta", + "wool": "white_wool", + "bed": "white_bed", + "carpet": "white_carpet", + "shulker_box": "shulker_box", + # "harness": "white_harness" # Added in 1.21.6, + "bundle": "bundle", + "candle": "candle" +} + +for from_id, to_id in conversions.items(): + execute if items block ~ ~ ~ container.0 f"#gm4_washing_tanks:{from_id}" run function f"gm4_washing_tanks:washing_recipes/{from_id}": + scoreboard players set $item_value gm4_lt_value -1 + item replace entity 00344d47-0004-0004-0004-000f04ce104d weapon.mainhand from block ~ ~ ~ container.0 + item modify entity 00344d47-0004-0004-0004-000f04ce104d weapon.mainhand {"function":"minecraft:set_item", "item":f"minecraft:{to_id}"} + function gm4_liquid_tanks:smart_item_fill + tag @s add gm4_lt_fill + +execute if items block ~ ~ ~ container.0 #gm4_washing_tanks:armour[dyed_color] run function gm4_washing_tanks:washing_recipes/armour: + scoreboard players set $item_value gm4_lt_value -1 + item replace entity 00344d47-0004-0004-0004-000f04ce104d weapon.mainhand from block ~ ~ ~ container.0 + item modify entity 00344d47-0004-0004-0004-000f04ce104d weapon.mainhand {"function":"minecraft:set_components", "components":{"!minecraft:dyed_color":{}}} + function gm4_liquid_tanks:smart_item_fill + tag @s add gm4_lt_fill diff --git a/gm4_washing_tanks/backport_71/data/gm4_washing_tanks/function/washing_recipes/harness.mcfunction b/gm4_washing_tanks/backport_71/data/gm4_washing_tanks/function/washing_recipes/harness.mcfunction new file mode 100644 index 0000000000..47401df8b2 --- /dev/null +++ b/gm4_washing_tanks/backport_71/data/gm4_washing_tanks/function/washing_recipes/harness.mcfunction @@ -0,0 +1 @@ +# empty function - overrides future 1.21.6+ function supporting the harness item, which fails to load in 1.21.5 diff --git a/gm4_washing_tanks/beet.yaml b/gm4_washing_tanks/beet.yaml index 4d26b81483..7140e0ec6b 100644 --- a/gm4_washing_tanks/beet.yaml +++ b/gm4_washing_tanks/beet.yaml @@ -4,6 +4,14 @@ version: 1.5.X data_pack: load: . + overlays: + - formats: + min_inclusive: 0 + max_inclusive: 71 + directory: backport_71 + +require: + - bolt pipeline: - gm4.plugins.extend.module @@ -12,7 +20,7 @@ meta: gm4: versioning: required: - gm4_liquid_tanks: 2.7.0 + gm4_liquid_tanks: 3.0.0 website: description: Die! Dye! Remove die from items in a Liquid Tank filled with Water, at the cost of ⅓ of a bucket. recommended: [] diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/function/item_fill.mcfunction b/gm4_washing_tanks/data/gm4_washing_tanks/function/item_fill.mcfunction index c425bcb7e5..c3633e84fa 100644 --- a/gm4_washing_tanks/data/gm4_washing_tanks/function/item_fill.mcfunction +++ b/gm4_washing_tanks/data/gm4_washing_tanks/function/item_fill.mcfunction @@ -1,4 +1,4 @@ #@s = liquid tank with item in first slot #run from liquid_tanks:item_process -execute if entity @s[tag=gm4_lt_water] as @e[type=armor_stand,tag=gm4_liquid_tank_stand,distance=..0.6,limit=1] run function gm4_washing_tanks:wash +execute if entity @s[tag=gm4_lt_water] run function gm4_washing_tanks:wash diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/function/wash.mcfunction b/gm4_washing_tanks/data/gm4_washing_tanks/function/wash.mcfunction index ef3446d6bf..8b94ad5487 100644 --- a/gm4_washing_tanks/data/gm4_washing_tanks/function/wash.mcfunction +++ b/gm4_washing_tanks/data/gm4_washing_tanks/function/wash.mcfunction @@ -1,19 +1,30 @@ #@s = water tank liquid_tank_stand with item in first slot #run from item_fill -# Copy item to armor stand offhand -data modify entity @s equipment.offhand merge value {id:"minecraft:stick",count:1} -data modify entity @s equipment.offhand.id set from storage gm4_liquid_tanks:temp/tank input_slot.id +conversions = { + "glass": "glass", + "glass_pane": "glass_pane", + "terracotta": "terracotta", + "wool": "white_wool", + "bed": "white_bed", + "carpet": "white_carpet", + "shulker_box": "shulker_box", + "harness": "white_harness", + "bundle": "bundle", + "candle": "candle" +} -execute if predicate gm4_washing_tanks:harness as @e[type=marker,tag=gm4_liquid_tank,distance=..0.6,limit=1] run function gm4_washing_tanks:washing_recipes/harness -execute if predicate gm4_washing_tanks:glass as @e[type=marker,tag=gm4_liquid_tank,distance=..0.6,limit=1] run function gm4_washing_tanks:washing_recipes/glass -execute if predicate gm4_washing_tanks:glass_pane as @e[type=marker,tag=gm4_liquid_tank,distance=..0.6,limit=1] run function gm4_washing_tanks:washing_recipes/glass_pane -execute if predicate gm4_washing_tanks:terracotta as @e[type=marker,tag=gm4_liquid_tank,distance=..0.6,limit=1] run function gm4_washing_tanks:washing_recipes/terracotta -execute if predicate gm4_washing_tanks:wool as @e[type=marker,tag=gm4_liquid_tank,distance=..0.6,limit=1] run function gm4_washing_tanks:washing_recipes/wool -execute if predicate gm4_washing_tanks:bed as @e[type=marker,tag=gm4_liquid_tank,distance=..0.6,limit=1] run function gm4_washing_tanks:washing_recipes/bed -execute if predicate gm4_washing_tanks:carpet as @e[type=marker,tag=gm4_liquid_tank,distance=..0.6,limit=1] run function gm4_washing_tanks:washing_recipes/carpet -execute if predicate gm4_washing_tanks:armour if data storage gm4_liquid_tanks:temp/tank input_slot.components."minecraft:dyed_color" as @e[type=marker,tag=gm4_liquid_tank,distance=..0.6,limit=1] run function gm4_washing_tanks:washing_recipes/armour -execute if predicate gm4_washing_tanks:shulker_box as @e[type=marker,tag=gm4_liquid_tank,distance=..0.6,limit=1] run function gm4_washing_tanks:washing_recipes/shulker_box +for from_id, to_id in conversions.items(): + execute if items block ~ ~ ~ container.0 f"#gm4_washing_tanks:{from_id}" run function f"gm4_washing_tanks:washing_recipes/{from_id}": + scoreboard players set $item_value gm4_lt_value -1 + item replace entity 00344d47-0004-0004-0004-000f04ce104d weapon.mainhand from block ~ ~ ~ container.0 + item modify entity 00344d47-0004-0004-0004-000f04ce104d weapon.mainhand {"function":"minecraft:set_item", "item":f"minecraft:{to_id}"} + function gm4_liquid_tanks:smart_item_fill + tag @s add gm4_lt_fill -# Clear armor stand offhand -data remove entity @s equipment.offhand +execute if items block ~ ~ ~ container.0 #gm4_washing_tanks:armour[dyed_color] run function gm4_washing_tanks:washing_recipes/armour: + scoreboard players set $item_value gm4_lt_value -1 + item replace entity 00344d47-0004-0004-0004-000f04ce104d weapon.mainhand from block ~ ~ ~ container.0 + item modify entity 00344d47-0004-0004-0004-000f04ce104d weapon.mainhand {"function":"minecraft:set_components", "components":{"!minecraft:dyed_color":{}}} + function gm4_liquid_tanks:smart_item_fill + tag @s add gm4_lt_fill diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/armour.mcfunction b/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/armour.mcfunction deleted file mode 100644 index b90ce8014d..0000000000 --- a/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/armour.mcfunction +++ /dev/null @@ -1,11 +0,0 @@ -#@s = water tank with one leather armour in the first slot -#run from wash - -scoreboard players set $item_value gm4_lt_value -1 - -data modify storage gm4_liquid_tanks:temp/tank output set from storage gm4_liquid_tanks:temp/tank input_slot - -data remove storage gm4_liquid_tanks:temp/tank output.components."minecraft:dyed_color" - -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/bed.mcfunction b/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/bed.mcfunction deleted file mode 100644 index c0f240ba91..0000000000 --- a/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/bed.mcfunction +++ /dev/null @@ -1,8 +0,0 @@ -#@s = water tank with one coloured bed in the first slot -#run from wash - -scoreboard players set $item_value gm4_lt_value -1 -data modify storage gm4_liquid_tanks:temp/tank output set from storage gm4_liquid_tanks:temp/tank input_slot -data modify storage gm4_liquid_tanks:temp/tank output.id set value white_bed -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/carpet.mcfunction b/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/carpet.mcfunction deleted file mode 100644 index b54749b1d9..0000000000 --- a/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/carpet.mcfunction +++ /dev/null @@ -1,8 +0,0 @@ -#@s = water tank with one coloured carpet in the first slot -#run from wash - -scoreboard players set $item_value gm4_lt_value -1 -data modify storage gm4_liquid_tanks:temp/tank output set from storage gm4_liquid_tanks:temp/tank input_slot -data modify storage gm4_liquid_tanks:temp/tank output.id set value white_carpet -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/glass.mcfunction b/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/glass.mcfunction deleted file mode 100644 index 5e75d03749..0000000000 --- a/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/glass.mcfunction +++ /dev/null @@ -1,8 +0,0 @@ -#@s = water tank with one stained glass in the first slot -#run from wash - -scoreboard players set $item_value gm4_lt_value -1 -data modify storage gm4_liquid_tanks:temp/tank output set from storage gm4_liquid_tanks:temp/tank input_slot -data modify storage gm4_liquid_tanks:temp/tank output.id set value glass -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/glass_pane.mcfunction b/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/glass_pane.mcfunction deleted file mode 100644 index d0eb013cd0..0000000000 --- a/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/glass_pane.mcfunction +++ /dev/null @@ -1,8 +0,0 @@ -#@s = water tank with one stained glass pane in the first slot -#run from wash - -scoreboard players set $item_value gm4_lt_value -1 -data modify storage gm4_liquid_tanks:temp/tank output set from storage gm4_liquid_tanks:temp/tank input_slot -data modify storage gm4_liquid_tanks:temp/tank output.id set value glass_pane -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/harness.mcfunction b/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/harness.mcfunction deleted file mode 100644 index 4d59c93241..0000000000 --- a/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/harness.mcfunction +++ /dev/null @@ -1,8 +0,0 @@ -#@s = water tank with one colored harness in the first slot -#run from wash - -scoreboard players set $item_value gm4_lt_value -1 -data modify storage gm4_liquid_tanks:temp/tank output set from storage gm4_liquid_tanks:temp/tank input_slot -data modify storage gm4_liquid_tanks:temp/tank output.id set value white_harness -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/shulker_box.mcfunction b/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/shulker_box.mcfunction deleted file mode 100644 index be606d088e..0000000000 --- a/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/shulker_box.mcfunction +++ /dev/null @@ -1,8 +0,0 @@ -#@s = water tank with one coloured shulker box in the first slot -#run from wash - -scoreboard players set $item_value gm4_lt_value -1 -data modify storage gm4_liquid_tanks:temp/tank output set from storage gm4_liquid_tanks:temp/tank input_slot -data modify storage gm4_liquid_tanks:temp/tank output.id set value shulker_box -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/terracotta.mcfunction b/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/terracotta.mcfunction deleted file mode 100644 index 28680d4c50..0000000000 --- a/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/terracotta.mcfunction +++ /dev/null @@ -1,8 +0,0 @@ -#@s = water tank with one coloured terracotta in the first slot -#run from wash - -scoreboard players set $item_value gm4_lt_value -1 -data modify storage gm4_liquid_tanks:temp/tank output set from storage gm4_liquid_tanks:temp/tank input_slot -data modify storage gm4_liquid_tanks:temp/tank output.id set value terracotta -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/wool.mcfunction b/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/wool.mcfunction deleted file mode 100644 index f2fe49cc93..0000000000 --- a/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/wool.mcfunction +++ /dev/null @@ -1,8 +0,0 @@ -#@s = water tank with one coloured wool in the first slot -#run from wash - -scoreboard players set $item_value gm4_lt_value -1 -data modify storage gm4_liquid_tanks:temp/tank output set from storage gm4_liquid_tanks:temp/tank input_slot -data modify storage gm4_liquid_tanks:temp/tank output.id set value white_wool -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/predicate/armour.json b/gm4_washing_tanks/data/gm4_washing_tanks/predicate/armour.json deleted file mode 100644 index ef34c2d59d..0000000000 --- a/gm4_washing_tanks/data/gm4_washing_tanks/predicate/armour.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "condition": "minecraft:entity_properties", - "entity": "this", - "predicate": { - "equipment": { - "offhand": { - "items": "#gm4_washing_tanks:armour" - } - } - } -} diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/predicate/bed.json b/gm4_washing_tanks/data/gm4_washing_tanks/predicate/bed.json deleted file mode 100644 index 944059c92a..0000000000 --- a/gm4_washing_tanks/data/gm4_washing_tanks/predicate/bed.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "condition": "minecraft:entity_properties", - "entity": "this", - "predicate": { - "equipment": { - "offhand": { - "items": "#gm4_washing_tanks:bed" - } - } - } -} diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/predicate/carpet.json b/gm4_washing_tanks/data/gm4_washing_tanks/predicate/carpet.json deleted file mode 100644 index 18f9926ab9..0000000000 --- a/gm4_washing_tanks/data/gm4_washing_tanks/predicate/carpet.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "condition": "minecraft:entity_properties", - "entity": "this", - "predicate": { - "equipment": { - "offhand": { - "items": "#gm4_washing_tanks:carpet" - } - } - } -} diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/predicate/glass.json b/gm4_washing_tanks/data/gm4_washing_tanks/predicate/glass.json deleted file mode 100644 index 853b049d97..0000000000 --- a/gm4_washing_tanks/data/gm4_washing_tanks/predicate/glass.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "condition": "minecraft:entity_properties", - "entity": "this", - "predicate": { - "equipment": { - "offhand": { - "items": "#gm4_washing_tanks:glass" - } - } - } -} diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/predicate/glass_pane.json b/gm4_washing_tanks/data/gm4_washing_tanks/predicate/glass_pane.json deleted file mode 100644 index 08705b7145..0000000000 --- a/gm4_washing_tanks/data/gm4_washing_tanks/predicate/glass_pane.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "condition": "minecraft:entity_properties", - "entity": "this", - "predicate": { - "equipment": { - "offhand": { - "items": "#gm4_washing_tanks:glass_pane" - } - } - } -} diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/predicate/harness.json b/gm4_washing_tanks/data/gm4_washing_tanks/predicate/harness.json deleted file mode 100644 index 57cffcf3cd..0000000000 --- a/gm4_washing_tanks/data/gm4_washing_tanks/predicate/harness.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "condition": "minecraft:entity_properties", - "entity": "this", - "predicate": { - "equipment": { - "offhand": { - "items": "#gm4_washing_tanks:harness" - } - } - } -} diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/predicate/shulker_box.json b/gm4_washing_tanks/data/gm4_washing_tanks/predicate/shulker_box.json deleted file mode 100644 index 97b7f37176..0000000000 --- a/gm4_washing_tanks/data/gm4_washing_tanks/predicate/shulker_box.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "condition": "minecraft:entity_properties", - "entity": "this", - "predicate": { - "equipment": { - "offhand": { - "items": "#gm4_washing_tanks:shulker_box" - } - } - } -} diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/predicate/terracotta.json b/gm4_washing_tanks/data/gm4_washing_tanks/predicate/terracotta.json deleted file mode 100644 index c7cf2b6ee2..0000000000 --- a/gm4_washing_tanks/data/gm4_washing_tanks/predicate/terracotta.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "condition": "minecraft:entity_properties", - "entity": "this", - "predicate": { - "equipment": { - "offhand": { - "items": "#gm4_washing_tanks:terracotta" - } - } - } -} diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/predicate/wool.json b/gm4_washing_tanks/data/gm4_washing_tanks/predicate/wool.json deleted file mode 100644 index be3e5966e2..0000000000 --- a/gm4_washing_tanks/data/gm4_washing_tanks/predicate/wool.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "condition": "minecraft:entity_properties", - "entity": "this", - "predicate": { - "equipment": { - "offhand": { - "items": "#gm4_washing_tanks:wool" - } - } - } -} diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/tags/item/armour.json b/gm4_washing_tanks/data/gm4_washing_tanks/tags/item/armour.json index b4d980c6b8..8b0e6a0e1f 100644 --- a/gm4_washing_tanks/data/gm4_washing_tanks/tags/item/armour.json +++ b/gm4_washing_tanks/data/gm4_washing_tanks/tags/item/armour.json @@ -4,6 +4,7 @@ "minecraft:leather_leggings", "minecraft:leather_chestplate", "minecraft:leather_helmet", + "minecraft:leather_horse_armor", "minecraft:wolf_armor" ] } diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/tags/item/bundle.json b/gm4_washing_tanks/data/gm4_washing_tanks/tags/item/bundle.json new file mode 100644 index 0000000000..23084143d0 --- /dev/null +++ b/gm4_washing_tanks/data/gm4_washing_tanks/tags/item/bundle.json @@ -0,0 +1,20 @@ +{ + "values": [ + "minecraft:black_bundle", + "minecraft:blue_bundle", + "minecraft:brown_bundle", + "minecraft:cyan_bundle", + "minecraft:gray_bundle", + "minecraft:green_bundle", + "minecraft:light_blue_bundle", + "minecraft:light_gray_bundle", + "minecraft:lime_bundle", + "minecraft:magenta_bundle", + "minecraft:orange_bundle", + "minecraft:pink_bundle", + "minecraft:purple_bundle", + "minecraft:red_bundle", + "minecraft:yellow_bundle", + "minecraft:white_bundle" + ] +} diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/tags/item/candle.json b/gm4_washing_tanks/data/gm4_washing_tanks/tags/item/candle.json new file mode 100644 index 0000000000..0c3fbcc8cf --- /dev/null +++ b/gm4_washing_tanks/data/gm4_washing_tanks/tags/item/candle.json @@ -0,0 +1,20 @@ +{ + "values": [ + "minecraft:white_candle", + "minecraft:orange_candle", + "minecraft:magenta_candle", + "minecraft:light_blue_candle", + "minecraft:yellow_candle", + "minecraft:lime_candle", + "minecraft:pink_candle", + "minecraft:gray_candle", + "minecraft:light_gray_candle", + "minecraft:cyan_candle", + "minecraft:purple_candle", + "minecraft:blue_candle", + "minecraft:brown_candle", + "minecraft:green_candle", + "minecraft:red_candle", + "minecraft:black_candle" + ] +}