From 17da96969a25ff5b1fe17ff19703ca66e2662d6d Mon Sep 17 00:00:00 2001 From: copygirl Date: Fri, 29 Dec 2023 21:23:24 +0100 Subject: [PATCH] Make items rigid bodies - Add a new "Item" physics layer - Models now include their collision shape - Item "fixes" collision shape node location - Item initializes some collision properties - Grid has been turned into a scene --- assets/models/bolt.bbmodel | 2 +- assets/models/bolt.gltf | 2 +- assets/models/nail.bbmodel | 2 +- assets/models/nail.gltf | 2 +- objects/Grid.cs | 2 +- objects/Item.cs | 22 ++++++++- objects/bolt.tscn | 13 +----- objects/grid.tscn | 9 ++++ objects/nail.tscn | 12 +---- player/AnimationController.cs | 1 - player/PickupController.cs | 29 +++++++----- player/player.tscn | 3 +- project.godot | 3 +- scenes/workshop.tscn | 80 +++++++++++++++------------------ scripts/globals/PhysicsLayer.cs | 3 +- 15 files changed, 98 insertions(+), 87 deletions(-) create mode 100644 objects/grid.tscn diff --git a/assets/models/bolt.bbmodel b/assets/models/bolt.bbmodel index 2397794..ae8424d 100644 --- a/assets/models/bolt.bbmodel +++ b/assets/models/bolt.bbmodel @@ -1 +1 @@ -{"meta":{"format_version":"4.9","model_format":"free","box_uv":false},"name":"bolt","model_identifier":"","visible_box":[1,1,0],"variable_placeholders":"","variable_placeholder_buttons":[],"timeline_setups":[],"unhandled_root_fields":{},"resolution":{"width":8,"height":8},"elements":[{"name":"head","color":8,"origin":[0,0.75,0],"rotation":[0,15,0],"visibility":true,"locked":false,"render_order":"default","allow_mirror_modeling":true,"vertices":{"A8KX":[0.2886751345948128,0,0.5],"RR1R":[0.2886751345948128,0.25,0.5],"xnhg":[0.5773502691896257,0,3.5352507957496895e-17],"q8rh":[0.5773502691896257,0.25,3.5352507957496895e-17],"GMzN":[0.2886751345948128,0,-0.5],"YMKj":[0.2886751345948128,0.25,-0.5],"HshE":[-0.2886751345948129,0,-0.49999999999999994],"QA97":[-0.2886751345948129,0.25,-0.49999999999999994],"xwvt":[-0.5773502691896257,0,-1.0605752387249068e-16],"jh2L":[-0.5773502691896257,0.25,-1.0605752387249068e-16],"tUh9":[-0.28867513459481314,0,0.49999999999999983],"Tqsd":[-0.28867513459481314,0.25,0.49999999999999983]},"faces":{"o3XMGERM":{"uv":{"A8KX":[0,1],"xnhg":[2,1],"q8rh":[2,0],"RR1R":[0,0]},"vertices":["A8KX","xnhg","q8rh","RR1R"],"texture":0},"TroY3ivy":{"uv":{"xnhg":[0,1],"GMzN":[2,1],"YMKj":[2,0],"q8rh":[0,0]},"vertices":["xnhg","GMzN","YMKj","q8rh"],"texture":0},"9YKyYKx7":{"uv":{"GMzN":[0,1],"HshE":[2,1],"QA97":[2,0],"YMKj":[0,0]},"vertices":["GMzN","HshE","QA97","YMKj"],"texture":0},"qaMIxDgx":{"uv":{"HshE":[0,1],"xwvt":[2,1],"jh2L":[2,0],"QA97":[0,0]},"vertices":["HshE","xwvt","jh2L","QA97"],"texture":0},"cJ1fNO4M":{"uv":{"xwvt":[0,1],"tUh9":[2,1],"Tqsd":[2,0],"jh2L":[0,0]},"vertices":["xwvt","tUh9","Tqsd","jh2L"],"texture":0},"O8QDJVBB":{"uv":{"tUh9":[0,1],"A8KX":[2,1],"RR1R":[2.0024,0],"Tqsd":[0,0]},"vertices":["tUh9","A8KX","RR1R","Tqsd"],"texture":0},"XE8D68Au":{"uv":{"GMzN":[1.5035254037844386,1.9999999999994993],"xnhg":[2,0.9999999999997496],"A8KX":[1.5035254037844386,0]},"vertices":["GMzN","xnhg","A8KX"],"texture":0},"t7bpuFLI":{"uv":{"GMzN":[1.5035254037844386,1.9999999999994993],"HshE":[0.5011751345948129,1.9999999999994993],"xwvt":[0,0.9999999999997501]},"vertices":["HshE","GMzN","xwvt"],"texture":0},"qUcdoS0p":{"uv":{"tUh9":[0.501175134594812,4.440892098501737e-16],"xwvt":[0,0.9999999999997501],"A8KX":[1.5035254037844386,0]},"vertices":["tUh9","xwvt","A8KX"],"texture":0},"n4kc0WxU":{"uv":{"GMzN":[1.5035254037844386,1.9999999999994993],"A8KX":[1.5035254037844386,0],"xwvt":[0,0.9999999999997501]},"vertices":["GMzN","A8KX","xwvt"],"texture":0},"xxWDGnpX":{"uv":{"q8rh":[2,0.9999999999997495],"RR1R":[1.5035254037844386,1.9999999999994984],"YMKj":[1.5035254037844386,0]},"vertices":["RR1R","q8rh","YMKj"],"texture":0},"huHUnIEJ":{"uv":{"YMKj":[1.5035254037844386,0],"jh2L":[0,0.9999999999997486],"QA97":[0.501175134594813,0]},"vertices":["jh2L","YMKj","QA97"],"texture":0},"VOS56Gjj":{"uv":{"RR1R":[1.5035254037844386,1.9999999999994984],"jh2L":[0,0.9999999999997486],"Tqsd":[0.5011751345948121,1.9999999999994984]},"vertices":["RR1R","jh2L","Tqsd"],"texture":0},"nHVmKVXX":{"uv":{"RR1R":[1.5035254037844386,1.9999999999994984],"YMKj":[1.5035254037844386,0],"jh2L":[0,0.9999999999997486]},"vertices":["RR1R","YMKj","jh2L"],"texture":0}},"type":"mesh","uuid":"79c2c826-a7ee-c0fc-9bb7-a6e9e9119836"},{"name":"thread","color":8,"origin":[0,1.7500000000000004,0],"rotation":[0,15,0],"visibility":true,"locked":false,"render_order":"default","allow_mirror_modeling":true,"vertices":{"A8KX":[0.1443375672974064,-2.75,0.25],"RR1R":[0.1443375672974064,-0.9999999999999999,0.25],"xnhg":[0.28867513459481287,-2.75,1.7676253978748448e-17],"q8rh":[0.28867513459481287,-0.9999999999999999,1.7676253978748448e-17],"GMzN":[0.1443375672974064,-2.75,-0.25],"YMKj":[0.1443375672974064,-0.9999999999999999,-0.25],"HshE":[-0.14433756729740646,-2.75,-0.24999999999999997],"QA97":[-0.14433756729740646,-0.9999999999999999,-0.24999999999999997],"xwvt":[-0.28867513459481287,-2.75,-5.302876193624534e-17],"jh2L":[-0.28867513459481287,-0.9999999999999999,-5.302876193624534e-17],"tUh9":[-0.14433756729740657,-2.75,0.24999999999999992],"Tqsd":[-0.14433756729740657,-0.9999999999999999,0.24999999999999992]},"faces":{"o3XMGERM":{"uv":{"A8KX":[3,7],"xnhg":[4,7],"q8rh":[4,0],"RR1R":[3,0]},"vertices":["A8KX","xnhg","q8rh","RR1R"],"texture":0},"TroY3ivy":{"uv":{"xnhg":[3,7],"GMzN":[4,7],"YMKj":[4,0],"q8rh":[3,0]},"vertices":["xnhg","GMzN","YMKj","q8rh"],"texture":0},"9YKyYKx7":{"uv":{"GMzN":[3,7],"HshE":[4,7],"QA97":[4,0],"YMKj":[3,0]},"vertices":["GMzN","HshE","QA97","YMKj"],"texture":0},"qaMIxDgx":{"uv":{"HshE":[3,7],"xwvt":[4,7],"jh2L":[4,0],"QA97":[3,0]},"vertices":["HshE","xwvt","jh2L","QA97"],"texture":0},"cJ1fNO4M":{"uv":{"xwvt":[3,7],"tUh9":[4,7],"Tqsd":[4,0],"jh2L":[3,0]},"vertices":["xwvt","tUh9","Tqsd","jh2L"],"texture":0},"O8QDJVBB":{"uv":{"tUh9":[3,7],"A8KX":[4,7],"RR1R":[4,0],"Tqsd":[3,0]},"vertices":["tUh9","A8KX","RR1R","Tqsd"],"texture":0},"QZHLgu0g":{"uv":{"HshE":[3.2461598742761875,6.9999999999997495],"xwvt":[3,6.499999999999875],"GMzN":[3.7473350088709996,6.999999999999748]},"vertices":["xwvt","HshE","GMzN"],"texture":0},"O1DRs8CQ":{"uv":{"GMzN":[3.747335008871,6.999999999999748],"xnhg":[4,6.499999999999873],"A8KX":[3.747335008871,5.999999999999998]},"vertices":["GMzN","xnhg","A8KX"],"texture":0},"nAO9HOAG":{"uv":{"A8KX":[3.7473350088709996,5.999999999999998],"tUh9":[3.2461598742761875,6],"xwvt":[3,6.499999999999875]},"vertices":["A8KX","tUh9","xwvt"],"texture":0},"KwbZoM5g":{"uv":{"xwvt":[3,6.499999999999875],"GMzN":[3.7473350088709996,6.999999999999748],"A8KX":[3.7473350088709996,5.999999999999998]},"vertices":["xwvt","GMzN","A8KX"],"texture":0}},"type":"mesh","uuid":"b3425749-4fa9-bf87-ab0a-5fd6d7d03481"}],"outliner":["79c2c826-a7ee-c0fc-9bb7-a6e9e9119836","b3425749-4fa9-bf87-ab0a-5fd6d7d03481"],"textures":[{"path":"/home/copygirl/projects/godot/Inventory2/assets/models/bolt_0.png","name":"bolt_0.png","folder":"block","namespace":"","id":"0","width":8,"height":8,"uv_width":8,"uv_height":8,"particle":false,"layers_enabled":true,"sync_to_project":"","render_mode":"default","render_sides":"auto","frame_time":1,"frame_order_type":"loop","frame_order":"","frame_interpolate":false,"visible":true,"internal":true,"saved":true,"uuid":"720a9538-a5a0-6514-f7b0-bec315585479","layers":[{"name":"layer","offset":[-4,-1],"scale":[1,1],"opacity":100,"visible":true,"blend_mode":"default","width":16,"height":16,"data_url":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAJRJREFUOE9jZKAQMKLrN7H1/w8SO3N4I6O2sdv/q2d3wdWIqhj+f33nPIoevAaADAMZBLNERdfx/53L+/EbgOwidBeg80FqMVyAbAC6C9D5BA1At9HeNeH/wd0LiPcCuo0BEaX/N6zoJt4AdBfEx7f/X7iwkngD0KM4J73v/5SZReQbgC3N4Y0FYhLpqAEEkjIxgQgAA0JEERL9WrcAAAAASUVORK5CYII="}],"relative_path":"../bolt_0.png","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAAXNSR0IArs4c6QAAAFpJREFUKFNjNLH1/8/AwMBw5vBGRm1jt/9Xz+5iBPFBQFTF8D8jsgIQG6QQpkBF1/E/nAMSRDcBxEdRgG4CiI/XBHvXBPwmBESU4jchPr4dVQHM9TA6J73vPwDdtjMIRc6nQAAAAABJRU5ErkJggg=="}],"export_options":{"gltf":{"encoding":"ascii","scale":16,"embed_textures":true,"armature":false,"animations":true}}} \ No newline at end of file +{"meta":{"format_version":"4.9","model_format":"free","box_uv":false},"name":"bolt","model_identifier":"","visible_box":[1,1,0],"variable_placeholders":"","variable_placeholder_buttons":[],"timeline_setups":[],"unhandled_root_fields":{},"resolution":{"width":8,"height":8},"elements":[{"name":"Head","color":8,"origin":[0,0.75,0],"rotation":[0,15,0],"visibility":false,"locked":false,"render_order":"default","allow_mirror_modeling":true,"vertices":{"A8KX":[0.2886751345948128,0,0.5],"RR1R":[0.2886751345948128,0.25,0.5],"xnhg":[0.5773502691896257,0,3.5352507957496895e-17],"q8rh":[0.5773502691896257,0.25,3.5352507957496895e-17],"GMzN":[0.2886751345948128,0,-0.5],"YMKj":[0.2886751345948128,0.25,-0.5],"HshE":[-0.2886751345948129,0,-0.49999999999999994],"QA97":[-0.2886751345948129,0.25,-0.49999999999999994],"xwvt":[-0.5773502691896257,0,-1.0605752387249068e-16],"jh2L":[-0.5773502691896257,0.25,-1.0605752387249068e-16],"tUh9":[-0.28867513459481314,0,0.49999999999999983],"Tqsd":[-0.28867513459481314,0.25,0.49999999999999983]},"faces":{"o3XMGERM":{"uv":{"A8KX":[0,1],"xnhg":[2,1],"q8rh":[2,0],"RR1R":[0,0]},"vertices":["A8KX","xnhg","q8rh","RR1R"],"texture":0},"TroY3ivy":{"uv":{"xnhg":[0,1],"GMzN":[2,1],"YMKj":[2,0],"q8rh":[0,0]},"vertices":["xnhg","GMzN","YMKj","q8rh"],"texture":0},"9YKyYKx7":{"uv":{"GMzN":[0,1],"HshE":[2,1],"QA97":[2,0],"YMKj":[0,0]},"vertices":["GMzN","HshE","QA97","YMKj"],"texture":0},"qaMIxDgx":{"uv":{"HshE":[0,1],"xwvt":[2,1],"jh2L":[2,0],"QA97":[0,0]},"vertices":["HshE","xwvt","jh2L","QA97"],"texture":0},"cJ1fNO4M":{"uv":{"xwvt":[0,1],"tUh9":[2,1],"Tqsd":[2,0],"jh2L":[0,0]},"vertices":["xwvt","tUh9","Tqsd","jh2L"],"texture":0},"O8QDJVBB":{"uv":{"tUh9":[0,1],"A8KX":[2,1],"RR1R":[2.0024,0],"Tqsd":[0,0]},"vertices":["tUh9","A8KX","RR1R","Tqsd"],"texture":0},"XE8D68Au":{"uv":{"GMzN":[1.5035254037844386,1.9999999999994993],"xnhg":[2,0.9999999999997496],"A8KX":[1.5035254037844386,0]},"vertices":["GMzN","xnhg","A8KX"],"texture":0},"t7bpuFLI":{"uv":{"HshE":[0.5011751345948129,1.9999999999994993],"GMzN":[1.5035254037844386,1.9999999999994993],"xwvt":[0,0.9999999999997501]},"vertices":["HshE","GMzN","xwvt"],"texture":0},"qUcdoS0p":{"uv":{"tUh9":[0.501175134594812,4.440892098501737e-16],"xwvt":[0,0.9999999999997501],"A8KX":[1.5035254037844386,0]},"vertices":["tUh9","xwvt","A8KX"],"texture":0},"n4kc0WxU":{"uv":{"GMzN":[1.5035254037844386,1.9999999999994993],"A8KX":[1.5035254037844386,0],"xwvt":[0,0.9999999999997501]},"vertices":["GMzN","A8KX","xwvt"],"texture":0},"xxWDGnpX":{"uv":{"RR1R":[1.5035254037844386,1.9999999999994984],"q8rh":[2,0.9999999999997495],"YMKj":[1.5035254037844386,0]},"vertices":["RR1R","q8rh","YMKj"],"texture":0},"huHUnIEJ":{"uv":{"jh2L":[0,0.9999999999997486],"YMKj":[1.5035254037844386,0],"QA97":[0.501175134594813,0]},"vertices":["jh2L","YMKj","QA97"],"texture":0},"VOS56Gjj":{"uv":{"RR1R":[1.5035254037844386,1.9999999999994984],"jh2L":[0,0.9999999999997486],"Tqsd":[0.5011751345948121,1.9999999999994984]},"vertices":["RR1R","jh2L","Tqsd"],"texture":0},"nHVmKVXX":{"uv":{"RR1R":[1.5035254037844386,1.9999999999994984],"YMKj":[1.5035254037844386,0],"jh2L":[0,0.9999999999997486]},"vertices":["RR1R","YMKj","jh2L"],"texture":0}},"type":"mesh","uuid":"79c2c826-a7ee-c0fc-9bb7-a6e9e9119836"},{"name":"Thread","color":8,"origin":[0,1.7500000000000004,0],"rotation":[0,15,0],"visibility":false,"locked":false,"render_order":"default","allow_mirror_modeling":true,"vertices":{"A8KX":[0.1443375672974064,-2.75,0.25],"RR1R":[0.1443375672974064,-0.9999999999999999,0.25],"xnhg":[0.28867513459481287,-2.75,1.7676253978748448e-17],"q8rh":[0.28867513459481287,-0.9999999999999999,1.7676253978748448e-17],"GMzN":[0.1443375672974064,-2.75,-0.25],"YMKj":[0.1443375672974064,-0.9999999999999999,-0.25],"HshE":[-0.14433756729740646,-2.75,-0.24999999999999997],"QA97":[-0.14433756729740646,-0.9999999999999999,-0.24999999999999997],"xwvt":[-0.28867513459481287,-2.75,-5.302876193624534e-17],"jh2L":[-0.28867513459481287,-0.9999999999999999,-5.302876193624534e-17],"tUh9":[-0.14433756729740657,-2.75,0.24999999999999992],"Tqsd":[-0.14433756729740657,-0.9999999999999999,0.24999999999999992]},"faces":{"o3XMGERM":{"uv":{"A8KX":[3,7],"xnhg":[4,7],"q8rh":[4,0],"RR1R":[3,0]},"vertices":["A8KX","xnhg","q8rh","RR1R"],"texture":0},"TroY3ivy":{"uv":{"xnhg":[3,7],"GMzN":[4,7],"YMKj":[4,0],"q8rh":[3,0]},"vertices":["xnhg","GMzN","YMKj","q8rh"],"texture":0},"9YKyYKx7":{"uv":{"GMzN":[3,7],"HshE":[4,7],"QA97":[4,0],"YMKj":[3,0]},"vertices":["GMzN","HshE","QA97","YMKj"],"texture":0},"qaMIxDgx":{"uv":{"HshE":[3,7],"xwvt":[4,7],"jh2L":[4,0],"QA97":[3,0]},"vertices":["HshE","xwvt","jh2L","QA97"],"texture":0},"cJ1fNO4M":{"uv":{"xwvt":[3,7],"tUh9":[4,7],"Tqsd":[4,0],"jh2L":[3,0]},"vertices":["xwvt","tUh9","Tqsd","jh2L"],"texture":0},"O8QDJVBB":{"uv":{"tUh9":[3,7],"A8KX":[4,7],"RR1R":[4,0],"Tqsd":[3,0]},"vertices":["tUh9","A8KX","RR1R","Tqsd"],"texture":0},"QZHLgu0g":{"uv":{"xwvt":[3,6.499999999999875],"HshE":[3.2461598742761875,6.9999999999997495],"GMzN":[3.7473350088709996,6.999999999999748]},"vertices":["xwvt","HshE","GMzN"],"texture":0},"O1DRs8CQ":{"uv":{"GMzN":[3.747335008871,6.999999999999748],"xnhg":[4,6.499999999999873],"A8KX":[3.747335008871,5.999999999999998]},"vertices":["GMzN","xnhg","A8KX"],"texture":0},"nAO9HOAG":{"uv":{"A8KX":[3.7473350088709996,5.999999999999998],"tUh9":[3.2461598742761875,6],"xwvt":[3,6.499999999999875]},"vertices":["A8KX","tUh9","xwvt"],"texture":0},"KwbZoM5g":{"uv":{"xwvt":[3,6.499999999999875],"GMzN":[3.7473350088709996,6.999999999999748],"A8KX":[3.7473350088709996,5.999999999999998]},"vertices":["xwvt","GMzN","A8KX"],"texture":0}},"type":"mesh","uuid":"b3425749-4fa9-bf87-ab0a-5fd6d7d03481"},{"name":"Collider-convcolonly","color":9,"origin":[0,0,0],"rotation":[0,15,0],"visibility":true,"locked":false,"render_order":"default","allow_mirror_modeling":true,"vertices":{"LlYC":[0.2886751345948128,0.9999999999999997,0.5],"556p":[0.5773502691896257,0.9999999999999997,3.5352507957496895e-17],"iIPA":[0.2886751345948128,0.9999999999999997,-0.5],"C2c5":[-0.2886751345948129,0.9999999999999997,-0.49999999999999994],"PYcc":[-0.5773502691896257,0.9999999999999997,-1.0605752387249068e-16],"le8a":[-0.28867513459481314,0.9999999999999997,0.49999999999999983],"Usd8":[0.1443375672974064,-1,0.25],"Sn2T":[0.28867513459481287,-1,2.7755575615628914e-17],"ulC0":[0.14433756729740643,-1,-0.25],"E6JA":[-0.14433756729740643,-1,-0.24999999999999997],"XG46":[-0.28867513459481287,-1,-6.938893903907228e-17],"Gg0P":[-0.14433756729740657,-1,0.24999999999999994]},"faces":{"pla2HFHV":{"uv":{"556p":[0,0],"LlYC":[0,0],"Usd8":[0,0],"Sn2T":[0,0]},"vertices":["Usd8","Sn2T","556p","LlYC"]},"dTqaNhkR":{"uv":{"iIPA":[0,0],"556p":[0,0],"ulC0":[0,0],"Sn2T":[0,0]},"vertices":["Sn2T","ulC0","iIPA","556p"]},"Dcyf1ElH":{"uv":{"C2c5":[0,0],"iIPA":[0,0],"ulC0":[0,0],"E6JA":[0,0]},"vertices":["ulC0","E6JA","C2c5","iIPA"]},"TaFDhdtO":{"uv":{"PYcc":[0,0],"C2c5":[0,0],"E6JA":[0,0],"XG46":[0,0]},"vertices":["E6JA","XG46","PYcc","C2c5"]},"UaaYuhwR":{"uv":{"le8a":[0,0],"PYcc":[0,0],"XG46":[0,0],"Gg0P":[0,0]},"vertices":["XG46","Gg0P","le8a","PYcc"]},"RiUCeahO":{"uv":{"LlYC":[0,0],"le8a":[0,0],"Usd8":[0,0],"Gg0P":[0,0]},"vertices":["Gg0P","Usd8","LlYC","le8a"]},"BfBiRgcJ":{"uv":{"LlYC":[0,0],"le8a":[0,0],"PYcc":[0,0]},"vertices":["le8a","LlYC","PYcc"]},"pqrF8AoR":{"uv":{"LlYC":[0,0],"556p":[0,0],"iIPA":[0,0]},"vertices":["LlYC","556p","iIPA"]},"njrFFE7K":{"uv":{"C2c5":[0,0],"iIPA":[0,0],"PYcc":[0,0]},"vertices":["iIPA","C2c5","PYcc"]},"9AJikp1Y":{"uv":{"LlYC":[0,0],"iIPA":[0,0],"PYcc":[0,0]},"vertices":["LlYC","iIPA","PYcc"]},"0GhKZNak":{"uv":{"XG46":[0,0],"E6JA":[0,0],"ulC0":[0,0]},"vertices":["XG46","E6JA","ulC0"]},"9sBXYfHW":{"uv":{"ulC0":[0,0],"Sn2T":[0,0],"Usd8":[0,0]},"vertices":["ulC0","Sn2T","Usd8"]},"UI25qZrW":{"uv":{"Usd8":[0,0],"Gg0P":[0,0],"XG46":[0,0]},"vertices":["Usd8","Gg0P","XG46"]},"4L7Z2MjJ":{"uv":{"Usd8":[0,0],"XG46":[0,0],"ulC0":[0,0]},"vertices":["Usd8","XG46","ulC0"]}},"type":"mesh","uuid":"c6fd6e8b-6c0c-ff2e-654e-aec62c960bf0"}],"outliner":["79c2c826-a7ee-c0fc-9bb7-a6e9e9119836","b3425749-4fa9-bf87-ab0a-5fd6d7d03481","c6fd6e8b-6c0c-ff2e-654e-aec62c960bf0"],"textures":[{"path":"/home/copygirl/projects/godot/Inventory2/assets/models/bolt_0.png","name":"bolt_0.png","folder":"block","namespace":"","id":"0","width":8,"height":8,"uv_width":8,"uv_height":8,"particle":false,"layers_enabled":true,"sync_to_project":"","render_mode":"default","render_sides":"auto","frame_time":1,"frame_order_type":"loop","frame_order":"","frame_interpolate":false,"visible":true,"internal":true,"saved":true,"uuid":"720a9538-a5a0-6514-f7b0-bec315585479","layers":[{"name":"layer","offset":[-4,-1],"scale":[1,1],"opacity":100,"visible":true,"blend_mode":"default","width":16,"height":16,"data_url":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAJRJREFUOE9jZKAQMKLrN7H1/w8SO3N4I6O2sdv/q2d3wdWIqhj+f33nPIoevAaADAMZBLNERdfx/53L+/EbgOwidBeg80FqMVyAbAC6C9D5BA1At9HeNeH/wd0LiPcCuo0BEaX/N6zoJt4AdBfEx7f/X7iwkngD0KM4J73v/5SZReQbgC3N4Y0FYhLpqAEEkjIxgQgAA0JEERL9WrcAAAAASUVORK5CYII="}],"relative_path":"../bolt_0.png","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAAXNSR0IArs4c6QAAAFpJREFUKFNjNLH1/8/AwMBw5vBGRm1jt/9Xz+5iBPFBQFTF8D8jsgIQG6QQpkBF1/E/nAMSRDcBxEdRgG4CiI/XBHvXBPwmBESU4jchPr4dVQHM9TA6J73vPwDdtjMIRc6nQAAAAABJRU5ErkJggg=="}],"export_options":{"gltf":{"encoding":"ascii","scale":20,"embed_textures":true,"armature":false,"animations":true}}} \ No newline at end of file diff --git a/assets/models/bolt.gltf b/assets/models/bolt.gltf index eb991d5..a2ccb58 100644 --- a/assets/models/bolt.gltf +++ b/assets/models/bolt.gltf @@ -1 +1 @@ -{"asset":{"version":"2.0","generator":"Blockbench 4.9.2 glTF exporter"},"scenes":[{"nodes":[2],"name":"blockbench_export"}],"scene":0,"nodes":[{"rotation":[0,0.13052619222005157,0,0.9914448613738104],"translation":[0,0.037500000000000006,0],"name":"head","mesh":0},{"rotation":[0,0.13052619222005157,0,0.9914448613738104],"translation":[0,0.08750000000000002,0],"name":"thread","mesh":1},{"children":[0,1]}],"bufferViews":[{"buffer":0,"byteOffset":0,"byteLength":576,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":576,"byteLength":576,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":1152,"byteLength":384,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":1536,"byteLength":120,"target":34963},{"buffer":0,"byteOffset":1656,"byteLength":432,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":2088,"byteLength":432,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":2520,"byteLength":288,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":2808,"byteLength":96,"target":34963}],"buffers":[{"byteLength":2904,"uri":"data:application/octet-stream;base64,kHtsPAAAAADNzMw8kHvsPAAAAACAbQIikHvsPM3MTDyAbQIikHtsPM3MTDzNzMw8kHvsPAAAAACAbQIikHtsPAAAAADNzMy8kHtsPM3MTDzNzMy8kHvsPM3MTDyAbQIikHtsPAAAAADNzMy8kHtsvAAAAADNzMy8kHtsvM3MTDzNzMy8kHtsPM3MTDzNzMy8kHtsvAAAAADNzMy8kHvsvAAAAABApMOikHvsvM3MTDxApMOikHtsvM3MTDzNzMy8kHvsvAAAAABApMOikHtsvAAAAADNzMw8kHtsvM3MTDzNzMw8kHvsvM3MTDxApMOikHtsvAAAAADNzMw8kHtsPAAAAADNzMw8kHtsPM3MTDzNzMw8kHtsvM3MTDzNzMw8kHtsPAAAAADNzMy8kHvsPAAAAACAbQIikHtsPAAAAADNzMw8kHtsvAAAAADNzMy8kHtsPAAAAADNzMy8kHvsvAAAAABApMOikHtsvAAAAADNzMw8kHvsvAAAAABApMOikHtsPAAAAADNzMw8kHtsPAAAAADNzMy8kHtsPAAAAADNzMw8kHvsvAAAAABApMOikHtsPM3MTDzNzMw8kHvsPM3MTDyAbQIikHtsPM3MTDzNzMy8kHvsvM3MTDxApMOikHtsPM3MTDzNzMy8kHtsvM3MTDzNzMy8kHtsPM3MTDzNzMw8kHvsvM3MTDxApMOikHtsvM3MTDzNzMw8kHtsPM3MTDzNzMw8kHtsPM3MTDzNzMy8kHvsvM3MTDxApMOi17NdPwAAAAAAAAA/17NdPwAAAAAAAAA/17NdPwAAAAAAAAA/17NdPwAAAAAAAAA/17NdPwAAAAAAAAC/17NdPwAAAAAAAAC/17NdPwAAAAAAAAC/17NdPwAAAAAAAAC/17PdpAAAAAAAAIC/17PdpAAAAAAAAIC/17PdpAAAAAAAAIC/17PdpAAAAAAAAIC/17NdvwAAAAAAAAC/17NdvwAAAAAAAAC/17NdvwAAAAAAAAC/17NdvwAAAAAAAAC/17NdvwAAAAAAAAA/17NdvwAAAAAAAAA/17NdvwAAAAAAAAA/17NdvwAAAAAAAAA/4UampQAAAAAAAIA/4UampQAAAAAAAIA/4UampQAAAAAAAIA/4UampQAAAAAAAIA/AAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAACAAAAAAAAAgL8AAACAAAAAAAAAgL8AAACAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAAD4AAIA+AAAAPgAAgD4AAAAAAAAAAAAAAAAAAAAAAAAAPgAAgD4AAAA+AACAPgAAAAAAAAAAAAAAAAAAAAAAAAA+AACAPgAAAD4AAIA+AAAAAAAAAAAAAAAAAAAAAAAAAD4AAIA+AAAAPgAAgD4AAAAAAAAAAAAAAAAAAAAAAAAAPgAAgD4AAAA+AACAPgAAAAAAAAAAAAAAAAAAAAAAAAA+AACAPgAAAD5SJ4A+AAAAAAAAAAAAAAAAhXNAPgAAgD4AAIA+AAAAPoVzQD4AAAAAA02APQAAgD6Fc0A+AACAPgAAAAAAAAA+A02APQAAAAAAAAAAAAAAPoVzQD4AAAAAhXNAPgAAgD6Fc0A+AAAAAAAAAAAAAAA+hXNAPgAAgD4AAIA+AAAAPoVzQD4AAAAAAAAAAAAAAD6Fc0A+AAAAAANNgD0AAAAAhXNAPgAAgD4AAAAAAAAAPgNNgD0AAIA+hXNAPgAAgD6Fc0A+AAAAAAAAAAAAAAA+AAABAAIAAAACAAMABAAFAAYABAAGAAcACAAJAAoACAAKAAsADAANAA4ADAAOAA8AEAARABIAEAASABMAFAAVABYAFAAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AkHvsO83MDL7NzEw8kHtsPM3MDL6AbYIhkHtsPM3MTL2AbYIhkHvsO83MTL3NzEw8kHtsPM3MDL6AbYIhkHvsO83MDL7NzEy8kHvsO83MTL3NzEy8kHtsPM3MTL2AbYIhkHvsO83MDL7NzEy8kHvsu83MDL7NzEy8kHvsu83MTL3NzEy8kHvsO83MTL3NzEy8kHvsu83MDL7NzEy8kHtsvM3MDL5ApEOikHtsvM3MTL1ApEOikHvsu83MTL3NzEy8kHtsvM3MDL5ApEOikHvsu83MDL7NzEw8kHvsu83MTL3NzEw8kHtsvM3MTL1ApEOikHvsu83MDL7NzEw8kHvsO83MDL7NzEw8kHvsO83MTL3NzEw8kHvsu83MTL3NzEw8kHtsvM3MDL5ApEOikHvsu83MDL7NzEy8kHvsO83MDL7NzEy8kHvsO83MDL7NzEy8kHtsPM3MDL6AbYIhkHvsO83MDL7NzEw8kHvsO83MDL7NzEw8kHvsu83MDL7NzEw8kHtsvM3MDL5ApEOikHtsvM3MDL5ApEOikHvsO83MDL7NzEy8kHvsO83MDL7NzEw817NdPwAAAAAAAAA/17NdPwAAAAAAAAA/17NdPwAAAAAAAAA/17NdPwAAAAAAAAA/17NdPwAAAAAAAAC/17NdPwAAAAAAAAC/17NdPwAAAAAAAAC/17NdPwAAAAAAAAC/17PdpAAAAAAAAIC/17PdpAAAAAAAAIC/17PdpAAAAAAAAIC/17PdpAAAAAAAAIC/17NdvwAAAAAAAAC/17NdvwAAAAAAAAC/17NdvwAAAAAAAAC/17NdvwAAAAAAAAC/17NdvwAAAAAAAAA/17NdvwAAAAAAAAA/17NdvwAAAAAAAAA/17NdvwAAAAAAAAA/4UampQAAAAAAAIA/4UampQAAAAAAAIA/4UampQAAAAAAAIA/4UampQAAAAAAAIA/AAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAADAPgAAYD8AAAA/AABgPwAAAD8AAAAAAADAPgAAAAAAAMA+AABgPwAAAD8AAGA/AAAAPwAAAAAAAMA+AAAAAAAAwD4AAGA/AAAAPwAAYD8AAAA/AAAAAAAAwD4AAAAAAADAPgAAYD8AAAA/AABgPwAAAD8AAAAAAADAPgAAAAAAAMA+AABgPwAAAD8AAGA/AAAAPwAAAAAAAMA+AAAAAAAAwD4AAGA/AAAAPwAAYD8AAAA/AAAAAAAAwD4AAAAAAADAPgAAUD8Vwc8+AABgP1bU7z4AAGA/VtTvPgAAYD8AAAA/AABQP1bU7z4AAEA/VtTvPgAAQD8Vwc8+AABAPwAAwD4AAFA/AADAPgAAUD9W1O8+AABgP1bU7z4AAEA/AAABAAIAAAACAAMABAAFAAYABAAGAAcACAAJAAoACAAKAAsADAANAA4ADAAOAA8AEAARABIAEAASABMAFAAVABYAFAAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMA"}],"accessors":[{"bufferView":0,"componentType":5126,"count":48,"max":[0.028867512941360474,0.012500000186264515,0.02500000037252903],"min":[-0.028867512941360474,0,-0.02500000037252903],"type":"VEC3"},{"bufferView":1,"componentType":5126,"count":48,"max":[0.8660253882408142,1,1],"min":[-0.8660253882408142,-1,-1],"type":"VEC3"},{"bufferView":2,"componentType":5126,"count":48,"max":[0.25029999017715454,0.25],"min":[0,0],"type":"VEC2"},{"bufferView":3,"componentType":5123,"count":60,"max":[47],"min":[0],"type":"SCALAR"},{"bufferView":4,"componentType":5126,"count":36,"max":[0.014433756470680237,-0.05000000074505806,0.012500000186264515],"min":[-0.014433756470680237,-0.13750000298023224,-0.012500000186264515],"type":"VEC3"},{"bufferView":5,"componentType":5126,"count":36,"max":[0.8660253882408142,0,1],"min":[-0.8660253882408142,-1,-1],"type":"VEC3"},{"bufferView":6,"componentType":5126,"count":36,"max":[0.5,0.875],"min":[0.375,0],"type":"VEC2"},{"bufferView":7,"componentType":5123,"count":48,"max":[35],"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}],"samplers":[{"magFilter":9728,"minFilter":9728,"wrapS":33071,"wrapT":33071}],"images":[{"mimeType":"image/png","uri":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAAXNSR0IArs4c6QAAAFpJREFUKFNjNLH1/8/AwMBw5vBGRm1jt/9Xz+5iBPFBQFTF8D8jsgIQG6QQpkBF1/E/nAMSRDcBxEdRgG4CiI/XBHvXBPwmBESU4jchPr4dVQHM9TA6J73vPwDdtjMIRc6nQAAAAABJRU5ErkJggg=="}],"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}]}]} \ No newline at end of file +{"asset":{"version":"2.0","generator":"Blockbench 4.9.2 glTF exporter"},"scenes":[{"nodes":[3],"name":"blockbench_export"}],"scene":0,"nodes":[{"rotation":[0,0.13052619222005157,0,0.9914448613738104],"translation":[0,0.037500000000000006,0],"name":"Head","mesh":0},{"rotation":[0,0.13052619222005157,0,0.9914448613738104],"translation":[0,0.08750000000000002,0],"name":"Thread","mesh":1},{"rotation":[0,0.13052619222005157,0,0.9914448613738104],"name":"Collider-convcolonly","mesh":2},{"children":[0,1,2]}],"bufferViews":[{"buffer":0,"byteOffset":0,"byteLength":576,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":576,"byteLength":576,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":1152,"byteLength":384,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":1536,"byteLength":120,"target":34963},{"buffer":0,"byteOffset":1656,"byteLength":432,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":2088,"byteLength":432,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":2520,"byteLength":288,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":2808,"byteLength":96,"target":34963},{"buffer":0,"byteOffset":2904,"byteLength":576,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":3480,"byteLength":576,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":4056,"byteLength":384,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":4440,"byteLength":120,"target":34963}],"buffers":[{"byteLength":4560,"uri":"data:application/octet-stream;base64,kHtsPAAAAADNzMw8kHvsPAAAAACAbQIikHvsPM3MTDyAbQIikHtsPM3MTDzNzMw8kHvsPAAAAACAbQIikHtsPAAAAADNzMy8kHtsPM3MTDzNzMy8kHvsPM3MTDyAbQIikHtsPAAAAADNzMy8kHtsvAAAAADNzMy8kHtsvM3MTDzNzMy8kHtsPM3MTDzNzMy8kHtsvAAAAADNzMy8kHvsvAAAAABApMOikHvsvM3MTDxApMOikHtsvM3MTDzNzMy8kHvsvAAAAABApMOikHtsvAAAAADNzMw8kHtsvM3MTDzNzMw8kHvsvM3MTDxApMOikHtsvAAAAADNzMw8kHtsPAAAAADNzMw8kHtsPM3MTDzNzMw8kHtsvM3MTDzNzMw8kHtsPAAAAADNzMy8kHvsPAAAAACAbQIikHtsPAAAAADNzMw8kHtsvAAAAADNzMy8kHtsPAAAAADNzMy8kHvsvAAAAABApMOikHtsvAAAAADNzMw8kHvsvAAAAABApMOikHtsPAAAAADNzMw8kHtsPAAAAADNzMy8kHtsPAAAAADNzMw8kHvsvAAAAABApMOikHtsPM3MTDzNzMw8kHvsPM3MTDyAbQIikHtsPM3MTDzNzMy8kHvsvM3MTDxApMOikHtsPM3MTDzNzMy8kHtsvM3MTDzNzMy8kHtsPM3MTDzNzMw8kHvsvM3MTDxApMOikHtsvM3MTDzNzMw8kHtsPM3MTDzNzMw8kHtsPM3MTDzNzMy8kHvsvM3MTDxApMOi17NdPwAAAAAAAAA/17NdPwAAAAAAAAA/17NdPwAAAAAAAAA/17NdPwAAAAAAAAA/17NdPwAAAAAAAAC/17NdPwAAAAAAAAC/17NdPwAAAAAAAAC/17NdPwAAAAAAAAC/17PdpAAAAAAAAIC/17PdpAAAAAAAAIC/17PdpAAAAAAAAIC/17PdpAAAAAAAAIC/17NdvwAAAAAAAAC/17NdvwAAAAAAAAC/17NdvwAAAAAAAAC/17NdvwAAAAAAAAC/17NdvwAAAAAAAAA/17NdvwAAAAAAAAA/17NdvwAAAAAAAAA/17NdvwAAAAAAAAA/4UampQAAAAAAAIA/4UampQAAAAAAAIA/4UampQAAAAAAAIA/4UampQAAAAAAAIA/AAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAA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"}],"accessors":[{"bufferView":0,"componentType":5126,"count":48,"max":[0.028867512941360474,0.012500000186264515,0.02500000037252903],"min":[-0.028867512941360474,0,-0.02500000037252903],"type":"VEC3"},{"bufferView":1,"componentType":5126,"count":48,"max":[0.8660253882408142,1,1],"min":[-0.8660253882408142,-1,-1],"type":"VEC3"},{"bufferView":2,"componentType":5126,"count":48,"max":[0.25029999017715454,0.25],"min":[0,0],"type":"VEC2"},{"bufferView":3,"componentType":5123,"count":60,"max":[47],"min":[0],"type":"SCALAR"},{"bufferView":4,"componentType":5126,"count":36,"max":[0.014433756470680237,-0.05000000074505806,0.012500000186264515],"min":[-0.014433756470680237,-0.13750000298023224,-0.012500000186264515],"type":"VEC3"},{"bufferView":5,"componentType":5126,"count":36,"max":[0.8660253882408142,0,1],"min":[-0.8660253882408142,-1,-1],"type":"VEC3"},{"bufferView":6,"componentType":5126,"count":36,"max":[0.5,0.875],"min":[0.375,0],"type":"VEC2"},{"bufferView":7,"componentType":5123,"count":48,"max":[35],"min":[0],"type":"SCALAR"},{"bufferView":8,"componentType":5126,"count":48,"max":[0.028867512941360474,0.05000000074505806,0.02500000037252903],"min":[-0.028867512941360474,-0.05000000074505806,-0.02500000037252903],"type":"VEC3"},{"bufferView":9,"componentType":5126,"count":48,"max":[0.8593378663063049,1,0.9922778606414795],"min":[-0.8593378663063049,-1,-0.9922778606414795],"type":"VEC3"},{"bufferView":10,"componentType":5126,"count":48,"max":[0,0],"min":[0,0],"type":"VEC2"},{"bufferView":11,"componentType":5123,"count":60,"max":[47],"min":[0],"type":"SCALAR"}],"materials":[{"pbrMetallicRoughness":{"metallicFactor":0,"roughnessFactor":1,"baseColorTexture":{"index":0}},"alphaMode":"MASK","alphaCutoff":0.05,"doubleSided":true},{"pbrMetallicRoughness":{"metallicFactor":0,"roughnessFactor":1},"alphaMode":"MASK","alphaCutoff":0.05,"doubleSided":true}],"textures":[{"sampler":0,"source":0}],"samplers":[{"magFilter":9728,"minFilter":9728,"wrapS":33071,"wrapT":33071}],"images":[{"mimeType":"image/png","uri":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAAXNSR0IArs4c6QAAAFpJREFUKFNjNLH1/8/AwMBw5vBGRm1jt/9Xz+5iBPFBQFTF8D8jsgIQG6QQpkBF1/E/nAMSRDcBxEdRgG4CiI/XBHvXBPwmBESU4jchPr4dVQHM9TA6J73vPwDdtjMIRc6nQAAAAABJRU5ErkJggg=="}],"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":1}]}]} \ No newline at end of file diff --git a/assets/models/nail.bbmodel b/assets/models/nail.bbmodel index 4e2fd67..4a0d8ff 100644 --- a/assets/models/nail.bbmodel +++ b/assets/models/nail.bbmodel @@ -1 +1 @@ -{"meta":{"format_version":"4.9","model_format":"free","box_uv":false},"name":"nail","model_identifier":"","visible_box":[1,1,0],"variable_placeholders":"","variable_placeholder_buttons":[],"timeline_setups":[],"unhandled_root_fields":{},"resolution":{"width":8,"height":8},"elements":[{"name":"head","color":2,"origin":[0,0,0],"rotation":[0,0,0],"visibility":true,"locked":false,"render_order":"default","allow_mirror_modeling":true,"vertices":{"w25F":[0.4999999999999987,0.75,-0.5000026694232708],"Vf2t":[0.4999999999999987,0.75,0.49999733057672757],"Zldj":[0.4999999999999987,1,-0.5000026694232715],"Dn9M":[0.4999999999999987,1,0.49999733057672713],"SAKY":[-0.4999999999999987,0.75,-0.5000026694232708],"U2LG":[-0.4999999999999987,1,-0.5000026694232715],"aFDh":[-0.4999999999999987,0.75,0.49999733057672757],"907z":[-0.4999999999999987,1,0.49999733057672713]},"faces":{"9Ab0JvTy":{"uv":{"w25F":[2,0],"Zldj":[1,0],"Vf2t":[2,2],"Dn9M":[1,2]},"vertices":["w25F","Zldj","Vf2t","Dn9M"],"texture":0},"ubeI6z4q":{"uv":{"w25F":[2,0],"SAKY":[0,0],"Zldj":[2,1],"U2LG":[0,1]},"vertices":["w25F","SAKY","Zldj","U2LG"],"texture":0},"UKeDxmrT":{"uv":{"Vf2t":[2,2],"Dn9M":[2,1],"aFDh":[0,2],"907z":[0,1]},"vertices":["Vf2t","Dn9M","aFDh","907z"],"texture":0},"MTUEm1Yz":{"uv":{"w25F":[2,2.220446049250313e-16],"Vf2t":[2,2],"SAKY":[0,0],"aFDh":[0,2]},"vertices":["w25F","Vf2t","SAKY","aFDh"],"texture":0},"FL7ubSlH":{"uv":{"Zldj":[2,0],"U2LG":[0,0],"Dn9M":[2,2],"907z":[0,2]},"vertices":["Zldj","U2LG","Dn9M","907z"],"texture":0},"tTgro36z":{"uv":{"U2LG":[0,0],"SAKY":[1,0],"aFDh":[1,2],"907z":[0,2]},"vertices":["U2LG","SAKY","aFDh","907z"],"texture":0}},"type":"mesh","uuid":"e2d2394f-13c7-f5ac-31a0-aa941e9bc780"},{"name":"pin","color":2,"origin":[0,0,0],"rotation":[0,0,0],"visibility":true,"locked":false,"render_order":"default","allow_mirror_modeling":true,"vertices":{"2Pur":[7.703719777548942e-33,-0.8888888888888875,-0.000002669423271034631],"kObA":[-0.24999999999999936,0.75,-0.25000266942327143],"DOBZ":[-0.12499699689881903,-0.5139099105971506,-0.12499966632209059],"TNAU":[-0.24999999999999936,0.75,0.24999733057672735],"Cz6n":[-0.12500300310117993,-0.5138678671806249,0.1250003336779082],"2ohg":[0.24999999999999936,0.75,-0.25000266942327143],"LSHZ":[0.12499699689881903,-0.5139099105971506,-0.12499966632209059],"LtLb":[0.24999999999999936,0.75,0.24999733057672735],"WeSR":[0.12500300310117993,-0.5138678671806249,0.1250003336779082]},"faces":{"0H774Xer":{"uv":{"LSHZ":[3,2],"kObA":[4.000006864231269,0],"DOBZ":[4,2],"2ohg":[3.000006864231269,0]},"vertices":["LSHZ","kObA","DOBZ","2ohg"],"texture":0},"luGb3OW3":{"uv":{"LSHZ":[3,2],"2Pur":[3.5000068642312696,3.0414000000000003],"DOBZ":[4,2]},"vertices":["LSHZ","2Pur","DOBZ"],"texture":0},"iHuit6Lh":{"uv":{"Cz6n":[3,2],"LtLb":[4.000006864231269,0],"WeSR":[4,2],"TNAU":[3.000006864231269,0]},"vertices":["Cz6n","LtLb","WeSR","TNAU"],"texture":0},"gQjPRuLO":{"uv":{"Cz6n":[3,2],"2Pur":[3.5000068642312696,3.0414000000000003],"WeSR":[4,2]},"vertices":["Cz6n","2Pur","WeSR"],"texture":0},"GsY3sjLN":{"uv":{"kObA":[4.000006864231269,0],"Cz6n":[3,2],"DOBZ":[4,2],"TNAU":[3.000006864231269,0]},"vertices":["kObA","Cz6n","DOBZ","TNAU"],"texture":0},"z9oOwaXz":{"uv":{"2Pur":[3.5000068642312696,3.0414000000000003],"Cz6n":[3,2],"DOBZ":[4,2]},"vertices":["2Pur","Cz6n","DOBZ"],"texture":0},"e6lH1Wr3":{"uv":{"WeSR":[3,2],"2ohg":[4.000006864231269,0],"LSHZ":[4,2],"LtLb":[3.000006864231269,0]},"vertices":["WeSR","2ohg","LSHZ","LtLb"],"texture":0},"h7SmNJTG":{"uv":{"WeSR":[3,2],"2Pur":[3.5000068642312696,3.0414000000000003],"LSHZ":[4,2]},"vertices":["WeSR","2Pur","LSHZ"],"texture":0}},"type":"mesh","uuid":"6ac66bdc-e7f1-c423-75b0-49b924d336e1"}],"outliner":["e2d2394f-13c7-f5ac-31a0-aa941e9bc780","6ac66bdc-e7f1-c423-75b0-49b924d336e1"],"textures":[{"path":"/home/copygirl/projects/godot/Inventory2/assets/models/nail_0.png","name":"nail_0.png","folder":"block","namespace":"","id":"0","width":8,"height":8,"uv_width":8,"uv_height":8,"particle":false,"layers_enabled":false,"sync_to_project":"","render_mode":"default","render_sides":"auto","frame_time":1,"frame_order_type":"loop","frame_order":"","frame_interpolate":false,"visible":true,"internal":true,"saved":true,"uuid":"720a9538-a5a0-6514-f7b0-bec315585479","relative_path":"../nail_0.png","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAAXNSR0IArs4c6QAAAE1JREFUKFNjNLH1/8/AwMBw5vBGRhAbRIP4MAAWxKsAWTVWE5AVYGOj2EcjBaIqhv/5OQUY2NlYGTi5OBm4OQQZBIVFGfjZhRh4OdgZAM0LFmnUXO/SAAAAAElFTkSuQmCC"}]} \ No newline at end of file +{"meta":{"format_version":"4.9","model_format":"free","box_uv":false},"name":"nail","model_identifier":"","visible_box":[1,1,0],"variable_placeholders":"","variable_placeholder_buttons":[],"timeline_setups":[],"unhandled_root_fields":{},"resolution":{"width":8,"height":8},"elements":[{"name":"Head","color":2,"origin":[0,0,0],"rotation":[0,0,0],"visibility":true,"locked":false,"render_order":"default","allow_mirror_modeling":true,"vertices":{"w25F":[0.4999999999999987,0.75,-0.5000026694232708],"Vf2t":[0.4999999999999987,0.75,0.49999733057672757],"Zldj":[0.4999999999999987,1,-0.5000026694232715],"Dn9M":[0.4999999999999987,1,0.49999733057672713],"SAKY":[-0.4999999999999987,0.75,-0.5000026694232708],"U2LG":[-0.4999999999999987,1,-0.5000026694232715],"aFDh":[-0.4999999999999987,0.75,0.49999733057672757],"907z":[-0.4999999999999987,1,0.49999733057672713]},"faces":{"9Ab0JvTy":{"uv":{"w25F":[2,0],"Zldj":[1,0],"Vf2t":[2,2],"Dn9M":[1,2]},"vertices":["w25F","Zldj","Vf2t","Dn9M"],"texture":0},"ubeI6z4q":{"uv":{"w25F":[2,0],"SAKY":[0,0],"Zldj":[2,1],"U2LG":[0,1]},"vertices":["w25F","SAKY","Zldj","U2LG"],"texture":0},"UKeDxmrT":{"uv":{"Vf2t":[2,2],"Dn9M":[2,1],"aFDh":[0,2],"907z":[0,1]},"vertices":["Vf2t","Dn9M","aFDh","907z"],"texture":0},"MTUEm1Yz":{"uv":{"w25F":[2,2.220446049250313e-16],"Vf2t":[2,2],"SAKY":[0,0],"aFDh":[0,2]},"vertices":["w25F","Vf2t","SAKY","aFDh"],"texture":0},"FL7ubSlH":{"uv":{"Zldj":[2,0],"U2LG":[0,0],"Dn9M":[2,2],"907z":[0,2]},"vertices":["Zldj","U2LG","Dn9M","907z"],"texture":0},"tTgro36z":{"uv":{"U2LG":[0,0],"SAKY":[1,0],"aFDh":[1,2],"907z":[0,2]},"vertices":["U2LG","SAKY","aFDh","907z"],"texture":0}},"type":"mesh","uuid":"e2d2394f-13c7-f5ac-31a0-aa941e9bc780"},{"name":"Pin","color":2,"origin":[0,0,0],"rotation":[0,0,0],"visibility":true,"locked":false,"render_order":"default","allow_mirror_modeling":true,"vertices":{"2Pur":[7.703719777548942e-33,-0.8888888888888875,-0.000002669423271034631],"kObA":[-0.24999999999999936,0.75,-0.25000266942327143],"DOBZ":[-0.12499699689881903,-0.5139099105971506,-0.12499966632209059],"TNAU":[-0.24999999999999936,0.75,0.24999733057672735],"Cz6n":[-0.12500300310117993,-0.5138678671806249,0.1250003336779082],"2ohg":[0.24999999999999936,0.75,-0.25000266942327143],"LSHZ":[0.12499699689881903,-0.5139099105971506,-0.12499966632209059],"LtLb":[0.24999999999999936,0.75,0.24999733057672735],"WeSR":[0.12500300310117993,-0.5138678671806249,0.1250003336779082]},"faces":{"0H774Xer":{"uv":{"LSHZ":[3,2],"kObA":[4.000006864231269,0],"DOBZ":[4,2],"2ohg":[3.000006864231269,0]},"vertices":["LSHZ","kObA","DOBZ","2ohg"],"texture":0},"luGb3OW3":{"uv":{"LSHZ":[3,2],"2Pur":[3.5000068642312696,3.0414000000000003],"DOBZ":[4,2]},"vertices":["LSHZ","2Pur","DOBZ"],"texture":0},"iHuit6Lh":{"uv":{"Cz6n":[3,2],"LtLb":[4.000006864231269,0],"WeSR":[4,2],"TNAU":[3.000006864231269,0]},"vertices":["Cz6n","LtLb","WeSR","TNAU"],"texture":0},"gQjPRuLO":{"uv":{"Cz6n":[3,2],"2Pur":[3.5000068642312696,3.0414000000000003],"WeSR":[4,2]},"vertices":["Cz6n","2Pur","WeSR"],"texture":0},"GsY3sjLN":{"uv":{"kObA":[4.000006864231269,0],"Cz6n":[3,2],"DOBZ":[4,2],"TNAU":[3.000006864231269,0]},"vertices":["kObA","Cz6n","DOBZ","TNAU"],"texture":0},"z9oOwaXz":{"uv":{"2Pur":[3.5000068642312696,3.0414000000000003],"Cz6n":[3,2],"DOBZ":[4,2]},"vertices":["2Pur","Cz6n","DOBZ"],"texture":0},"e6lH1Wr3":{"uv":{"WeSR":[3,2],"2ohg":[4.000006864231269,0],"LSHZ":[4,2],"LtLb":[3.000006864231269,0]},"vertices":["WeSR","2ohg","LSHZ","LtLb"],"texture":0},"h7SmNJTG":{"uv":{"WeSR":[3,2],"2Pur":[3.5000068642312696,3.0414000000000003],"LSHZ":[4,2]},"vertices":["WeSR","2Pur","LSHZ"],"texture":0}},"type":"mesh","uuid":"6ac66bdc-e7f1-c423-75b0-49b924d336e1"},{"name":"Collider-convcolonly","color":9,"origin":[0,0,0],"rotation":[0,0,0],"visibility":true,"locked":false,"render_order":"default","allow_mirror_modeling":true,"vertices":{"NnTt":[-4.8565318433446595e-15,-0.8000000000000149,0],"h2eF":[-0.5000000000000284,1.0000000000000004,0.5000000000000124],"MLaV":[-0.5000000000000284,1.0000000000000004,-0.5000000000000124],"UsQK":[0.5000000000000178,1.0000000000000058,0.5000000000000124],"Mwfn":[0.5000000000000178,1.0000000000000058,-0.5000000000000124]},"faces":{"kTATzBEP":{"uv":{"h2eF":[0,0],"UsQK":[0,0],"MLaV":[0,0],"Mwfn":[0,0]},"vertices":["h2eF","UsQK","MLaV","Mwfn"]},"W6zc9fLv":{"uv":{"h2eF":[0,0],"MLaV":[0,0],"NnTt":[0,0]},"vertices":["h2eF","MLaV","NnTt"]},"JRs6f1wK":{"uv":{"UsQK":[0,0],"h2eF":[0,0],"NnTt":[0,0]},"vertices":["UsQK","h2eF","NnTt"]},"ntnER8mm":{"uv":{"MLaV":[0,0],"Mwfn":[0,0],"NnTt":[0,0]},"vertices":["MLaV","Mwfn","NnTt"]},"n6CpMu2w":{"uv":{"Mwfn":[0,0],"UsQK":[0,0],"NnTt":[0,0]},"vertices":["Mwfn","UsQK","NnTt"]}},"type":"mesh","uuid":"f41f6a43-3adf-f1c8-cf62-12caa41c372f"}],"outliner":["e2d2394f-13c7-f5ac-31a0-aa941e9bc780","6ac66bdc-e7f1-c423-75b0-49b924d336e1","f41f6a43-3adf-f1c8-cf62-12caa41c372f"],"textures":[{"path":"/home/copygirl/projects/godot/Inventory2/assets/models/nail_0.png","name":"nail_0.png","folder":"block","namespace":"","id":"0","width":8,"height":8,"uv_width":8,"uv_height":8,"particle":false,"layers_enabled":false,"sync_to_project":"","render_mode":"default","render_sides":"auto","frame_time":1,"frame_order_type":"loop","frame_order":"","frame_interpolate":false,"visible":true,"internal":true,"saved":true,"uuid":"720a9538-a5a0-6514-f7b0-bec315585479","relative_path":"../nail_0.png","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAAXNSR0IArs4c6QAAAE1JREFUKFNjNLH1/8/AwMBw5vBGRhAbRIP4MAAWxKsAWTVWE5AVYGOj2EcjBaIqhv/5OQUY2NlYGTi5OBm4OQQZBIVFGfjZhRh4OdgZAM0LFmnUXO/SAAAAAElFTkSuQmCC"}],"export_options":{"gltf":{"encoding":"ascii","scale":20,"embed_textures":true,"armature":false,"animations":true}}} \ No newline at end of file diff --git a/assets/models/nail.gltf b/assets/models/nail.gltf index 5a9ed3b..2e5007b 100644 --- a/assets/models/nail.gltf +++ b/assets/models/nail.gltf @@ -1 +1 @@ -{"asset":{"version":"2.0","generator":"Blockbench 4.9.2 glTF exporter"},"scenes":[{"nodes":[2],"name":"blockbench_export"}],"scene":0,"nodes":[{"name":"head","mesh":0},{"name":"pin","mesh":1},{"children":[0,1]}],"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":336,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":1176,"byteLength":336,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":1512,"byteLength":224,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":1736,"byteLength":72,"target":34963}],"buffers":[{"byteLength":1808,"uri":"data:application/octet-stream;base64,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"}],"accessors":[{"bufferView":0,"componentType":5126,"count":24,"max":[0.02500000037252903,0.05000000074505806,0.024999866262078285],"min":[-0.02500000037252903,0.03750000149011612,-0.025000134482979774],"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.25,0.25],"min":[0,0],"type":"VEC2"},{"bufferView":3,"componentType":5123,"count":36,"max":[23],"min":[0],"type":"SCALAR"},{"bufferView":4,"componentType":5126,"count":28,"max":[0.012500000186264515,0.03750000149011612,0.012499867007136345],"min":[-0.012500000186264515,-0.04444444552063942,-0.01250013429671526],"type":"VEC3"},{"bufferView":5,"componentType":5126,"count":28,"max":[0.9951447248458862,-0.09842020273208618,0.9951449632644653],"min":[-0.9951447248458862,-0.3162368834018707,-0.995144784450531],"type":"VEC3"},{"bufferView":6,"componentType":5126,"count":28,"max":[0.5000008344650269,0.38017499446868896],"min":[0.375,0],"type":"VEC2"},{"bufferView":7,"componentType":5123,"count":36,"max":[27],"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}],"samplers":[{"magFilter":9728,"minFilter":9728,"wrapS":33071,"wrapT":33071}],"images":[{"mimeType":"image/png","uri":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAAXNSR0IArs4c6QAAAE1JREFUKFNjNLH1/8/AwMBw5vBGRhAbRIP4MAAWxKsAWTVWE5AVYGOj2EcjBaIqhv/5OQUY2NlYGTi5OBm4OQQZBIVFGfjZhRh4OdgZAM0LFmnUXO/SAAAAAElFTkSuQmCC"}],"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}]}]} \ No newline at end of file +{"asset":{"version":"2.0","generator":"Blockbench 4.9.2 glTF exporter"},"scenes":[{"nodes":[3],"name":"blockbench_export"}],"scene":0,"nodes":[{"name":"Head","mesh":0},{"name":"Pin","mesh":1},{"name":"Collider-convcolonly","mesh":2},{"children":[0,1,2]}],"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":336,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":1176,"byteLength":336,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":1512,"byteLength":224,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":1736,"byteLength":72,"target":34963},{"buffer":0,"byteOffset":1808,"byteLength":192,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":2000,"byteLength":192,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":2192,"byteLength":128,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":2320,"byteLength":36,"target":34963}],"buffers":[{"byteLength":2356,"uri":"data:application/octet-stream;base64,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"}],"accessors":[{"bufferView":0,"componentType":5126,"count":24,"max":[0.02500000037252903,0.05000000074505806,0.024999866262078285],"min":[-0.02500000037252903,0.03750000149011612,-0.025000134482979774],"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.25,0.25],"min":[0,0],"type":"VEC2"},{"bufferView":3,"componentType":5123,"count":36,"max":[23],"min":[0],"type":"SCALAR"},{"bufferView":4,"componentType":5126,"count":28,"max":[0.012500000186264515,0.03750000149011612,0.012499867007136345],"min":[-0.012500000186264515,-0.04444444552063942,-0.01250013429671526],"type":"VEC3"},{"bufferView":5,"componentType":5126,"count":28,"max":[0.9951447248458862,-0.09842020273208618,0.9951449632644653],"min":[-0.9951447248458862,-0.3162368834018707,-0.995144784450531],"type":"VEC3"},{"bufferView":6,"componentType":5126,"count":28,"max":[0.5000008344650269,0.38017499446868896],"min":[0.375,0],"type":"VEC2"},{"bufferView":7,"componentType":5123,"count":36,"max":[27],"min":[0],"type":"SCALAR"},{"bufferView":8,"componentType":5126,"count":16,"max":[0.02500000037252903,0.05000000074505806,0.02500000037252903],"min":[-0.02500000037252903,-0.03999999910593033,-0.02500000037252903],"type":"VEC3"},{"bufferView":9,"componentType":5126,"count":16,"max":[0.9635179042816162,1,0.9635179042816162],"min":[-0.9635179042816162,-0.26764386892318726,-0.9635179042816162],"type":"VEC3"},{"bufferView":10,"componentType":5126,"count":16,"max":[0.14171075820922852,0.06245678663253784],"min":[0,0],"type":"VEC2"},{"bufferView":11,"componentType":5123,"count":18,"max":[15],"min":[0],"type":"SCALAR"}],"materials":[{"pbrMetallicRoughness":{"metallicFactor":0,"roughnessFactor":1,"baseColorTexture":{"index":0}},"alphaMode":"MASK","alphaCutoff":0.05,"doubleSided":true},{"pbrMetallicRoughness":{"metallicFactor":0,"roughnessFactor":1},"alphaMode":"MASK","alphaCutoff":0.05,"doubleSided":true}],"textures":[{"sampler":0,"source":0}],"samplers":[{"magFilter":9728,"minFilter":9728,"wrapS":33071,"wrapT":33071}],"images":[{"mimeType":"image/png","uri":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAAXNSR0IArs4c6QAAAE1JREFUKFNjNLH1/8/AwMBw5vBGRhAbRIP4MAAWxKsAWTVWE5AVYGOj2EcjBaIqhv/5OQUY2NlYGTi5OBm4OQQZBIVFGfjZhRh4OdgZAM0LFmnUXO/SAAAAAElFTkSuQmCC"}],"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":1}]}]} \ No newline at end of file diff --git a/objects/Grid.cs b/objects/Grid.cs index ea75928..a2c04ca 100644 --- a/objects/Grid.cs +++ b/objects/Grid.cs @@ -41,7 +41,7 @@ public partial class Grid : Area3D if (_shape == null) { _shape = new BoxShape3D(); - AddChild(new CollisionShape3D { Shape = _shape }); + AddChild(new CollisionShape3D { Shape = _shape }, true); } _shape.Size = new(GridSize.X * StepSize, 0.001f, GridSize.Y * StepSize); diff --git a/objects/Item.cs b/objects/Item.cs index 0a755a9..0000169 100644 --- a/objects/Item.cs +++ b/objects/Item.cs @@ -1,7 +1,27 @@ -public partial class Item : StaticBody3D +public partial class Item : RigidBody3D { [Export] public Vector3I Size { get; set; } public virtual Node3D Model => GetNode("Model"); + + public override void _Ready() + { + // TODO: Find a better way to better import models with colliders. + // TODO: Import items dynamically at runtime? + // TODO: Use PostImport tool script? + foreach (var body in FindChildren("*", "StaticBody3D").Cast()) { + foreach (var shape in body.GetChildren().OfType()) { + body.RemoveChild(shape); + AddChild(shape); + } + body.GetParent().RemoveChild(body); + } + + // Set the collision properties here so we don't have to specify them in each item scene separately. + CollisionLayer = (uint)(PhysicsLayer.Item | PhysicsLayer.Interactable); + CollisionMask = (uint)(PhysicsLayer.Static | PhysicsLayer.Dynamic | PhysicsLayer.Player | PhysicsLayer.Item); + + Freeze = FindParent("Grid") != null; + } } diff --git a/objects/bolt.tscn b/objects/bolt.tscn index ef49552..dd5086a 100644 --- a/objects/bolt.tscn +++ b/objects/bolt.tscn @@ -1,19 +1,10 @@ -[gd_scene load_steps=4 format=3 uid="uid://bjgfm5x7a0dab"] +[gd_scene load_steps=3 format=3 uid="uid://bjgfm5x7a0dab"] [ext_resource type="Script" path="res://objects/Item.cs" id="1_43oqr"] [ext_resource type="PackedScene" uid="uid://s4esxyuwyet4" path="res://assets/models/bolt.gltf" id="2_3v163"] -[sub_resource type="CylinderShape3D" id="CylinderShape3D_1yi6b"] -height = 0.1 -radius = 0.025 - -[node name="Bolt" type="StaticBody3D"] -collision_layer = 9 -collision_mask = 0 +[node name="Bolt" type="RigidBody3D"] script = ExtResource("1_43oqr") Size = Vector3i(1, 2, 1) -[node name="CollisionShape3D" type="CollisionShape3D" parent="."] -shape = SubResource("CylinderShape3D_1yi6b") - [node name="Model" parent="." instance=ExtResource("2_3v163")] diff --git a/objects/grid.tscn b/objects/grid.tscn new file mode 100644 index 0000000..5a1c996 --- /dev/null +++ b/objects/grid.tscn @@ -0,0 +1,9 @@ +[gd_scene load_steps=2 format=3 uid="uid://54575e3ygpxl"] + +[ext_resource type="Script" path="res://objects/Grid.cs" id="1_7yhbt"] + +[node name="Grid" type="Area3D"] +collision_layer = 256 +collision_mask = 0 +monitoring = false +script = ExtResource("1_7yhbt") diff --git a/objects/nail.tscn b/objects/nail.tscn index 30e43ed..b4ea855 100644 --- a/objects/nail.tscn +++ b/objects/nail.tscn @@ -1,18 +1,10 @@ -[gd_scene load_steps=4 format=3 uid="uid://ccprmftodum0o"] +[gd_scene load_steps=3 format=3 uid="uid://ccprmftodum0o"] [ext_resource type="Script" path="res://objects/Item.cs" id="1_6pcd7"] [ext_resource type="PackedScene" uid="uid://c1fi6jcly6cx2" path="res://assets/models/nail.gltf" id="2_nls7x"] -[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_wqf35"] -points = PackedVector3Array(-0.025, 0.05, -0.025, 0.025, 0.05, -0.025, 0.025, 0.05, 0.025, -0.025, 0.05, 0.025, 0, -0.05, 0) - -[node name="Nail" type="StaticBody3D"] -collision_layer = 9 -collision_mask = 0 +[node name="Nail" type="RigidBody3D"] script = ExtResource("1_6pcd7") Size = Vector3i(1, 2, 1) -[node name="CollisionShape3D" type="CollisionShape3D" parent="."] -shape = SubResource("ConvexPolygonShape3D_wqf35") - [node name="Model" parent="." instance=ExtResource("2_nls7x")] diff --git a/player/AnimationController.cs b/player/AnimationController.cs index 72eb7a6..8f49fd2 100644 --- a/player/AnimationController.cs +++ b/player/AnimationController.cs @@ -179,6 +179,5 @@ public partial class AnimationController : Node3D var isHolding = _player.Pickup.HasItemsHeld ? 0.9f : 0.0f; var prevIsHolding = (float)_animTree.Get(IsHoldingParam); _animTree.Set(IsHoldingParam, Lerp(prevIsHolding, isHolding, 8 * (float)delta)); - // TODO: Bob `PickupController` up and down dependent on animation cycle. } } diff --git a/player/PickupController.cs b/player/PickupController.cs index 4771930..854571d 100644 --- a/player/PickupController.cs +++ b/player/PickupController.cs @@ -4,7 +4,6 @@ public partial class PickupController : Node3D public bool HasItemsHeld => GetChildCount() > 0; Node3D _placementPreview; - [Export] public Camera3D Camera { get; set; } [Export] public float PickupDistance { get; set; } = 2.0f; Player _player; @@ -34,13 +33,12 @@ public partial class PickupController : Node3D // Parent item to the `PickupController`. var prevRot = CurrentItem.GlobalRotation; + CurrentItem.Freeze = true; + SetMeshLayerOutline(CurrentItem.Model, OutlineMode.Disable); CurrentItem.GetParent().RemoveChild(CurrentItem); AddChild(CurrentItem); - SetMeshLayerOutline(CurrentItem.Model, OutlineMode.Disable); CurrentItem.Position = Vector3.Zero; CurrentItem.GlobalRotation = prevRot; - CurrentItem.CollisionLayer &= (uint)~PhysicsLayer.Static; - // CurrentItem.Freeze = true; GetViewport().SetInputAsHandled(); } @@ -48,14 +46,20 @@ public partial class PickupController : Node3D if (HasItemsHeld) { // Parent item back to the world. var prevTransform = CurrentItem.GlobalTransform; - CurrentItem.CollisionLayer |= (uint)PhysicsLayer.Static; - // CurrentItem.Freeze = false; RemoveChild(CurrentItem); _world.AddChild(CurrentItem); - CurrentItem.GlobalTransform = _placementPreview.Visible - ? _placementPreview.GlobalTransform - : prevTransform; + if (_placementPreview.Visible) { + CurrentItem.GlobalTransform = _placementPreview.GlobalTransform; + } else { + CurrentItem.GlobalTransform = prevTransform; + CurrentItem.Freeze = false; + + // Throw item forward and up a bit. + var basis = _player.Camera.Camera.GlobalBasis; + var direction = -basis.Z + basis.Y; + CurrentItem.ApplyImpulse(direction * 2); + } RemoveChild(_placementPreview); _placementPreview.QueueFree(); @@ -120,9 +124,10 @@ public partial class PickupController : Node3D RayResult RayToMouseCursor() { - var mouse = GetViewport().GetMousePosition(); - var from = Camera.ProjectRayOrigin(mouse); - var to = from + Camera.ProjectRayNormal(mouse) * PickupDistance; + var camera = _player.Camera.Camera; + var mouse = GetViewport().GetMousePosition(); + var from = camera.ProjectRayOrigin(mouse); + var to = from + camera.ProjectRayNormal(mouse) * PickupDistance; var query = PhysicsRayQueryParameters3D.Create(from, to); query.CollisionMask = (uint)PhysicsLayer.Interactable; diff --git a/player/player.tscn b/player/player.tscn index 2d9622b..cb78d27 100644 --- a/player/player.tscn +++ b/player/player.tscn @@ -1114,7 +1114,6 @@ bone_idx = 16 use_external_skeleton = true external_skeleton = NodePath("../../../../../../../Model/Skeleton/Skeleton3D") -[node name="PickupController" type="Node3D" parent="." node_paths=PackedStringArray("Camera")] +[node name="PickupController" type="Node3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.4, -0.45) script = ExtResource("2_ns2pe") -Camera = NodePath("../AnimationController/Root/LowerBody/UpperBody/Neck/Head/Camera") diff --git a/project.godot b/project.godot index 5b8c3c7..f6b4067 100644 --- a/project.godot +++ b/project.godot @@ -86,7 +86,8 @@ interact_place={ 3d_physics/layer_1="Static" 3d_physics/layer_2="Dynamic" 3d_physics/layer_3="Player" -3d_physics/layer_4="Interactable" +3d_physics/layer_4="Item" +3d_physics/layer_9="Interactable" [rendering] diff --git a/scenes/workshop.tscn b/scenes/workshop.tscn index bbf1dcb..1c20b87 100644 --- a/scenes/workshop.tscn +++ b/scenes/workshop.tscn @@ -1,10 +1,15 @@ [gd_scene load_steps=11 format=3 uid="uid://bwfuet1irfi17"] -[ext_resource type="Script" path="res://objects/Grid.cs" id="2_gstd0"] [ext_resource type="PackedScene" uid="uid://yvy5vvaqgxy8" path="res://objects/crate.tscn" id="2_j6a20"] [ext_resource type="Texture2D" uid="uid://dts3g3ivc4stn" path="res://assets/palettes/metal.png" id="3_kvstu"] [ext_resource type="PackedScene" uid="uid://ccprmftodum0o" path="res://objects/nail.tscn" id="4_6l6v6"] [ext_resource type="PackedScene" uid="uid://bjgfm5x7a0dab" path="res://objects/bolt.tscn" id="5_r6ljd"] +[ext_resource type="PackedScene" uid="uid://54575e3ygpxl" path="res://objects/grid.tscn" id="6_okibm"] + +[sub_resource type="WorldBoundaryShape3D" id="WorldBoundaryShape3D_5erfn"] + +[sub_resource type="PlaneMesh" id="PlaneMesh_tg4vq"] +size = Vector2(10, 10) [sub_resource type="BoxShape3D" id="BoxShape3D_vkl3b"] size = Vector3(2, 0.1, 1) @@ -15,50 +20,27 @@ size = Vector3(2, 0.1, 1) [sub_resource type="BoxMesh" id="BoxMesh_efbik"] size = Vector3(0.1, 0.9, 0.1) -[sub_resource type="WorldBoundaryShape3D" id="WorldBoundaryShape3D_5erfn"] - -[sub_resource type="PlaneMesh" id="PlaneMesh_tg4vq"] -size = Vector2(10, 10) - [node name="Workshop" type="Node3D"] [node name="Sun" type="DirectionalLight3D" parent="."] transform = Transform3D(0.866025, 0, -0.5, 0.25, 0.866025, 0.433013, 0.433013, -0.5, 0.75, 0, 5, 0) -[node name="Crates" type="Node3D" parent="."] - -[node name="Crate1" parent="Crates" instance=ExtResource("2_j6a20")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 0.5, -4) -Palette = ExtResource("3_kvstu") - -[node name="Crate2" parent="Crates" instance=ExtResource("2_j6a20")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 0.5, 0) - -[node name="Crate3" parent="Crates" instance=ExtResource("2_j6a20")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 0.5, 4) - -[node name="Crate4" parent="Crates" instance=ExtResource("2_j6a20")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 4) - -[node name="Crate5" parent="Crates" instance=ExtResource("2_j6a20")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4, 0.5, 4) +[node name="Floor" type="StaticBody3D" parent="."] +collision_mask = 0 -[node name="Crate6" parent="Crates" instance=ExtResource("2_j6a20")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4, 0.5, 0) +[node name="CollisionShape3D" type="CollisionShape3D" parent="Floor"] +shape = SubResource("WorldBoundaryShape3D_5erfn") -[node name="Crate7" parent="Crates" instance=ExtResource("2_j6a20")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4, 0.5, -4) +[node name="MeshInstance3D" type="MeshInstance3D" parent="Floor"] +mesh = SubResource("PlaneMesh_tg4vq") [node name="Table" type="StaticBody3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -4) collision_layer = 2 collision_mask = 0 -[node name="Grid" type="Area3D" parent="Table"] +[node name="Grid" parent="Table" instance=ExtResource("6_okibm")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0) -collision_layer = 8 -collision_mask = 0 -script = ExtResource("2_gstd0") GridSize = Vector2i(38, 18) [node name="Nail" parent="Table/Grid" instance=ExtResource("4_6l6v6")] @@ -74,7 +56,7 @@ transform = Transform3D(-4.37114e-08, -1, -4.37114e-08, 0, -4.37114e-08, 1, -1, transform = Transform3D(1.31134e-07, 1, 4.37114e-08, 0, -4.37114e-08, 1, 1, -1.31134e-07, -5.73206e-15, -0.75, 0.025, 0.075) [node name="Nail5" parent="Table/Grid" instance=ExtResource("4_6l6v6")] -transform = Transform3D(-4.37114e-08, -1, -4.37114e-08, 0, -4.37114e-08, 1, -1, 4.37114e-08, 1.91069e-15, -0.75, 0.025, 0.025) +transform = Transform3D(-4.37114e-08, -1, -4.37114e-08, 0, -4.37114e-08, 1, -1, 4.37114e-08, 1.91069e-15, -0.75, 0.025, 0.0250001) [node name="Bolt" parent="Table/Grid" instance=ExtResource("5_r6ljd")] transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.025, 0.025, 0.3) @@ -118,11 +100,8 @@ transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 1.5 collision_layer = 2 collision_mask = 0 -[node name="Grid" type="Area3D" parent="Table2"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.0999999, 0) -collision_layer = 8 -collision_mask = 0 -script = ExtResource("2_gstd0") +[node name="Grid" parent="Table2" instance=ExtResource("6_okibm")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.1, 0) GridSize = Vector2i(38, 18) [node name="CollisionShape3D" type="CollisionShape3D" parent="Table2"] @@ -133,11 +112,26 @@ shape = SubResource("BoxShape3D_vkl3b") transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.0499997, 0) mesh = SubResource("BoxMesh_548mk") -[node name="Floor" type="StaticBody3D" parent="."] -collision_mask = 0 +[node name="Crates" type="Node3D" parent="."] -[node name="CollisionShape3D" type="CollisionShape3D" parent="Floor"] -shape = SubResource("WorldBoundaryShape3D_5erfn") +[node name="Crate1" parent="Crates" instance=ExtResource("2_j6a20")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 0.5, -4) +Palette = ExtResource("3_kvstu") -[node name="MeshInstance3D" type="MeshInstance3D" parent="Floor"] -mesh = SubResource("PlaneMesh_tg4vq") +[node name="Crate2" parent="Crates" instance=ExtResource("2_j6a20")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 0.5, 0) + +[node name="Crate3" parent="Crates" instance=ExtResource("2_j6a20")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 0.5, 4) + +[node name="Crate4" parent="Crates" instance=ExtResource("2_j6a20")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 4) + +[node name="Crate5" parent="Crates" instance=ExtResource("2_j6a20")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4, 0.5, 4) + +[node name="Crate6" parent="Crates" instance=ExtResource("2_j6a20")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4, 0.5, 0) + +[node name="Crate7" parent="Crates" instance=ExtResource("2_j6a20")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4, 0.5, -4) diff --git a/scripts/globals/PhysicsLayer.cs b/scripts/globals/PhysicsLayer.cs index 5be17aa..c168bb0 100644 --- a/scripts/globals/PhysicsLayer.cs +++ b/scripts/globals/PhysicsLayer.cs @@ -3,5 +3,6 @@ public enum PhysicsLayer : uint { Static = 1 << 0, Dynamic = 1 << 1, Player = 1 << 2, - Interactable = 1 << 3, + Item = 1 << 3, + Interactable = 1 << 8, }