initial shit

This commit is contained in:
Xtimhedi committed 2026-06-04 16:53:41 -05:00
1 parent f019615187
commit d3779cff20
828 files changed
+512567

No files matched your search

+4
View File
@@ -0,0 +1,4 @@
root = true
[*]
charset = utf-8
+2
View File
@@ -0,0 +1,2 @@
# Normalize EOL for all files that Git considers text files.
* text=auto eol=lf
@@ -0,0 +1 @@
{"meta":{"format_version":"5.0","model_format":"free","box_uv":false},"name":"I3PositionSwitch","model_identifier":"I3PositionSwitch","visible_box":[1,1,0],"variable_placeholders":"","multi_file_ruleset":"","variable_placeholder_buttons":[],"timeline_setups":[],"unhandled_root_fields":{},"resolution":{"width":16,"height":16},"elements":[{"name":"mesh","color":0,"origin":[0,0,0],"rotation":[0,0,0],"shading":"flat","export":true,"visibility":true,"locked":false,"render_order":"default","scope":0,"allow_mirror_modeling":true,"vertices":{"2705":[7.9503,0,0.90184],"2tv4":[-4.62532,0,-5.27417],"aVdq":[-4.2981,0,-5.60139],"fVka":[-3.89734,0,-5.83278],"1nFT":[-5.28608,0,-6.02762],"4vry":[-4.4541,0,-6.66603],"Umd4":[-3.96518,0,-5.93431],"qO37":[-3.89734,0,-5.83278],"hVvl":[-5.27417,0,-4.62532],"EZ5T":[-6.02762,0,-5.28608],"ixih":[-5.83278,0,-3.89734],"yBnY":[-5.60139,0,-4.2981],"RMgP":[-6.66603,0,-4.4541],"kaY2":[-5.93431,0,-3.96518],"TKD4":[-5.83278,0,-3.89734],"p9fU":[-5.93431,0,-3.96518],"lb82":[-6.02762,3,-5.28608],"LDMH":[-5.27417,3,-4.62532],"aida":[-4.62532,3,-5.27417],"1Q6a":[-5.28608,3,-6.02762],"HijD":[-3.89734,3,-5.83278],"pwhK":[-4.2981,3,-5.60139],"C9iF":[-4.4541,3,-6.66603],"ODu7":[-3.96518,3,-5.93431],"fMxb":[-3.96518,3,-5.93431],"1krL":[-3.89734,3,-5.83278],"Pcr0":[-5.60139,3,-4.2981],"rNm5":[-5.83278,3,-3.89734],"a3yk":[-6.66603,3,-4.4541],"XgCD":[-5.93431,3,-3.96518],"tycD":[-5.83278,3,-3.89734],"yyH5":[-5.93431,3,-3.96518],"UGKE":[-6.29158,0,-3.10266],"yRE2":[-5.93431,0,-3.96518],"5KXm":[-7.19038,0,-3.5459],"mKkj":[-7.19038,3,-3.5459],"Wo4o":[-6.29158,3,-3.10266],"o9Tb":[-6.64273,0,-2.2549],"Oji3":[-6.4011,0,-3.15668],"ljrD":[-7.5917,0,-2.57703],"8K7U":[-7.5917,3,-2.57703],"oAxA":[-6.64273,3,-2.2549],"DChf":[-7.12186,0,-0.46679],"ezeN":[-6.88023,0,-1.36856],"CMQE":[-7,0,-0.4588],"fS47":[-7.86312,0,-1.56407],"kUMH":[-8,0,-0.52435],"2QL2":[-7.12186,3,-0.46679],"Poji":[-7,3,-0.4588],"njrq":[-6.88023,3,-1.36856],"oCrm":[-7.86312,3,-1.56407],"PJeR":[-8,3,-0.52435],"VGgR":[-7,0,0.4588],"EvaK":[-7.0604,0,0],"GObG":[-7.12186,0,0.46679],"dthb":[-8,0,0.52435],"tImu":[-8,3,0.52435],"TXtB":[-7.12186,3,0.46679],"lZ76":[-7.0604,3,0],"WhM6":[-7,3,0.4588],"dOWr":[-3.5459,0,-7.19038],"O2A3":[-3.10266,0,-6.29158],"EYU2":[-3.10266,3,-6.29158],"1ZdA":[-3.96518,3,-5.93431],"hfuf":[-3.5459,3,-7.19038],"UdON":[-2.57703,0,-7.5917],"4rGv":[-2.2549,0,-6.64273],"f9fx":[-2.2549,3,-6.64273],"CvEX":[-3.15668,3,-6.4011],"5NrT":[-2.57703,3,-7.5917],"S6MT":[-0.46679,0,-7.12186],"60p9":[-0.4588,0,-7],"aVQf":[-1.36856,0,-6.88023],"f3D0":[-1.56407,0,-7.86312],"R1W3":[-0.52435,0,-8],"R1Bp":[-0.46679,3,-7.12186],"pO9q":[-1.36856,3,-6.88023],"exVT":[-0.4588,3,-7],"RmHL":[-0.52435,3,-8],"eRgZ":[-1.56407,3,-7.86312],"sQ5P":[0.52435,0,-8],"cRlh":[0.46679,0,-7.12186],"H8gP":[0,0,-7.0604],"4aco":[0.4588,0,-7],"PEBp":[0.52435,3,-8],"KAFw":[0.46679,3,-7.12186],"3x5l":[0.4588,3,-7],"AoSb":[0,3,-7.0604],"nDgA":[-6.88023,0,1.36856],"c36e":[-7.09232,0,0.57702],"xSTf":[-7.86312,0,1.56407],"hcuu":[-6.64273,0,2.2549],"IcJG":[-7.5917,0,2.57703],"anAK":[-6.4011,0,3.15668],"ww5L":[-6.29158,0,3.10266],"bsUL":[-7.19038,0,3.5459],"SZ7a":[-5.93431,0,3.96518],"SUDX":[-6.66603,0,4.4541],"bd3v":[-5.83278,0,3.89734],"EdJ8":[-6.02762,0,5.28608],"wnzY":[-5.36598,0,4.70584],"nZ6m":[-6.66603,0,4.4541],"j4MF":[-5.83278,0,3.89734],"l1PM":[-5.27417,0,4.62532],"3fbM":[-5.36598,0,4.70584],"L8J7":[-4.62532,0,5.27417],"JgXN":[-5.28608,0,6.02762],"DBzL":[-3.96518,0,5.93431],"ZFoR":[-3.96518,0,5.93431],"pJU5":[-4.4541,0,6.66603],"7oYP":[-3.89734,0,5.83278],"5Iif":[-4.2981,0,5.60139],"EBIi":[-3.89734,0,5.83278],"tx0Q":[-3.5459,0,7.19038],"G9bH":[-3.10266,0,6.29158],"gIm9":[-1.56407,0,7.86312],"rBeF":[-2.2549,0,6.64273],"SZ8c":[-1.36856,0,6.88023],"hOAr":[-2.57703,0,7.5917],"IQe8":[-3.15668,0,6.4011],"e2eG":[-0.46679,0,7.12186],"bcAO":[-0.52435,0,8],"BtCC":[-0.4588,0,7],"Zr3w":[0.57702,0,-7.09232],"NbP1":[1.36856,0,-6.88023],"UpHO":[1.56407,0,-7.86312],"NOns":[3.15668,0,-6.4011],"lDwR":[3.10266,0,-6.29158],"fgek":[2.2549,0,-6.64273],"94Gd":[2.57703,0,-7.5917],"r1IW":[3.5459,0,-7.19038],"fdM9":[3.96518,0,-5.93431],"qBUV":[4.4541,0,-6.66603],"1Nxe":[3.89734,0,-5.83278],"CmBa":[5.28608,0,-6.02762],"qMEB":[4.70584,0,-5.36598],"KgA5":[3.89734,0,-5.83278],"mVNR":[4.62532,0,-5.27417],"jFdl":[4.4541,0,-6.66603],"6GhC":[4.70584,0,-5.36598],"taCo":[6.02762,0,-5.28608],"z46a":[5.27417,0,-4.62532],"Jd13":[5.93431,0,-3.96518],"T0fU":[5.93431,0,-3.96518],"m9cK":[6.66603,0,-4.4541],"IbB5":[5.60139,0,-4.2981],"fwQz":[5.83278,0,-3.89734],"iAaz":[5.83278,0,-3.89734],"C1tC":[7.19038,0,-3.5459],"VVh0":[6.29158,0,-3.10266],"Eng5":[7.5917,0,-2.57703],"yDJY":[6.64273,0,-2.2549],"ayCw":[7.86312,0,-1.56407],"mzus":[6.88023,0,-1.36856],"CzOD":[7.12186,0,-0.46679],"12h1":[8,0,-0.52435],"8AW3":[7,0,-0.4588],"lX9h":[0.52435,0,8],"OoXH":[0.46679,0,7.12186],"yyK1":[0.4588,0,7],"gMXP":[0,0,7.0604],"eaml":[1.36856,0,6.88023],"JTTL":[0.57702,0,7.09232],"ng0F":[1.56407,0,7.86312],"RF1K":[3.5459,0,7.19038],"0Line truncated
+1
View File
@@ -0,0 +1 @@
{"meta":{"format_version":"5.0","model_format":"free","box_uv":false},"name":"IButton","model_identifier":"IButton","visible_box":[1,1,0],"variable_placeholders":"","multi_file_ruleset":"","variable_placeholder_buttons":[],"timeline_setups":[],"unhandled_root_fields":{},"resolution":{"width":16,"height":16},"elements":[{"name":"mesh","color":6,"origin":[0,11,0],"rotation":[0,-90,0],"shading":"flat","export":true,"visibility":true,"locked":false,"render_order":"default","scope":0,"allow_mirror_modeling":true,"vertices":{"9dA4":[6,8,-5],"BhVY":[6,8,-7],"qQh4":[6,0,-5],"tNNv":[6,0,-7],"6HBR":[-6,8,-5],"Uc2V":[-6,8,-7],"OtQS":[-6,0,-5],"Xpwk":[-6,0,-7]},"faces":{"gcvGUdk3":{"uv":{"tNNv":[2,8],"qQh4":[0,8],"9dA4":[0,0],"BhVY":[2,0]},"vertices":["BhVY","9dA4","qQh4","tNNv"]},"C04lqd4d":{"uv":{"Xpwk":[0,8],"Uc2V":[0,0],"6HBR":[2,0],"OtQS":[2,8]},"vertices":["OtQS","6HBR","Uc2V","Xpwk"]},"YzyPBbB0":{"uv":{"Uc2V":[0,0],"BhVY":[2,0],"9dA4":[2,2],"6HBR":[0,2]},"vertices":["6HBR","9dA4","BhVY","Uc2V"]},"HOZa3e7C":{"uv":{"Xpwk":[0,2],"OtQS":[0,0],"qQh4":[2,0],"tNNv":[2,2]},"vertices":["tNNv","qQh4","OtQS","Xpwk"]},"zjkECyjl":{"uv":{"OtQS":[0,8],"6HBR":[0,0],"9dA4":[2,0],"qQh4":[2,8]},"vertices":["qQh4","9dA4","6HBR","OtQS"]},"rVCyo8P8":{"uv":{"Xpwk":[2,8],"tNNv":[0,8],"BhVY":[0,0],"Uc2V":[2,0]},"vertices":["Uc2V","BhVY","tNNv","Xpwk"]}},"type":"mesh","uuid":"57bd1edb-5564-427b-6a6b-7c926d65010b"},{"name":"cylinder","color":6,"origin":[-6,11,6],"rotation":[0,0,0],"shading":"flat","export":true,"visibility":true,"locked":false,"render_order":"default","scope":0,"allow_mirror_modeling":true,"vertices":{"R0QB":[0,0,0],"yuLw":[0,8,0],"LVLs":[0.26795,0,1],"ESiK":[0.26795,8,1],"vvmH":[0.73205,0,0.73205],"TZof":[0.73205,8,0.73205],"8Lqy":[1,0,0.26795],"rEWw":[1,8,0.26795],"BTcG":[1,0,-0.26795],"kWcS":[1,8,-0.26795],"y9tU":[0.73205,0,-0.73205],"13u9":[0.73205,8,-0.73205],"8xCr":[0.26795,0,-1],"CC2X":[0.26795,8,-1],"0xfX":[-0.26795,0,-1],"dj75":[-0.26795,8,-1],"cMXJ":[-0.73205,0,-0.73205],"67I0":[-0.73205,8,-0.73205],"8RVx":[-1,0,-0.26795],"kouC":[-1,8,-0.26795],"QaxZ":[-1,0,0.26795],"oOca":[-1,8,0.26795],"kydU":[-0.73205,0,0.73205],"Fqgy":[-0.73205,8,0.73205],"OrIP":[-0.26795,0,1],"vZLC":[-0.26795,8,1]},"faces":{"JWwhOexV":{"uv":{"R0QB":[0,0.51767],"LVLs":[0.89654,0],"vvmH":[1.03535,0.51767]},"vertices":["vvmH","LVLs","R0QB"]},"Z5hmwSuZ":{"uv":{"ESiK":[0,0],"TZof":[0.5358,0],"vvmH":[0.5358,8],"LVLs":[0,8]},"vertices":["LVLs","vvmH","TZof","ESiK"]},"nGXVoakX":{"uv":{"yuLw":[0,0],"TZof":[0.51771,0.89661],"ESiK":[0,1.03526]},"vertices":["ESiK","TZof","yuLw"]},"RLihXagr":{"uv":{"R0QB":[0,0.51771],"vvmH":[0.89661,0],"8Lqy":[1.03526,0.51771]},"vertices":["8Lqy","vvmH","R0QB"]},"GEo79flY":{"uv":{"TZof":[0,0],"rEWw":[0.5358,0],"8Lqy":[0.5358,8],"vvmH":[0,8]},"vertices":["vvmH","8Lqy","rEWw","TZof"]},"1CWpsCeW":{"uv":{"yuLw":[0,0],"rEWw":[0.51767,0.89654],"TZof":[0,1.03535]},"vertices":["TZof","rEWw","yuLw"]},"5PkQ4ySD":{"uv":{"R0QB":[0,0.2679],"8Lqy":[1,0],"BTcG":[1,0.5358]},"vertices":["BTcG","8Lqy","R0QB"]},"VrY2QeLL":{"uv":{"rEWw":[0,0],"kWcS":[0.5358,0],"BTcG":[0.5358,8],"8Lqy":[0,8]},"vertices":["8Lqy","BTcG","kWcS","rEWw"]},"0x5GZCZs":{"uv":{"yuLw":[0,0.2679],"kWcS":[1,0],"rEWw":[1,0.5358]},"vertices":["rEWw","kWcS","yuLw"]},"QTObL4tI":{"uv":{"R0QB":[0,0],"BTcG":[0.51767,0.89654],"y9tU":[0,1.03535]},"vertices":["y9tU","BTcG","R0QB"]},"oWnczK0e":{"uv":{"kWcS":[0,0],"13u9":[0.5358,0],"y9tU":[0.5358,8],"BTcG":[0,8]},"vertices":["BTcG","y9tU","13u9","kWcS"]},"sIaC5msd":{"uv":{"yuLw":[0,0.51771],"13u9":[0.89661,0],"kWcS":[1.03526,0.51771]},"vertices":["kWcS","13u9","yuLw"]},"nnp0qNgD":{"uv":{"R0QB":[0,0],"y9tU":[0.51771,0.89661],"8xCr":[0,1.03526]},"vertices":["8xCr","y9tU","R0QB"]},"FI8XwrqI":{"uv":{"13u9":[0,0],"CC2X":[0.5358,0],"8xCr":[0.5358,8],"y9tU":[0,8]},"vertices":["y9tU","8xCr","CC2X","13u9"]},"758JPHrd":{"uv":{"yuLw":[0,0.51767],"CC2X":[0.89654,0],"13u9":[1.03535,0.51767]},"vertices":["13u9","CC2X","yuLw"]},"JiosDsA9":{"uv":{"R0QB":[0.2679,0],"8xCr":[0.5358,1],"0xfX":[0,1]},"vertices":["0xfX","8xCr","R0QB"]},"eetXtoBx":{"uv":{"CC2X":[0,0],"dj75":[0.5358,0],"0xfX":[0.5358,8],"8xCr":[0,8]},"vertices":["8xCr","0xfX","dj75","CC2X"]},"od2B5Xaw":{"uv":{"yuLw":[0.2679,1],"dj75":[0,0],"CC2X":[0.5358,0]},"vertices":["CC2X","dj75","yuLw"]},"8OC5sJyd":{"uv":{"R0QB":[1.03535,0],"0xfX":[0.13881,0.51767],"cMXJ":[0,0]},"vertices":["cMXJ","0xfX","R0QB"]},"f4j3G4Uo":{"uv":{"dj75":[0,0],"67I0":[0.5358,0],"cMXJ":[0.5358,8],"0xfX":[0,8]},"vertices":["0xfX","cMXJ","67I0","dj75"]},"c2JyNfpS":{"uv":{"yuLw":[0.51771,1.03526],"67I0":[0,0.13865],"dj75":[0.51771,0]},"vertices":["dj75","67I0","yuLw"]},"96sChtu0":{"uv":{"R0QB":[1.03526,0],"cMXJ":[0.13865,0.51771],"8RVx":[0,0]},"vertices":["8RVx","cMXJ","R0QB"]},"t8WGxKTg":{"uv":{"67I0":[0,0],"kouC":[0.5358,0],"8RVx":[0.5358,8],"cMXJ":[0,8]},"vertices":["cMXJ","8RVx","kouC","67I0"]},"iBEMfNX9":{"uv":{"yuLw":[0.51767,1.03535],"kouC":[0,0.13881],"67I0":[0.51767,0]},"vertices":["67I0","kouC","yuLw"]},"ODuGLine truncated
+1
View File
@@ -0,0 +1 @@
{"meta":{"format_version":"5.0","model_format":"free","box_uv":false},"name":"ISwitch","model_identifier":"ISwitch","visible_box":[1,1,0],"variable_placeholders":"","multi_file_ruleset":"","variable_placeholder_buttons":[],"timeline_setups":[],"unhandled_root_fields":{},"resolution":{"width":16,"height":16},"elements":[{"name":"sphere","color":2,"origin":[0,7,0],"rotation":[0,0,-180],"shading":"flat","export":true,"visibility":true,"locked":false,"render_order":"default","scope":0,"allow_mirror_modeling":true,"vertices":{"8XvS":[0,-6,0],"g3f9":[0,-4,0],"y6do":[0.00856,-4.00856,0.13053],"LUeE":[0.01696,-4.03407,0.25882],"YtIG":[0.02508,-4.07612,0.38268],"uPdX":[0.03277,-4.13397,0.5],"O33X":[0.0399,-4.20665,0.60876],"u04D":[0.04635,-4.29289,0.70711],"QS8D":[0.052,-4.39124,0.79335],"snGb":[0.05676,-4.5,0.86603],"Kdsr":[0.06055,-4.61732,0.92388],"ExHx":[0.06331,-4.74118,0.96593],"Na7N":[0.06498,-4.86947,0.99144],"GihH":[0.06554,-5,1],"fs0b":[0.06498,-5.13053,0.99144],"amAi":[0.06331,-5.25882,0.96593],"6iAk":[0.06055,-5.38268,0.92388],"7lj2":[0.05676,-5.5,0.86603],"lFTw":[0.052,-5.60876,0.79335],"M5wO":[0.04635,-5.70711,0.70711],"8I1E":[0.0399,-5.79335,0.60876],"8Lw4":[0.03277,-5.86603,0.5],"uWqX":[0.02508,-5.92388,0.38268],"jKpU":[0.01696,-5.96593,0.25882],"267L":[0.00856,-5.99144,0.13053],"oet8":[0.02552,-4.00856,0.12829],"FOEs":[0.0506,-4.03407,0.25439],"4o5G":[0.07482,-4.07612,0.37614],"9QAC":[0.09775,-4.13397,0.49144],"hJMR":[0.11902,-4.20665,0.59835],"TdZW":[0.13825,-4.29289,0.69501],"ifAW":[0.15511,-4.39124,0.77978],"KNwM":[0.16932,-4.5,0.85121],"1yIa":[0.18063,-4.61732,0.90807],"5S1O":[0.18885,-4.74118,0.9494],"lD0b":[0.19384,-4.86947,0.97448],"ON8L":[0.19551,-5,0.98289],"FJ2G":[0.19384,-5.13053,0.97448],"h5hs":[0.18885,-5.25882,0.9494],"MUIn":[0.18063,-5.38268,0.90807],"1bLE":[0.16932,-5.5,0.85121],"gjf1":[0.15511,-5.60876,0.77978],"PHUI":[0.13825,-5.70711,0.69501],"3wu6":[0.11902,-5.79335,0.59835],"TFD8":[0.09775,-5.86603,0.49144],"KHrb":[0.07482,-5.92388,0.37614],"8Adf":[0.0506,-5.96593,0.25439],"66k3":[0.02552,-5.99144,0.12829],"ZqXa":[0.04205,-4.00856,0.12386],"BwpL":[0.08337,-4.03407,0.24561],"YMwJ":[0.12327,-4.07612,0.36315],"1nou":[0.16106,-4.13397,0.47448],"mctq":[0.1961,-4.20665,0.57769],"FFzh":[0.22778,-4.29289,0.67102],"vItU":[0.25556,-4.39124,0.75286],"3BTJ":[0.27897,-4.5,0.82183],"pqiO":[0.29761,-4.61732,0.87673],"y0T1":[0.31115,-4.74118,0.91663],"uvHz":[0.31937,-4.86947,0.94084],"X5Rg":[0.32213,-5,0.94896],"R1Bu":[0.31937,-5.13053,0.94084],"UfJ0":[0.31115,-5.25882,0.91663],"AlwI":[0.29761,-5.38268,0.87673],"3lZ7":[0.27897,-5.5,0.82183],"rHXp":[0.25556,-5.60876,0.75286],"TSdH":[0.22778,-5.70711,0.67102],"4cF6":[0.1961,-5.79335,0.57769],"gkN4":[0.16106,-5.86603,0.47448],"8qnP":[0.12327,-5.92388,0.36315],"xWTE":[0.08337,-5.96593,0.24561],"P60S":[0.04205,-5.99144,0.12386],"1FhR":[0.05785,-4.00856,0.11732],"QtWW":[0.11472,-4.03407,0.23263],"jDmp":[0.16962,-4.07612,0.34395],"FQq7":[0.22162,-4.13397,0.4494],"g3sG":[0.26983,-4.20665,0.54715],"7d9b":[0.31342,-4.29289,0.63555],"r2Qn":[0.35164,-4.39124,0.71306],"rYhs":[0.38386,-4.5,0.77838],"R7Oj":[0.4095,-4.61732,0.83038],"TubR":[0.42813,-4.74118,0.86817],"jI9M":[0.43945,-4.86947,0.89111],"hJnT":[0.44324,-5,0.8988],"Xl1r":[0.43945,-5.13053,0.89111],"NKN5":[0.42813,-5.25882,0.86817],"BHoq":[0.4095,-5.38268,0.83038],"uKSJ":[0.38386,-5.5,0.77838],"9ZZx":[0.35164,-5.60876,0.71306],"Pt4J":[0.31342,-5.70711,0.63555],"CcC8":[0.26983,-5.79335,0.54715],"4pWi":[0.22162,-5.86603,0.4494],"CghS":[0.16962,-5.92388,0.34395],"8hHa":[0.11472,-5.96593,0.23263],"Jijl":[0.05785,-5.99144,0.11732],"CdNs":[0.07267,-4.00856,0.10876],"B2gb":[0.1441,-4.03407,0.21566],"8VFG":[0.21306,-4.07612,0.31887],"B9bx":[0.27838,-4.13397,0.41663],"uBzR":[0.33894,-4.20665,0.50725],"b0pH":[0.39369,-4.29289,0.5892],"7DGG":[0.44171,-4.39124,0.66106],"j5VA":[0.48217,-4.5,0.72162],"oZcI":[0.51438,-4.61732,0.76983],"v6Ep":[0.53779,-4.74118,0.80486],"wnAA":[0.552,-4.86947,0.82613],"bkvG":[0.55676,-5,0.83325],"6C9O":[0.552,-5.13053,0.82613],"2Wt8":[0.53779,-5.25882,0.80486],"2rkF":[0.51438,-5.38268,0.76983],"pxze":[0.48217,-5.5,0.72162],"OkBQ":[0.44171,-5.60876,0.66106],"713I":[0.39369,-5.70711,0.5892],"RR22":[0.33894,-5.79335,0.50725],"DwEz":[0.27838,-5.86603,0.41663],"BjGh":[0.21306,-5.92388,0.31887],"5qut":[0.1441,-5.96593,0.21566],"nUaZ":[0.07267,-5.99144,0.10876],"KjIF":[0.08625,-4.00856,0.09835],"KNOe":[0.17102,-4.03407,0.19501],"bICH":[0.25286,-4.07612,0.28833],"J6Lk":[0.33038,-4.13397,0.37673],"56RP":[0.40225,-4.20665,0.45867],"smuN":[0.46723,-4.29289,0.53277],"2FLt":[0.52422,-4.39124,0.59775],"fVXz":[0.57224,-4.5,0.65251],"orjG":[0.61046,-4.61732,0.6961],"9csO":[0.63825,-4.74118,0.72778],"btkv":[0.65511,-4.86947,0.74701],"YNmT":[0.66076,-5,0.75345],"PUK3":[0.65511,-5.13053,0.74701],"YwS7":[0.63825,-5.25882,0.72778],"FgDY":[0.61046,-5.38268,0.6961],"TllA":[0.57224,-5.5,0.65251],"puir":[0.52422,-5.60876,0.59775],"5aFy":[0.46723,-5.70711,0.53277],"ZJzZ":[0.40225,-5.79335,0.45867],"MlFK":[0Line truncated
+1
View File
@@ -0,0 +1 @@
{"meta":{"format_version":"5.0","model_format":"free","box_uv":false},"name":"MTerrain","model_identifier":"MTerrain","visible_box":[1,1,0],"variable_placeholders":"","multi_file_ruleset":"","variable_placeholder_buttons":[],"timeline_setups":[],"unhandled_root_fields":{},"resolution":{"width":16,"height":16},"elements":[{"name":"mesh","color":0,"origin":[0,0,0],"rotation":[0,0,0],"shading":"flat","export":true,"visibility":true,"locked":false,"render_order":"default","scope":0,"allow_mirror_modeling":true,"vertices":{"1470":[27.60784,2.40509,-28.61176],"1508":[-36.64314,3.50892,-8.03137],"1720":[-37.1451,5.2817,-16.56471],"1759":[26.60392,6.34718,-49.19216],"1857":[-59.73333,3.55884,-14.0549],"1945":[-52.70588,1.53949,49.69412],"1978":[26.10196,1.84791,-17.56863],"2257":[-51.2,3.07724,-16.56471],"2865":[51.2,2.36761,35.63922],"3529":[-37.64706,1.67064,-30.61961],"3581":[24.09412,1,-18.57255],"4153":[13.55294,1.18736,-58.22745],"4340":[35.13725,4.83412,-24.09412],"4510":[-24.59608,1.9608,-8.03137],"4545":[-50.19608,2.08813,-42.16471],"4896":[24.59608,4.06363,-44.17255],"5116":[-37.64706,1.8811,23.0902],"5506":[10.54118,5.13193,2.00784],"5533":[22.58824,3.80438,-62.24314],"6352":[8.53333,3.1714,-44.67451],"6431":[-60.23529,6.34729,-23.0902],"6769":[31.12157,5.71592,-42.16471],"6868":[-32.12549,1.68182,33.63137],"7179":[-16.06275,2.54757,9.53725],"7664":[-25.09804,2.82148,45.17647],"8098":[60.23529,2.42403,-27.60784],"8149":[-50.19608,4.41145,53.20784],"8519":[6.02353,2.97997,-18.07059],"9226":[-41.66275,2.14022,-23.0902],"9393":[-19.57647,2.33667,47.68627],"9411":[-22.58824,3.37168,11.5451],"9490":[1.00392,1.26929,15.05882],"9695":[22.58824,1,-19.57647],"9900":[-37.1451,2.39408,-50.19608],"9955":[-7.02745,2.48422,8.03137],"WsyQ":[63.74902,4.72092,63.74902],"9r2H":[63.24706,5.0677,63.74902],"81Lp":[62.7451,5.39438,63.74902],"mu99":[62.24314,5.68791,63.74902],"2fw5":[61.74118,5.93559,63.74902],"FQjJ":[61.23922,6.114,63.74902],"wg1S":[60.73725,6.21466,63.74902],"cL7B":[60.23529,6.24645,63.74902],"o7Wp":[59.73333,6.21686,63.74902],"T9Iq":[59.23137,6.13222,63.74902],"eC0V":[58.72941,5.99817,63.74902],"55qG":[58.22745,5.82015,63.74902],"mdTl":[57.72549,5.6038,63.74902],"N9Wp":[57.22353,5.35528,63.74902],"uXQf":[56.72157,5.08141,63.74902],"woLL":[56.21961,4.78972,63.74902],"3LJi":[55.71765,4.48823,63.74902],"Xn1x":[55.21569,4.18526,63.74902],"z7LZ":[54.71373,3.88913,63.74902],"8IXc":[54.21176,3.60777,63.74902],"0YUW":[53.7098,3.34855,63.74902],"faDr":[53.20784,3.11803,63.74902],"Es55":[52.70588,2.92194,63.74902],"mBGm":[52.20392,2.76533,63.74902],"scVU":[51.70196,2.65274,63.74902],"VHVp":[51.2,2.58864,63.74902],"ZcoG":[50.69804,2.57787,63.74902],"9omG":[50.19608,2.62612,63.74902],"7UkR":[49.69412,2.74037,63.74902],"56hE":[49.19216,2.92909,63.74902],"68XQ":[48.6902,3.18088,63.74902],"0a6t":[48.18824,3.46832,63.74902],"sj2v":[47.68627,3.77671,63.74902],"hxdz":[47.18431,4.09133,63.74902],"1Y72":[46.68235,4.39817,63.74902],"YYTT":[46.18039,4.68462,63.74902],"39K2":[45.67843,4.93994,63.74902],"nLnS":[45.17647,5.15557,63.74902],"ER2p":[44.67451,5.32509,63.74902],"LrOa":[44.17255,5.44397,63.74902],"j6Xs":[43.67059,5.50928,63.74902],"wWTa":[43.16863,5.5193,63.74902],"Z3kL":[42.66667,5.47339,63.74902],"MuOH":[42.16471,5.37186,63.74902],"IcrD":[41.66275,5.21617,63.74902],"j0cg":[41.16078,5.00919,63.74902],"NINu":[40.65882,4.75563,63.74902],"hC1N":[40.15686,4.46232,63.74902],"5DoI":[39.6549,4.13848,63.74902],"4src":[39.15294,3.7956,63.74902],"3pQT":[38.65098,3.44703,63.74902],"qZJW":[38.14902,3.10729,63.74902],"wESS":[37.64706,2.79115,63.74902],"KhWy":[37.1451,2.51278,63.74902],"jTkO":[36.64314,2.28521,63.74902],"0aT6":[36.14118,2.08597,63.74902],"XHq2":[35.63922,1.89211,63.74902],"SbzA":[35.13725,1.71319,63.74902],"DMq0":[34.63529,1.55631,63.74902],"ePac":[34.13333,1.42629,63.74902],"055P":[33.63137,1.32615,63.74902],"u6WF":[33.12941,1.25769,63.74902],"63MQ":[32.62745,1.22211,63.74902],"Mw9O":[32.12549,1.22054,63.74902],"zung":[31.62353,1.25448,63.74902],"ziJD":[31.12157,1.32597,63.74902],"D0UR":[30.61961,1.43758,63.74902],"nVrM":[30.11765,1.59211,63.74902],"Qpr3":[29.61569,1.792,63.74902],"I54a":[29.11373,2.03865,63.74902],"sTZ0":[28.61176,2.3316,63.74902],"wfD6":[28.1098,2.66778,63.74902],"A66p":[27.60784,3.0409,63.74902],"XMOM":[27.10588,3.44124,63.74902],"dyD4":[26.60392,3.85583,63.74902],"pdsH":[26.10196,4.26907,63.74902],"3BOH":[25.6,4.66367,63.74902],"y4Kc":[25.09804,5.02173,63.74902],"IO92":[24.59608,5.32564,63.74902],"cBxJ":[24.09412,5.55847,63.74902],"8eua":[23.59216,5.73778,63.74902],"J6LL":[23.0902,5.89076,63.74902],"sQ65":[22.58824,6.01582,63.74902],"JldT":[22.08627,6.11194,63.74902],"AO8v":[21.58431,6.17861,63.74902],"a2ES":[21.08235,6.21565,63.74902],"xBxZ":[20.58039,6.22319,63.74902],"gCFt":[20.07843,6.20158,63.74902],"JuTJ":[19.57647,6.15143,63.74902],"e9sW":[19.07451,6.07362,63.74902],"3aHt":[18.57255,5.96938,63.74902],"KIzY":[18.07059,5.84043,63.74902],"AQOB":[17.56863,5.68902,63.74902],"XW6J":[17.06667,5Line truncated
+2
View File
@@ -0,0 +1,2 @@
# Made in Blockbench 5.1.4
newmtl none
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,25 @@
[remap]
importer="wavefront_obj"
importer_version=1
type="Mesh"
uid="uid://do5kbmfabhhvr"
path="res://.godot/imported/I3PositionSwitchBase.obj-dc07a67a65f6e19692eeeee0a58d3195.mesh"
[deps]
files=["res://.godot/imported/I3PositionSwitchBase.obj-dc07a67a65f6e19692eeeee0a58d3195.mesh"]
source_file="res://Assets/Models/I3PositionSwitchBase.obj"
dest_files=["res://.godot/imported/I3PositionSwitchBase.obj-dc07a67a65f6e19692eeeee0a58d3195.mesh", "res://.godot/imported/I3PositionSwitchBase.obj-dc07a67a65f6e19692eeeee0a58d3195.mesh"]
[params]
generate_tangents=true
generate_lods=true
generate_shadow_mesh=true
generate_lightmap_uv2=false
generate_lightmap_uv2_texel_size=0.2
scale_mesh=Vector3(1, 1, 1)
offset_mesh=Vector3(0, 0, 0)
force_disable_mesh_compression=false
+2
View File
@@ -0,0 +1,2 @@
# Made in Blockbench 5.1.4
newmtl none
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,25 @@
[remap]
importer="wavefront_obj"
importer_version=1
type="Mesh"
uid="uid://dkhw5hal4yx0b"
path="res://.godot/imported/I3PositionSwitchCap.obj-119996fee664ddcafaea75050801fa37.mesh"
[deps]
files=["res://.godot/imported/I3PositionSwitchCap.obj-119996fee664ddcafaea75050801fa37.mesh"]
source_file="res://Assets/Models/I3PositionSwitchCap.obj"
dest_files=["res://.godot/imported/I3PositionSwitchCap.obj-119996fee664ddcafaea75050801fa37.mesh", "res://.godot/imported/I3PositionSwitchCap.obj-119996fee664ddcafaea75050801fa37.mesh"]
[params]
generate_tangents=true
generate_lods=true
generate_shadow_mesh=true
generate_lightmap_uv2=false
generate_lightmap_uv2_texel_size=0.2
scale_mesh=Vector3(1, 1, 1)
offset_mesh=Vector3(0, 0, 0)
force_disable_mesh_compression=false
+2
View File
@@ -0,0 +1,2 @@
# Made in Blockbench 5.1.4
newmtl none
File diff suppressed because it is too large. Load diff
+25
View File
@@ -0,0 +1,25 @@
[remap]
importer="wavefront_obj"
importer_version=1
type="Mesh"
uid="uid://bn0u7x5cdhqeq"
path="res://.godot/imported/IButtonBase.obj-88e67638a4fbc9ebb607866e7e5891f3.mesh"
[deps]
files=["res://.godot/imported/IButtonBase.obj-88e67638a4fbc9ebb607866e7e5891f3.mesh"]
source_file="res://Assets/Models/IButtonBase.obj"
dest_files=["res://.godot/imported/IButtonBase.obj-88e67638a4fbc9ebb607866e7e5891f3.mesh", "res://.godot/imported/IButtonBase.obj-88e67638a4fbc9ebb607866e7e5891f3.mesh"]
[params]
generate_tangents=true
generate_lods=true
generate_shadow_mesh=true
generate_lightmap_uv2=false
generate_lightmap_uv2_texel_size=0.2
scale_mesh=Vector3(1, 1, 1)
offset_mesh=Vector3(0, 0, 0)
force_disable_mesh_compression=false
+2
View File
@@ -0,0 +1,2 @@
# Made in Blockbench 5.1.4
newmtl none
File diff suppressed because it is too large. Load diff
+25
View File
@@ -0,0 +1,25 @@
[remap]
importer="wavefront_obj"
importer_version=1
type="Mesh"
uid="uid://c14lv8v6bduhu"
path="res://.godot/imported/IButtonCap.obj-32c39fc93f48cace929c066df68adb88.mesh"
[deps]
files=["res://.godot/imported/IButtonCap.obj-32c39fc93f48cace929c066df68adb88.mesh"]
source_file="res://Assets/Models/IButtonCap.obj"
dest_files=["res://.godot/imported/IButtonCap.obj-32c39fc93f48cace929c066df68adb88.mesh", "res://.godot/imported/IButtonCap.obj-32c39fc93f48cace929c066df68adb88.mesh"]
[params]
generate_tangents=true
generate_lods=true
generate_shadow_mesh=true
generate_lightmap_uv2=false
generate_lightmap_uv2_texel_size=0.2
scale_mesh=Vector3(1, 1, 1)
offset_mesh=Vector3(0, 0, 0)
force_disable_mesh_compression=false
+2
View File
@@ -0,0 +1,2 @@
# Made in Blockbench 5.1.4
newmtl none
File diff suppressed because it is too large. Load diff
+25
View File
@@ -0,0 +1,25 @@
[remap]
importer="wavefront_obj"
importer_version=1
type="Mesh"
uid="uid://b5ok22cbta76k"
path="res://.godot/imported/ISwitchBase.obj-1855ae362a9328a76eb4c6ac41acbc39.mesh"
[deps]
files=["res://.godot/imported/ISwitchBase.obj-1855ae362a9328a76eb4c6ac41acbc39.mesh"]
source_file="res://Assets/Models/ISwitchBase.obj"
dest_files=["res://.godot/imported/ISwitchBase.obj-1855ae362a9328a76eb4c6ac41acbc39.mesh", "res://.godot/imported/ISwitchBase.obj-1855ae362a9328a76eb4c6ac41acbc39.mesh"]
[params]
generate_tangents=true
generate_lods=true
generate_shadow_mesh=true
generate_lightmap_uv2=false
generate_lightmap_uv2_texel_size=0.2
scale_mesh=Vector3(1, 1, 1)
offset_mesh=Vector3(0, 0, 0)
force_disable_mesh_compression=false
+2
View File
@@ -0,0 +1,2 @@
# Made in Blockbench 5.1.4
newmtl none
File diff suppressed because it is too large. Load diff
+25
View File
@@ -0,0 +1,25 @@
[remap]
importer="wavefront_obj"
importer_version=1
type="Mesh"
uid="uid://bdjr38o7iuajh"
path="res://.godot/imported/ISwitchCap.obj-3a4e0db86ed9254e5ad5fee949304494.mesh"
[deps]
files=["res://.godot/imported/ISwitchCap.obj-3a4e0db86ed9254e5ad5fee949304494.mesh"]
source_file="res://Assets/Models/ISwitchCap.obj"
dest_files=["res://.godot/imported/ISwitchCap.obj-3a4e0db86ed9254e5ad5fee949304494.mesh", "res://.godot/imported/ISwitchCap.obj-3a4e0db86ed9254e5ad5fee949304494.mesh"]
[params]
generate_tangents=true
generate_lods=true
generate_shadow_mesh=true
generate_lightmap_uv2=false
generate_lightmap_uv2_texel_size=0.2
scale_mesh=Vector3(1, 1, 1)
offset_mesh=Vector3(0, 0, 0)
force_disable_mesh_compression=false
BIN
View File
Binary file not shown.
+36
View File
@@ -0,0 +1,36 @@
[remap]
importer="font_data_dynamic"
type="FontFile"
uid="uid://drt3ca0d33tq7"
path="res://.godot/imported/font.otf-3a10bc3f30cfc449c4ac1c41fc25f575.fontdata"
[deps]
source_file="res://Assets/font.otf"
dest_files=["res://.godot/imported/font.otf-3a10bc3f30cfc449c4ac1c41fc25f575.fontdata"]
[params]
Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
force_autohinter=false
modulate_color_glyphs=false
hinting=1
subpixel_positioning=4
keep_rounding_remainders=true
oversampling=0.0
Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
language_support={}
script_support={}
opentype_features={}
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

+42
View File
@@ -0,0 +1,42 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d3cn3q6h2uyyw"
path.s3tc="res://.godot/imported/gauge.png-70a3dd00e36dfbe372ec39b9f20cd6b7.s3tc.ctex"
path.etc2="res://.godot/imported/gauge.png-70a3dd00e36dfbe372ec39b9f20cd6b7.etc2.ctex"
metadata={
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://Assets/gauge.png"
dest_files=["res://.godot/imported/gauge.png-70a3dd00e36dfbe372ec39b9f20cd6b7.s3tc.ctex", "res://.godot/imported/gauge.png-70a3dd00e36dfbe372ec39b9f20cd6b7.etc2.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0
+1
View File
@@ -0,0 +1 @@
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="431" height="431"><title>Created with blocklayer.com</title><defs/><g><path fill="none" stroke="#000" paint-order="fill stroke markers" d=" M 421 215.5 A 205.5 205.5 0 1 0 420.99989725000853 215.70549996575008" stroke-miterlimit="10" stroke-dasharray=""/><path fill="#f00" stroke="none" paint-order="stroke fill markers" d=" M 412.31713332690174 274.6038579872803 A 205.5 205.5 0 0 1 285.78513945342496 408.6068335715041 L 279.28675673023724 390.7526737765719 A 186.5 186.5 0 0 0 394.11992878572835 269.1392677110841 Z"/><path fill="none" stroke="#000000" paint-order="fill stroke markers" d=" M 145.2148605465751 408.6068335715042 A 205.5 205.5 0 1 1 285.78513945342496 408.6068335715041" stroke-miterlimit="10" stroke-dasharray=""/><path fill="#fff" stroke="#000" paint-order="fill stroke markers" d=" M 230.5 215.5 A 15 15 0 1 1 230.49999250000062 215.4850000025" stroke-miterlimit="10" stroke-dasharray=""/><path fill="none" stroke="#000000" paint-order="fill stroke markers" d=" M 145.2148605465751 408.6068335715042 L 152.05526341308845 389.812981155786" stroke-miterlimit="10" stroke-width="3.25" stroke-dasharray=""/><g transform="translate(158.8956662796018,371.01912874006786) rotate(200,0,0)"><text fill="#000000" stroke="none" font-family="'Arial'" font-size="20.2px" font-style="normal" font-weight="normal" text-decoration="normal" x="0" y="0" text-anchor="middle" dominant-baseline="text-after-edge">0</text></g><path fill="none" stroke="#000000" paint-order="fill stroke markers" d=" M 136.3066158077269 405.12768231504344 L 140.16030846915137 395.900057871489" stroke-miterlimit="10" stroke-width="1.3" stroke-dasharray=""/><path fill="none" stroke="#000000" paint-order="fill stroke markers" d=" M 127.56988630449008 401.23783972442095 L 131.84872395390664 392.1995020249358" stroke-miterlimit="10" stroke-width="1.3" stroke-dasharray=""/><path fill="none" stroke="#000000" paint-order="fill stroke markers" d=" M 119.0235938474995 396.9457303325095 L 123.7183094753584 388.11625440392027" stroke-miterlimit="10" stroke-width="1.3" stroke-dasharray=""/><path fill="none" stroke="#000000" paint-order="fill stroke markers" d=" M 110.68624780315379 392.2606498924976 L 115.78667370081054 383.659158413544" stroke-miterlimit="10" stroke-width="1.3" stroke-dasharray=""/><path fill="none" stroke="#000000" paint-order="fill stroke markers" d=" M 102.57590500644943 387.1927452453585 L 110.81853967751152 374.66042807416443" stroke-miterlimit="10" stroke-width="1.3" stroke-dasharray=""/><path fill="none" stroke="#000000" paint-order="fill stroke markers" d=" M 94.71013065389687 381.75299234405173 L 100.5879831768216 373.6628224003023" stroke-miterlimit="10" stroke-width="1.3" stroke-dasharray=""/><path fill="none" stroke="#000000" paint-order="fill stroke markers" d=" M 87.1059602612163 375.95317248205356 L 93.35384540665588 368.14523221528697" stroke-miterlimit="10" stroke-width="1.3" stroke-dasharray=""/><path fill="none" stroke="#000000" paint-order="fill stroke markers" d=" M 79.77986276820403 369.8058467776982 L 86.3842490081941 362.2970464478832" stroke-miterlimit="10" stroke-width="1.3" stroke-dasharray=""/><path fill="none" stroke="#000000" paint-order="fill stroke markers" d=" M 72.74770487067619 363.3243289695929 L 79.69428857526614 356.1309309662064" stroke-miterlimit="10" stroke-width="1.3" stroke-dasharray=""/><path fill="none" stroke="#000000" paint-order="fill stroke markers" d=" M 66.02471665673863 356.52265658202487 L 80.57218948819957 342.7978238246502" stroke-miterlimit="10" stroke-width="3.25" stroke-dasharray=""/><g transform="translate(95.11966231966055,329.0729910672755) rotate(226.6666666666666,0,0)"><text fill="#000000" stroke="none" font-family="'Arial'" font-size="20.2px" font-style="normal" font-weight="normal" text-decoration="normal" x="0" y="0" text-anchor="middle" dominant-baseline="text-after-edge">10</text></g><path fill="none" stroke="#000000" paint-order="fill stroke markers" d=" M 59.62545862180755 349.4155605228092 L 67.21059445529625 342.89898823459464" stroke-miterlimit="10" stroke-width="1.3" stroke-dasharray=""/><path fill="none" stroke="#000000" paint-order="fill stroke markers" d=" M 53.56379013381877 342.0184331794229 L 61.443897669885985 335.86181842616634" stroke-miterlimit="10" stroke-width="1.3" stroke-dasharray=""/><path fill="none" stroke="#000000" paint-order="fill stroke markers" d=" M 47.85283941692276 334.34729508252144 L 56.01085209736448 328.56397172084155" stroke-miterlimit="10" stroke-width="1.3" stroke-dasharray=""/><path fill="none" stroke="#000000" paint-order="fill stroke markers" d=" M 42.504975118674736 326.4187602090361 L 50.92322450462731 321.02125362952097" stroke-miterlimit="10" stroke-width="1.3" stroke-dasharray=""/><path fill="none" stroke="#000000" paint-order="fill stroke markers" d=" M 37.531779522297995 318.2500000000002 L 50.52216057906455 310.7500000000002" Line truncated

After

Width:  |  Height:  |  Size: 31 KiB

+45
View File
@@ -0,0 +1,45 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://g6tb0l6bf0v"
path.s3tc="res://.godot/imported/gauge.svg-c26e0b33e3c7868f555efca13d7251c0.s3tc.ctex"
path.etc2="res://.godot/imported/gauge.svg-c26e0b33e3c7868f555efca13d7251c0.etc2.ctex"
metadata={
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://Assets/gauge.svg"
dest_files=["res://.godot/imported/gauge.svg-c26e0b33e3c7868f555efca13d7251c0.s3tc.ctex", "res://.godot/imported/gauge.svg-c26e0b33e3c7868f555efca13d7251c0.etc2.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

+40
View File
@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://7tio5gdc4oon"
path="res://.godot/imported/gerald.png-232a8568be308406ffe5125bf0275884.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Assets/gerald.png"
dest_files=["res://.godot/imported/gerald.png-232a8568be308406ffe5125bf0275884.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

+42
View File
@@ -0,0 +1,42 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cisnwwf0h8n20"
path.s3tc="res://.godot/imported/grass.jpg-a807c661017f5cb8ef8de151216c8350.s3tc.ctex"
path.etc2="res://.godot/imported/grass.jpg-a807c661017f5cb8ef8de151216c8350.etc2.ctex"
metadata={
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://Assets/grass.jpg"
dest_files=["res://.godot/imported/grass.jpg-a807c661017f5cb8ef8de151216c8350.s3tc.ctex", "res://.godot/imported/grass.jpg-a807c661017f5cb8ef8de151216c8350.etc2.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0
BIN
View File
Binary file not shown.
+19
View File
@@ -0,0 +1,19 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
uid="uid://3u4ofv7lf7oq"
path="res://.godot/imported/switch.mp3-82a07c777423ba76b8f384e745a419cd.mp3str"
[deps]
source_file="res://Assets/switch.mp3"
dest_files=["res://.godot/imported/switch.mp3-82a07c777423ba76b8f384e745a419cd.mp3str"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4
+4
View File
@@ -0,0 +1,4 @@
# Made in Blockbench 5.1.4
newmtl m_529abcca-f46d-fc9c-fb7e-173209d07689
map_Kd MTerrain.png
newmtl none
File diff suppressed because it is too large. Load diff
+25
View File
@@ -0,0 +1,25 @@
[remap]
importer="wavefront_obj"
importer_version=1
type="Mesh"
uid="uid://bsy3nuebmvinh"
path="res://.godot/imported/MTerrain.obj-f52e7d1fdeef034b6cbff303f37ce5fb.mesh"
[deps]
files=["res://.godot/imported/MTerrain.obj-f52e7d1fdeef034b6cbff303f37ce5fb.mesh"]
source_file="res://Assets/terrain/MTerrain.obj"
dest_files=["res://.godot/imported/MTerrain.obj-f52e7d1fdeef034b6cbff303f37ce5fb.mesh", "res://.godot/imported/MTerrain.obj-f52e7d1fdeef034b6cbff303f37ce5fb.mesh"]
[params]
generate_tangents=true
generate_lods=true
generate_shadow_mesh=true
generate_lightmap_uv2=false
generate_lightmap_uv2_texel_size=0.2
scale_mesh=Vector3(1, 1, 1)
offset_mesh=Vector3(0, 0, 0)
force_disable_mesh_compression=false
Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

+42
View File
@@ -0,0 +1,42 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://di2at0o6mjkib"
path.s3tc="res://.godot/imported/MTerrain.png-03c0035fbd71bf035bcdd6d2ce62a440.s3tc.ctex"
path.etc2="res://.godot/imported/MTerrain.png-03c0035fbd71bf035bcdd6d2ce62a440.etc2.ctex"
metadata={
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://Assets/terrain/MTerrain.png"
dest_files=["res://.godot/imported/MTerrain.png-03c0035fbd71bf035bcdd6d2ce62a440.s3tc.ctex", "res://.godot/imported/MTerrain.png-03c0035fbd71bf035bcdd6d2ce62a440.etc2.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0
Binary file not shown.

After

Width:  |  Height:  |  Size: 414 B

+40
View File
@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://djybyd6myepyf"
path="res://.godot/imported/Dirt.png-9b993ad7a25b82468a9ee800c286136e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Assets/textures/Dirt.png"
dest_files=["res://.godot/imported/Dirt.png-9b993ad7a25b82468a9ee800c286136e.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 420 B

+42
View File
@@ -0,0 +1,42 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b7nvmswy13r2c"
path.s3tc="res://.godot/imported/Grass.png-07084bfc0f345a78e269ef1ec09ee7db.s3tc.ctex"
path.etc2="res://.godot/imported/Grass.png-07084bfc0f345a78e269ef1ec09ee7db.etc2.ctex"
metadata={
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://Assets/textures/Grass.png"
dest_files=["res://.godot/imported/Grass.png-07084bfc0f345a78e269ef1ec09ee7db.s3tc.ctex", "res://.godot/imported/Grass.png-07084bfc0f345a78e269ef1ec09ee7db.etc2.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=1
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0
Binary file not shown.

After

Width:  |  Height:  |  Size: 280 B

+42
View File
@@ -0,0 +1,42 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d0aqp2i4stybu"
path.s3tc="res://.godot/imported/Stone.png-cefda0a0cfe8c67ae5ef9efc8a2b1e26.s3tc.ctex"
path.etc2="res://.godot/imported/Stone.png-cefda0a0cfe8c67ae5ef9efc8a2b1e26.etc2.ctex"
metadata={
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://Assets/textures/Stone.png"
dest_files=["res://.godot/imported/Stone.png-cefda0a0cfe8c67ae5ef9efc8a2b1e26.s3tc.ctex", "res://.godot/imported/Stone.png-cefda0a0cfe8c67ae5ef9efc8a2b1e26.etc2.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=1
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0
Binary file not shown.

After

Width:  |  Height:  |  Size: 367 B

+40
View File
@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bywcem8skp767"
path="res://.godot/imported/hammer.png-a6ce75ea254ee97c602e895e5c42fee5.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Assets/textures/hammer.png"
dest_files=["res://.godot/imported/hammer.png-a6ce75ea254ee97c602e895e5c42fee5.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 224 B

+40
View File
@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c0ypn10bhavvb"
path="res://.godot/imported/interact.png-7a858c4952df94b8ffed520d7dd0c335.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Assets/textures/interact.png"
dest_files=["res://.godot/imported/interact.png-7a858c4952df94b8ffed520d7dd0c335.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 11 MiB

@@ -0,0 +1,42 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cjt4s8ybt0vlt"
path.s3tc="res://.godot/imported/marble_cliff_06_diff_4k.jpg-82db6fb112b8dd9e8a9f5cd00d6ae989.s3tc.ctex"
path.etc2="res://.godot/imported/marble_cliff_06_diff_4k.jpg-82db6fb112b8dd9e8a9f5cd00d6ae989.etc2.ctex"
metadata={
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://Assets/textures/marble_cliff_06_diff_4k.jpg"
dest_files=["res://.godot/imported/marble_cliff_06_diff_4k.jpg-82db6fb112b8dd9e8a9f5cd00d6ae989.s3tc.ctex", "res://.godot/imported/marble_cliff_06_diff_4k.jpg-82db6fb112b8dd9e8a9f5cd00d6ae989.etc2.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0
Binary file not shown.

After

Width:  |  Height:  |  Size: 11 MiB

@@ -0,0 +1,42 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cig2cl2tw2brx"
path.s3tc="res://.godot/imported/rocky_terrain_02_diff_4k.jpg-895ed9624c297176228c598fd5d6e5dc.s3tc.ctex"
path.etc2="res://.godot/imported/rocky_terrain_02_diff_4k.jpg-895ed9624c297176228c598fd5d6e5dc.etc2.ctex"
metadata={
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://Assets/textures/rocky_terrain_02_diff_4k.jpg"
dest_files=["res://.godot/imported/rocky_terrain_02_diff_4k.jpg-895ed9624c297176228c598fd5d6e5dc.s3tc.ctex", "res://.godot/imported/rocky_terrain_02_diff_4k.jpg-895ed9624c297176228c598fd5d6e5dc.etc2.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0
+5
View File
@@ -0,0 +1,5 @@
extends Node
signal sendChatMessage(message:String)
signal sendChatMessageAs(user:String,message:String)
signal castError(err:Dictionary)
+1
View File
@@ -0,0 +1 @@
uid://csa2l3h2dohp1
+3
View File
@@ -0,0 +1,3 @@
extends Node
signal givePlayerItem(id:String)
signal removeFromSlot(slot:int)
+1
View File
@@ -0,0 +1 @@
uid://1esfwguw47p3
+10
View File
@@ -0,0 +1,10 @@
[gd_resource type="Resource" script_class="ItemData" format=3 uid="uid://cnu2f5ec7qb48"]
[ext_resource type="Script" uid="uid://cjb16s8q73wkx" path="res://GameShit/PlayerController/Hotbar/ItemData.gd" id="1_udtmv"]
[resource]
script = ExtResource("1_udtmv")
Name = "air"
ID = "base:air"
description = "air"
metadata/_custom_type_script = "uid://cjb16s8q73wkx"
+12
View File
@@ -0,0 +1,12 @@
[gd_resource type="Resource" script_class="ItemData" format=3 uid="uid://bw6nhoeremely"]
[ext_resource type="Script" uid="uid://cjb16s8q73wkx" path="res://GameShit/PlayerController/Hotbar/ItemData.gd" id="1_sp53r"]
[ext_resource type="Texture2D" uid="uid://bywcem8skp767" path="res://Assets/textures/hammer.png" id="2_hsm3r"]
[resource]
script = ExtResource("1_sp53r")
Name = "Hammer"
ID = "base:hammer"
description = "A hammer to destroy blocks"
texture = ExtResource("2_hsm3r")
metadata/_custom_type_script = "uid://cjb16s8q73wkx"
+12
View File
@@ -0,0 +1,12 @@
[gd_resource type="Resource" script_class="ItemData" format=3 uid="uid://cwv45kgf8soiw"]
[ext_resource type="Script" uid="uid://cjb16s8q73wkx" path="res://GameShit/PlayerController/Hotbar/ItemData.gd" id="1_e0ofu"]
[ext_resource type="Texture2D" uid="uid://c0ypn10bhavvb" path="res://Assets/textures/interact.png" id="2_121r2"]
[resource]
script = ExtResource("1_e0ofu")
Name = "Interact"
ID = "base:interact"
description = "a blank item for holding a slot for interacting"
texture = ExtResource("2_121r2")
metadata/_custom_type_script = "uid://cjb16s8q73wkx"
@@ -0,0 +1,12 @@
[gd_resource type="Resource" script_class="ItemData" format=3 uid="uid://c6sayeu6ky2ye"]
[ext_resource type="Script" uid="uid://cjb16s8q73wkx" path="res://GameShit/PlayerController/Hotbar/ItemData.gd" id="1_ifkot"]
[ext_resource type="Texture2D" uid="uid://d0aqp2i4stybu" path="res://Assets/textures/Stone.png" id="2_e2kbk"]
[resource]
script = ExtResource("1_ifkot")
Name = "Test Machine"
ID = "base:testMachine"
description = "its uhh, its a test machine"
texture = ExtResource("2_e2kbk")
metadata/_custom_type_script = "uid://cjb16s8q73wkx"
+31
View File
@@ -0,0 +1,31 @@
extends Node3D
## define all of the game variables, ill replace this with a settings file later
## ignore duplicate keys, idrc atp
## this game is jus a mess of spaghetti anyhow
var selectedBlockID : String = "base:testMachine"
var selectedSlot = 0
var currentHeldItemID : String = "base:air"
var canPlaceBlock : bool = false
var username = "Xtimhedi"
var loadedLanguage = "en-US"
var isInputLocked = false
signal hideChatbox
func getIfIDExists(ID:String) -> bool:
var segments = ID.split(":")
return ResourceLoader.exists("res://WorldObjects/{namespace}/{id}.tscn".format({"namespace": segments[0], "id": segments[1]}))
func _process(delta: float) -> void:
if currentHeldItemID != "base:air" and getIfIDExists(currentHeldItemID):
canPlaceBlock = true
selectedBlockID = currentHeldItemID
else:
canPlaceBlock = false
selectedBlockID = "base:air"
+1
View File
@@ -0,0 +1 @@
uid://eudofx4u58h0
+56
View File
@@ -0,0 +1,56 @@
shader_type spatial;
// Texture Inputs
uniform sampler2D flat_albedo : source_color, filter_linear_mipmap_anisotropic; // e.g., Grass
uniform sampler2D flat_normal : hint_normal, filter_linear_mipmap_anisotropic;
uniform sampler2D steep_albedo : source_color, filter_linear_mipmap_anisotropic; // e.g., Cliff/Rock
uniform sampler2D steep_normal : hint_normal, filter_linear_mipmap_anisotropic;
// Shader Control Knobs
uniform float texture_scale = 0.05;
uniform float slope_threshold : hint_range(0.0, 1.0) = 0.7;
uniform float slope_blend : hint_range(0.01, 0.5) = 0.1;
// Triplanar helper function to prevent stretching on procedural cliffs
vec4 triplanar_sample(sampler2D tex, vec3 world_pos, vec3 normal) {
vec3 blending = abs(normal);
blending = normalize(max(blending, 0.00001)); // Avoid division by zero
blending /= (blending.x + blending.y + blending.z);
vec4 x_tex = texture(tex, world_pos.zy * texture_scale);
vec4 y_tex = texture(tex, world_pos.xz * texture_scale);
vec4 z_tex = texture(tex, world_pos.xy * texture_scale);
return x_tex * blending.x + y_tex * blending.y + z_tex * blending.z;
}
varying vec3 world_position;
varying vec3 world_normal;
void vertex() {
// Grab real-world coordinates from Terrainy's procedural vertices
world_position = (MODEL_MATRIX * vec4(VERTEX, 1.0)).xyz;
world_normal = MODEL_NORMAL_MATRIX * NORMAL;
}
void fragment() {
// Normalize vectors for accurate angle calculations
vec3 normal = normalize(world_normal);
// Sample textures using triplanar projection mapping
vec4 grass_c = triplanar_sample(flat_albedo, world_position, normal);
vec4 grass_n = triplanar_sample(flat_normal, world_position, normal);
vec4 rock_c = triplanar_sample(steep_albedo, world_position, normal);
vec4 rock_n = triplanar_sample(steep_normal, world_position, normal);
// Calculate slope: dot product against the world UP vector (0, 1, 0)
float slope = dot(normal, vec3(0.0, 1.0, 0.0));
// Create a smooth mask transitioning between flat areas and cliffs
float weight = smoothstep(slope_threshold - slope_blend, slope_threshold + slope_blend, slope);
// Blend the textures together based on the procedural terrain angles
ALBEDO = mix(rock_c.rgb, grass_c.rgb, weight);
NORMAL_MAP = mix(rock_n.rgb, grass_n.rgb, weight);
ROUGHNESS = 0.8; // Uniform roughness default
}
+1
View File
@@ -0,0 +1 @@
uid://b1q2d4464nd5g
Binary file not shown.
@@ -0,0 +1,66 @@
extends Control
## This entire script is just for handling the ChatBox UI
## if you are here looking for command handlers
## they are in GameShit/ChatSystem/commands
## if you are looking for chat var storage
## they are in GameShit/ChatSystem/ChatBox.gd
var Commands : Dictionary = {
"give": CommandHandler.registerCommand("base:giveItem").new(),
"say": CommandHandler.registerCommand("base:say").new()
}
var language = LanguageManager.loadLanguage()
func _parseMessage():
var messageContents : String = %Input.text
if messageContents.begins_with("/"):
var command = messageContents.right(-1)
runCommand(command)
%Input.text = ""
MainGame.hideChatbox.emit()
else:
sendMessage(messageContents)
%Input.text = ""
MainGame.hideChatbox.emit()
func sendMessage(message):
%TextDisplay.newline()
%TextDisplay.add_text("{a}: {b}".format({"a": MainGame.username, "b": message}))
func sendMessageAs(user, message):
%TextDisplay.newline()
%TextDisplay.add_text("{a}: {b}".format({"a": user, "b": message}))
func sendSystemErrorMessage(error:Dictionary):
%TextDisplay.newline()
%TextDisplay.add_text("Error: {Error} {Details}".format({"Error": language[error["type"]], "Details": error["caller"]}))
func _ready() -> void:
## here imma add callbacks to signals for chatbox
CommandBus.sendChatMessage.connect(sendMessage)
CommandBus.sendChatMessageAs.connect(sendMessageAs)
CommandBus.castError.connect(sendSystemErrorMessage)
func runCommand(message: String):
var regex = RegEx.new()
regex.compile("(\"[^\"]*\"|'[^']*'|\\S+)")
var matches = regex.search_all(message)
var commandArgs = []
for m in matches:
var arg = m.get_string()
if (arg.begins_with("\"") and arg.ends_with("\"")) or (arg.begins_with("'") and arg.ends_with("'")):
arg = arg.substr(1, arg.length() - 2)
commandArgs.append(arg)
if commandArgs.size() > 0:
var command_name = commandArgs[0]
if Commands.has(command_name):
Commands[command_name].runCommand(commandArgs.slice(1))
else:
CommandBus.castError.emit({"type": "base.command.commandNotFoundError", "caller": command_name})
func _on_input_text_submitted(new_text: String) -> void:
_parseMessage()
@@ -0,0 +1 @@
uid://bv7jebheo3yyf
@@ -0,0 +1,73 @@
[gd_scene format=3 uid="uid://bliihydr5ja7g"]
[ext_resource type="Script" uid="uid://bv7jebheo3yyf" path="res://GameShit/PlayerController/ChatSystem/ChatBox.gd" id="1_u837s"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_bq26o"]
bg_color = Color(0.043137256, 0.043137256, 0.043137256, 0.6509804)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_u837s"]
bg_color = Color(0.14767182, 0.14767182, 0.14767176, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_aksbt"]
bg_color = Color(0.24840015, 0.24840021, 0.24840006, 1)
[node name="ChatBox" type="Control" unique_id=756491211]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_u837s")
[node name="Panel" type="Panel" parent="." unique_id=1311922339]
layout_mode = 0
offset_right = 384.0
offset_bottom = 264.0
[node name="Panel2" type="Panel" parent="Panel" unique_id=1474934579]
layout_mode = 0
offset_left = 8.0
offset_top = 8.0
offset_right = 376.0
offset_bottom = 256.0
[node name="TextDisplay" type="RichTextLabel" parent="Panel/Panel2" unique_id=575967085]
unique_name_in_owner = true
layout_mode = 0
offset_left = 8.0
offset_top = 8.0
offset_right = 360.0
offset_bottom = 200.0
theme_override_font_sizes/normal_font_size = 10
theme_override_font_sizes/bold_font_size = 10
theme_override_font_sizes/bold_italics_font_size = 10
theme_override_font_sizes/italics_font_size = 10
theme_override_font_sizes/mono_font_size = 10
theme_override_styles/normal = SubResource("StyleBoxFlat_bq26o")
theme_override_styles/focus = SubResource("StyleBoxFlat_u837s")
bbcode_enabled = true
[node name="Input" type="LineEdit" parent="Panel/Panel2" unique_id=484855696]
unique_name_in_owner = true
layout_mode = 0
offset_left = 8.0
offset_top = 208.0
offset_right = 304.0
offset_bottom = 239.0
theme_override_styles/normal = SubResource("StyleBoxFlat_aksbt")
theme_override_styles/read_only = SubResource("StyleBoxFlat_aksbt")
theme_override_styles/focus = SubResource("StyleBoxFlat_aksbt")
placeholder_text = "Type a message or command!"
[node name="Send" type="Button" parent="Panel/Panel2" unique_id=1540729483]
unique_name_in_owner = true
layout_mode = 0
offset_left = 312.0
offset_top = 208.0
offset_right = 360.0
offset_bottom = 240.0
text = "Send"
[connection signal="text_submitted" from="Panel/Panel2/Input" to="." method="_on_input_text_submitted"]
[connection signal="pressed" from="Panel/Panel2/Send" to="." method="_parseMessage"]
@@ -0,0 +1,10 @@
extends Node
## all command variables are stuck in here, idk why i did this but its like 5am and im done with this shit atp
var lastMessage = ""
func registerCommand(CommandID:String):
var parts = CommandID.split(":")
return load("res://GameShit/PlayerController/ChatSystem/commands/{namespace}/{id}.gd".format({"namespace": parts[0], "id": parts[1]}))
@@ -0,0 +1 @@
uid://jo7ml3jp3sd7
@@ -0,0 +1,5 @@
extends Node
func runCommand(args:Array):
print("test")
InventoryBus.givePlayerItem.emit(args[0])
@@ -0,0 +1 @@
uid://bvqkox22uye4s
@@ -0,0 +1,4 @@
extends Node
func runCommand(args:Array):
CommandBus.sendChatMessageAs.emit(args[0], args[1])
@@ -0,0 +1 @@
uid://bxu4o5bts4nwf
@@ -0,0 +1,42 @@
extends Camera3D
@export var sensitivity: float = 0.002
@export var smooth_speed: float = 15.0
var target_yaw: float = 0.0
var target_pitch: float = 0.0
func _ready() -> void:
target_yaw = rotation.y
target_pitch = rotation.x
# Capture the mouse immediately so you don't need to click to look around
Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
func _input(event: InputEvent) -> void:
# Allows you to hit 'Escape' to free your mouse cursor if needed
if event.is_action_pressed("ui_cancel"):
if Input.mouse_mode == Input.MOUSE_MODE_CAPTURED:
Input.mouse_mode = Input.MOUSE_MODE_VISIBLE
else:
Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
# Always looks around when the mouse moves (as long as it's captured)
if event is InputEventMouseMotion and Input.mouse_mode == Input.MOUSE_MODE_CAPTURED:
target_yaw -= event.relative.x * sensitivity
target_pitch -= event.relative.y * sensitivity
target_pitch = clamp(target_pitch, deg_to_rad(-89), deg_to_rad(89))
# Zoom implementation (Clamped safely between 10 and 75 FOV)
if event is InputEventMouseButton:
if Input.is_key_pressed(KEY_ALT):
if event.button_index == MOUSE_BUTTON_WHEEL_DOWN:
fov = clamp(fov + 5, 10, 75)
elif event.button_index == MOUSE_BUTTON_WHEEL_UP:
fov = clamp(fov - 5, 10, 75)
func _process(delta: float) -> void:
# Smooth Rotation
rotation.y = lerp_angle(rotation.y, target_yaw, smooth_speed * delta)
rotation.x = lerp(rotation.x, target_pitch, smooth_speed * delta)
@@ -0,0 +1 @@
uid://bcx7cyoq31cw6
@@ -0,0 +1,111 @@
extends CharacterBody3D
@export var isShiny : bool = false;
@export var geraldColor : Color = Color(0.673, 0.03, 0.35, 1.0);
@export var glowStrength : int = 2;
@export_group("Movement")
@export var speed = 5.0
@export var jump_velocity = 4.5
@export var fly_speed = 8.0 # How fast you fly up/down/around
@export var is_flying : bool = false # Toggle this in the inspector or via code
# Get the gravity from the project settings
var gravity = ProjectSettings.get_setting("physics/3d/default_gravity")
var PlayerMaterial : StandardMaterial3D = StandardMaterial3D.new();
func save():
Save.saveGameData("test.tres")
func loadGame():
Save.loadGameData("test.tres")
func fcm():
$Camera3D/CanvasLayer/ChatBox.visible = not $Camera3D/CanvasLayer/ChatBox.visible
if $Camera3D/CanvasLayer/ChatBox.visible:
Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
MainGame.isInputLocked = true
else:
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
MainGame.isInputLocked = false
func _ready() -> void:
MainGame.hideChatbox.connect(fcm)
$Camera3D/MeshInstance3D.material_override = PlayerMaterial
if isShiny:
PlayerMaterial.emission_enabled = true;
PlayerMaterial.emission = geraldColor;
PlayerMaterial.emission_energy_multiplier = glowStrength;
PlayerMaterial.roughness = 0.05;
PlayerMaterial.metallic = 1.0;
PlayerMaterial.albedo_color = geraldColor;
$Label3D.text=MainGame.username
func _process(delta: float) -> void:
if Input.is_action_just_pressed("fly"):
is_flying = not is_flying
if !MainGame.isInputLocked:
if Input.is_action_just_pressed("save"):
save()
elif Input.is_action_just_pressed("load"):
loadGame()
if !$Camera3D/CanvasLayer/ChatBox/Panel/Panel2/Input.has_focus():
if Input.is_action_just_pressed("chat"):
$Camera3D/CanvasLayer/ChatBox.visible = not $Camera3D/CanvasLayer/ChatBox.visible
if $Camera3D/CanvasLayer/ChatBox.visible:
Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
MainGame.isInputLocked = true
else:
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
MainGame.isInputLocked = false
func _physics_process(delta):
if is_flying:
handle_flight_movement(delta)
else:
if !MainGame.isInputLocked:
handle_ground_movement(delta)
move_and_slide()
func handle_ground_movement(delta):
if not is_on_floor():
velocity.y -= gravity * delta
if Input.is_action_just_pressed("ui_accept") and is_on_floor():
velocity.y = jump_velocity
var input_dir = Input.get_vector("move_left", "move_right", "move_forward", "move_backward")
var cam_basis = $Camera3D.global_transform.basis
var forward = Vector3(cam_basis.z.x, 0, cam_basis.z.z).normalized()
var right = Vector3(cam_basis.x.x, 0, cam_basis.x.z).normalized()
var direction = (forward * input_dir.y + right * input_dir.x).normalized()
if direction != Vector3.ZERO:
velocity.x = direction.x * speed
velocity.z = direction.z * speed
else:
velocity.x = 0
velocity.z = 0
func handle_flight_movement(delta):
var input_dir = Input.get_vector("move_left", "move_right", "move_forward", "move_backward")
var cam_basis = $Camera3D.global_transform.basis
var forward = Vector3(cam_basis.z.x, 0, cam_basis.z.z).normalized()
var right = Vector3(cam_basis.x.x, 0, cam_basis.x.z).normalized()
var direction = (forward * input_dir.y + right * input_dir.x).normalized()
if direction != Vector3.ZERO:
velocity.x = direction.x * fly_speed
velocity.z = direction.z * fly_speed
else:
velocity.x = 0
velocity.z = 0
var fly_up = Input.is_physical_key_pressed(KEY_SPACE)
var fly_down = Input.is_physical_key_pressed(KEY_C)
var fly_dir = 0
if fly_up:
fly_dir += 1
if fly_down:
fly_dir -= 1
velocity.y = fly_dir * fly_speed
@@ -0,0 +1 @@
uid://b7x6n68hgibrl
@@ -0,0 +1,84 @@
extends RayCast3D
var current_target: Node = null
var curTarget: Node = null
@export var mode = 0;
var rot : int = 0
func _process(delta: float) -> void:
if Input.is_key_pressed(KEY_E):
rot += 2
if Input.is_key_pressed(KEY_Q):
rot -= 2
if Input.is_key_pressed(KEY_1):
mode = 0
elif Input.is_key_pressed(KEY_2):
mode = 1
elif Input.is_key_pressed(KEY_3):
mode = 2
func spawnObjectByID(ObjectID:String, position:Vector3, rotation:int):
var segments = ObjectID.split(":")
var objectScene = load("res://WorldObjects/{namespace}/{id}.tscn".format({"namespace": segments[0], "id": segments[1]}))
var object = objectScene.instantiate()
object.global_position = position
object.rotation_degrees = Vector3(0, rotation, 0)
get_tree().current_scene.get_node("objects").add_child(object)
func _input(event: InputEvent) -> void:
if event is InputEventMouseButton:
if not MainGame.canPlaceBlock:
var is_left = event.button_index == MOUSE_BUTTON_LEFT
var is_right = event.button_index == MOUSE_BUTTON_RIGHT
if is_left or is_right:
if event.pressed:
if is_colliding():
var collider = get_collider()
var target = _find_interactable_node(collider)
if target:
current_target = target
if current_target.has_method("_interact_press"):
# If it's a right click, pass true for the alt interaction
current_target._interact_press(is_right)
else:
# Handle releasing the click
if current_target and current_target.has_method("_interact_release"):
current_target._interact_release()
current_target = null
elif MainGame.canPlaceBlock:
var is_left = event.button_index == MOUSE_BUTTON_LEFT
if is_left:
if event.pressed:
spawnObjectByID(MainGame.selectedBlockID, get_collision_point(), rot)
if MainGame.currentHeldItemID == "base:hammer":
var is_left = event.button_index == MOUSE_BUTTON_LEFT
if is_left:
if event.pressed:
var collider = get_collider()
var target = _findBreakableNode(collider)
if target:
curTarget = target
if curTarget.has_method("_destroy"):
curTarget._destroy()
func _find_interactable_node(node: Node) -> Node:
while node != null:
if node.has_method("_interact_press"):
return node
node = node.get_parent()
return null
func _findBreakableNode(node: Node) -> Node:
while node != null:
if node.has_method("_destroy"):
return node
node = node.get_parent()
return null
@@ -0,0 +1 @@
uid://d2r0ovdfa5y18
@@ -0,0 +1,104 @@
[gd_scene format=3 uid="uid://h6pvjvocpe1y"]
[ext_resource type="Script" uid="uid://bcx7cyoq31cw6" path="res://GameShit/PlayerController/ControllerSystem/CameraDrag.gd" id="1_2be4l"]
[ext_resource type="Script" uid="uid://b7x6n68hgibrl" path="res://GameShit/PlayerController/ControllerSystem/Gerald.gd" id="1_3mwrl"]
[ext_resource type="Texture2D" uid="uid://djghgojdnndiq" path="res://GameShit/PlayerController/ControllerSystem/crosshair.png" id="3_1hgir"]
[ext_resource type="Script" uid="uid://d2r0ovdfa5y18" path="res://GameShit/PlayerController/ControllerSystem/Interact.gd" id="3_y00gc"]
[ext_resource type="Script" uid="uid://csqbc3n5gn47h" path="res://GameShit/PlayerController/Hotbar/HotBar.gd" id="6_y6phc"]
[ext_resource type="PackedScene" uid="uid://cjdago36f5tk1" path="res://GameShit/PlayerController/Hotbar/HotbarSlot.tscn" id="7_eb4xd"]
[ext_resource type="Resource" uid="uid://ng8hm4a1u2ya" path="res://GameShit/PlayerController/Hotbar/MainBar.res" id="8_jteqg"]
[ext_resource type="PackedScene" uid="uid://bliihydr5ja7g" path="res://GameShit/PlayerController/ChatSystem/ChatBox.tscn" id="8_x05u2"]
[sub_resource type="SphereMesh" id="SphereMesh_3mwrl"]
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_3mwrl"]
[node name="PlayerController" type="CharacterBody3D" unique_id=1597560541 groups=["saveable"]]
script = ExtResource("1_3mwrl")
glowStrength = 140000
[node name="Camera3D" type="Camera3D" parent="." unique_id=866350707]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.496, 0)
current = true
script = ExtResource("1_2be4l")
[node name="MeshInstance3D" type="MeshInstance3D" parent="Camera3D" unique_id=1586810034]
mesh = SubResource("SphereMesh_3mwrl")
[node name="RayCast3D" type="RayCast3D" parent="Camera3D" unique_id=725234463]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 0, -0.51586515)
target_position = Vector3(0, -4, 0)
script = ExtResource("3_y00gc")
[node name="CanvasLayer" type="CanvasLayer" parent="Camera3D" unique_id=1005709652]
[node name="TextureRect" type="TextureRect" parent="Camera3D/CanvasLayer" unique_id=1252526888]
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -10.400024
offset_top = -9.740021
offset_right = 10.400024
offset_bottom = 9.740021
grow_horizontal = 2
grow_vertical = 2
scale = Vector2(0.5, 0.5)
size_flags_horizontal = 4
size_flags_vertical = 4
texture = ExtResource("3_1hgir")
metadata/_edit_use_anchors_ = true
[node name="HotBar" type="Control" parent="Camera3D/CanvasLayer" unique_id=1228004643 node_paths=PackedStringArray("HotbarContainer")]
layout_mode = 3
anchors_preset = 7
anchor_left = 0.5
anchor_top = 1.0
anchor_right = 0.5
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 0
size_flags_horizontal = 4
size_flags_vertical = 8
script = ExtResource("6_y6phc")
slotScene = ExtResource("7_eb4xd")
HotbarContainer = NodePath("HBoxContainer")
hotbar = ExtResource("8_jteqg")
metadata/_edit_use_anchors_ = true
[node name="HBoxContainer" type="HBoxContainer" parent="Camera3D/CanvasLayer/HotBar" unique_id=569216010]
custom_minimum_size = Vector2(40, 40)
layout_mode = 1
anchors_preset = 7
anchor_left = 0.5
anchor_top = 1.0
anchor_right = 0.5
anchor_bottom = 1.0
offset_left = -196.0
offset_top = -40.0
offset_right = 196.0
grow_horizontal = 2
grow_vertical = 0
theme_override_constants/separation = 50
alignment = 1
metadata/_edit_use_anchors_ = true
[node name="ChatBox" parent="Camera3D/CanvasLayer" unique_id=756491211 instance=ExtResource("8_x05u2")]
visible = false
anchors_preset = 4
anchor_top = 0.5
anchor_right = 0.0
anchor_bottom = 0.5
grow_horizontal = 1
pivot_offset = Vector2(0, 120)
metadata/_edit_use_anchors_ = true
[node name="CollisionShape3D" type="CollisionShape3D" parent="." unique_id=639269486]
transform = Transform3D(0.5, 0, 0, 0, 1, 0, 0, 0, 0.5, 0, 0, 0)
shape = SubResource("CapsuleShape3D_3mwrl")
[node name="Label3D" type="Label3D" parent="." unique_id=2066773761]
transform = Transform3D(-0.9999846, 0, 0.0055676177, 0, 1, 0, -0.0055676177, 0, -0.9999846, 0, 1.6802876, 0)
text = "USERNAME"
Binary file not shown.

After

Width:  |  Height:  |  Size: 197 B

@@ -0,0 +1,42 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://djghgojdnndiq"
path.s3tc="res://.godot/imported/crosshair.png-6671a2781fe821ac2264c60589cc7d1e.s3tc.ctex"
path.etc2="res://.godot/imported/crosshair.png-6671a2781fe821ac2264c60589cc7d1e.etc2.ctex"
metadata={
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://GameShit/PlayerController/ControllerSystem/crosshair.png"
dest_files=["res://.godot/imported/crosshair.png-6671a2781fe821ac2264c60589cc7d1e.s3tc.ctex", "res://.godot/imported/crosshair.png-6671a2781fe821ac2264c60589cc7d1e.etc2.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0
@@ -0,0 +1,83 @@
extends Control
@export var slotScene : PackedScene
@export var HotbarContainer : HBoxContainer
@export var hotbar : HotbarResource
func updateHotbar(hotbar: HotbarResource):
for child in HotbarContainer.get_children():
child.queue_free()
for index in hotbar.slots.size():
var item = hotbar.slots[index]
var slotInstance = slotScene.instantiate()
HotbarContainer.add_child(slotInstance)
if item:
var is_selected = (MainGame.selectedSlot == index)
if is_selected:
MainGame.currentHeldItemID = item.ID
slotInstance.setItem(item, is_selected)
func givePlayerItem(ID:String, ):
var segments = ID.split(":")
for index in hotbar.slots.size():
var item = hotbar.slots[index]
if item.ID == "base:air":
hotbar.slots[index] = load("res://GameShit/ItemHandlers/{namespace}/{id}.tres".format({"namespace": segments[0], "id": segments[1]}))
updateHotbar(hotbar)
return
else:
print("there will be a UIThrowException call eventually but im too lazy to implement it rn")
print("UI.Command.give.InventoryFullException")
func _ready() -> void:
## connect the InventoryBus signal for the shit
InventoryBus.givePlayerItem.connect(givePlayerItem)
## throw in some default slots
if hotbar.slots.is_empty():
hotbar.slots.clear()
for i in range(0,12):
hotbar.slots.append(load("res://GameShit/ItemHandlers/base/air.tres"))
## give the player the default tools
givePlayerItem("base:hammer")
givePlayerItem("base:interact")
updateHotbar(hotbar)
func _process(delta: float) -> void:
if Input.is_key_pressed(KEY_1):
MainGame.selectedSlot = 0
updateHotbar(hotbar)
elif Input.is_key_pressed(KEY_2):
MainGame.selectedSlot = 1
updateHotbar(hotbar)
elif Input.is_key_pressed(KEY_3):
MainGame.selectedSlot = 2
updateHotbar(hotbar)
elif Input.is_key_pressed(KEY_4):
MainGame.selectedSlot = 3
updateHotbar(hotbar)
elif Input.is_key_pressed(KEY_5):
MainGame.selectedSlot = 4
updateHotbar(hotbar)
elif Input.is_key_pressed(KEY_6):
MainGame.selectedSlot = 5
updateHotbar(hotbar)
elif Input.is_key_pressed(KEY_7):
MainGame.selectedSlot = 6
updateHotbar(hotbar)
elif Input.is_key_pressed(KEY_8):
MainGame.selectedSlot = 7
updateHotbar(hotbar)
elif Input.is_key_pressed(KEY_9):
MainGame.selectedSlot = 8
updateHotbar(hotbar)
@@ -0,0 +1 @@
uid://csqbc3n5gn47h
@@ -0,0 +1,7 @@
extends Resource
class_name HotbarResource
@export var slots: Array[ItemData] = []
func add_item(item: ItemData):
slots.append(item)
@@ -0,0 +1 @@
uid://cn3kiiwucv8kg
@@ -0,0 +1,29 @@
[gd_scene format=3 uid="uid://cjdago36f5tk1"]
[ext_resource type="Script" uid="uid://c0tnorcgu7dev" path="res://GameShit/PlayerController/Hotbar/hotbar_slot.gd" id="1_hqux7"]
[node name="HotbarSlot" type="Control" unique_id=395686084]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_hqux7")
[node name="Button" type="Button" parent="." unique_id=342233194]
layout_mode = 0
offset_left = -24.0
offset_top = -24.0
offset_right = 24.0
offset_bottom = 24.0
[node name="TextureRect" type="TextureRect" parent="." unique_id=1767675987]
layout_mode = 0
offset_left = -16.0
offset_top = -16.0
offset_right = 16.0
offset_bottom = 16.0
mouse_filter = 2
[connection signal="pressed" from="Button" to="." method="_on_button_pressed"]
@@ -0,0 +1,7 @@
extends Resource
class_name ItemData
@export var Name : String = ""
@export var ID : String = "base:null"
@export var description: String = ""
@export var texture : Texture2D
@@ -0,0 +1 @@
uid://cjb16s8q73wkx
Binary file not shown.
@@ -0,0 +1,28 @@
extends Control
# Pre-create flat styles to override the engine's default skin
var active_style = StyleBoxFlat.new()
var inactive_style = StyleBoxFlat.new()
func _ready():
# Configure your exact custom colors
active_style.bg_color = Color(0.378, 0.378, 0.378, 0.988)
inactive_style.bg_color = Color(0.075, 0.075, 0.075, 0.988)
func setItem(item, isActive):
$TextureRect.texture = item.texture
if isActive:
# Force-override all basic button background states
$Button.add_theme_stylebox_override("normal", active_style)
$Button.add_theme_stylebox_override("hover", active_style)
$Button.add_theme_stylebox_override("pressed", active_style)
else:
$Button.add_theme_stylebox_override("normal", inactive_style)
$Button.add_theme_stylebox_override("hover", inactive_style)
$Button.add_theme_stylebox_override("pressed", inactive_style)
func _on_button_pressed() -> void:
pass # Replace with function body.
@@ -0,0 +1 @@
uid://c0tnorcgu7dev
+18
View File
@@ -0,0 +1,18 @@
[orchestration type="OScript" load_steps=3 format=3 uid="uid://bu2uolph3gknp"]
[obj type="OScriptGraph" id="OScriptGraph_orolp"]
graph_name = &"EventGraph"
flags = 8
[obj type="OScriptVariable" id="OScriptVariable_17qkh"]
name = "GlobalMachine1Temp"
category = "Default"
classification = "type:int"
type = 2
default_value = 0
[resource]
base_type = &"Node"
brief_description = "Empty template suitable for all Objects"
variables = Array[OScriptVariable]([SubResource("OScriptVariable_17qkh")])
graphs = Array[OScriptGraph]([SubResource("OScriptGraph_orolp")])
+8
View File
@@ -0,0 +1,8 @@
extends Node
var langs : Dictionary = {
"en-US": "res://Language/locale/en-US.gd"
}
func loadLanguage():
return load(langs[MainGame.loadedLanguage]).new().keys
+1
View File
@@ -0,0 +1 @@
uid://cq1njdji6gak6
+6
View File
@@ -0,0 +1,6 @@
extends Node
var keys = {
"base.command.commandNotFoundError": "Unknown command!",
"base.ui.chatAndCommands": "Chat"
}
Loaded 100 of 828 files, more files were not shown because too many files have changed in this diff. Show more