diff --git a/mods/CORE/pyutest/damage.lua b/mods/CORE/pyutest/damage.lua index 82b731b..6646cb9 100644 --- a/mods/CORE/pyutest/damage.lua +++ b/mods/CORE/pyutest/damage.lua @@ -93,7 +93,7 @@ core.register_on_dieplayer(function(player, reason) end end elseif reason.type == "node_damage" then - local desc = minetest.registered_nodes[reason.node].description or "a block" + local desc = core.registered_nodes[reason.node].description or "a block" message = string.format("%s was killed by %s", playername, desc) end diff --git a/mods/CORE/pyutest/models/pyutest-frying-pan.obj b/mods/CORE/pyutest/models/pyutest-frying-pan.obj deleted file mode 100644 index 8343179..0000000 --- a/mods/CORE/pyutest/models/pyutest-frying-pan.obj +++ /dev/null @@ -1,325 +0,0 @@ -# Made in Blockbench 4.11.1 -mtllib pyutest-frying-pan.mtl - -o cube -v 0.5 -0.4375 0.5 -v 0.5 -0.4375 -0.5 -v 0.5 -0.5 0.5 -v 0.5 -0.5 -0.5 -v -0.5 -0.4375 -0.5 -v -0.5 -0.4375 0.5 -v -0.5 -0.5 -0.5 -v -0.5 -0.5 0.5 -vt 0 1 -vt 1 1 -vt 1 0.9375 -vt 0 0.9375 -vt 0 1 -vt 1 1 -vt 1 0.9375 -vt 0 0.9375 -vt 0 1 -vt 1 1 -vt 1 0.9375 -vt 0 0.9375 -vt 0 1 -vt 1 1 -vt 1 0.9375 -vt 0 0.9375 -vt 0 1 -vt 1 1 -vt 1 0 -vt 0 0 -vt 0 1 -vt 1 1 -vt 1 0 -vt 0 0 -vn 0 0 -1 -vn 1 0 0 -vn 0 0 1 -vn -1 0 0 -vn 0 1 0 -vn 0 -1 0 -usemtl none -f 4/4/1 7/3/1 5/2/1 2/1/1 -f 3/8/2 4/7/2 2/6/2 1/5/2 -f 8/12/3 3/11/3 1/10/3 6/9/3 -f 7/16/4 8/15/4 6/14/4 5/13/4 -f 6/20/5 1/19/5 2/18/5 5/17/5 -f 7/24/6 4/23/6 3/22/6 8/21/6 -o cube -v 0.5 -0.3125 -0.4375 -v 0.5 -0.3125 -0.5 -v 0.5 -0.4375 -0.4375 -v 0.5 -0.4375 -0.5 -v -0.5 -0.3125 -0.5 -v -0.5 -0.3125 -0.4375 -v -0.5 -0.4375 -0.5 -v -0.5 -0.4375 -0.4375 -vt 0 1 -vt 1 1 -vt 1 0.875 -vt 0 0.875 -vt 0 1 -vt 0.0625 1 -vt 0.0625 0.875 -vt 0 0.875 -vt 0 1 -vt 1 1 -vt 1 0.875 -vt 0 0.875 -vt 0 1 -vt 0.0625 1 -vt 0.0625 0.875 -vt 0 0.875 -vt 0 1 -vt 1 1 -vt 1 0.9375 -vt 0 0.9375 -vt 0 1 -vt 1 1 -vt 1 0.9375 -vt 0 0.9375 -vn 0 0 -1 -vn 1 0 0 -vn 0 0 1 -vn -1 0 0 -vn 0 1 0 -vn 0 -1 0 -usemtl none -f 12/28/7 15/27/7 13/26/7 10/25/7 -f 11/32/8 12/31/8 10/30/8 9/29/8 -f 16/36/9 11/35/9 9/34/9 14/33/9 -f 15/40/10 16/39/10 14/38/10 13/37/10 -f 14/44/11 9/43/11 10/42/11 13/41/11 -f 15/48/12 12/47/12 11/46/12 16/45/12 -o cube -v 0.5 -0.3125 0.5 -v 0.5 -0.3125 0.4375 -v 0.5 -0.4375 0.5 -v 0.5 -0.4375 0.4375 -v -0.5 -0.3125 0.4375 -v -0.5 -0.3125 0.5 -v -0.5 -0.4375 0.4375 -v -0.5 -0.4375 0.5 -vt 0 1 -vt 1 1 -vt 1 0.875 -vt 0 0.875 -vt 0 1 -vt 0.0625 1 -vt 0.0625 0.875 -vt 0 0.875 -vt 0 1 -vt 1 1 -vt 1 0.875 -vt 0 0.875 -vt 0 1 -vt 0.0625 1 -vt 0.0625 0.875 -vt 0 0.875 -vt 0 1 -vt 1 1 -vt 1 0.9375 -vt 0 0.9375 -vt 0 1 -vt 1 1 -vt 1 0.9375 -vt 0 0.9375 -vn 0 0 -1 -vn 1 0 0 -vn 0 0 1 -vn -1 0 0 -vn 0 1 0 -vn 0 -1 0 -usemtl none -f 20/52/13 23/51/13 21/50/13 18/49/13 -f 19/56/14 20/55/14 18/54/14 17/53/14 -f 24/60/15 19/59/15 17/58/15 22/57/15 -f 23/64/16 24/63/16 22/62/16 21/61/16 -f 22/68/17 17/67/17 18/66/17 21/65/17 -f 23/72/18 20/71/18 19/70/18 24/69/18 -o cube -v 0.4375000000000001 -0.3125 0.4375 -v 0.5 -0.3125 0.4375 -v 0.4375000000000001 -0.4375 0.4375 -v 0.5 -0.4375 0.4375 -v 0.4999999999999999 -0.3125 -0.4375 -v 0.4374999999999999 -0.3125 -0.4375 -v 0.4999999999999999 -0.4375 -0.4375 -v 0.4374999999999999 -0.4375 -0.4375 -vt 0 1 -vt 0.875 1 -vt 0.875 0.875 -vt 0 0.875 -vt 0 1 -vt 0.0625 1 -vt 0.0625 0.875 -vt 0 0.875 -vt 0 1 -vt 0.875 1 -vt 0.875 0.875 -vt 0 0.875 -vt 0 1 -vt 0.0625 1 -vt 0.0625 0.875 -vt 0 0.875 -vt 0 1 -vt 0.875 1 -vt 0.875 0.9375 -vt 0 0.9375 -vt 0 1 -vt 0.875 1 -vt 0.875 0.9375 -vt 0 0.9375 -vn 1 0 -2.220446049250313e-16 -vn 2.220446049250313e-16 0 1 -vn -1 0 2.220446049250313e-16 -vn -2.220446049250313e-16 0 -1 -vn 0 1 0 -vn 0 -1 0 -usemtl none -f 28/76/19 31/75/19 29/74/19 26/73/19 -f 27/80/20 28/79/20 26/78/20 25/77/20 -f 32/84/21 27/83/21 25/82/21 30/81/21 -f 31/88/22 32/87/22 30/86/22 29/85/22 -f 30/92/23 25/91/23 26/90/23 29/89/23 -f 31/96/24 28/95/24 27/94/24 32/93/24 -o cube -v -0.4999999999999999 -0.3125 0.4375 -v -0.4374999999999999 -0.3125 0.4375 -v -0.4999999999999999 -0.4375 0.4375 -v -0.4374999999999999 -0.4375 0.4375 -v -0.4375000000000001 -0.3125 -0.4375 -v -0.5000000000000001 -0.3125 -0.4375 -v -0.4375000000000001 -0.4375 -0.4375 -v -0.5000000000000001 -0.4375 -0.4375 -vt 0 1 -vt 0.875 1 -vt 0.875 0.875 -vt 0 0.875 -vt 0 1 -vt 0.0625 1 -vt 0.0625 0.875 -vt 0 0.875 -vt 0 1 -vt 0.875 1 -vt 0.875 0.875 -vt 0 0.875 -vt 0 1 -vt 0.0625 1 -vt 0.0625 0.875 -vt 0 0.875 -vt 0 1 -vt 0.875 1 -vt 0.875 0.9375 -vt 0 0.9375 -vt 0 1 -vt 0.875 1 -vt 0.875 0.9375 -vt 0 0.9375 -vn 1 0 -2.220446049250313e-16 -vn 2.220446049250313e-16 0 1 -vn -1 0 2.220446049250313e-16 -vn -2.220446049250313e-16 0 -1 -vn 0 1 0 -vn 0 -1 0 -usemtl none -f 36/100/25 39/99/25 37/98/25 34/97/25 -f 35/104/26 36/103/26 34/102/26 33/101/26 -f 40/108/27 35/107/27 33/106/27 38/105/27 -f 39/112/28 40/111/28 38/110/28 37/109/28 -f 38/116/29 33/115/29 34/114/29 37/113/29 -f 39/120/30 36/119/30 35/118/30 40/117/30 -o cube -v 0.0625 -0.3125 1.25 -v 0.0625 -0.3125 0.625 -v 0.0625 -0.4375 1.25 -v 0.0625 -0.4375 0.625 -v -0.0625 -0.3125 0.625 -v -0.0625 -0.3125 1.25 -v -0.0625 -0.4375 0.625 -v -0.0625 -0.4375 1.25 -vt 0 1 -vt 0.125 1 -vt 0.125 0.875 -vt 0 0.875 -vt 0 1 -vt 0.625 1 -vt 0.625 0.875 -vt 0 0.875 -vt 0 1 -vt 0.125 1 -vt 0.125 0.875 -vt 0 0.875 -vt 0 1 -vt 0.625 1 -vt 0.625 0.875 -vt 0 0.875 -vt 0 1 -vt 0.125 1 -vt 0.125 0.375 -vt 0 0.375 -vt 0 1 -vt 0.125 1 -vt 0.125 0.375 -vt 0 0.375 -vn 0 0 -1 -vn 1 0 0 -vn 0 0 1 -vn -1 0 0 -vn 0 1 0 -vn 0 -1 0 -usemtl none -f 44/124/31 47/123/31 45/122/31 42/121/31 -f 43/128/32 44/127/32 42/126/32 41/125/32 -f 48/132/33 43/131/33 41/130/33 46/129/33 -f 47/136/34 48/135/34 46/134/34 45/133/34 -f 46/140/35 41/139/35 42/138/35 45/137/35 -f 47/144/36 44/143/36 43/142/36 48/141/36 -o cube -v 0.125 -0.3125 0.625 -v 0.125 -0.3125 0.5 -v 0.125 -0.4375 0.625 -v 0.125 -0.4375 0.5 -v -0.125 -0.3125 0.5 -v -0.125 -0.3125 0.625 -v -0.125 -0.4375 0.5 -v -0.125 -0.4375 0.625 -vt 0 1 -vt 0.25 1 -vt 0.25 0.875 -vt 0 0.875 -vt 0 1 -vt 0.125 1 -vt 0.125 0.875 -vt 0 0.875 -vt 0 1 -vt 0.25 1 -vt 0.25 0.875 -vt 0 0.875 -vt 0 1 -vt 0.125 1 -vt 0.125 0.875 -vt 0 0.875 -vt 0 1 -vt 0.25 1 -vt 0.25 0.875 -vt 0 0.875 -vt 0 1 -vt 0.25 1 -vt 0.25 0.875 -vt 0 0.875 -vn 0 0 -1 -vn 1 0 0 -vn 0 0 1 -vn -1 0 0 -vn 0 1 0 -vn 0 -1 0 -usemtl none -f 52/148/37 55/147/37 53/146/37 50/145/37 -f 51/152/38 52/151/38 50/150/38 49/149/38 -f 56/156/39 51/155/39 49/154/39 54/153/39 -f 55/160/40 56/159/40 54/158/40 53/157/40 -f 54/164/41 49/163/41 50/162/41 53/161/41 -f 55/168/42 52/167/42 51/166/42 56/165/42 \ No newline at end of file diff --git a/mods/CORE/pyutest/models/pyutest-pig.glb b/mods/CORE/pyutest/models/pyutest-pig.glb deleted file mode 100644 index c8ea09e..0000000 Binary files a/mods/CORE/pyutest/models/pyutest-pig.glb and /dev/null differ diff --git a/mods/CORE/pyutest/models/pyutest-pig.gltf b/mods/CORE/pyutest/models/pyutest-pig.gltf deleted file mode 100644 index 3b82058..0000000 --- a/mods/CORE/pyutest/models/pyutest-pig.gltf +++ /dev/null @@ -1 +0,0 @@ -{"asset":{"version":"2.0","generator":"Blockbench 4.11.1 glTF exporter"},"scenes":[{"nodes":[13],"name":"blockbench_export"}],"scene":0,"nodes":[{"translation":[-0.3125,0,-0.375],"name":"cube","mesh":0},{"name":"Leg0","children":[0]},{"translation":[0.4375,0,-0.375],"name":"cube","mesh":1},{"name":"Leg1","children":[2]},{"translation":[-0.3125,0,0.375],"name":"cube","mesh":2},{"name":"Leg2","children":[4]},{"translation":[0.4375,0,0.375],"name":"cube","mesh":3},{"name":"Leg3","children":[6]},{"name":"cube","mesh":4},{"translation":[-0.4375,0.375,0.375],"name":"Body","children":[8]},{"translation":[0,0.625,-1],"name":"cube","mesh":5},{"translation":[0,0.625,-0.5625],"name":"cube","mesh":6},{"name":"Head","children":[10,11]},{"children":[1,3,5,7,9,12]}],"bufferViews":[{"buffer":0,"byteOffset":0,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":288,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":576,"byteLength":192,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":768,"byteLength":72,"target":34963},{"buffer":0,"byteOffset":840,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":1128,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":1416,"byteLength":192,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":1608,"byteLength":72,"target":34963},{"buffer":0,"byteOffset":1680,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":1968,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":2256,"byteLength":192,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":2448,"byteLength":72,"target":34963},{"buffer":0,"byteOffset":2520,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":2808,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":3096,"byteLength":192,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":3288,"byteLength":72,"target":34963},{"buffer":0,"byteOffset":3360,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":3648,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":3936,"byteLength":192,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":4128,"byteLength":72,"target":34963},{"buffer":0,"byteOffset":4200,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":4488,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":4776,"byteLength":192,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":4968,"byteLength":72,"target":34963},{"buffer":0,"byteOffset":5040,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":5328,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":5616,"byteLength":192,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":5808,"byteLength":72,"target":34963}],"buffers":[{"byteLength":5880,"uri":"data:application/octet-stream;base64,AACAPQAAwD4AAEA+AACAPQAAwD4AAIC9AACAPQAAAAAAAEA+AACAPQAAAAAAAIC9AABAvgAAwD4AAIC9AABAvgAAwD4AAEA+AABAvgAAAAAAAIC9AABAvgAAAAAAAEA+AABAvgAAwD4AAIC9AACAPQAAwD4AAIC9AABAvgAAwD4AAEA+AACAPQAAwD4AAEA+AABAvgAAAAAAAEA+AACAPQAAAAAAAEA+AABAvgAAAAAAAIC9AACAPQAAAAAAAIC9AABAvgAAwD4AAEA+AACAPQAAwD4AAEA+AABAvgAAAAAAAEA+AACAPQAAAAAAAEA+AACAPQAAwD4AAIC9AABAvgAAwD4AAIC9AACAPQAAAAAAAIC9AABAvgAAAAAAAIC9AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/ABAoPwAQHD8A8Dc/ABAcPwAQKD8A8DM/APA3PwDwMz8AEEg/ABAcPwDwVz8AEBw/ABBIPwDwMz8A8Fc/APAzPwDwRz8A8Bs/ABA4PwDwGz8A8Ec/ABAMPwAQOD8AEAw/APBXPwAQDD8AEEg/ABAMPwDwVz8A8Bs/ABBIPwDwGz8AEFg/ABAcPwDwZz8AEBw/ABBYPwDwMz8A8Gc/APAzPwAQOD8AEBw/APBHPwAQHD8AEDg/APAzPwDwRz8A8DM/AAACAAEAAgADAAEABAAGAAUABgAHAAUACAAKAAkACgALAAkADAAOAA0ADgAPAA0AEAASABEAEgATABEAFAAWABUAFgAXABUAAACAPQAAwD4AAEA+AACAPQAAwD4AAIC9AACAPQAAAAAAAEA+AACAPQAAAAAAAIC9AABAvgAAwD4AAIC9AABAvgAAwD4AAEA+AABAvgAAAAAAAIC9AABAvgAAAAAAAEA+AABAvgAAwD4AAIC9AACAPQAAwD4AAIC9AABAvgAAwD4AAEA+AACAPQAAwD4AAEA+AABAvgAAAAAAAEA+AACAPQAAAAAAAEA+AABAvgAAAAAAAIC9AACAPQAAAAAAAIC9AABAvgAAwD4AAEA+AACAPQAAwD4AAEA+AABAvgAAAAAAAEA+AACAPQAAAAAAAEA+AACAPQAAwD4AAIC9AABAvgAAwD4AAIC9AACAPQAAAAAAAIC9AABAvgAAAAAAAIC9AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/ABAoPwAg6D4A8Dc/ACDoPgAQKD8A8As/APA3PwDwCz8AEEg/ACDoPgDwVz8AIOg+ABBIPwDwCz8A8Fc/APALPwDwRz8A4Oc+ABA4PwDg5z4A8Ec/ACDIPgAQOD8AIMg+APBXPwAgyD4AEEg/ACDIPgDwVz8A4Oc+ABBIPwDg5z4AEFg/ACDoPgDwZz8AIOg+ABBYPwDwCz8A8Gc/APALPwAQOD8AIOg+APBHPwAg6D4AEDg/APALPwDwRz8A8As/AAACAAEAAgADAAEABAAGAAUABgAHAAUACAAKAAkACgALAAkADAAOAA0ADgAPAA0AEAASABEAEgATABEAFAAWABUAFgAXABUAAACAPQAAwD4AAEA+AACAPQAAwD4AAIC9AACAPQAAAAAAAEA+AACAPQAAAAAAAIC9AABAvgAAwD4AAIC9AABAvgAAwD4AAEA+AABAvgAAAAAAAIC9AABAvgAAAAAAAEA+AABAvgAAwD4AAIC9AACAPQAAwD4AAIC9AABAvgAAwD4AAEA+AACAPQAAwD4AAEA+AABAvgAAAAAAAEA+AACAPQAAAAAAAEA+AABAvgAAAAAAAIC9AACAPQAAAAAAAIC9AABAvgAAwD4AAEA+AACAPQAAwD4AAEA+AABAvgAAAAAAAEA+AACAPQAAAAAAAEA+AACAPQAAwD4AAIC9AABAvgAAwD4AAIC9AACAPQAAAAAAAIC9AABAvgAAAAAAAIC9AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AACAOQAQQD8AAH89ABBAPwAAgDkA8Fc/AAB/PQDwVz8AQAA+ABBAPwDAPz4AEEA/AEAAPgDwVz8AwD8+APBXPwCA/z0A8D8/AICAPQDwPz8AgP89ABAwPwCAgD0AEDA/AMA/PgAQMD8AQAA+ABAwPwDAPz4A8D8/AEAAPgDwPz8AQEA+ABBAPwDAfz4AEEA/AEBAPgDwVz8AwH8+APBXPwCAgD0AEEA/AID/PQAQQD8AgIA9APBXPwCA/z0A8Fc/AAACAAEAAgADAAEABAAGAAUABgAHAAUACAAKAAkACgALAAkADAAOAA0ADgAPAA0AEAASABEAEgATABEAFAAWABUAFgAXABUAAACAPQAAwD4AAEA+AACAPQAAwD4AAIC9AACAPQAAAAAAAEA+AACAPQAAAAAAAIC9AABAvgAAwD4AAIC9AABAvgAAwD4AAEA+AABAvgAAAAAAAIC9AABAvgAAAAAAAEA+AABAvgAAwD4AAIC9AACAPQAAwD4AAIC9AABAvgAAwD4AAEA+AACAPQAAwD4AAEA+AABAvgAAAAAAAEA+AACAPQAAAAAAAEA+AABAvgAAAAAAAIC9AACAPQAAAAAAAIC9AABAvgAAwD4AAEA+AACAPQAAwD4AAEA+AABAvgAAAAAAAEA+AACAPQAAAAAAAEA+AACAPQAAwD4AAIC9AABAvgAAwD4AAIC9AACAPQAAAAAAAIC9AABAvgAAAAAAAIC9AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/ACCAPgAQQD8A4J8+ABBAPwAggD4A8Fc/AOCfPgDwVz8AIMA+ABBAPwDg3z4AEEA/ACDAPgDwVz8A4N8+APBXPwDgvz4A8D8/ACCgPgDwPz8A4L8+ABAwPwAgoD4AEDA/AODfPgAQMD8AIMA+ABAwPwDg3z4A8D8/ACDAPgDwPz8AIOA+ABBAPwDg/z4AEEA/ACDgPgDwVz8A4P8+APBXPwAgoD4AEEA/AOC/PgAQQD8AIKA+APBXPwDgvz4A8Fc/AAACAAEAAgADAAEABAAGAAUABgAHAAUACAAKAAkACgALAAkADAAOAA0ADgAPAA0AEAASABEAEgATABEAFAAWABUAFgAXABUAAABwPwAAED8AAAA+AABwPwAAED8AAGC/AABwPwAAAAAAAAA+AABwPwAAAAAAAGC/AACAvQAAED8AAGC/AACAvQAAED8AAAA+AACAvQAAAAAAAGC/AACAvQAAAAAAAAA+AACAvQAAED8AAGC/AABwPwAAED8AAGC/AACAvQAAED8AAAA+AABwPwAAED8AAAA+AACAvQAAAAAAAAA+AABwPwAAAAAAAAA+AACAvQAAAAAAAGC/AABwPwAAAAAAAGC/AACAvQAAED8AAAA+AABwPwAAED8AAAA+AACAvQAAAAAAAAA+AABwPwAAAAAAAAA+AABwPwAAED8AAGC/AACAvQAAED8AAGC/AABwPwAAAAAAAGC/AACAvQAAAAAAAGC/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AACAOQAggD4AwH8+ACCAPgAAgDkA4Mc+AMB/PgDgxz4AEAA/ACCAPgDwPz8AIIA+ABAAPwDgxz4A8D8/AODHPgDg/z4AwH8+ACCAPgDAfz4A4P8+AACAOQAggD4AAIA5APA/PwAAgDkAEAA/AACAOQDwPz8AwH8+ABAAPwDAfz4AEEA/ACCAPgDwfz8AIIA+ABBAPwDgxz4A8H8/AODHPgAggD4AIIA+AOD/PgAggD4AIIA+AODHPgDg/z4A4Mc+AAACAAEAAgADAAEABAAGAAUABgAHAAUACAAKAAkACgALAAkADAAOAA0ADgAPAA0AEAASABEAEgATABEAFAAWABUAFgAXABUAAABAPgAAQD4AAIA9AABAPgAAQD4AAIC9AABAPgAAAAAAAIA9AABAPgAAAAAAAIC9AABAvgAAQD4AAIC9AABAvgAAQD4AAIA9AABAvgAAAAAAAIC9AABAvgAAAAAAAIA9AABAvgAAQD4AAIC9AABAPgAAQD4AAIC9AABAvgAAQD4AAIA9AABAPgAAQD4AAIA9AABAvgAAAAAAAIA9AABAPgAAAAAAAIA9AABAvgAAAAAAAIC9AABAPgAAAAAAAIC9AABAvgAAQD4AAIA9AABAPgAAQD4AAIA9AABAvgAAAAAAAIA9AABAPgAAAAAAAIA9AABAPgAAQD4AAIC9AABAvgAAQD4AAIC9AABAPgAAAAAAAIC9AABAvgAAAAAAAIC9AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/ABAAPwAQPD8A8Ac/ABA8PwAQAD8A8Ec/APAHPwDwRz8AECA/ABA8PwDwJz8AEDw/ABAgPwDwRz8A8Cc/APBHPwDwHz8A8Ds/ABAIPwDwOz8A8B8/ABA0PwAQCD8AEDQ/APA3PwAQND8AECA/ABA0PwDwNz8A8Ds/ABAgPwDwOz8AECg/ABA8PwDwPz8AEDw/ABAoPwDwRz8A8D8/APBHPwAQCD8AEDw/APAfPwAQPD8AEAg/APBHPwDwHz8A8Ec/AAACAAEAAgADAAEABAAGAAUABgAHAAUACAAKAAkACgALAAkADAAOAA0ADgAPAA0AEAASABEAEgATABEAFAAWABUAFgAXABUAAADAPgAAAD8AAEA+AADAPgAAAD8AAMC+AADAPgAAAL4AAEA+AADAPgAAAL4AAMC+AADAvgAAAD8AAMC+AADAvgAAAD8AAEA+AADAvgAAAL4AAMC+AADAvgAAAL4AAEA+AADAvgAAAD8AAMC+AADAPgAAAD8AAMC+AADAvgAAAD8AAEA+AADAPgAAAD8AAEA+AADAvgAAAL4AAEA+AADAPgAAAL4AAEA+AADAvgAAAL4AAMC+AADAPgAAAL4AAMC+AADAvgAAAD8AAEA+AADAPgAAAD8AAEA+AADAvgAAAL4AAEA+AADAPgAAAL4AAEA+AADAPgAAAD8AAMC+AADAvgAAAD8AAMC+AADAPgAAAL4AAMC+AADAvgAAAL4AAMC+AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AACAOQAQCD8AwA8+ABAIPwAAgDkA8C8/AMAPPgDwLz8AIKg+ABAIPwDg7z4AEAg/ACCoPgDwLz8A4O8+APAvPwDgpz4A8Ac/AEAQPgDwBz8A4Kc+ACDIPgBAED4AIMg+APADPwAgyD4AIKg+ACDIPgDwAz8A8Ac/ACCoPgDwBz8AIPA+ABAIPwDwJz8AEAg/ACDwPgDwLz8A8Cc/APAvPwBAED4AEAg/AOCnPgAQCD8AQBA+APAvPwDgpz4A8C8/AAACAAEAAgADAAEABAAGAAUABgAHAAUACAAKAAkACgALAAkADAAOAA0ADgAPAA0AEAASABEAEgATABEAFAAWABUAFgAXABUA"}],"accessors":[{"bufferView":0,"componentType":5126,"count":24,"max":[0.0625,0.375,0.1875],"min":[-0.1875,0,-0.0625],"type":"VEC3"},{"bufferView":1,"componentType":5126,"count":24,"max":[1,1,1],"min":[-1,-1,-1],"type":"VEC3"},{"bufferView":2,"componentType":5126,"count":24,"max":[0.906005859375,0.702880859375],"min":[0.656494140625,0.547119140625],"type":"VEC2"},{"bufferView":3,"componentType":5123,"count":36,"max":[23],"min":[0],"type":"SCALAR"},{"bufferView":4,"componentType":5126,"count":24,"max":[0.0625,0.375,0.1875],"min":[-0.1875,0,-0.0625],"type":"VEC3"},{"bufferView":5,"componentType":5126,"count":24,"max":[1,1,1],"min":[-1,-1,-1],"type":"VEC3"},{"bufferView":6,"componentType":5126,"count":24,"max":[0.906005859375,0.546630859375],"min":[0.656494140625,0.390869140625],"type":"VEC2"},{"bufferView":7,"componentType":5123,"count":36,"max":[23],"min":[0],"type":"SCALAR"},{"bufferView":8,"componentType":5126,"count":24,"max":[0.0625,0.375,0.1875],"min":[-0.1875,0,-0.0625],"type":"VEC3"},{"bufferView":9,"componentType":5126,"count":24,"max":[1,1,1],"min":[-1,-1,-1],"type":"VEC3"},{"bufferView":10,"componentType":5126,"count":24,"max":[0.249755859375,0.843505859375],"min":[0.000244140625,0.687744140625],"type":"VEC2"},{"bufferView":11,"componentType":5123,"count":36,"max":[23],"min":[0],"type":"SCALAR"},{"bufferView":12,"componentType":5126,"count":24,"max":[0.0625,0.375,0.1875],"min":[-0.1875,0,-0.0625],"type":"VEC3"},{"bufferView":13,"componentType":5126,"count":24,"max":[1,1,1],"min":[-1,-1,-1],"type":"VEC3"},{"bufferView":14,"componentType":5126,"count":24,"max":[0.499755859375,0.843505859375],"min":[0.250244140625,0.687744140625],"type":"VEC2"},{"bufferView":15,"componentType":5123,"count":36,"max":[23],"min":[0],"type":"SCALAR"},{"bufferView":16,"componentType":5126,"count":24,"max":[0.9375,0.5625,0.125],"min":[-0.0625,0,-0.875],"type":"VEC3"},{"bufferView":17,"componentType":5126,"count":24,"max":[1,1,1],"min":[-1,-1,-1],"type":"VEC3"},{"bufferView":18,"componentType":5126,"count":24,"max":[0.999755859375,0.390380859375],"min":[0.000244140625,0.000244140625],"type":"VEC2"},{"bufferView":19,"componentType":5123,"count":36,"max":[23],"min":[0],"type":"SCALAR"},{"bufferView":20,"componentType":5126,"count":24,"max":[0.1875,0.1875,0.0625],"min":[-0.1875,0,-0.0625],"type":"VEC3"},{"bufferView":21,"componentType":5126,"count":24,"max":[1,1,1],"min":[-1,-1,-1],"type":"VEC3"},{"bufferView":22,"componentType":5126,"count":24,"max":[0.749755859375,0.781005859375],"min":[0.500244140625,0.703369140625],"type":"VEC2"},{"bufferView":23,"componentType":5123,"count":36,"max":[23],"min":[0],"type":"SCALAR"},{"bufferView":24,"componentType":5126,"count":24,"max":[0.375,0.5,0.1875],"min":[-0.375,-0.125,-0.375],"type":"VEC3"},{"bufferView":25,"componentType":5126,"count":24,"max":[1,1,1],"min":[-1,-1,-1],"type":"VEC3"},{"bufferView":26,"componentType":5126,"count":24,"max":[0.656005859375,0.687255859375],"min":[0.000244140625,0.390869140625],"type":"VEC2"},{"bufferView":27,"componentType":5123,"count":36,"max":[23],"min":[0],"type":"SCALAR"}],"materials":[{"pbrMetallicRoughness":{"metallicFactor":0,"roughnessFactor":1,"baseColorTexture":{"index":0}},"alphaMode":"MASK","alphaCutoff":0.05,"doubleSided":true}],"textures":[{"sampler":0,"source":0,"name":"pyutest-pig.png"}],"samplers":[{"magFilter":9728,"minFilter":9728,"wrapS":33071,"wrapT":33071}],"images":[{"mimeType":"image/png","uri":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAuxJREFUeF7tWktOwzAQTRbQWyBxE9jBKbrvgdhzC5bcBIlbIBZBqWTkTsd+zx47ThOzQbT2fJ7fjN8kjIPx5+f9bTKaMG0/HE+jxYBp8+zYB2B8eKRimb6/qHXMotUAwCbvkioFQgdgLSVQiwHObogxm2WABqgGwioASD191Adi9iQIHYA19IDSDJgZwrJgkwzoAEQYsIse4JqkLIPd3AK+BL4JHVCjCUoQVi+EmMGlxppV3AI1EmNtmgFoPc+zidZaN8YAQA3IEtRsu9RIHIqDuUVUAEJNrWTACAA/hly/vo/QYV4AwHTz3GDkKYUAQDGw/jX76meuBJBjPwE2iJQSYf2zvl2y/u85Hrn/nwFsAGiUTUlaEzxofw4AsZiblQDbuLR1DAhM/Z+HLnkLLNEA0Slr0yCTNGP3qhftXgcwqNUGKUfNoZhYm9SLEeTMH19zqMoG6x+WFpN/17M2iwAQEi01H2s1BUAKilQASjzVQaysxoBYslciI/Ku0F/LBIsSRr0s5CO5BJgBQ5O98rMcAKSeR3/7PqsAwDY8KUslGCwDUMKx6bUYAL5IYQHIpafs+qsBACWU+n1TBlibS2qyrdYHS+BWAJAJoLgZVqnDEDqhWKNBe2PfIy1x//x6cWMVE0IISRf04Xgapmkafj8/1Dzunl6GcRzn/xmy4BDcyzAgSwqzAGgjqh8tcyOg54Ax5BgAmHu/2Thcq3RYupmboOX0amgHzWZMJxQBYHbqqK45i5VBDQakCKNiADgQtFGX6QMsZZl1iwLABLT0miIAyKDRrYAEhnV/CERkF4FPD0NWgZG7n3lH6ZefFEYIgND3V88DchNwDnL3p5zwTP1FAUgRGCiRVEGDThaVJNoffT2ONpf+Xrsq0fVZBICUbpoqQJj1DshQHL7+kKDfPADWBKwsPJdASwZ0AIz/7FyEAVYjlv3NGWAJfgt7qRcjW0iUVoJbTlbLrTNgbycu8+0M6AzYOQK9BHZOgOEP2PzqBh1O1wwAAAAASUVORK5CYII="}],"meshes":[{"primitives":[{"mode":4,"attributes":{"POSITION":0,"NORMAL":1,"TEXCOORD_0":2},"indices":3,"material":0}]},{"primitives":[{"mode":4,"attributes":{"POSITION":4,"NORMAL":5,"TEXCOORD_0":6},"indices":7,"material":0}]},{"primitives":[{"mode":4,"attributes":{"POSITION":8,"NORMAL":9,"TEXCOORD_0":10},"indices":11,"material":0}]},{"primitives":[{"mode":4,"attributes":{"POSITION":12,"NORMAL":13,"TEXCOORD_0":14},"indices":15,"material":0}]},{"primitives":[{"mode":4,"attributes":{"POSITION":16,"NORMAL":17,"TEXCOORD_0":18},"indices":19,"material":0}]},{"primitives":[{"mode":4,"attributes":{"POSITION":20,"NORMAL":21,"TEXCOORD_0":22},"indices":23,"material":0}]},{"primitives":[{"mode":4,"attributes":{"POSITION":24,"NORMAL":25,"TEXCOORD_0":26},"indices":27,"material":0}]}]} \ No newline at end of file diff --git a/mods/CORE/pyutest/util.lua b/mods/CORE/pyutest/util.lua index 726d402..2001cee 100644 --- a/mods/CORE/pyutest/util.lua +++ b/mods/CORE/pyutest/util.lua @@ -317,3 +317,69 @@ PyuTest.drop_item = function(pos, name) o:add_velocity(vector.new(math.random(-2, 2), 5, math.random(-2, 2))) end end + +PyuTest.chatcommand_entity_selector = function(caller, param) + local p_caller = core.get_player_by_name(caller) + + if core.get_player_by_name(param) ~= nil then + return {param} + end + + if param == "@self" or param == "@s" then + return {caller} + elseif param == "@random" or param == "@r" then + local players = core.get_connected_players() + return {players[math.random(#players)]:get_player_name()} + elseif param == "@nearest" or param == "@n" then + local players = core.get_connected_players() + local pos = p_caller:get_pos() + local cd = math.huge + local nearest + + for _, v in pairs(players) do + local dist = vector.distance(pos, v:get_pos()) + + if dist < cd and v ~= p_caller then + cd = dist + nearest = v + end + end + + if nearest then + return {nearest:get_player_name()} + end + elseif param == "@all" or param == "@a" then + local list = {} + + for _, v in pairs(core.get_connected_players()) do + list[#list+1] = v:get_player_name() + end + + return list + end + + return {caller} +end + +PyuTest.execute_as = function(runner, command) + local pos = command:find(" ") + local cmd, param = command, "" + if pos then + cmd = command:sub(1, pos - 1) + param = command:sub(pos + 1) + end + local cmddef = core.chatcommands[cmd] + if not cmddef then + core.chat_send_player(runner, "The command "..cmd.." does not exist") + return + end + local has_privs, missing_privs = core.check_player_privs(runner, cmddef.privs) + if not has_privs then + core.chat_send_player(runner, "You don't have permission " + .."to run "..cmd + .." (missing privileges: " + ..table.concat(missing_privs, ", ")..")") + return + end + cmddef.func(runner, param) +end diff --git a/mods/ITEMS/pyutest_blocks/api.lua b/mods/ITEMS/pyutest_blocks/api.lua index 27bd9cf..908f7e5 100644 --- a/mods/ITEMS/pyutest_blocks/api.lua +++ b/mods/ITEMS/pyutest_blocks/api.lua @@ -79,6 +79,8 @@ PyuTest.make_building_blocks = function(name, desc, tex, colortint, cgroups, ext local id_door = name .. "_door" local id_sign = name .. "_sign" + core.register_alias(name, id_block) + table.insert(PyuTest.building_blocks, { ns = name:split(":")[1], name = name:split(":")[2], diff --git a/mods/ITEMS/pyutest_electricity/devices/command_block.lua b/mods/ITEMS/pyutest_electricity/devices/command_block.lua new file mode 100644 index 0000000..c61ec89 --- /dev/null +++ b/mods/ITEMS/pyutest_electricity/devices/command_block.lua @@ -0,0 +1,29 @@ +local function formspec() + return table.concat({ + "field[setcmd;Set Command;${command}]" + }) +end + +PyuTest.make_electricity_device("pyutest_electricity:command_block", "Command Block", { + cracky = PyuTest.BLOCK_FAST, +}, {"pyutest-device.png"}, nil, { + after_place_node = function(pos, placer) + local meta = core.get_meta(pos) + meta:set_string("owner", placer:get_player_name()) + meta:set_string("command", "say Hello World!") + meta:set_string("formspec", formspec()) + end, + on_receive_fields = function(pos, formname, fields, player) + if fields.setcmd then + local cmd = fields.setcmd + local meta = core.get_meta(pos) + meta:set_string("command", cmd) + end + end +}, function (pos, node) + local meta = core.get_meta(pos) + local owner = meta:get_string("owner") + local command = meta:get_string("command") + + PyuTest.execute_as(owner, command) +end) diff --git a/mods/ITEMS/pyutest_electricity/init.lua b/mods/ITEMS/pyutest_electricity/init.lua index a6ef051..e6d598a 100644 --- a/mods/ITEMS/pyutest_electricity/init.lua +++ b/mods/ITEMS/pyutest_electricity/init.lua @@ -50,6 +50,10 @@ PyuTest.make_wire = function(id, desc, groups, color, opts, texture, delay) inventory_image = "pyutest-powder.png", wield_image = "pyutest-powder.png", buildable_to = true, + selection_box = { + type = "fixed", + fixed = PyuTest.NODE_BOXES.CARPET.fixed + }, __on_electricity_activated = function(pos, node, sender_pos) for _, v in pairs(PyuTest.get_full_neighbours(pos)) do @@ -113,5 +117,6 @@ core.register_craft({ }) dofile(modpath .. "/devices.lua") +dofile(modpath .. "/devices/command_block.lua") dofile(modpath .. "/delayer.lua") dofile(modpath .. "/components.lua") diff --git a/mods/PLAYER/pyutest_cmds/init.lua b/mods/PLAYER/pyutest_cmds/init.lua index e9c209e..2cc6f5e 100644 --- a/mods/PLAYER/pyutest_cmds/init.lua +++ b/mods/PLAYER/pyutest_cmds/init.lua @@ -1,4 +1,82 @@ local modpath = core.get_modpath("pyutest_cmds") + +core.register_chatcommand("say", { + params = "", + description = [[Say +There are some text replacement macros you can use. +Here is a list of them: +- %s: Replaced with your username +]], + func = function(name, param) + local str = param + str = str:gsub("%%s", name) + + core.chat_send_all(str) + end +}) + +core.register_chatcommand("teleport", { + params = " ", + description = "Teleport to ", + func = function(name, param) + local found, _, player, x, y, z = param:find("^([^%s]+)%s+([^%s]+)%s+([^%s]+)%s+([^%s]+)$") + + if found == nil then + core.chat_send_player(name, "Invalid usage: " .. param) + return + end + + local targets = PyuTest.chatcommand_entity_selector(name, player) + for _, v in pairs(targets) do + if not core.get_player_by_name(v) then + core.chat_send_player(name, "Invalid player: " .. v) + return + end + end + + for _, v in pairs(targets) do + local plr = core.get_player_by_name(v) + local pos = plr:get_pos() + + local nx = core.parse_relative_number(x, pos.x) + local ny = core.parse_relative_number(y, pos.y) + local nz = core.parse_relative_number(z, pos.z) + + plr:set_pos(vector.new(nx, ny, nz)) + end + end +}) + +core.register_chatcommand("execute", { + params = "at|as ", + description = "Execute as or at ", + func = function (name, param) + local found, _, method, player, command = param:find("^([^%s]+)%s+([^%s]+)%s+(.*)$") + + if found == nil then + core.chat_send_player(name, "Invalid usage: " .. param) + return + end + local targets = PyuTest.chatcommand_entity_selector(name, player) + + for _, v in pairs(targets) do + if not core.get_player_by_name(v) then + core.chat_send_player(name, "Invalid player: " .. v) + return + end + end + + for _, v in pairs(targets) do + if method == "as" then + PyuTest.execute_as(v, command) + elseif method == "at" then + -- TODO + end + end + + end +}) + dofile(modpath .. "/worldedit.lua") dofile(modpath .. "/gameplay.lua") dofile(modpath .. "/fun.lua") diff --git a/mods/PLAYER/pyutest_cmds/worldedit.lua b/mods/PLAYER/pyutest_cmds/worldedit.lua index dc9d675..5543a93 100644 --- a/mods/PLAYER/pyutest_cmds/worldedit.lua +++ b/mods/PLAYER/pyutest_cmds/worldedit.lua @@ -24,10 +24,10 @@ core.register_chatcommand("replacenear", { local function replace(p) for _, v in pairs(from) do - local name = core.get_node(p).name - local anyblock_match = (v == "anyblock" or v == "anynode" and name ~= "air" and name ~= "ignore") + local nname = core.get_node(p).name + local anyblock_match = (v == "anyblock" or v == "anynode" and nname ~= "air" and nname ~= "ignore") - if name == v or v == "any" or anyblock_match then + if nname == v or v == "any" or anyblock_match then core.set_node(p, { name = to }) replaced = replaced + 1 end diff --git a/mods/PLAYER/pyutest_hud/init.lua b/mods/PLAYER/pyutest_hud/init.lua index e308afb..9086263 100644 --- a/mods/PLAYER/pyutest_hud/init.lua +++ b/mods/PLAYER/pyutest_hud/init.lua @@ -10,23 +10,19 @@ PyuTest.Hudbar = {} local HudbarMeta = { __index = PyuTest.Hudbar, __newindex = PyuTest.Hudbar } core.register_on_joinplayer(function(player) + local key = player:get_player_name() + PyuTest.HUDBARS.players[key] = PyuTest.HUDBARS.players[key] or {} for k, v in pairs(PyuTest.HUDBARS.defs) do - local key = player:get_player_name() - if PyuTest.HUDBARS.players[key] == nil then - PyuTest.HUDBARS.players[key] = {} - end local ref = PyuTest.HUDBARS.players[key] ref[k] = {idx = player:hud_add(v.cfg), name = k} end -end) -core.register_globalstep(function(dtime) - for _, player in pairs(core.get_connected_players()) do - for _, v in pairs(PyuTest.HUDBARS.players[player:get_player_name()]) do - PyuTest.HUDBARS.defs[v.name].update(v.idx, player) - end - end + core.register_globalstep(function(dtime) + for _, v in pairs(PyuTest.HUDBARS.players[key]) do + PyuTest.HUDBARS.defs[v.name].update(v.idx, player) + end + end) end) function PyuTest.Hudbar:add(name, def, update) diff --git a/textures/pyutest-device.png b/textures/pyutest-device.png index ac63bb5..35c99f2 100644 Binary files a/textures/pyutest-device.png and b/textures/pyutest-device.png differ