UI Image Types, UI Input Infos,Shader/Material Creator, Inkscape Layer Splitter
|
@ -0,0 +1,91 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
height="16"
|
||||
viewBox="0 0 16 16"
|
||||
width="16"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="LocaleManager.svg"
|
||||
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
|
||||
xml:space="preserve"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"><defs
|
||||
id="defs8"><linearGradient
|
||||
inkscape:collect="never"
|
||||
id="linearGradient3074"><stop
|
||||
style="stop-color:#e26708;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3070" /><stop
|
||||
style="stop-color:#bb3c00;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3072" /></linearGradient><radialGradient
|
||||
xlink:href="#linearGradient45008"
|
||||
id="radialGradient3076"
|
||||
cx="30.688875"
|
||||
cy="30.069115"
|
||||
fx="30.688875"
|
||||
fy="30.069115"
|
||||
r="14.05412"
|
||||
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||
xlink:href="#linearGradient45008"
|
||||
id="linearGradient45010"
|
||||
x1="-31.87768"
|
||||
y1="22.065159"
|
||||
x2="-31.87768"
|
||||
y2="48.78738"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(101.16951,-6.5921995)" /><linearGradient
|
||||
id="linearGradient45008"><stop
|
||||
style="stop-color:#e14500;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop45004" /><stop
|
||||
style="stop-color:#e17900;stop-opacity:1;"
|
||||
offset="0.59811592"
|
||||
id="stop45012" /><stop
|
||||
style="stop-color:#e19c00;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop45006" /></linearGradient><linearGradient
|
||||
xlink:href="#linearGradient45008"
|
||||
id="linearGradient46715"
|
||||
x1="31.917692"
|
||||
y1="47.524929"
|
||||
x2="31.917692"
|
||||
y2="22.632998"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(1.7923447e-6)" /></defs><sodipodi:namedview
|
||||
id="namedview6"
|
||||
pagecolor="#505050"
|
||||
bordercolor="#eeeeee"
|
||||
borderopacity="1"
|
||||
inkscape:showpageshadow="0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#505050"
|
||||
showgrid="false"
|
||||
inkscape:zoom="32.000001"
|
||||
inkscape:cx="4.7343748"
|
||||
inkscape:cy="6.6718747"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1017"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g2210" /><g
|
||||
id="g2210"
|
||||
transform="matrix(0.54328517,0,0,0.54328517,-9.4489315,-11.300948)"><rect
|
||||
style="fill:#852d2e;fill-opacity:1;stroke:none;stroke-width:1.91428;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
|
||||
id="rect18059"
|
||||
width="28.875259"
|
||||
height="28.300053"
|
||||
x="17.679815"
|
||||
y="21.376339"
|
||||
ry="3.1061034" /><path
|
||||
id="path22238"
|
||||
style="font-size:15.4401px;line-height:1;font-family:Jost;-inkscape-font-specification:Jost;fill:#fdf1f1;fill-opacity:1;stroke:none;stroke-width:2.89394;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0.391011;paint-order:stroke fill markers"
|
||||
d="m 35.800767,30.266741 -7.595488,17.174838 h 2.217254 l 2.075187,-4.906371 h 6.585802 l 2.085334,4.906371 h 2.217254 z m 0,4.510616 2.501389,5.890689 h -5.007849 z" /><path
|
||||
id="path25310"
|
||||
style="font-size:15.4401px;line-height:1;font-family:Jost;-inkscape-font-specification:Jost;fill:#fdf1f1;fill-opacity:1;stroke:none;stroke-width:2.89394;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0.391011;paint-order:stroke fill markers"
|
||||
d="m 37.111246,24.018043 -0.644373,0.182657 -16.611644,0.451569 0.187731,2.100558 14.876404,-0.547973 c -1.156046,1.581957 -2.832671,3.197615 -5.02307,4.840413 v -2.374543 c 0.425909,-0.365071 0.370018,-0.578461 -0.177584,-0.6393 h -1.922972 v 3.927128 c 0,3.528974 -1.788418,6.267475 -5.378236,8.214494 l 1.547511,1.73524 c 4.076573,-2.555463 6.052971,-6.147518 5.931281,-10.771692 l 1.552585,1.456184 c 2.555464,-2.068709 4.750322,-4.288977 6.575656,-6.66191 0.486758,0.06084 0.634101,-0.02554 0.451567,-0.268912 z" /></g></svg>
|
After Width: | Height: | Size: 4.2 KiB |
|
@ -0,0 +1,37 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bsm7qny5mvlo3"
|
||||
path="res://.godot/imported/LocaleManager.svg-99f36ef341f5e7ee54b895bbac31c4da.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/rokojori_action_library/Icons/LocaleManager.svg"
|
||||
dest_files=["res://.godot/imported/LocaleManager.svg-99f36ef341f5e7ee54b895bbac31c4da.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
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/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
|
||||
svg/scale=1.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
|
@ -0,0 +1,88 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
height="16"
|
||||
viewBox="0 0 16 16"
|
||||
width="16"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="LocalizedString.svg"
|
||||
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
|
||||
xml:space="preserve"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"><defs
|
||||
id="defs8"><linearGradient
|
||||
inkscape:collect="never"
|
||||
id="linearGradient3074"><stop
|
||||
style="stop-color:#e26708;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3070" /><stop
|
||||
style="stop-color:#bb3c00;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3072" /></linearGradient><radialGradient
|
||||
xlink:href="#linearGradient45008"
|
||||
id="radialGradient3076"
|
||||
cx="30.688875"
|
||||
cy="30.069115"
|
||||
fx="30.688875"
|
||||
fy="30.069115"
|
||||
r="14.05412"
|
||||
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||
xlink:href="#linearGradient45008"
|
||||
id="linearGradient45010"
|
||||
x1="-31.87768"
|
||||
y1="22.065159"
|
||||
x2="-31.87768"
|
||||
y2="48.78738"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(101.16951,-6.5921995)" /><linearGradient
|
||||
id="linearGradient45008"><stop
|
||||
style="stop-color:#e14500;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop45004" /><stop
|
||||
style="stop-color:#e17900;stop-opacity:1;"
|
||||
offset="0.59811592"
|
||||
id="stop45012" /><stop
|
||||
style="stop-color:#e19c00;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop45006" /></linearGradient><linearGradient
|
||||
xlink:href="#linearGradient45008"
|
||||
id="linearGradient46715"
|
||||
x1="31.917692"
|
||||
y1="47.524929"
|
||||
x2="31.917692"
|
||||
y2="22.632998"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(1.7923447e-6)" /></defs><sodipodi:namedview
|
||||
id="namedview6"
|
||||
pagecolor="#505050"
|
||||
bordercolor="#eeeeee"
|
||||
borderopacity="1"
|
||||
inkscape:showpageshadow="0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#505050"
|
||||
showgrid="false"
|
||||
inkscape:zoom="22.627418"
|
||||
inkscape:cx="9.7669118"
|
||||
inkscape:cy="9.4796497"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1017"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g5662" /><g
|
||||
id="g2210"
|
||||
transform="matrix(0.54328517,0,0,0.54328517,-9.4489315,-11.300948)"><g
|
||||
id="g5662"
|
||||
transform="matrix(1.0859597,0,0,1.0859597,-2.7801068,-3.6771574)"><g
|
||||
id="g26109"
|
||||
style="stroke:#000000;stroke-opacity:1"><path
|
||||
id="path22238"
|
||||
style="font-size:15.4401px;line-height:1;font-family:Jost;-inkscape-font-specification:Jost;fill:#fdf1f1;fill-opacity:1;stroke:#000000;stroke-width:2.66487;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||
d="m 35.526985,31.257051 -6.994263,15.815355 h 2.041746 l 1.910924,-4.518005 h 6.0645 l 1.920268,4.518005 h 2.041746 z m 0,4.153576 2.30339,5.424408 h -4.61145 z" /><path
|
||||
id="path25310"
|
||||
style="font-size:15.4401px;line-height:1;font-family:Jost;-inkscape-font-specification:Jost;fill:#fdf1f1;fill-opacity:1;stroke:#000000;stroke-width:2.66487;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||
d="m 36.733732,25.502972 -0.593367,0.168199 -15.296741,0.415825 0.172871,1.934287 13.698855,-0.504598 c -1.064539,1.456736 -2.60845,2.944506 -4.625466,4.457268 v -2.186585 c 0.392195,-0.336174 0.340729,-0.532673 -0.163528,-0.588696 h -1.770758 v 3.616274 c 0,3.249636 -1.646855,5.77137 -4.952519,7.564271 l 1.425017,1.597887 c 3.75389,-2.353184 5.573845,-5.660908 5.461788,-9.919053 l 1.429689,1.340919 c 2.353185,-1.90496 4.374308,-3.949481 6.055156,-6.134584 0.448229,0.05603 0.583909,-0.02352 0.415823,-0.247626 z" /></g></g></g></svg>
|
After Width: | Height: | Size: 4.1 KiB |
|
@ -0,0 +1,37 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://lcmu0013ne2h"
|
||||
path="res://.godot/imported/LocalizedString.svg-3a59d02d2bc7086c51a04f8a6bdbf103.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/rokojori_action_library/Icons/LocalizedString.svg"
|
||||
dest_files=["res://.godot/imported/LocalizedString.svg-3a59d02d2bc7086c51a04f8a6bdbf103.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
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/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
|
||||
svg/scale=1.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
|
@ -0,0 +1,91 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
height="16"
|
||||
viewBox="0 0 16 16"
|
||||
width="16"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="UI.svg"
|
||||
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
|
||||
xml:space="preserve"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"><defs
|
||||
id="defs8"><linearGradient
|
||||
inkscape:collect="never"
|
||||
id="linearGradient3074"><stop
|
||||
style="stop-color:#e26708;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3070" /><stop
|
||||
style="stop-color:#bb3c00;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3072" /></linearGradient><radialGradient
|
||||
xlink:href="#linearGradient45008"
|
||||
id="radialGradient3076"
|
||||
cx="30.688875"
|
||||
cy="30.069115"
|
||||
fx="30.688875"
|
||||
fy="30.069115"
|
||||
r="14.05412"
|
||||
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||
xlink:href="#linearGradient45008"
|
||||
id="linearGradient45010"
|
||||
x1="-31.87768"
|
||||
y1="22.065159"
|
||||
x2="-31.87768"
|
||||
y2="48.78738"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(101.16951,-6.5921995)" /><linearGradient
|
||||
id="linearGradient45008"><stop
|
||||
style="stop-color:#e14500;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop45004" /><stop
|
||||
style="stop-color:#e17900;stop-opacity:1;"
|
||||
offset="0.59811592"
|
||||
id="stop45012" /><stop
|
||||
style="stop-color:#e19c00;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop45006" /></linearGradient><linearGradient
|
||||
xlink:href="#linearGradient45008"
|
||||
id="linearGradient46715"
|
||||
x1="31.917692"
|
||||
y1="47.524929"
|
||||
x2="31.917692"
|
||||
y2="22.632998"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(1.7923447e-6)" /></defs><sodipodi:namedview
|
||||
id="namedview6"
|
||||
pagecolor="#505050"
|
||||
bordercolor="#eeeeee"
|
||||
borderopacity="1"
|
||||
inkscape:showpageshadow="0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#505050"
|
||||
showgrid="false"
|
||||
inkscape:zoom="11.313709"
|
||||
inkscape:cx="-3.9332813"
|
||||
inkscape:cy="8.9714168"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1017"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g2210" /><g
|
||||
id="g2210"
|
||||
transform="matrix(0.54328517,0,0,0.54328517,-9.4489315,-11.300948)"><rect
|
||||
style="fill:#7eff8b;fill-opacity:1;stroke:none;stroke-width:1.91428;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
|
||||
id="rect18059"
|
||||
width="28.875259"
|
||||
height="28.300053"
|
||||
x="17.679815"
|
||||
y="21.376339"
|
||||
ry="3.1061034" /><path
|
||||
d="m 23.117844,28.045513 v 9.646092 q 0,1.354558 0.430996,2.360214 0.430996,0.985133 1.210892,1.662412 0.800421,0.656755 1.847124,0.964609 1.046704,0.328377 2.27812,0.328377 1.190369,0 2.237072,-0.328377 1.067227,-0.307854 1.847124,-0.964609 0.800421,-0.677279 1.231416,-1.662412 0.451519,-1.005656 0.451519,-2.360214 v -9.646092 h -3.468488 v 9.399809 q 0,0.73885 -0.266807,1.292987 -0.246283,0.533613 -0.759373,0.841467 -0.492566,0.307854 -1.25194,0.307854 -0.80042,0 -1.31351,-0.307854 -0.492566,-0.307854 -0.759373,-0.841467 -0.266807,-0.554137 -0.266807,-1.292987 v -9.399809 z"
|
||||
id="path52091"
|
||||
style="font-weight:bold;font-size:20.5236px;line-height:1;font-family:Jost;-inkscape-font-specification:'Jost Bold';stroke-width:1.42896;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:0.391011;paint-order:stroke fill markers" /><path
|
||||
d="m 37.60751,28.045513 v 14.36652 h 3.509536 v -14.36652 z"
|
||||
id="path52093"
|
||||
style="font-weight:bold;font-size:20.5236px;line-height:1;font-family:Jost;-inkscape-font-specification:'Jost Bold';stroke-width:1.42896;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:0.391011;paint-order:stroke fill markers" /></g></svg>
|
After Width: | Height: | Size: 4.1 KiB |
|
@ -0,0 +1,37 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://ckkgs7jyu6mln"
|
||||
path="res://.godot/imported/UI.svg-2c1dbd29acf8bed567f460a1a3f0addd.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/rokojori_action_library/Icons/UI.svg"
|
||||
dest_files=["res://.godot/imported/UI.svg-2c1dbd29acf8bed567f460a1a3f0addd.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
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/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
|
||||
svg/scale=1.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
|
@ -0,0 +1,97 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
height="16"
|
||||
viewBox="0 0 16 16"
|
||||
width="16"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="UIBorderImage.svg"
|
||||
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
|
||||
xml:space="preserve"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"><defs
|
||||
id="defs8"><linearGradient
|
||||
inkscape:collect="never"
|
||||
id="linearGradient3074"><stop
|
||||
style="stop-color:#e26708;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3070" /><stop
|
||||
style="stop-color:#bb3c00;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3072" /></linearGradient><radialGradient
|
||||
xlink:href="#linearGradient45008"
|
||||
id="radialGradient3076"
|
||||
cx="30.688875"
|
||||
cy="30.069115"
|
||||
fx="30.688875"
|
||||
fy="30.069115"
|
||||
r="14.05412"
|
||||
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||
xlink:href="#linearGradient45008"
|
||||
id="linearGradient45010"
|
||||
x1="-31.87768"
|
||||
y1="22.065159"
|
||||
x2="-31.87768"
|
||||
y2="48.78738"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(101.16951,-6.5921995)" /><linearGradient
|
||||
id="linearGradient45008"><stop
|
||||
style="stop-color:#e14500;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop45004" /><stop
|
||||
style="stop-color:#e17900;stop-opacity:1;"
|
||||
offset="0.59811592"
|
||||
id="stop45012" /><stop
|
||||
style="stop-color:#e19c00;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop45006" /></linearGradient><linearGradient
|
||||
xlink:href="#linearGradient45008"
|
||||
id="linearGradient46715"
|
||||
x1="31.917692"
|
||||
y1="47.524929"
|
||||
x2="31.917692"
|
||||
y2="22.632998"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(1.7923447e-6)" /></defs><sodipodi:namedview
|
||||
id="namedview6"
|
||||
pagecolor="#505050"
|
||||
bordercolor="#eeeeee"
|
||||
borderopacity="1"
|
||||
inkscape:showpageshadow="0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#505050"
|
||||
showgrid="false"
|
||||
inkscape:zoom="32.000001"
|
||||
inkscape:cx="4.9062498"
|
||||
inkscape:cy="6.4843747"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1017"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g2210" /><g
|
||||
id="g2210"
|
||||
transform="matrix(0.54328517,0,0,0.54328517,-9.4489315,-11.300948)"><rect
|
||||
style="fill:#0f4253;fill-opacity:1;stroke:#7eff8b;stroke-width:1.84065396;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
|
||||
id="rect59067"
|
||||
width="23.640898"
|
||||
height="24.273623"
|
||||
x="20.498316"
|
||||
y="23.504595"
|
||||
ry="3.3351934" /><path
|
||||
style="fill:#0f534c;fill-opacity:1;stroke:#afc6b2;stroke-width:1.84065;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
|
||||
d="M 27.256968,21.894023 V 49.27375"
|
||||
id="path71007" /><path
|
||||
style="fill:#0f534c;fill-opacity:1;stroke:#afc6b2;stroke-width:1.84065;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
|
||||
d="M 36.977921,21.894023 V 49.27375"
|
||||
id="path71387" /><path
|
||||
style="fill:#0f534c;fill-opacity:1;stroke:#afc6b2;stroke-width:1.84065;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
|
||||
d="M 45.807308,30.72341 H 18.427581"
|
||||
id="path71393" /><path
|
||||
style="fill:#0f534c;fill-opacity:1;stroke:#afc6b2;stroke-width:1.84065;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
|
||||
d="M 45.807308,40.444363 H 18.427581"
|
||||
id="path71395" /></g></svg>
|
After Width: | Height: | Size: 4.0 KiB |
|
@ -0,0 +1,37 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dog4illbbf485"
|
||||
path="res://.godot/imported/UIBorderImage.svg-f6615c79aa5e9b955ba62ad71b18f6b3.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/rokojori_action_library/Icons/UIBorderImage.svg"
|
||||
dest_files=["res://.godot/imported/UIBorderImage.svg-f6615c79aa5e9b955ba62ad71b18f6b3.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
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/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
|
||||
svg/scale=1.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
|
@ -0,0 +1,126 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
height="16"
|
||||
viewBox="0 0 16 16"
|
||||
width="16"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="UIImage.svg"
|
||||
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
|
||||
xml:space="preserve"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"><defs
|
||||
id="defs8"><linearGradient
|
||||
inkscape:collect="never"
|
||||
id="linearGradient79042"><stop
|
||||
style="stop-color:#23c185;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop79038" /><stop
|
||||
style="stop-color:#4fd881;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop79040" /></linearGradient><linearGradient
|
||||
inkscape:collect="never"
|
||||
id="linearGradient78910"><stop
|
||||
style="stop-color:#1a8f81;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop78906" /><stop
|
||||
style="stop-color:#0e4943;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop78908" /></linearGradient><linearGradient
|
||||
inkscape:collect="never"
|
||||
id="linearGradient3074"><stop
|
||||
style="stop-color:#e26708;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3070" /><stop
|
||||
style="stop-color:#bb3c00;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3072" /></linearGradient><radialGradient
|
||||
xlink:href="#linearGradient45008"
|
||||
id="radialGradient3076"
|
||||
cx="30.688875"
|
||||
cy="30.069115"
|
||||
fx="30.688875"
|
||||
fy="30.069115"
|
||||
r="14.05412"
|
||||
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||
xlink:href="#linearGradient45008"
|
||||
id="linearGradient45010"
|
||||
x1="-31.87768"
|
||||
y1="22.065159"
|
||||
x2="-31.87768"
|
||||
y2="48.78738"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(101.16951,-6.5921995)" /><linearGradient
|
||||
id="linearGradient45008"><stop
|
||||
style="stop-color:#e14500;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop45004" /><stop
|
||||
style="stop-color:#e17900;stop-opacity:1;"
|
||||
offset="0.59811592"
|
||||
id="stop45012" /><stop
|
||||
style="stop-color:#e19c00;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop45006" /></linearGradient><linearGradient
|
||||
xlink:href="#linearGradient45008"
|
||||
id="linearGradient46715"
|
||||
x1="31.917692"
|
||||
y1="47.524929"
|
||||
x2="31.917692"
|
||||
y2="22.632998"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(1.7923447e-6)" /><linearGradient
|
||||
inkscape:collect="never"
|
||||
xlink:href="#linearGradient78910"
|
||||
id="linearGradient78912"
|
||||
x1="32.750168"
|
||||
y1="46.742851"
|
||||
x2="32.405045"
|
||||
y2="23.907238"
|
||||
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||
inkscape:collect="never"
|
||||
xlink:href="#linearGradient79042"
|
||||
id="linearGradient79044"
|
||||
x1="31.911888"
|
||||
y1="30.104225"
|
||||
x2="31.816128"
|
||||
y2="45.519703"
|
||||
gradientUnits="userSpaceOnUse" /></defs><sodipodi:namedview
|
||||
id="namedview6"
|
||||
pagecolor="#505050"
|
||||
bordercolor="#eeeeee"
|
||||
borderopacity="1"
|
||||
inkscape:showpageshadow="0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#505050"
|
||||
showgrid="false"
|
||||
inkscape:zoom="32.000001"
|
||||
inkscape:cx="1.2656249"
|
||||
inkscape:cy="8.9843746"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1017"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g2210" /><g
|
||||
id="g2210"
|
||||
transform="matrix(0.54328517,0,0,0.54328517,-9.4489315,-11.300948)"><rect
|
||||
style="fill:url(#linearGradient78912);fill-opacity:1;stroke:#7eff8b;stroke-width:1.84065396;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers"
|
||||
id="rect58768"
|
||||
width="23.640898"
|
||||
height="24.273623"
|
||||
x="20.498316"
|
||||
y="23.504595" /><path
|
||||
style="fill:url(#linearGradient79044);fill-opacity:1;stroke:none;stroke-width:1.84065;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers"
|
||||
d="m 20.890098,40.446237 2.196347,1.138847 3.375867,-2.969136 3.335193,0.732116 2.898856,-2.875732 1.80446,-0.153198 1.874659,-4.07829 2.378777,3.929434 2.321957,1.297536 2.5629,-0.190691 1.00407,-0.57281 -0.162694,11.510485 -24.647892,-0.325386 z"
|
||||
id="path58939"
|
||||
sodipodi:nodetypes="cccccccccccccc" /><rect
|
||||
style="fill:none;fill-opacity:1;stroke:#7eff8b;stroke-width:1.84065396;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers"
|
||||
id="rect59067"
|
||||
width="23.640898"
|
||||
height="24.273623"
|
||||
x="20.498316"
|
||||
y="23.504595" /></g></svg>
|
After Width: | Height: | Size: 4.9 KiB |
|
@ -0,0 +1,37 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://rmumn1ofnjcn"
|
||||
path="res://.godot/imported/UIImage.svg-6f379e8066b7c9ce860269da60e5f378.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/rokojori_action_library/Icons/UIImage.svg"
|
||||
dest_files=["res://.godot/imported/UIImage.svg-6f379e8066b7c9ce860269da60e5f378.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
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/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
|
||||
svg/scale=1.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
|
@ -0,0 +1,306 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
height="16"
|
||||
viewBox="0 0 16 16"
|
||||
width="16"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="UIInputIcon.svg"
|
||||
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs8">
|
||||
<linearGradient
|
||||
inkscape:collect="never"
|
||||
id="linearGradient4306">
|
||||
<stop
|
||||
style="stop-color:#1d52db;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4302" />
|
||||
<stop
|
||||
style="stop-color:#1941a1;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop4304" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="never"
|
||||
id="linearGradient4235">
|
||||
<stop
|
||||
style="stop-color:#cbe6ef;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4229" />
|
||||
<stop
|
||||
style="stop-color:#5a87eb;stop-opacity:1;"
|
||||
offset="0.19370517"
|
||||
id="stop4231" />
|
||||
<stop
|
||||
style="stop-color:#1b47d2;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop4233" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="never"
|
||||
id="linearGradient4225">
|
||||
<stop
|
||||
style="stop-color:#507de7;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4221" />
|
||||
<stop
|
||||
style="stop-color:#507de7;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4223" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="never"
|
||||
id="linearGradient10929">
|
||||
<stop
|
||||
style="stop-color:#1d52db;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop10925" />
|
||||
<stop
|
||||
style="stop-color:#152ebe;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop10927" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="never"
|
||||
id="linearGradient10150">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop10146" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop10148" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="never"
|
||||
id="linearGradient2791">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop2787" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0.14208783"
|
||||
id="stop2795" />
|
||||
<stop
|
||||
style="stop-color:#d1d1d1;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop2789" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="never"
|
||||
id="linearGradient2770">
|
||||
<stop
|
||||
style="stop-color:#cbe6ef;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop2766" />
|
||||
<stop
|
||||
style="stop-color:#5a87eb;stop-opacity:1;"
|
||||
offset="0.17897609"
|
||||
id="stop2774" />
|
||||
<stop
|
||||
style="stop-color:#1b47d2;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop2768" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="never"
|
||||
id="linearGradient2638">
|
||||
<stop
|
||||
style="stop-color:#5d7dc1;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop2634" />
|
||||
<stop
|
||||
style="stop-color:#5769b2;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop2636" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="never"
|
||||
xlink:href="#linearGradient2638"
|
||||
id="linearGradient2640"
|
||||
x1="5.5241203"
|
||||
y1="10.765742"
|
||||
x2="13.133284"
|
||||
y2="9.9986429"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<radialGradient
|
||||
inkscape:collect="never"
|
||||
xlink:href="#linearGradient2770"
|
||||
id="radialGradient2772"
|
||||
cx="6.0584679"
|
||||
cy="3.4481783"
|
||||
fx="6.0584679"
|
||||
fy="3.4481783"
|
||||
r="6.1221313"
|
||||
gradientTransform="matrix(5.0826908,0,0,3.6467239,-66.856408,-12.223992)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<radialGradient
|
||||
inkscape:collect="never"
|
||||
xlink:href="#linearGradient2791"
|
||||
id="radialGradient2793"
|
||||
cx="8.2773142"
|
||||
cy="-0.40066716"
|
||||
fx="8.2773142"
|
||||
fy="-0.40066716"
|
||||
r="3.5763378"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.3511087,0.88894441,-1.2043804,1.1301171,-44.627958,-4.5249969)" />
|
||||
<linearGradient
|
||||
inkscape:collect="never"
|
||||
xlink:href="#linearGradient10150"
|
||||
id="linearGradient10152"
|
||||
x1="9.9135351"
|
||||
y1="9.4398756"
|
||||
x2="13.804861"
|
||||
y2="14.243992"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.0751754,0,0,1.2252487,-40.687824,-2.829307)" />
|
||||
<linearGradient
|
||||
inkscape:collect="never"
|
||||
xlink:href="#linearGradient10929"
|
||||
id="linearGradient10931"
|
||||
x1="9.6400452"
|
||||
y1="10.368964"
|
||||
x2="13.999562"
|
||||
y2="9.1402229"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="never"
|
||||
xlink:href="#linearGradient10929"
|
||||
id="linearGradient21854"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="9.6400452"
|
||||
y1="10.368964"
|
||||
x2="13.999562"
|
||||
y2="9.1402229" />
|
||||
<radialGradient
|
||||
xlink:href="#linearGradient2770"
|
||||
id="radialGradient4227"
|
||||
cx="-9.8261538"
|
||||
cy="18.616741"
|
||||
fx="-9.8261538"
|
||||
fy="18.616741"
|
||||
r="5.1002684"
|
||||
gradientTransform="matrix(5.431432,0,0,5.8931817,42.567142,-93.472425)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="never"
|
||||
xlink:href="#linearGradient4306"
|
||||
id="linearGradient4308"
|
||||
x1="-8.7532034"
|
||||
y1="19.344957"
|
||||
x2="-5.8460503"
|
||||
y2="26.179316"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="namedview6"
|
||||
pagecolor="#505050"
|
||||
bordercolor="#eeeeee"
|
||||
borderopacity="1"
|
||||
inkscape:showpageshadow="0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#505050"
|
||||
showgrid="false"
|
||||
inkscape:zoom="16"
|
||||
inkscape:cx="-2.3125"
|
||||
inkscape:cy="6.03125"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1017"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g23847" />
|
||||
<g
|
||||
id="g560"
|
||||
transform="translate(0.08802232,0.240022)">
|
||||
<g
|
||||
id="g2600"
|
||||
transform="translate(-0.10534391,-0.05878716)">
|
||||
<g
|
||||
id="g10886"
|
||||
transform="matrix(0.94595208,0,0,0.94595208,0.43331955,0.43182955)">
|
||||
<g
|
||||
id="g23847"
|
||||
transform="matrix(0.87503353,0,0,0.87503353,36.077721,2.1854082)">
|
||||
<g
|
||||
id="g32301"
|
||||
transform="matrix(1.1197583,0,0,1.1197583,3.8403849,-0.76965192)">
|
||||
<path
|
||||
style="fill:none;fill-opacity:1;stroke:#7eff8b;stroke-width:1.07756;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
|
||||
d="m -38.937833,8.1543478 0.757598,-5.6509766 c 0,0 1.116113,-3.8636664 6.162985,-3.7310475 5.640619,0.148221 6.199636,3.9665048 6.199636,3.9665048 l 0.65429,5.3762764"
|
||||
id="path10154"
|
||||
sodipodi:nodetypes="ccscc" />
|
||||
<ellipse
|
||||
style="fill:#7eff8b;fill-opacity:1;stroke-width:16.9499;stroke-linecap:round;stroke-linejoin:round;paint-order:markers stroke fill"
|
||||
id="ellipse1592"
|
||||
cx="-32.067799"
|
||||
cy="8.848732"
|
||||
rx="8.048171"
|
||||
ry="5.7743936" />
|
||||
<g
|
||||
id="g1937"
|
||||
style="fill:#27662e;fill-opacity:1"
|
||||
transform="matrix(1.1524743,0,0,1.519301,-41.307553,-5.7056967)">
|
||||
<path
|
||||
id="ellipse1590"
|
||||
style="fill:#27662e;fill-opacity:1;stroke-width:10.8761;stroke-linecap:round;stroke-linejoin:round;paint-order:markers stroke fill"
|
||||
d="m 8.0173214,5.9128109 a 5.9294205,3.2270737 0 0 0 -0.670585,0.022181 h -4.75739 L 2.0590368,9.0714601 h 0.035924 a 5.9294205,3.2270737 0 0 0 -0.00684,0.069502 5.9294205,3.2270737 0 0 0 5.9292031,3.2266729 5.9294205,3.2270737 0 0 0 5.9189381,-3.1290742 l 0.0633,0.00148 -0.578208,-3.3050473 H 8.6964598 A 5.9294205,3.2270737 0 0 0 8.0173214,5.9128109 Z" />
|
||||
</g>
|
||||
<ellipse
|
||||
style="fill:#298d33;fill-opacity:1;stroke-width:13.2325;stroke-linecap:round;stroke-linejoin:round;paint-order:markers stroke fill"
|
||||
id="path878"
|
||||
cx="-32.067799"
|
||||
cy="3.5686307"
|
||||
rx="6.2830691"
|
||||
ry="4.5079699" />
|
||||
<ellipse
|
||||
style="fill:#499152;fill-opacity:1;stroke-width:13.015;stroke-linecap:round;stroke-linejoin:round;paint-order:markers stroke fill"
|
||||
id="ellipse2589"
|
||||
cx="-32.050579"
|
||||
cy="3.2546873"
|
||||
rx="6.17976"
|
||||
ry="4.4338484" />
|
||||
<path
|
||||
id="rect2581"
|
||||
style="fill:#beffc5;fill-opacity:1;stroke-width:5.72241;stroke-linecap:round;stroke-linejoin:round;paint-order:markers stroke fill"
|
||||
d="m -34.514441,0.43557433 -1.025185,0.81105657 2.45453,1.938897 -2.45453,1.938897 1.025185,0.8088101 2.45453,-1.9388973 2.45256,1.9388972 1.025184,-0.8088098 -2.45453,-1.9388969 2.45453,-1.9388973 -1.025184,-0.81105657 -2.45256,1.93889697 z" />
|
||||
<path
|
||||
style="fill:none;fill-opacity:1;stroke:#4f9f3d;stroke-width:0.107756;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
|
||||
d="m -35.539626,1.246631 1.025185,-0.81105657 2.45453,1.93889697 2.45256,-1.93889707 1.025184,0.81105657"
|
||||
id="path2912" />
|
||||
<path
|
||||
style="fill:#adbcd9;fill-opacity:1;stroke:#3d9f3f;stroke-width:0.107756;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
|
||||
d="m -35.539626,5.124425 2.45453,-1.9388971"
|
||||
id="path7742" />
|
||||
<path
|
||||
style="fill:#adbcd9;fill-opacity:1;stroke:#3d9f3f;stroke-width:0.107756;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
|
||||
d="m -31.036697,3.1855282 2.45453,1.938897"
|
||||
id="path7744" />
|
||||
<path
|
||||
style="fill:#adbcd9;fill-opacity:1;stroke:#defbe5;stroke-width:0.107756;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
|
||||
d="m -35.539626,1.246631 2.45453,1.9388969"
|
||||
id="path7746" />
|
||||
<path
|
||||
style="fill:#8daad4;fill-opacity:1;stroke:#defbe5;stroke-width:0.107756;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
|
||||
d="m -28.582167,1.2466309 -2.45453,1.9388973"
|
||||
id="path10079" />
|
||||
<path
|
||||
style="fill:none;fill-opacity:1;stroke:#defbe5;stroke-width:0.107756;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
|
||||
d="m -28.582167,5.1244252 -1.025184,0.8088097 -2.45256,-1.9388972 -2.45453,1.9388974 -1.025185,-0.8088101"
|
||||
id="path10081" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 11 KiB |
|
@ -0,0 +1,37 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c8t6wo7phh6hv"
|
||||
path="res://.godot/imported/UIInputIcon.svg-a74c1ff64f04f884d6c9c1865a8a9a48.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/rokojori_action_library/Icons/UIInputIcon.svg"
|
||||
dest_files=["res://.godot/imported/UIInputIcon.svg-a74c1ff64f04f884d6c9c1865a8a9a48.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
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/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
|
||||
svg/scale=1.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
After Width: | Height: | Size: 8.5 KiB |
|
@ -0,0 +1,37 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://35m7k7knlg6j"
|
||||
path="res://.godot/imported/UIRegion.svg-742ebe6956a1a25b816d45d4e44b7631.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/rokojori_action_library/Icons/UIRegion.svg"
|
||||
dest_files=["res://.godot/imported/UIRegion.svg-742ebe6956a1a25b816d45d4e44b7631.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
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/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
|
||||
svg/scale=1.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
|
@ -0,0 +1,87 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
height="16"
|
||||
viewBox="0 0 16 16"
|
||||
width="16"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="UIText.svg"
|
||||
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
|
||||
xml:space="preserve"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"><defs
|
||||
id="defs8"><linearGradient
|
||||
inkscape:collect="never"
|
||||
id="linearGradient3074"><stop
|
||||
style="stop-color:#e26708;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3070" /><stop
|
||||
style="stop-color:#bb3c00;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3072" /></linearGradient><radialGradient
|
||||
xlink:href="#linearGradient45008"
|
||||
id="radialGradient3076"
|
||||
cx="30.688875"
|
||||
cy="30.069115"
|
||||
fx="30.688875"
|
||||
fy="30.069115"
|
||||
r="14.05412"
|
||||
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||
xlink:href="#linearGradient45008"
|
||||
id="linearGradient45010"
|
||||
x1="-31.87768"
|
||||
y1="22.065159"
|
||||
x2="-31.87768"
|
||||
y2="48.78738"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(101.16951,-6.5921995)" /><linearGradient
|
||||
id="linearGradient45008"><stop
|
||||
style="stop-color:#e14500;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop45004" /><stop
|
||||
style="stop-color:#e17900;stop-opacity:1;"
|
||||
offset="0.59811592"
|
||||
id="stop45012" /><stop
|
||||
style="stop-color:#e19c00;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop45006" /></linearGradient><linearGradient
|
||||
xlink:href="#linearGradient45008"
|
||||
id="linearGradient46715"
|
||||
x1="31.917692"
|
||||
y1="47.524929"
|
||||
x2="31.917692"
|
||||
y2="22.632998"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(1.7923447e-6)" /></defs><sodipodi:namedview
|
||||
id="namedview6"
|
||||
pagecolor="#505050"
|
||||
bordercolor="#eeeeee"
|
||||
borderopacity="1"
|
||||
inkscape:showpageshadow="0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#505050"
|
||||
showgrid="false"
|
||||
inkscape:zoom="22.627418"
|
||||
inkscape:cx="14.142135"
|
||||
inkscape:cy="7.977048"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1017"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g2210" /><g
|
||||
id="g2210"
|
||||
transform="matrix(0.54328517,0,0,0.54328517,-9.4489315,-11.300948)"><g
|
||||
aria-label="txt"
|
||||
id="text52860"
|
||||
style="font-weight:bold;font-size:23.1418px;line-height:1;font-family:Jost;-inkscape-font-specification:'Jost Bold';fill:#7eff8b;stroke-width:1.35958;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1.35958, 2.71916;paint-order:stroke fill markers"><path
|
||||
d="m 18.718338,32.055097 v 2.892725 h 7.127674 v -2.892725 z m 1.874486,-3.702688 v 14.347916 h 3.378702 V 28.352409 Z"
|
||||
id="path53225" /><path
|
||||
d="m 34.153937,32.055097 -1.967053,2.800158 -1.943911,-2.800158 h -4.049815 l 4.142382,5.183763 -4.3738,5.461465 h 4.049815 l 2.175329,-3.077859 2.198471,3.077859 h 3.887822 l -4.304375,-5.461465 4.072957,-5.183763 z"
|
||||
id="path53227" /><path
|
||||
d="m 38.388878,32.055097 v 2.892725 h 7.127674 v -2.892725 z m 1.874485,-3.702688 v 14.347916 h 3.378703 V 28.352409 Z"
|
||||
id="path53229" /></g></g></svg>
|
After Width: | Height: | Size: 3.5 KiB |
|
@ -0,0 +1,37 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://d3vdg0k44d7gs"
|
||||
path="res://.godot/imported/UIText.svg-3361615dbe2bc7106602a6f3edf78cb7.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/rokojori_action_library/Icons/UIText.svg"
|
||||
dest_files=["res://.godot/imported/UIText.svg-3361615dbe2bc7106602a6f3edf78cb7.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
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/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
|
||||
svg/scale=1.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
|
@ -25,7 +25,7 @@ namespace Rokojori
|
|||
|
||||
/** <summary for="field actions">Actions to execute</summary>*/
|
||||
[Export]
|
||||
public Action[] actions;
|
||||
public Action[] actions = new Action[ 0 ];
|
||||
|
||||
/** <summary for="field triggerDirectChildren">Whether to execute Action child nodes</summary>*/
|
||||
[Export]
|
||||
|
|
|
@ -193,7 +193,7 @@ namespace Rokojori
|
|||
{
|
||||
/** <summary for="field actions">Actions to execute</summary>*/
|
||||
[Export]
|
||||
public Action[] actions;
|
||||
public Action[] actions = new Action[ 0 ];
|
||||
|
||||
[Export]
|
||||
public bool triggerDirectChildren = true;
|
||||
|
|
|
@ -8,10 +8,10 @@ namespace Rokojori
|
|||
public partial class SetNodeState : Action
|
||||
{
|
||||
[Export]
|
||||
public Node[] enable;
|
||||
public Node[] enable = new Node[ 0 ];
|
||||
|
||||
[Export]
|
||||
public Node[] disable;
|
||||
public Node[] disable = new Node[ 0 ];
|
||||
|
||||
|
||||
protected override void _OnTrigger()
|
||||
|
|
|
@ -9,7 +9,7 @@ namespace Rokojori
|
|||
{
|
||||
/** <summary for="field actions">Actions to execute</summary>*/
|
||||
[Export]
|
||||
public Action[] actions;
|
||||
public Action[] actions = new Action[ 0 ];
|
||||
|
||||
/** <summary for="field triggerDirectChildren">Whether to execute Action child nodes</summary>*/
|
||||
[Export]
|
||||
|
|
|
@ -9,7 +9,7 @@ namespace Rokojori
|
|||
{
|
||||
/** <summary for="field actions">Actions to execute</summary>*/
|
||||
[Export]
|
||||
public Action[] actions;
|
||||
public Action[] actions = new Action[ 0 ];
|
||||
|
||||
/** <summary for="field triggerDirectChildren">Whether to execute Action child nodes</summary>*/
|
||||
[Export]
|
||||
|
|
|
@ -9,7 +9,7 @@ namespace Rokojori
|
|||
{
|
||||
/** <summary for="field actions">Actions to execute</summary>*/
|
||||
[Export]
|
||||
public Action[] actions;
|
||||
public Action[] actions = new Action[ 0 ];
|
||||
|
||||
/** <summary for="field triggerDirectChildren">Whether to execute Action child nodes</summary>*/
|
||||
[Export]
|
||||
|
|
|
@ -5,10 +5,12 @@ using Godot;
|
|||
namespace Rokojori
|
||||
{
|
||||
[Tool]
|
||||
[GlobalClass]
|
||||
public partial class TimeLooper : Node
|
||||
[GlobalClass, Icon("res://addons/rokojori_action_library/Icons/OnEvent.svg") ]
|
||||
public partial class OnTick : Node
|
||||
{
|
||||
|
||||
[Export]
|
||||
public Action action;
|
||||
|
||||
bool _active = false;
|
||||
|
||||
|
@ -31,9 +33,6 @@ namespace Rokojori
|
|||
[Export]
|
||||
public TimeLine timeLine;
|
||||
|
||||
[Export]
|
||||
public Action action;
|
||||
|
||||
int _eventID = -1;
|
||||
|
||||
void SetActive( bool active )
|
|
@ -17,7 +17,7 @@ namespace Rokojori
|
|||
public Mode mode = Mode.Wait_For_All_To_Finish;
|
||||
|
||||
[Export]
|
||||
public Action[] actions;
|
||||
public Action[] actions = new Action[ 0 ];
|
||||
|
||||
[Export]
|
||||
public bool triggerDirectChildren = true;
|
||||
|
|
|
@ -14,24 +14,6 @@ namespace Rokojori
|
|||
[GlobalClass, Icon("res://addons/rokojori_action_library/Icons/SequenceAction.svg")]
|
||||
public partial class SequenceAction : Action
|
||||
{
|
||||
|
||||
/*
|
||||
|
||||
int dispatchStart();
|
||||
void dispatchCancelled( int id );
|
||||
void dispatchEnd( int id );
|
||||
|
||||
int getLastSequenceActionID();
|
||||
GDVIRTUAL1( cancelAction, int );
|
||||
|
||||
/* signal onSequenceDone * /
|
||||
|
||||
|
||||
|
||||
*/
|
||||
|
||||
|
||||
|
||||
int _dispatchCounter = 0;
|
||||
|
||||
public int GetLastSequenceActionID()
|
||||
|
|
|
@ -19,7 +19,7 @@ namespace Rokojori
|
|||
public TimeLine timeLine;
|
||||
|
||||
[Export]
|
||||
public Action[] actions;
|
||||
public Action[] actions = new Action[ 0 ];
|
||||
|
||||
/** <summary for="field triggerDirectChildren">Whether to execute Action child nodes</summary>*/
|
||||
[Export]
|
||||
|
|
|
@ -14,7 +14,7 @@ namespace Rokojori
|
|||
public FlashEffect flashEffect;
|
||||
|
||||
[Export]
|
||||
public Node3D[] targets;
|
||||
public Node3D[] targets = new Node3D[ 0 ];
|
||||
|
||||
int animationID = -1;
|
||||
int actionID = -1;
|
||||
|
|
|
@ -18,7 +18,7 @@ namespace Rokojori
|
|||
public HighlightEffect highlighter;
|
||||
|
||||
[Export]
|
||||
public Node3D[] targets;
|
||||
public Node3D[] targets = new Node3D[ 0 ];
|
||||
|
||||
protected override void _OnTrigger()
|
||||
{
|
||||
|
|
|
@ -15,7 +15,7 @@ namespace Rokojori
|
|||
|
||||
public class HighlightAnimation
|
||||
{
|
||||
public Node3D[] targets;
|
||||
public Node3D[] targets = new Node3D[ 0 ];
|
||||
public int tweenID = -1;
|
||||
|
||||
public List<Material> materials = new List<Material>();
|
||||
|
|
|
@ -14,7 +14,7 @@ namespace Rokojori
|
|||
public ShakeEffect shakeEffect;
|
||||
|
||||
[Export]
|
||||
public Node3D[] targets;
|
||||
public Node3D[] targets = new Node3D[ 0 ];
|
||||
|
||||
List<TransformData> _targetValues;
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ namespace Rokojori
|
|||
public partial class TransformAnimations:Resource
|
||||
{
|
||||
[Export]
|
||||
public TransformCurve[] curves;
|
||||
public TransformCurve[] curves = new TransformCurve[ 0 ];
|
||||
|
||||
[Export]
|
||||
public TimeLine timeline;
|
||||
|
|
|
@ -0,0 +1,53 @@
|
|||
|
||||
using Godot;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Rokojori
|
||||
{
|
||||
public enum AppPlatformOS
|
||||
{
|
||||
Windows,
|
||||
MacOS,
|
||||
iOS,
|
||||
Android,
|
||||
MetaHorizonOS,
|
||||
Switch,
|
||||
Switch2,
|
||||
PS4,
|
||||
PS5,
|
||||
XBoxOne,
|
||||
XBoxSeriesXS
|
||||
}
|
||||
|
||||
public enum AppLauncher
|
||||
{
|
||||
Native,
|
||||
Steam,
|
||||
Epic,
|
||||
Web
|
||||
}
|
||||
|
||||
[Tool]
|
||||
[GlobalClass,Icon("res://addons/rokojori_action_library/Icons/SensorManager.svg")]
|
||||
public partial class App: Node
|
||||
{
|
||||
[Export]
|
||||
public AppPlatformOS os;
|
||||
|
||||
[Export]
|
||||
public AppLauncher launcher;
|
||||
|
||||
int _fps = 60;
|
||||
|
||||
[Export]
|
||||
public int fps
|
||||
{
|
||||
get => _fps;
|
||||
set { _fps = value; Engine.MaxFps = _fps; }
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
|
@ -7,7 +7,7 @@ namespace Rokojori
|
|||
{
|
||||
public class DuoWaveTable
|
||||
{
|
||||
float[] _samples;
|
||||
float[] _samples = new float[ 0 ];
|
||||
float _lowPitch;
|
||||
float _highPitch;
|
||||
int _maxSamples;
|
||||
|
|
|
@ -7,7 +7,7 @@ namespace Rokojori
|
|||
{
|
||||
public class WaveTable:iPhaseGenerator
|
||||
{
|
||||
float[] _samples;
|
||||
float[] _samples = new float[ 0 ];
|
||||
|
||||
public float[] samples => _samples;
|
||||
|
||||
|
|
|
@ -82,7 +82,7 @@ namespace Rokojori
|
|||
_nodes.ForEach( n => n.UpdateBuffserSize() );
|
||||
}
|
||||
|
||||
float[] _zeroBuffer;
|
||||
float[] _zeroBuffer = new float[ 0 ];
|
||||
|
||||
public float[] ClearBuffer( float[] buffer )
|
||||
{
|
||||
|
|
|
@ -6,7 +6,7 @@ namespace Rokojori
|
|||
{
|
||||
public partial class BitView
|
||||
{
|
||||
byte[] _data;
|
||||
byte[] _data = new byte[ 0 ];
|
||||
|
||||
int _internalViewOffset = 0;
|
||||
public int bitOffset => _internalViewOffset;
|
||||
|
|
|
@ -7,7 +7,7 @@ namespace Rokojori
|
|||
{
|
||||
public class ByteView
|
||||
{
|
||||
byte[] _data;
|
||||
byte[] _data = new byte[ 0 ];
|
||||
int _start;
|
||||
int _size;
|
||||
|
||||
|
|
|
@ -54,7 +54,7 @@ namespace Rokojori
|
|||
}
|
||||
}
|
||||
|
||||
public bool hasFileExtension( string extension, bool forceDot = true )
|
||||
public bool HasFileExtension( string extension, bool forceDot = true )
|
||||
{
|
||||
if ( fileExtension == null )
|
||||
{
|
||||
|
@ -118,6 +118,31 @@ namespace Rokojori
|
|||
return rp;
|
||||
}
|
||||
|
||||
public string absoluteParentPath
|
||||
{
|
||||
get
|
||||
{
|
||||
return RegexUtility.ParentPath( fullPath );
|
||||
}
|
||||
}
|
||||
|
||||
public FilePath ChangeFileName( string fileName )
|
||||
{
|
||||
var parentPath = absoluteParentPath;
|
||||
|
||||
if ( ! parentPath.EndsWith( "/" ) )
|
||||
{
|
||||
parentPath += "/";
|
||||
}
|
||||
|
||||
return Absolute( parentPath + fileName + fileExtension );
|
||||
}
|
||||
|
||||
public FilePath AddToFileName( string fileNameAddition )
|
||||
{
|
||||
return ChangeFileName( fileName + fileNameAddition );
|
||||
}
|
||||
|
||||
public static FilePath Absolute( string path )
|
||||
{
|
||||
return FilePath.Create( path, FilePathType.Absolute );
|
||||
|
|
|
@ -17,10 +17,6 @@ namespace Rokojori
|
|||
[Export]
|
||||
public string testClass;
|
||||
|
||||
public override void _Ready()
|
||||
{
|
||||
ExportFiles();
|
||||
}
|
||||
|
||||
public override void _Process( double delta )
|
||||
{
|
||||
|
|
|
@ -6,6 +6,32 @@ namespace Rokojori
|
|||
{
|
||||
public class HierarchyName
|
||||
{
|
||||
public static string Of( Resource resource, string seperator = " ▸ " )
|
||||
{
|
||||
var path = resource.ResourcePath;
|
||||
|
||||
path = RegexUtility.Replace( path, "::.*$", "" );
|
||||
path = RegexUtility.Replace( path, "^res:\\/\\/", "" );
|
||||
|
||||
var splitted = RegexUtility.SplitPaths( path );
|
||||
|
||||
|
||||
var sb = new StringBuilder();
|
||||
|
||||
for ( int i = 0; i < splitted.Count; i++ )
|
||||
{
|
||||
if ( i != 0 )
|
||||
{
|
||||
sb.Append( seperator );
|
||||
}
|
||||
|
||||
sb.Append( splitted[ i ] );
|
||||
}
|
||||
|
||||
return sb.ToString();
|
||||
|
||||
}
|
||||
|
||||
public static string Of( Node node, string seperator = " ▸ " )
|
||||
{
|
||||
if ( node == null )
|
||||
|
|
|
@ -81,9 +81,29 @@ namespace Rokojori
|
|||
return default(T);
|
||||
}
|
||||
|
||||
public static void ForEachInRoot<T>( this Node node, Action<T> callback ) where T:class
|
||||
{
|
||||
if ( node == null )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var tree = node.IsInsideTree() ? node.GetTree() : null;
|
||||
|
||||
if ( tree == null )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
var root = tree.Root;
|
||||
ForEach<T>( root, callback );
|
||||
}
|
||||
|
||||
public static void ForEachInScene<T>( Action<T> callback ) where T:class
|
||||
{
|
||||
var root = Root.Get().GetWindow();
|
||||
var root = Root.Window();
|
||||
RJLog.Log( "Iterating:", root );
|
||||
ForEach<T>( root, callback );
|
||||
}
|
||||
|
||||
|
@ -210,6 +230,17 @@ namespace Rokojori
|
|||
RJLog.Error( node, messages );
|
||||
}
|
||||
|
||||
public static void LogInfo( this Resource resource, params object[] messages )
|
||||
{
|
||||
RJLog.Log( resource, messages );
|
||||
}
|
||||
|
||||
public static void LogError( this Resource resource, params object[] messages )
|
||||
{
|
||||
RJLog.Error( resource, messages );
|
||||
}
|
||||
|
||||
|
||||
public static Node DeepCopyTo( this Node node, Node parent )
|
||||
{
|
||||
return CopyNodeHierarchy( node, parent );
|
||||
|
@ -463,6 +494,16 @@ namespace Rokojori
|
|||
return list;
|
||||
}
|
||||
|
||||
public static T FindInParents<T>( Node child )
|
||||
{
|
||||
return (T) (object) NodesWalker.Get().GetInParents( child, c => c is T );
|
||||
}
|
||||
|
||||
public static T FindParentThatIs<T>( this Node child )
|
||||
{
|
||||
return FindInParents<T>( child );
|
||||
}
|
||||
|
||||
public static int TypeIndex<T>( Node parent, T child ) where T:Node
|
||||
{
|
||||
var counter = 0;
|
||||
|
|
|
@ -35,9 +35,10 @@ namespace Rokojori
|
|||
return tree.Root;
|
||||
}
|
||||
|
||||
public static Root Get()
|
||||
static Root Get()
|
||||
{
|
||||
var r = Window();
|
||||
|
||||
return _singleton;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,86 @@
|
|||
using Godot;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Rokojori
|
||||
{
|
||||
public class SceneFileHTMLScriptJS
|
||||
{
|
||||
public static string script =
|
||||
@"
|
||||
function main()
|
||||
{
|
||||
let elements = document.querySelectorAll( '.closeable' );
|
||||
|
||||
for ( let i = 0; i < elements.length; i++ )
|
||||
{
|
||||
let element = elements[ i ];
|
||||
|
||||
element.addEventListener( 'click',
|
||||
( ev )=>
|
||||
{
|
||||
|
||||
let target = element.getAttribute( 'data-close-target' );
|
||||
|
||||
let targetElement = element;
|
||||
|
||||
let parentRegex = /^\.\.\s/;
|
||||
|
||||
while ( parentRegex.test( target ) )
|
||||
{
|
||||
target = target.replace( parentRegex, '' );
|
||||
targetElement = targetElement.parentElement;
|
||||
}
|
||||
|
||||
let rootRegex = /^\.\.\.\s/;
|
||||
|
||||
if ( rootRegex.test( target ) )
|
||||
{
|
||||
target = target.replace( rootRegex, '' );
|
||||
targetElement = document.documentElement;
|
||||
}
|
||||
|
||||
let closeTarget = element.parentElement.querySelector( target );
|
||||
|
||||
console.log( ev, target, closeTarget);
|
||||
closeTarget.style.display = closeTarget.style.display === 'none' ? 'block' : 'none';
|
||||
|
||||
element.setAttribute( 'data-close-state', closeTarget.style.display );
|
||||
|
||||
ev.preventDefault();
|
||||
return false;
|
||||
},
|
||||
true
|
||||
);
|
||||
}
|
||||
|
||||
let references = document.querySelectorAll( 'gd-reference' );
|
||||
|
||||
for ( let i = 0; i < references.length; i++ )
|
||||
{
|
||||
let reference = references[ i ];
|
||||
|
||||
reference.addEventListener( 'click',
|
||||
( ev )=>
|
||||
{
|
||||
let ref = reference.getAttribute( 'reference' );
|
||||
let selector = `[id=##${ref}##]`;
|
||||
|
||||
console.log( 'querying', selector );
|
||||
let referenced = document.querySelector( selector );
|
||||
|
||||
referenced.scrollIntoView( { 'behavior': 'smooth' });
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
window.addEventListener( 'load', () => { main(); });
|
||||
|
||||
|
||||
".Replace( "##", "\"");
|
||||
}
|
||||
}
|
|
@ -0,0 +1,243 @@
|
|||
using Godot;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Rokojori
|
||||
{
|
||||
public class SceneFileHTMLExporter
|
||||
{
|
||||
public static readonly XMLElementNodeName GD_ExternalResource = XMLElementNodeName.Create( "gd-external-resource" );
|
||||
public static readonly XMLElementNodeName GD_SubResource = XMLElementNodeName.Create( "gd-sub-resource" );
|
||||
|
||||
public static readonly XMLElementNodeName GD_Node = XMLElementNodeName.Create( "gd-node" );
|
||||
public static readonly XMLElementNodeName GD_Name = XMLElementNodeName.Create( "gd-name" );
|
||||
public static readonly XMLElementNodeName GD_Type = XMLElementNodeName.Create( "gd-type" );
|
||||
public static readonly XMLElementNodeName GD_Script = XMLElementNodeName.Create( "gd-script" );
|
||||
public static readonly XMLElementNodeName GD_Members = XMLElementNodeName.Create( "gd-members" );
|
||||
public static readonly XMLElementNodeName GD_Member = XMLElementNodeName.Create( "gd-member" );
|
||||
public static readonly XMLElementNodeName GD_Children = XMLElementNodeName.Create( "gd-children" );
|
||||
public static readonly XMLElementNodeName GD_Reference = XMLElementNodeName.Create( "gd-reference" );
|
||||
|
||||
SceneFileParser _parser;
|
||||
XMLDocument _htmlDoc;
|
||||
XMLElementNode body;
|
||||
XMLElementNode head;
|
||||
|
||||
public static void Convert( string inputPath, string outputPath )
|
||||
{
|
||||
var text = FilesSync.LoadUTF8( inputPath );
|
||||
|
||||
var parser = new SceneFileParser();
|
||||
|
||||
parser.Parse( text );
|
||||
|
||||
Export( parser, outputPath );
|
||||
}
|
||||
|
||||
public static void Export( SceneFileParser parser, string path )
|
||||
{
|
||||
new SceneFileHTMLExporter().ParseAndExport( parser, path );
|
||||
}
|
||||
|
||||
public void ParseAndExport( SceneFileParser parser, string path )
|
||||
{
|
||||
_parser = parser;
|
||||
CreateHTMLDocument();
|
||||
|
||||
AddExternalResources();
|
||||
AddNodes();
|
||||
|
||||
var exportPath = path.EndsWith( ".html" ) ? path : ( path + ".html" );
|
||||
|
||||
FilesSync.SaveUTF8( exportPath, new XMLSerializer().SerializeHtml( _htmlDoc.documentElement ) );
|
||||
}
|
||||
|
||||
|
||||
void CreateHTMLDocument()
|
||||
{
|
||||
var doc = XMLDocument.HTML();
|
||||
var html = doc.documentElement;
|
||||
|
||||
body = html.querySelector( HTMLElementName.body );
|
||||
head = html.querySelector( HTMLElementName.head );
|
||||
|
||||
head.AddHTMLScript( SceneFileHTMLScriptJS.script );
|
||||
head.AddHTMLStyle( SceneFileHTMLStyle.style );
|
||||
|
||||
|
||||
_htmlDoc = doc;
|
||||
}
|
||||
|
||||
void AddExternalResources()
|
||||
{
|
||||
var extResources = _parser.sceneFile.extResources;
|
||||
RJLog.Log( "External Resources:", extResources.Count );
|
||||
|
||||
for ( int i = 0; i < extResources.Count; i++ )
|
||||
{
|
||||
var resource = extResources[ i ];
|
||||
var attachmentElement = body;
|
||||
|
||||
var resourceElement = _htmlDoc.Create( GD_ExternalResource );
|
||||
|
||||
resourceElement.SetAttribute( "class", "resource" );
|
||||
|
||||
attachmentElement.AppendChild( resourceElement );
|
||||
|
||||
var nameElement = resourceElement.AddElement( GD_Name, resource.path.value );
|
||||
|
||||
resourceElement.AddElement( GD_Type, resource.id.value + " " + resource.uid.value + " " + resource.type.value );
|
||||
|
||||
resourceElement.SetAttribute( "id", resource.id.value );
|
||||
attachmentElement.AddElement( HTMLElementName.br );
|
||||
}
|
||||
|
||||
var subResources = _parser.sceneFile.subResources;
|
||||
RJLog.Log( "Sub Resources:", subResources.Count );
|
||||
|
||||
for ( int i = 0; i < subResources.Count; i++ )
|
||||
{
|
||||
var resource = subResources[ i ];
|
||||
var attachmentElement = body;
|
||||
|
||||
var resourceElement = _htmlDoc.Create( GD_SubResource );
|
||||
|
||||
resourceElement.SetAttribute( "class", "resource" );
|
||||
|
||||
attachmentElement.AppendChild( resourceElement );
|
||||
|
||||
|
||||
var nameElement = resourceElement.AddElement( GD_Name, resource.id.value + " " + resource.type.value );
|
||||
|
||||
var scriptOrShaderMember = resource.GetMember( "script" );
|
||||
|
||||
if ( scriptOrShaderMember == null )
|
||||
{
|
||||
scriptOrShaderMember = resource.GetMember( "shader" );
|
||||
}
|
||||
|
||||
if ( scriptOrShaderMember != null )
|
||||
{
|
||||
var scriptEntry = _parser.sceneFile.extResources.Find( e => e.id.value == scriptOrShaderMember.valueData.reference );
|
||||
var scriptType = scriptEntry == null ? "Null" : scriptEntry.path.value;
|
||||
resourceElement.AddElement( GD_Type, scriptType + "@" + scriptOrShaderMember.valueData.reference );
|
||||
}
|
||||
|
||||
resourceElement.SetAttribute( "id", resource.id.value );
|
||||
attachmentElement.AddElement( HTMLElementName.br );
|
||||
}
|
||||
}
|
||||
|
||||
void AddNodes()
|
||||
{
|
||||
var nodes = _parser.sceneFile.nodes;
|
||||
RJLog.Log( "Nodes:", nodes.Count );
|
||||
|
||||
var elementMap = new Dictionary<string,XMLElementNode>();
|
||||
|
||||
|
||||
for ( int i = 0; i < nodes.Count; i++ )
|
||||
{
|
||||
var node = nodes[ i ];
|
||||
|
||||
//RJLog.Log( i, node.name.value );
|
||||
|
||||
var attachmentElement = body;
|
||||
|
||||
var elementPath = node.elementPath;
|
||||
|
||||
var parent = node.parent.value;
|
||||
|
||||
if ( parent != null && elementMap.ContainsKey( parent ) )
|
||||
{
|
||||
attachmentElement = elementMap[ parent ].querySelector( GD_Children );
|
||||
}
|
||||
|
||||
var nodeElement = _htmlDoc.Create( GD_Node );
|
||||
|
||||
nodeElement.SetAttribute( "class", "node" );
|
||||
|
||||
var nameElement = nodeElement.AddElement( GD_Name, node.name.value );
|
||||
nameElement.SetAttribute( "class", "closeable" );
|
||||
nameElement.SetAttribute( "data-close-target", ".. " + GD_Children.selector );
|
||||
|
||||
var scriptMember = node.GetMember( "script" );
|
||||
|
||||
if ( scriptMember != null )
|
||||
{
|
||||
var scriptEntry = _parser.sceneFile.extResources.Find( e => e.id.value == scriptMember.valueData.reference );
|
||||
var scriptType = scriptEntry == null ? "Null" : scriptEntry.path.value;
|
||||
nodeElement.AddElement( GD_Type, scriptType + "@" + scriptMember.valueData.reference + "(" + node.type.value + ")" );
|
||||
}
|
||||
else
|
||||
{
|
||||
nodeElement.AddElement( GD_Type, node.type.value );
|
||||
}
|
||||
|
||||
|
||||
string scriptValue = null ;
|
||||
|
||||
if ( scriptValue != null )
|
||||
{
|
||||
nodeElement.AddElement( GD_Script, scriptValue );
|
||||
}
|
||||
|
||||
var membersElement = nodeElement.AddElement( GD_Members, "" );
|
||||
|
||||
var memberData = node.data;
|
||||
|
||||
memberData.ForEach(
|
||||
m =>
|
||||
{
|
||||
if ( m.member != null )
|
||||
{
|
||||
var mem = m.member;
|
||||
|
||||
if ( mem.valuesData != null )
|
||||
{
|
||||
|
||||
}
|
||||
else if ( mem.valueData != null )
|
||||
{
|
||||
|
||||
if ( SceneFileValueType.Variant == mem.valueData.type )
|
||||
{
|
||||
membersElement.AddElement( GD_Member, mem.name + ": " + mem.valueData );
|
||||
}
|
||||
else
|
||||
{
|
||||
var member = membersElement.AddElement( GD_Member, mem.name );
|
||||
var reference = member.AddElement( GD_Reference, mem.valueData.reference );
|
||||
reference.SetAttribute( "reference", mem.valueData.reference );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
// membersElement.AddElement( GD_Member, "Type: " + m.type + " {" + m.line + "}");
|
||||
}
|
||||
|
||||
}
|
||||
);
|
||||
|
||||
nodeElement.AddElement( GD_Children );
|
||||
|
||||
|
||||
|
||||
elementMap[ elementPath ] = nodeElement;
|
||||
|
||||
// RJLog.Log( "'" + elementPath + "'", node.name.value );
|
||||
|
||||
attachmentElement.AppendChild( nodeElement );
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,86 @@
|
|||
using Godot;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Rokojori
|
||||
{
|
||||
public class SceneFileHTMLStyle
|
||||
{
|
||||
public static string style =
|
||||
@"
|
||||
|
||||
body
|
||||
{
|
||||
overflow-x: hidden;
|
||||
margin: 2em 0em;
|
||||
font-family: Helvetica, Arial, sans;
|
||||
background: hsl(0,0%,10%);
|
||||
color: hsl(0,0%,80%)
|
||||
}
|
||||
|
||||
.closeable
|
||||
{
|
||||
cursor: pointer;
|
||||
opacity:1;
|
||||
transition: opacity 300ms ease;
|
||||
}
|
||||
|
||||
.closeable[data-close-state='none']
|
||||
{
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
.node
|
||||
{
|
||||
display: block;
|
||||
position: relative;
|
||||
left: 2em;
|
||||
}
|
||||
|
||||
.resource
|
||||
{
|
||||
display: block;
|
||||
position: relative;
|
||||
left: 2em;
|
||||
}
|
||||
|
||||
|
||||
|
||||
gd-name
|
||||
{
|
||||
border-radius: 0.5em;
|
||||
padding: 1em 1em;
|
||||
background-color: hsl(0,0%,20%);
|
||||
margin: 0.5em 1em;
|
||||
display: inline-block;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
gd-external-resource gd-name
|
||||
{
|
||||
background-color: hsl(0,50%,20%);
|
||||
}
|
||||
|
||||
gd-sub-resource gd-name
|
||||
{
|
||||
background-color: hsl(120,50%,20%);
|
||||
}
|
||||
|
||||
|
||||
gd-type
|
||||
{
|
||||
display: inline-block;
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
gd-reference
|
||||
{
|
||||
cursor:pointer;
|
||||
text-decoration:underline;
|
||||
|
||||
}
|
||||
|
||||
" ;
|
||||
}
|
||||
}
|
|
@ -10,6 +10,6 @@ namespace Rokojori
|
|||
public readonly SFHStringAttribute path = new SFHStringAttribute( "path" );
|
||||
public readonly SFHStringAttribute uid = new SFHStringAttribute( "uid" );
|
||||
public readonly SFHStringAttribute type = new SFHStringAttribute( "type" );
|
||||
|
||||
public readonly SFHStringAttribute id = new SFHStringAttribute( "id" );
|
||||
}
|
||||
}
|
|
@ -7,17 +7,37 @@ namespace Rokojori
|
|||
{
|
||||
protected SceneFileEntry _headerEntry;
|
||||
protected List<SceneFileHeaderAttributeValue> _attributes = new List<SceneFileHeaderAttributeValue>();
|
||||
protected List<SceneFileEntry> _data = new List<SceneFileEntry>();
|
||||
|
||||
public List<SceneFileEntry> data => _data;
|
||||
|
||||
public SceneFileObject()
|
||||
{
|
||||
SetAttributes();
|
||||
}
|
||||
|
||||
public SceneFileNamedValue GetMember( string name )
|
||||
{
|
||||
var entry = _data.Find( d => d.member != null && d.member.name == name );
|
||||
return entry == null ? null : entry.member;
|
||||
}
|
||||
|
||||
|
||||
public void AddData( SceneFileEntry se )
|
||||
{
|
||||
if ( SceneFileLinesLexer.SeperatorMatcher.Matches( se.type ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
_data.Add( se );
|
||||
}
|
||||
|
||||
public void CreateFromHeaderEntry( SceneFileEntry headerEntry )
|
||||
{
|
||||
ReadAttributes( headerEntry.header );
|
||||
|
||||
_CreateFromHeaderEntry( headerEntry);
|
||||
_CreateFromHeaderEntry( headerEntry );
|
||||
}
|
||||
|
||||
protected virtual void _CreateFromHeaderEntry( SceneFileEntry headerEntry )
|
||||
|
|
|
@ -7,7 +7,7 @@ namespace Rokojori
|
|||
{
|
||||
public static readonly string headerType = "sub_resource";
|
||||
|
||||
public readonly SFHStringAttribute id = new SFHStringAttribute( "uid" );
|
||||
public readonly SFHStringAttribute id = new SFHStringAttribute( "id" );
|
||||
public readonly SFHStringAttribute type = new SFHStringAttribute( "type" );
|
||||
}
|
||||
}
|
|
@ -4,11 +4,11 @@ using System.Text.RegularExpressions;
|
|||
|
||||
namespace Rokojori
|
||||
{
|
||||
public class GodotTextSceneLexer:Lexer
|
||||
public class SceneFileLinesLexer:Lexer
|
||||
{
|
||||
public static List<LexerEvent> Lex( string source )
|
||||
{
|
||||
var lexer = new GodotTextSceneLexer();
|
||||
var lexer = new SceneFileLinesLexer();
|
||||
var events = lexer.LexToList( source );
|
||||
|
||||
if ( lexer.hasError )
|
||||
|
@ -50,15 +50,15 @@ namespace Rokojori
|
|||
"SubMemberEnd", "\\}\\]"
|
||||
);
|
||||
|
||||
public GodotTextSceneLexer()
|
||||
public SceneFileLinesLexer()
|
||||
{
|
||||
AddAllMatchers(
|
||||
GodotTextSceneLexer.HeaderMatcher,
|
||||
GodotTextSceneLexer.SeperatorMatcher,
|
||||
GodotTextSceneLexer.SubMemberStartMatcher,
|
||||
GodotTextSceneLexer.SubMemberEndMatcher,
|
||||
GodotTextSceneLexer.SubMemberMatcher,
|
||||
GodotTextSceneLexer.MemberMatcher,
|
||||
SceneFileLinesLexer.HeaderMatcher,
|
||||
SceneFileLinesLexer.SeperatorMatcher,
|
||||
SceneFileLinesLexer.SubMemberStartMatcher,
|
||||
SceneFileLinesLexer.SubMemberEndMatcher,
|
||||
SceneFileLinesLexer.SubMemberMatcher,
|
||||
SceneFileLinesLexer.MemberMatcher,
|
||||
LexerMatcherLibrary.AnySymbolMatcher
|
||||
);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,127 @@
|
|||
using Godot;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Rokojori
|
||||
{
|
||||
public class SceneFileMemberParser
|
||||
{
|
||||
public bool hasError = true;
|
||||
public string errorMessage;
|
||||
string line;
|
||||
|
||||
public void Parse( SceneFileEntry entry )
|
||||
{
|
||||
line = entry.line;
|
||||
|
||||
var lexer = new SceneFileLexer();
|
||||
var tokens = lexer.LexToList( line );
|
||||
|
||||
if ( lexer.hasError || tokens.Count == 0)
|
||||
{
|
||||
errorMessage = "Lexing failed";
|
||||
return;
|
||||
}
|
||||
|
||||
tokens.RemoveAll( t => t.isDone );
|
||||
|
||||
|
||||
|
||||
lexer.GrabMatches( tokens, line );
|
||||
|
||||
if ( ! tokens[ 0 ].Is( LexerMatcherLibrary.CwordMatcher ) )
|
||||
{
|
||||
hasError = true;
|
||||
errorMessage = RJLog.Stringify( "Expected name as first token, got:", tokens[ 0 ].type, ">>",tokens[ 0 ].match );
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
var assignmentOpResult = LexerEvent.Find( tokens, 1,
|
||||
t =>
|
||||
{
|
||||
if ( t.Is( LexerMatcherLibrary.OperatorMatcher, "=" ) )
|
||||
{
|
||||
return LexerEvent.FindResultType.Found;
|
||||
}
|
||||
|
||||
if ( t.Is( LexerMatcherLibrary.WhiteSpaceMatcher ) )
|
||||
{
|
||||
return LexerEvent.FindResultType.KeepSearching;
|
||||
}
|
||||
|
||||
return LexerEvent.FindResultType.Error;
|
||||
|
||||
}
|
||||
);
|
||||
|
||||
if ( LexerEvent.FindResultType.Found != assignmentOpResult.type )
|
||||
{
|
||||
hasError = true;
|
||||
errorMessage = RJLog.Stringify( "Expected assignment operator:", tokens ) ;
|
||||
return;
|
||||
}
|
||||
|
||||
var namedValue = new SceneFileNamedValue();
|
||||
entry.member = namedValue;
|
||||
|
||||
|
||||
namedValue.name = tokens[ 0 ].match;
|
||||
|
||||
var valueIndexResult = LexerEvent.Find( tokens, assignmentOpResult.index + 1,
|
||||
( t )=>
|
||||
{
|
||||
if ( t.Is( LexerMatcherLibrary.WhiteSpaceMatcher ) )
|
||||
{
|
||||
return LexerEvent.FindResultType.KeepSearching;
|
||||
}
|
||||
|
||||
return LexerEvent.FindResultType.Found;
|
||||
}
|
||||
);
|
||||
|
||||
if ( LexerEvent.FindResultType.Found != valueIndexResult.type )
|
||||
{
|
||||
hasError = true;
|
||||
errorMessage = RJLog.Stringify( "Expected value after assignment at ", assignmentOpResult.index, "in", tokens ) ;
|
||||
return;
|
||||
}
|
||||
|
||||
namedValue.value = LexerEvent.GetMatchFromRange( tokens, valueIndexResult.index );
|
||||
|
||||
var isList = tokens[ valueIndexResult.index ].Is( LexerMatcherLibrary.BracketMatcher, "[" );
|
||||
|
||||
if ( ! isList )
|
||||
{
|
||||
namedValue.valueData = new SceneFileValue();
|
||||
namedValue.valueData.ParseValue( tokens, valueIndexResult.index, tokens.Count - valueIndexResult.index );
|
||||
return;
|
||||
}
|
||||
|
||||
if ( isList ){ return; }
|
||||
|
||||
var separators = LexerEvent.GetSeparatorsInBrackets( tokens, valueIndexResult.index );
|
||||
|
||||
var lastIndex = valueIndexResult.index + 1;
|
||||
|
||||
namedValue.valuesData = new List<SceneFileValue>();
|
||||
|
||||
for ( int i = 0; i < separators.Count; i++ )
|
||||
{
|
||||
var v = new SceneFileValue();
|
||||
v.ParseValue( tokens, lastIndex, separators[ i ] - lastIndex );
|
||||
namedValue.valuesData.Add( v );
|
||||
|
||||
lastIndex = separators[ i ] + 1;
|
||||
}
|
||||
|
||||
var lastV = new SceneFileValue();
|
||||
lastV.ParseValue( tokens, lastIndex, ( tokens.Count - 1 ) - lastIndex );
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -13,7 +13,7 @@ namespace Rokojori
|
|||
this.source = source;
|
||||
|
||||
var lines = RegexUtility.SplitLines( source );
|
||||
var lexer = new GodotTextSceneLexer();
|
||||
var lexer = new SceneFileLinesLexer();
|
||||
|
||||
var lineIndex = 1;
|
||||
|
||||
|
|
|
@ -17,18 +17,30 @@ namespace Rokojori
|
|||
|
||||
public static SceneFileEntry Seperator()
|
||||
{
|
||||
return Create( GodotTextSceneLexer.SeperatorMatcher.type, "" );
|
||||
return Create( SceneFileLinesLexer.SeperatorMatcher.type, "" );
|
||||
}
|
||||
|
||||
// Parsed lines
|
||||
public List<SceneFileEntry> entries = new List<SceneFileEntry>();
|
||||
|
||||
// Combined objects of parsed lines
|
||||
public List<SceneFileObject> objects = new List<SceneFileObject>();
|
||||
|
||||
|
||||
public GDSceneSFO gdScene;
|
||||
public NodeSFO rootNode;
|
||||
|
||||
// Nodes of the scene
|
||||
public List<NodeSFO> nodes = new List<NodeSFO>();
|
||||
public Dictionary<string,NodeSFO> nodeMap = new Dictionary<string, NodeSFO>();
|
||||
|
||||
// NodePath -> Node
|
||||
public Dictionary<string,NodeSFO> nodePathMap = new Dictionary<string, NodeSFO>();
|
||||
|
||||
// External Resources
|
||||
public List<ExtResourceSFO> extResources = new List<ExtResourceSFO>();
|
||||
public List<SubResourceSFO> subResourceSFOs = new List<SubResourceSFO>();
|
||||
|
||||
// Built-In Resources
|
||||
public List<SubResourceSFO> subResources = new List<SubResourceSFO>();
|
||||
|
||||
public SceneFile GetSerializableJSONVersion()
|
||||
{
|
||||
|
@ -40,11 +52,14 @@ namespace Rokojori
|
|||
|
||||
public void CreateObjects()
|
||||
{
|
||||
SceneFileObject lastSFO = null;
|
||||
|
||||
entries.ForEach(
|
||||
( e )=>
|
||||
{
|
||||
if ( ! e.hasHeader )
|
||||
{
|
||||
lastSFO.AddData( e );
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -55,6 +70,8 @@ namespace Rokojori
|
|||
return;
|
||||
}
|
||||
|
||||
lastSFO = sfo;
|
||||
|
||||
if ( sfo is GDSceneSFO )
|
||||
{
|
||||
gdScene = (GDSceneSFO) sfo;
|
||||
|
@ -69,7 +86,7 @@ namespace Rokojori
|
|||
rootNode = node;
|
||||
}
|
||||
|
||||
nodeMap[ node.elementPath ] = node;
|
||||
nodePathMap[ node.elementPath ] = node;
|
||||
|
||||
// RJLog.Log( "'" + node.elementPath + "'", node.name.value );
|
||||
|
||||
|
@ -80,7 +97,7 @@ namespace Rokojori
|
|||
}
|
||||
else if ( sfo is SubResourceSFO )
|
||||
{
|
||||
subResourceSFOs.Add( (SubResourceSFO) sfo );
|
||||
subResources.Add( (SubResourceSFO) sfo );
|
||||
}
|
||||
|
||||
objects.Add( sfo );
|
||||
|
@ -90,7 +107,7 @@ namespace Rokojori
|
|||
nodes.ForEach(
|
||||
( n )=>
|
||||
{
|
||||
n.ResolveParent( nodeMap, rootNode );
|
||||
n.ResolveParent( nodePathMap, rootNode );
|
||||
}
|
||||
);
|
||||
}
|
||||
|
|
|
@ -22,7 +22,7 @@ namespace Rokojori
|
|||
|
||||
public void Parse()
|
||||
{
|
||||
if ( type == GodotTextSceneLexer.HeaderMatcher.type )
|
||||
if ( type == SceneFileLinesLexer.HeaderMatcher.type )
|
||||
{
|
||||
var headerParser = new SceneFileHeaderParser();
|
||||
headerParser.Parse( this );
|
||||
|
@ -32,6 +32,16 @@ namespace Rokojori
|
|||
hasError = true;
|
||||
}
|
||||
}
|
||||
else if ( type == SceneFileLinesLexer.MemberMatcher.type )
|
||||
{
|
||||
var memberParser = new SceneFileMemberParser();
|
||||
memberParser.Parse( this );
|
||||
|
||||
if ( memberParser.hasError )
|
||||
{
|
||||
hasError = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -3,11 +3,16 @@ using System.Collections.Generic;
|
|||
|
||||
namespace Rokojori
|
||||
{
|
||||
|
||||
public class SceneFileNamedValue
|
||||
{
|
||||
public string name;
|
||||
public string value;
|
||||
|
||||
public SceneFileValue valueData;
|
||||
public List<SceneFileValue> valuesData;
|
||||
|
||||
|
||||
public static SceneFileNamedValue Create( string name, string value )
|
||||
{
|
||||
var nv = new SceneFileNamedValue();
|
||||
|
|
|
@ -13,7 +13,11 @@ namespace Rokojori
|
|||
public string path = "";
|
||||
|
||||
[Export]
|
||||
public bool load = false;
|
||||
public bool load
|
||||
{
|
||||
get => false;
|
||||
set { if ( value ) LoadScene(); }
|
||||
}
|
||||
|
||||
[Export]
|
||||
public bool exportJSON = false;
|
||||
|
@ -21,20 +25,8 @@ namespace Rokojori
|
|||
[Export]
|
||||
public bool exportHTML = false;
|
||||
|
||||
|
||||
public override void _Process( double delta )
|
||||
{
|
||||
LoadScene();
|
||||
}
|
||||
|
||||
void LoadScene()
|
||||
{
|
||||
if ( ! load )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
load = false;
|
||||
|
||||
var text = FilesSync.LoadUTF8( path );
|
||||
|
||||
|
@ -49,171 +41,11 @@ namespace Rokojori
|
|||
|
||||
if ( exportHTML )
|
||||
{
|
||||
var nodes = parser.sceneFile.nodes;
|
||||
RJLog.Log( "Nodes:", nodes.Count );
|
||||
|
||||
var doc = new XMLDocument();
|
||||
var html = doc.documentElement;
|
||||
var body = html.querySelector( HTMLElementName.body );
|
||||
var head = html.querySelector( HTMLElementName.head );
|
||||
|
||||
head.AddHTMLScript(
|
||||
@"
|
||||
|
||||
function main()
|
||||
{
|
||||
let elements = document.querySelectorAll( '.closeable' );
|
||||
|
||||
for ( let i = 0; i < elements.length; i++ )
|
||||
{
|
||||
let element = elements[ i ];
|
||||
|
||||
element.addEventListener( 'click',
|
||||
( ev )=>
|
||||
{
|
||||
|
||||
let target = element.getAttribute( 'data-close-target' );
|
||||
|
||||
let targetElement = element;
|
||||
|
||||
let parentRegex = /^\.\.\s/;
|
||||
|
||||
while ( parentRegex.test( target ) )
|
||||
{
|
||||
target = target.replace( parentRegex, '' );
|
||||
targetElement = targetElement.parentElement;
|
||||
}
|
||||
|
||||
let rootRegex = /^\.\.\.\s/;
|
||||
|
||||
if ( rootRegex.test( target ) )
|
||||
{
|
||||
target = target.replace( rootRegex, '' );
|
||||
targetElement = document.documentElement;
|
||||
}
|
||||
|
||||
let closeTarget = element.parentElement.querySelector( target );
|
||||
|
||||
console.log( ev, target, closeTarget);
|
||||
closeTarget.style.display = closeTarget.style.display === 'none' ? 'block' : 'none';
|
||||
|
||||
element.setAttribute( 'data-close-state', closeTarget.style.display );
|
||||
|
||||
ev.preventDefault();
|
||||
return false;
|
||||
},
|
||||
true
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
window.addEventListener( 'load', () => { main(); });
|
||||
|
||||
"
|
||||
);
|
||||
|
||||
head.AddHTMLStyle(
|
||||
@"
|
||||
body
|
||||
{
|
||||
overflow-x: hidden;
|
||||
margin: 2em 0em;
|
||||
font-family: Helvetica, Arial, sans;
|
||||
background: hsl(0,0%,10%);
|
||||
color: hsl(0,0%,80%)
|
||||
}
|
||||
|
||||
.closeable
|
||||
{
|
||||
cursor: pointer;
|
||||
opacity:1;
|
||||
transition: opacity 300ms ease;
|
||||
}
|
||||
|
||||
.closeable[data-close-state='none']
|
||||
{
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
.node
|
||||
{
|
||||
display: block;
|
||||
position: relative;
|
||||
left: 2em;
|
||||
}
|
||||
|
||||
gd-name
|
||||
{
|
||||
border-radius: 0.5em;
|
||||
padding: 1em 1em;
|
||||
background-color: hsl(0,0%,20%);
|
||||
margin: 0.5em 1em;
|
||||
display: inline-block;
|
||||
font-weight: bold;
|
||||
|
||||
}
|
||||
|
||||
gd-type
|
||||
{
|
||||
display: inline-block;
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
" );
|
||||
|
||||
|
||||
|
||||
var elementMap = new Dictionary<string,XMLElementNode>();
|
||||
|
||||
var GD_Node = XMLElementNodeName.Create( "gd-node" );
|
||||
var GD_Name = XMLElementNodeName.Create( "gd-name" );
|
||||
var GD_Type = XMLElementNodeName.Create( "gd-type" );
|
||||
var GD_Children = XMLElementNodeName.Create( "gd-children" );
|
||||
|
||||
for ( int i = 0; i < nodes.Count; i++ )
|
||||
{
|
||||
var node = nodes[ i ];
|
||||
|
||||
//RJLog.Log( i, node.name.value );
|
||||
|
||||
var attachmentElement = body;
|
||||
|
||||
var elementPath = node.elementPath;
|
||||
|
||||
var parent = node.parent.value;
|
||||
|
||||
if ( parent != null && elementMap.ContainsKey( parent ) )
|
||||
{
|
||||
attachmentElement = elementMap[ parent ].querySelector( GD_Children );
|
||||
}
|
||||
|
||||
var nodeElement = doc.Create( GD_Node );
|
||||
|
||||
nodeElement.SetAttribute( "class", "node" );
|
||||
|
||||
var nameElement = nodeElement.AddElement( GD_Name, node.name.value );
|
||||
nameElement.SetAttribute( "class", "closeable" );
|
||||
nameElement.SetAttribute( "data-close-target", ".. " + GD_Children.selector );
|
||||
|
||||
nodeElement.AddElement( GD_Type, node.type.value );
|
||||
|
||||
nodeElement.AddElement( GD_Children );
|
||||
|
||||
|
||||
|
||||
elementMap[ elementPath ] = nodeElement;
|
||||
|
||||
// RJLog.Log( "'" + elementPath + "'", node.name.value );
|
||||
|
||||
attachmentElement.AppendChild( nodeElement );
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
FilesSync.SaveUTF8( path + ".html", new XMLSerializer().SerializeHtml( doc.documentElement ) );
|
||||
var exporter = new SceneFileHTMLExporter();
|
||||
exporter.ParseAndExport( parser, path );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,91 @@
|
|||
using Godot;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Rokojori
|
||||
{
|
||||
public enum SceneFileValueType
|
||||
{
|
||||
Variant,
|
||||
ExtResource,
|
||||
SubResource,
|
||||
NodePath
|
||||
}
|
||||
|
||||
public class SceneFileValue
|
||||
{
|
||||
public SceneFileValueType type;
|
||||
public Variant variant;
|
||||
public string reference;
|
||||
|
||||
public static readonly List<SceneFileValueType> referenceTypes = new List<SceneFileValueType>
|
||||
{
|
||||
SceneFileValueType.ExtResource,
|
||||
SceneFileValueType.SubResource,
|
||||
SceneFileValueType.NodePath
|
||||
};
|
||||
|
||||
public static readonly List<string> referenceStringTypes = Lists.Map(
|
||||
referenceTypes, ( s, i ) => s + ""
|
||||
);
|
||||
|
||||
|
||||
public void ParseValue( List<LexerEvent> tokens, int start, int length )
|
||||
{
|
||||
|
||||
var startToken = tokens[ start ];
|
||||
var startTokenInfo = LexerEvent.GetMatchFromRange( tokens, start, length );
|
||||
|
||||
// RJLog.Log( "ParseValue", startToken.type, startToken.IsAny( LexerMatcherLibrary.CwordMatcher ), startTokenInfo );
|
||||
|
||||
if ( startToken.IsAny( LexerMatcherLibrary.CFunctionMatcher ) )
|
||||
{
|
||||
var referenceStringIndex = referenceStringTypes.IndexOf( startToken.match );
|
||||
|
||||
if ( referenceStringIndex != -1 )
|
||||
{
|
||||
type = referenceTypes[ referenceStringIndex ];
|
||||
reference = JSONStringConverter.Read( tokens[ start + 2 ].match );
|
||||
|
||||
// RJLog.Log( "Reference type:", type, reference );
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// RJLog.Log( "Not a reference type:", startToken );
|
||||
}
|
||||
|
||||
type = SceneFileValueType.Variant;
|
||||
|
||||
variant = VariantFromTokens( tokens, start, length );
|
||||
|
||||
//RJLog.Log( "Variant type:", variant );
|
||||
}
|
||||
|
||||
public static Variant VariantFromTokens( List<LexerEvent> tokens, int start, int length )
|
||||
{
|
||||
var startToken = tokens[ start ];
|
||||
|
||||
if ( length == 1 )
|
||||
{
|
||||
if ( startToken.Is( LexerMatcherLibrary.NumberMatcher ) )
|
||||
{
|
||||
return Variant.From( RegexUtility.ParseDouble( startToken.match ) );
|
||||
}
|
||||
|
||||
if ( startToken.Is( LexerMatcherLibrary.DoubleQuotedStringMatcher ) )
|
||||
{
|
||||
return Variant.From( JSONStringConverter.Read( startToken.match ) );
|
||||
}
|
||||
|
||||
if ( startToken.IsAny( LexerMatcherLibrary.CwordMatcher, "true", "false" ) )
|
||||
{
|
||||
return Variant.From( startToken.match == "true" ) ;
|
||||
}
|
||||
}
|
||||
|
||||
return Variant.From( "" );
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
|
@ -18,16 +18,28 @@ namespace Rokojori
|
|||
|
||||
var rootWindow = n == null ? Root.Window() : n.Owner;
|
||||
|
||||
// RJLog.Log( "ROOT", rootWindow );
|
||||
|
||||
if ( rootWindow == null )
|
||||
{
|
||||
return null;
|
||||
if ( Engine.IsEditorHint() )
|
||||
{
|
||||
rootWindow = EditorInterface.Singleton.GetEditedSceneRoot();
|
||||
}
|
||||
else
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
_singleton = Nodes.GetAnyChild<N>( rootWindow );
|
||||
|
||||
// RJLog.Log( "_singleton", _singleton );
|
||||
if ( _singleton == null )
|
||||
{
|
||||
if ( Engine.IsEditorHint() )
|
||||
{
|
||||
rootWindow = EditorInterface.Singleton.GetEditedSceneRoot();
|
||||
_singleton = Nodes.GetAnyChild<N>( rootWindow );
|
||||
}
|
||||
}
|
||||
|
||||
return _singleton;
|
||||
}
|
||||
|
|
|
@ -29,12 +29,12 @@ namespace Rokojori
|
|||
public HighlightEffect highlightEffect;
|
||||
|
||||
[Export]
|
||||
public Node3D[] highlightTargets;
|
||||
public Node3D[] highlightTargets = new Node3D[ 0 ];
|
||||
|
||||
|
||||
[ExportGroup("Read Only")]
|
||||
[Export]
|
||||
public Pointer[] pointers;
|
||||
public Pointer[] pointers = new Pointer[ 0 ];
|
||||
|
||||
List<Pointer> _pointers = new List<Pointer>();
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ namespace Rokojori
|
|||
public partial class LODArrangement:Resource
|
||||
{
|
||||
[Export]
|
||||
public LODLevel[] levels;
|
||||
public LODLevel[] levels = new LODLevel[ 0 ];
|
||||
|
||||
public LODLevel GetLevel( LODNode node )
|
||||
{
|
||||
|
|
|
@ -10,7 +10,7 @@ namespace Rokojori
|
|||
public partial class LODLevel:Resource
|
||||
{
|
||||
[Export]
|
||||
public LODLevelVisibilityRule[] visibilityRules;
|
||||
public LODLevelVisibilityRule[] visibilityRules = new LODLevelVisibilityRule[ 0 ];
|
||||
|
||||
[Export]
|
||||
public Mesh mesh;
|
||||
|
|
|
@ -22,7 +22,7 @@ namespace Rokojori
|
|||
[Export]
|
||||
public bool arrayCulling = true;
|
||||
[Export]
|
||||
public float[] arrayTresholds;
|
||||
public float[] arrayTresholds = new float[ 0 ];
|
||||
|
||||
[ExportGroup("Curve Mode")]
|
||||
[Export]
|
||||
|
@ -36,7 +36,7 @@ namespace Rokojori
|
|||
|
||||
[ExportGroup("LODs")]
|
||||
[Export]
|
||||
public Node3D[] lods;
|
||||
public Node3D[] lods = new Node3D[ 0 ];
|
||||
|
||||
[Export]
|
||||
public float updateDistance = 10;
|
||||
|
|
|
@ -7,31 +7,80 @@ namespace Rokojori
|
|||
{
|
||||
public enum LocaleCode
|
||||
{
|
||||
EN,
|
||||
JA,
|
||||
DE,
|
||||
ES,
|
||||
FR,
|
||||
PT,
|
||||
IT,
|
||||
KO,
|
||||
ZH,
|
||||
RU,
|
||||
PL,
|
||||
TU,
|
||||
AR,
|
||||
NL,
|
||||
SV,
|
||||
HI,
|
||||
TH,
|
||||
ID,
|
||||
VI,
|
||||
EL,
|
||||
CS,
|
||||
FI,
|
||||
UK,
|
||||
RO,
|
||||
HU
|
||||
|
||||
af, // Afrikaans (South Africa, Namibia)
|
||||
am, // Amharic (Ethiopia)
|
||||
ar, // Arabic (Saudi Arabia, Egypt, UAE, Iraq, Morocco, Algeria, Jordan, and many more)
|
||||
az, // Azerbaijani (Azerbaijan)
|
||||
be, // Belarusian (Belarus)
|
||||
bg, // Bulgarian (Bulgaria)
|
||||
bn, // Bengali (Bangladesh, India)
|
||||
bs, // Bosnian (Bosnia and Herzegovina)
|
||||
ca, // Catalan (Spain - Catalonia, Andorra)
|
||||
cs, // Czech (Czech Republic)
|
||||
cy, // Welsh (Wales - UK)
|
||||
da, // Danish (Denmark, Greenland)
|
||||
de, // German (Germany, Austria, Switzerland, Liechtenstein, Belgium)
|
||||
el, // Greek (Greece, Cyprus)
|
||||
en, // English (UK, US, Australia, Canada, India, South Africa, and many more)
|
||||
es, // Spanish (Spain, Mexico, Argentina, Colombia, and many more)
|
||||
et, // Estonian (Estonia)
|
||||
eu, // Basque (Spain - Basque Country, France - Basque areas)
|
||||
fa, // Persian (Iran, Afghanistan, Tajikistan)
|
||||
fi, // Finnish (Finland)
|
||||
fil, // Filipino (Philippines)
|
||||
fr, // French (France, Canada, Belgium, Switzerland, many African countries)
|
||||
ga, // Irish (Ireland)
|
||||
gl, // Galician (Spain - Galicia)
|
||||
gu, // Gujarati (India, some in Pakistan)
|
||||
he, // Hebrew (Israel)
|
||||
hi, // Hindi (India, Fiji)
|
||||
hr, // Croatian (Croatia, Bosnia and Herzegovina)
|
||||
hu, // Hungarian (Hungary, some parts of Romania and Slovakia)
|
||||
hy, // Armenian (Armenia)
|
||||
id, // Indonesian (Indonesia)
|
||||
@is, // Icelandic (Iceland)
|
||||
it, // Italian (Italy, Switzerland, San Marino, Vatican City)
|
||||
ja, // Japanese (Japan)
|
||||
ka, // Georgian (Georgia)
|
||||
kk, // Kazakh (Kazakhstan)
|
||||
km, // Khmer (Cambodia)
|
||||
kn, // Kannada (India - Karnataka)
|
||||
ko, // Korean (South Korea, North Korea)
|
||||
ky, // Kyrgyz (Kyrgyzstan)
|
||||
lo, // Lao (Laos)
|
||||
lt, // Lithuanian (Lithuania)
|
||||
lv, // Latvian (Latvia)
|
||||
mk, // Macedonian (North Macedonia)
|
||||
ml, // Malayalam (India - Kerala)
|
||||
mn, // Mongolian (Mongolia)
|
||||
mr, // Marathi (India - Maharashtra)
|
||||
ms, // Malay (Malaysia, Brunei, Singapore, Indonesia)
|
||||
mt, // Maltese (Malta)
|
||||
my, // Burmese (Myanmar)
|
||||
ne, // Nepali (Nepal, India - Sikkim and West Bengal)
|
||||
nl, // Dutch (Netherlands, Belgium, Suriname, Caribbean Netherlands)
|
||||
no, // Norwegian (Norway)
|
||||
pa, // Punjabi (India, Pakistan)
|
||||
pl, // Polish (Poland)
|
||||
ps, // Pashto (Afghanistan, Pakistan)
|
||||
pt, // Portuguese (Portugal, Brazil, Mozambique, Angola, and others)
|
||||
ro, // Romanian (Romania, Moldova)
|
||||
ru, // Russian (Russia, Belarus, Kazakhstan, Kyrgyzstan, and others)
|
||||
si, // Sinhala (Sri Lanka)
|
||||
sk, // Slovak (Slovakia)
|
||||
sl, // Slovenian (Slovenia)
|
||||
sq, // Albanian (Albania, Kosovo, North Macedonia)
|
||||
sr, // Serbian (Serbia, Bosnia and Herzegovina, Montenegro)
|
||||
sv, // Swedish (Sweden, Finland - Åland)
|
||||
sw, // Swahili (Tanzania, Kenya, Uganda, DRC, and others)
|
||||
ta, // Tamil (India - Tamil Nadu, Sri Lanka, Singapore, Malaysia)
|
||||
te, // Telugu (India - Andhra Pradesh, Telangana)
|
||||
th, // Thai (Thailand)
|
||||
tr, // Turkish (Turkey, Cyprus)
|
||||
uk, // Ukrainian (Ukraine)
|
||||
ur, // Urdu (Pakistan, India)
|
||||
uz, // Uzbek (Uzbekistan)
|
||||
vi, // Vietnamese (Vietnam)
|
||||
zh, // Chinese (China, Taiwan, Singapore, Malaysia)
|
||||
}
|
||||
}
|
|
@ -0,0 +1,42 @@
|
|||
using Godot;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using Godot.Collections;
|
||||
|
||||
namespace Rokojori
|
||||
{
|
||||
[Tool]
|
||||
[GlobalClass]
|
||||
public partial class LocaleLabel3D:Label3D, iLocalizable
|
||||
{
|
||||
LocalizedString _locale;
|
||||
|
||||
[Export]
|
||||
public LocalizedString locale
|
||||
{
|
||||
get
|
||||
{
|
||||
return _locale;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
_locale = value;
|
||||
UpdateLocalization();
|
||||
}
|
||||
}
|
||||
|
||||
[Export]
|
||||
public bool refreshText
|
||||
{
|
||||
get => false;
|
||||
set { if ( value ) UpdateLocalization(); }
|
||||
}
|
||||
|
||||
public void UpdateLocalization()
|
||||
{
|
||||
Text = locale.currentValue;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -6,10 +6,54 @@ using Godot.Collections;
|
|||
namespace Rokojori
|
||||
{
|
||||
[Tool]
|
||||
[GlobalClass]
|
||||
[GlobalClass,Icon("res://addons/rokojori_action_library/Icons/LocaleManager.svg")]
|
||||
public partial class LocaleManager:Node
|
||||
{
|
||||
LocaleCode _languageLocale = LocaleCode.en;
|
||||
static LocaleCode _editorLanguageLocale = LocaleCode.en;
|
||||
|
||||
[Export]
|
||||
public LocaleCode languageLocale;
|
||||
public LocaleCode languageLocale
|
||||
{
|
||||
get => _languageLocale;
|
||||
set { _languageLocale = value; _editorLanguageLocale = value; UpdateLocalization(); }
|
||||
}
|
||||
|
||||
public override void _Ready()
|
||||
{
|
||||
RJLog.Log( "_Ready >>", _languageLocale );
|
||||
UpdateLocalization();
|
||||
}
|
||||
|
||||
public void UpdateLocalization()
|
||||
{
|
||||
RJLog.Log( "Updating Language >>>", _languageLocale );
|
||||
this.ForEachInRoot<iLocalizable>( i => { i.UpdateLocalization(); } );
|
||||
}
|
||||
|
||||
public static LocaleCode currentLanguage
|
||||
{
|
||||
get
|
||||
{
|
||||
if ( Engine.IsEditorHint() )
|
||||
{
|
||||
return _editorLanguageLocale;
|
||||
}
|
||||
|
||||
|
||||
|
||||
var lm = Unique<LocaleManager>.Get();
|
||||
var lc = LocaleCode.en;
|
||||
|
||||
if ( lm != null )
|
||||
{
|
||||
lc = lm.languageLocale;
|
||||
}
|
||||
|
||||
RJLog.Log( "currentLanguage", lc );
|
||||
|
||||
return lc;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -6,7 +6,7 @@ using Godot.Collections;
|
|||
namespace Rokojori
|
||||
{
|
||||
[Tool]
|
||||
[GlobalClass]
|
||||
[GlobalClass,Icon("res://addons/rokojori_action_library/Icons/LocalizedString.svg")]
|
||||
public partial class LocaleText:LocalizedString
|
||||
{
|
||||
[Export(PropertyHint.MultilineText)]
|
||||
|
@ -14,20 +14,28 @@ namespace Rokojori
|
|||
|
||||
[ExportGroup("Translations")]
|
||||
[Export]
|
||||
public LocaleTextEntry[] entries;
|
||||
public LocaleTextEntry[] entries = new LocaleTextEntry[ 0 ];
|
||||
|
||||
[ExportGroup("Context")]
|
||||
[Export(PropertyHint.MultilineText)]
|
||||
public string context;
|
||||
|
||||
public static LocaleText Create( string en )
|
||||
{
|
||||
var lt = new LocaleText();
|
||||
lt.en = en;
|
||||
|
||||
return lt;
|
||||
}
|
||||
|
||||
public override string GetLocalizedString( LocaleCode localeCode )
|
||||
{
|
||||
if ( localeCode == LocaleCode.EN )
|
||||
if ( localeCode == LocaleCode.en || entries == null )
|
||||
{
|
||||
return en;
|
||||
}
|
||||
|
||||
|
||||
var entry = Arrays.Find( entries, e => e.code == localeCode );
|
||||
|
||||
if ( entry != null )
|
||||
|
|
|
@ -6,8 +6,8 @@ using Godot.Collections;
|
|||
namespace Rokojori
|
||||
{
|
||||
[Tool]
|
||||
[GlobalClass]
|
||||
public partial class LocaleTextEntry:LocalizedString
|
||||
[GlobalClass,Icon("res://addons/rokojori_action_library/Icons/LocalizedString.svg")]
|
||||
public partial class LocaleTextEntry:Resource
|
||||
{
|
||||
[Export]
|
||||
public LocaleCode code;
|
||||
|
|
|
@ -6,7 +6,7 @@ using Godot.Collections;
|
|||
namespace Rokojori
|
||||
{
|
||||
[Tool]
|
||||
[GlobalClass]
|
||||
[GlobalClass,Icon("res://addons/rokojori_action_library/Icons/LocalizedString.svg")]
|
||||
public partial class LocalizedString:Resource
|
||||
{
|
||||
public virtual string GetLocalizedString( LocaleCode localeCode )
|
||||
|
@ -14,5 +14,20 @@ namespace Rokojori
|
|||
return "";
|
||||
}
|
||||
|
||||
public string currentValue
|
||||
{
|
||||
get
|
||||
{
|
||||
return GetLocalizedString( LocaleManager.currentLanguage );
|
||||
}
|
||||
}
|
||||
|
||||
public static string Get( LocalizedString ls, string alternative = "")
|
||||
{
|
||||
return ls == null ? alternative : ls.currentValue;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
using Godot;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using Godot.Collections;
|
||||
|
||||
namespace Rokojori
|
||||
{
|
||||
public interface iLocalizable
|
||||
{
|
||||
public void UpdateLocalization();
|
||||
}
|
||||
}
|
|
@ -10,6 +10,33 @@ namespace Rokojori
|
|||
public class RJLog
|
||||
{
|
||||
|
||||
public static string GetInfo( object obj, params object[] values )
|
||||
{
|
||||
|
||||
if ( obj == null )
|
||||
{
|
||||
return "<null>";
|
||||
}
|
||||
|
||||
var sb = new StringBuilder();
|
||||
sb.Append( obj.GetType().Name );
|
||||
sb.Append( "{ " );
|
||||
|
||||
for ( int i = 0; i < values.Length; i++ )
|
||||
{
|
||||
if ( i != 0 )
|
||||
{
|
||||
sb.Append( ", " );
|
||||
}
|
||||
|
||||
Stringify( values[ i ], sb );
|
||||
}
|
||||
|
||||
sb.Append( " }" );
|
||||
|
||||
return sb.ToString();
|
||||
}
|
||||
|
||||
public static string Stringify( object obj )
|
||||
{
|
||||
var sb = new StringBuilder();
|
||||
|
@ -41,11 +68,38 @@ namespace Rokojori
|
|||
return;
|
||||
}
|
||||
|
||||
if ( obj.GetType().IsArray )
|
||||
{
|
||||
var array = (Array)obj;
|
||||
|
||||
output.Append( "[" );
|
||||
|
||||
var first = true;
|
||||
|
||||
foreach ( var it in array )
|
||||
{
|
||||
if ( first )
|
||||
{
|
||||
first = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
output.Append( ", " );
|
||||
}
|
||||
|
||||
Stringify( it, output );
|
||||
}
|
||||
|
||||
output.Append( "]" );
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if ( obj is IList && obj.GetType().IsGenericType )
|
||||
{
|
||||
var list = (IList)obj;
|
||||
|
||||
output.Append( "[" );
|
||||
output.Append( "[" );
|
||||
|
||||
var first = true;
|
||||
|
||||
|
@ -64,7 +118,7 @@ namespace Rokojori
|
|||
Stringify( it, output );
|
||||
}
|
||||
|
||||
output.Append( "]" );
|
||||
output.Append( "]" );
|
||||
|
||||
return;
|
||||
}
|
||||
|
@ -72,17 +126,22 @@ namespace Rokojori
|
|||
output.Append( obj.ToString() );
|
||||
}
|
||||
|
||||
public static string Stringify( params object[] objects )
|
||||
{
|
||||
return GetLogString( objects );
|
||||
}
|
||||
|
||||
static void LogMessage( string message, int frameIndex = 3 )
|
||||
{
|
||||
var trace = GetTrace( frameIndex );
|
||||
GD.PrintRich("\n[b]" + message + "[/b]" );
|
||||
GD.PrintRich("\n[b]" + message );
|
||||
GD.PrintRich( trace );
|
||||
}
|
||||
|
||||
static void LogMessageWithFullTrace( string message )
|
||||
{
|
||||
var trace = GetFullTrace();
|
||||
GD.PrintRich("\n[b]" + message + "[/b]" );
|
||||
GD.PrintRich("\n[b]" + message );
|
||||
GD.PrintRich( trace );
|
||||
}
|
||||
|
||||
|
@ -131,7 +190,7 @@ namespace Rokojori
|
|||
|
||||
|
||||
var trace = className + "." + frame.GetMethod().Name + "() ln."+ frame.GetFileLineNumber();
|
||||
return "[color=gray] " + trace + "[/color]" ;
|
||||
return "[color=#888888] " + trace + "[/color]" ;
|
||||
}
|
||||
|
||||
public static void LogWithFullTrace( params object[] objects)
|
||||
|
@ -146,7 +205,12 @@ namespace Rokojori
|
|||
|
||||
public static void Log( Node node, params object[] objects)
|
||||
{
|
||||
LogMessage( "[color=#55aaff][ " + HierarchyName.Of( node ) + " ][/color] " + GetLogString( objects ), 4 );
|
||||
LogMessage( "[color=#55aaff]" + HierarchyName.Of( node ) + "[/color]\n" + GetLogString( objects ), 4 );
|
||||
}
|
||||
|
||||
public static void Log( Resource resource, params object[] objects)
|
||||
{
|
||||
LogMessage( "[color=#55ffaa]" + HierarchyName.Of( resource ) + "[/color]\n" + GetLogString( objects ), 4 );
|
||||
}
|
||||
|
||||
public static void Error( params object[] objects)
|
||||
|
@ -156,11 +220,17 @@ namespace Rokojori
|
|||
|
||||
public static void Error( Node node, params object[] objects)
|
||||
{
|
||||
LogErrorMessage( "[ " + HierarchyName.Of( node ) + " ] " + GetLogString( objects ), 4 );
|
||||
LogErrorMessage( "" + HierarchyName.Of( node ) + "\n" + GetLogString( objects ), 4 );
|
||||
}
|
||||
|
||||
public static void Error( Resource resource, params object[] objects)
|
||||
{
|
||||
LogErrorMessage( "" + HierarchyName.Of( resource ) + "\n" + GetLogString( objects ), 4 );
|
||||
}
|
||||
|
||||
|
||||
public static string GetLogString( object[] objects)
|
||||
|
||||
public static string GetLogString( object[] objects )
|
||||
{
|
||||
var sb = new StringBuilder();
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ namespace Rokojori
|
|||
{
|
||||
class FloatSineTable
|
||||
{
|
||||
public float[] sineValues;
|
||||
public float[] sineValues = new float[ 0 ];
|
||||
|
||||
public FloatSineTable( int numBits )
|
||||
{
|
||||
|
@ -22,7 +22,7 @@ namespace Rokojori
|
|||
|
||||
class BitReverseTable
|
||||
{
|
||||
public int[] reversedBits;
|
||||
public int[] reversedBits = new int[ 0 ];
|
||||
|
||||
public BitReverseTable( int numBits )
|
||||
{
|
||||
|
|
|
@ -6,7 +6,7 @@ namespace Rokojori
|
|||
{
|
||||
public abstract class NetClassDefinition
|
||||
{
|
||||
protected NetMember[] _members;
|
||||
protected NetMember[] _members = new NetMember[ 0 ];
|
||||
|
||||
public void SetMembers( params NetMember[] members )
|
||||
{
|
||||
|
|
|
@ -8,7 +8,7 @@ namespace Rokojori
|
|||
public partial class AddNetworkNodes:Action
|
||||
{
|
||||
[Export]
|
||||
public Node[] nodes;
|
||||
public Node[] nodes = new Node[ 0 ];
|
||||
|
||||
protected override void _OnTrigger()
|
||||
{
|
||||
|
|
|
@ -187,7 +187,7 @@ namespace Rokojori
|
|||
|
||||
[ExportGroup("LOD Levels")]
|
||||
[Export]
|
||||
public GrassPatchLODLevel[] lodLevels;
|
||||
public GrassPatchLODLevel[] lodLevels = new GrassPatchLODLevel[ 0 ];
|
||||
|
||||
[Export]
|
||||
public int currentLODLevel = -1;
|
||||
|
|
|
@ -39,11 +39,11 @@ namespace Rokojori
|
|||
public Node sourceViewportsContainer = null;
|
||||
|
||||
[Export]
|
||||
public SubViewport[] sourceViewports;
|
||||
public SubViewport[] sourceViewports = new SubViewport[ 0 ];
|
||||
|
||||
[ExportGroup("Source/Textures")]
|
||||
[Export]
|
||||
public Texture2D[] sourceTextures;
|
||||
public Texture2D[] sourceTextures = new Texture2D[ 0 ];
|
||||
|
||||
[ExportGroup("Output")]
|
||||
[Export]
|
||||
|
@ -60,10 +60,10 @@ namespace Rokojori
|
|||
|
||||
[ExportGroup("Output/Custom")]
|
||||
[Export]
|
||||
public Vector2[] customPositions;
|
||||
public Vector2[] customPositions = new Vector2[ 0 ];
|
||||
|
||||
[Export]
|
||||
public Vector2[] customSizes;
|
||||
public Vector2[] customSizes = new Vector2[ 0 ];
|
||||
|
||||
[ExportGroup("Viewport")]
|
||||
[Export]
|
||||
|
|
|
@ -32,9 +32,9 @@ namespace Rokojori
|
|||
var output = ".png";
|
||||
|
||||
if (
|
||||
fp.hasFileExtension( ".jpg" ) ||
|
||||
fp.hasFileExtension( ".exr" ) ||
|
||||
fp.hasFileExtension( ".webp" )
|
||||
fp.HasFileExtension( ".jpg" ) ||
|
||||
fp.HasFileExtension( ".exr" ) ||
|
||||
fp.HasFileExtension( ".webp" )
|
||||
)
|
||||
{
|
||||
output = fp.fileExtension;
|
||||
|
|
|
@ -9,7 +9,7 @@ namespace Rokojori
|
|||
{
|
||||
int width;
|
||||
int height;
|
||||
float[] data;
|
||||
float[] data = new float[ 0 ];
|
||||
|
||||
public static HeightMapData Create( int w, int h, float[] data = null)
|
||||
{
|
||||
|
|
|
@ -33,13 +33,13 @@ namespace Rokojori
|
|||
|
||||
[ExportGroup("Layout")]
|
||||
[Export]
|
||||
public Vector3[] positions;
|
||||
public Vector3[] positions = new Vector3[ 0 ];
|
||||
|
||||
[Export]
|
||||
public Vector4[] rotations;
|
||||
public Vector4[] rotations = new Vector4[ 0 ];
|
||||
|
||||
[Export]
|
||||
public Vector3[] scales;
|
||||
public Vector3[] scales = new Vector3[ 0 ];
|
||||
|
||||
[ExportGroup("Outputs")]
|
||||
[Export]
|
||||
|
|
|
@ -12,7 +12,7 @@ namespace Rokojori
|
|||
public partial class MeshCombiner:Node3D
|
||||
{
|
||||
[Export]
|
||||
public Node3D[] sourceNodes;
|
||||
public Node3D[] sourceNodes = new Node3D[ 0 ];
|
||||
|
||||
[ExportGroup( "Mesh")]
|
||||
[Export]
|
||||
|
@ -51,7 +51,7 @@ namespace Rokojori
|
|||
[Export]
|
||||
public MeshInstance3D outputMesh;
|
||||
[Export]
|
||||
public Material[] outputMaterials;
|
||||
public Material[] outputMaterials = new Material[ 0 ];
|
||||
[Export]
|
||||
public bool combine = false;
|
||||
|
||||
|
|
|
@ -17,8 +17,8 @@ namespace Rokojori
|
|||
|
||||
public class SplinesDeformModifier
|
||||
{
|
||||
public SplineCurve[] sourceSplines;
|
||||
public SplineCurve[] targetSplines;
|
||||
public SplineCurve[] sourceSplines = new SplineCurve[ 0 ];
|
||||
public SplineCurve[] targetSplines = new SplineCurve[ 0 ];
|
||||
|
||||
public SplinesDeformerSettings settings;
|
||||
|
||||
|
|
|
@ -54,7 +54,7 @@ namespace Rokojori
|
|||
public bool createNavMesh = false;
|
||||
|
||||
[Export]
|
||||
public Node3D[] countries;
|
||||
public Node3D[] countries = new Node3D[ 0 ];
|
||||
|
||||
[Export]
|
||||
public float navMeshRadius = 100;
|
||||
|
|
|
@ -36,7 +36,7 @@ namespace Rokojori
|
|||
[ExportGroup( "Input")]
|
||||
|
||||
[Export]
|
||||
public Spline[] sourceSplines;
|
||||
public Spline[] sourceSplines = new Spline[ 0 ];
|
||||
|
||||
[Export]
|
||||
public MeshInstance3D sourceMesh;
|
||||
|
@ -46,7 +46,7 @@ namespace Rokojori
|
|||
|
||||
[ExportGroup( "Output")]
|
||||
[Export]
|
||||
public Spline[] deformerSplines;
|
||||
public Spline[] deformerSplines = new Spline[ 0 ];
|
||||
|
||||
[Export]
|
||||
public MeshInstance3D outputMesh;
|
||||
|
@ -72,7 +72,7 @@ namespace Rokojori
|
|||
|
||||
|
||||
|
||||
DeformerMappingData[] deformerMappings;
|
||||
DeformerMappingData[] deformerMappings = new DeformerMappingData[ 0 ];
|
||||
MeshGeometry meshGeometry;
|
||||
|
||||
DeformerMappingData CreateSourceMapping( Spline s, Vector3 worldPosition, Vector3 worldNormal )
|
||||
|
|
|
@ -68,7 +68,7 @@ namespace Rokojori
|
|||
public bool scaleRadiusByPathTransforms = true;
|
||||
|
||||
[Export]
|
||||
public TubeShape[] shapes;
|
||||
public TubeShape[] shapes = new TubeShape[ 0 ];
|
||||
|
||||
[Export]
|
||||
public bool update;
|
||||
|
|
|
@ -21,7 +21,7 @@ namespace Rokojori
|
|||
[Export]
|
||||
public bool removeDiscarded = false;
|
||||
[Export]
|
||||
public Node3D[] streamSources;
|
||||
public Node3D[] streamSources = new Node3D[ 0 ];
|
||||
[Export]
|
||||
public float streamCullDistance = 100;
|
||||
|
||||
|
@ -34,7 +34,7 @@ namespace Rokojori
|
|||
|
||||
[ExportGroup("Clean Up")]
|
||||
[Export]
|
||||
public Node3D[] containersToClearNodes;
|
||||
public Node3D[] containersToClearNodes = new Node3D[ 0 ];
|
||||
[Export]
|
||||
public bool clearContainers = false;
|
||||
[Export]
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
using Godot;
|
||||
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Rokojori
|
||||
{
|
||||
|
@ -9,8 +9,14 @@ namespace Rokojori
|
|||
public partial class CombineSensor : Sensor
|
||||
{
|
||||
[Export]
|
||||
public Sensor[] sensors;
|
||||
public Sensor[] sensors = new Sensor[ 0 ];
|
||||
|
||||
[ExportGroup("UI")]
|
||||
[Export]
|
||||
public bool showOnlyVisibleIcons = false;
|
||||
|
||||
[Export]
|
||||
public int numVisible = 0;
|
||||
|
||||
protected override void UpdateValue()
|
||||
{
|
||||
|
@ -23,5 +29,33 @@ namespace Rokojori
|
|||
|
||||
SetFloatValue( value );
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return RJLog.GetInfo( this, sensors );
|
||||
}
|
||||
|
||||
[Export]
|
||||
public InputIcon[] inputIcons = new InputIcon[ 0 ];
|
||||
|
||||
[Export]
|
||||
public bool useInputIconsFromSensors = true;
|
||||
|
||||
public override List<InputIcon> GetInputIcons()
|
||||
{
|
||||
var list = Lists.From( inputIcons );
|
||||
|
||||
if ( useInputIconsFromSensors )
|
||||
{
|
||||
var visible = showOnlyVisibleIcons ? numVisible : sensors.Length;
|
||||
|
||||
for ( int i = 0; i < visible; i++ )
|
||||
{
|
||||
list.AddRange( sensors[ i ].GetInputIcons() );
|
||||
}
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,358 @@
|
|||
[gd_resource type="Resource" script_class="InputIconsLibrary" load_steps=74 format=3 uid="uid://dq52vhnqr5m6"]
|
||||
|
||||
[ext_resource type="Script" path="res://addons/rokojori_action_library/Runtime/Sensors/InputIcons/Definitions/DefaultInputIconDefinition.cs" id="1_64knt"]
|
||||
[ext_resource type="Script" path="res://addons/rokojori_action_library/Runtime/Sensors/InputIcons/InputIconsLibrary.cs" id="1_urlfx"]
|
||||
[ext_resource type="Script" path="res://addons/rokojori_action_library/Runtime/Sensors/InputIcons/Types/MouseInputIcon.cs" id="1_vsgl5"]
|
||||
[ext_resource type="SystemFont" uid="uid://bakiyyiix68n1" path="res://Research/Fonts/Jost-Font.tres" id="1_xrnc5"]
|
||||
[ext_resource type="Script" path="res://addons/rokojori_action_library/Runtime/UI/Styling/UINumber.cs" id="2_4sutq"]
|
||||
[ext_resource type="Script" path="res://addons/rokojori_action_library/Runtime/Sensors/InputIcons/Definitions/CombinedInputIconsTexture.cs" id="2_g15ft"]
|
||||
[ext_resource type="Texture2D" uid="uid://eqplg4ydtkpf" path="res://addons/rokojori_action_library/Runtime/Sensors/InputIcons/Graphics/Mouse-Left Button.svg" id="2_q818g"]
|
||||
[ext_resource type="Texture2D" uid="uid://chcls1g13v7it" path="res://addons/rokojori_action_library/Runtime/Sensors/InputIcons/Graphics/Mouse-Wheel Up & Down.svg" id="3_pm2rw"]
|
||||
[ext_resource type="Texture2D" uid="uid://dcb0bhq84rs77" path="res://addons/rokojori_action_library/Runtime/Sensors/InputIcons/Graphics/Mouse-Middle Button.svg" id="3_u1h0x"]
|
||||
[ext_resource type="Texture2D" uid="uid://d3q5n6ocgar6w" path="res://addons/rokojori_action_library/Runtime/Sensors/InputIcons/Graphics/Mouse-Right Button.svg" id="4_5b8av"]
|
||||
[ext_resource type="Script" path="res://addons/rokojori_action_library/Runtime/Sensors/InputIcons/Definitions/CombinedIconsDefinition.cs" id="4_6ycsi"]
|
||||
[ext_resource type="Script" path="res://addons/rokojori_action_library/Runtime/Sensors/InputIcons/Types/GamePadButtonIcon.cs" id="4_y5jfh"]
|
||||
[ext_resource type="Script" path="res://addons/rokojori_action_library/Runtime/Sensors/InputIcons/Definitions/MouseInputIconDefinition.cs" id="5_a3fep"]
|
||||
[ext_resource type="Texture2D" uid="uid://eki8sp0x0gmf" path="res://addons/rokojori_action_library/Runtime/Sensors/InputIcons/Graphics/GamePad-DPad-Background.svg" id="5_amgur"]
|
||||
[ext_resource type="Script" path="res://addons/rokojori_action_library/Runtime/Sensors/InputIcons/Definitions/DirectionalInputIconDefinition.cs" id="5_sn8hr"]
|
||||
[ext_resource type="Texture2D" uid="uid://ct3k2tds4d26" path="res://addons/rokojori_action_library/Runtime/Sensors/InputIcons/Graphics/GamePad-DPad-Left + Right.svg" id="5_ycc70"]
|
||||
[ext_resource type="Texture2D" uid="uid://clg28ph2pawvq" path="res://addons/rokojori_action_library/Runtime/Sensors/InputIcons/Graphics/GamePad-DPad-Up.svg" id="6_0hfff"]
|
||||
[ext_resource type="Texture2D" uid="uid://bip5s0jfo5ddm" path="res://addons/rokojori_action_library/Runtime/Sensors/InputIcons/Graphics/GamePad-DPad-Up + Down.svg" id="6_6nxcf"]
|
||||
[ext_resource type="Texture2D" uid="uid://b48h8j7flhwyb" path="res://addons/rokojori_action_library/Runtime/Sensors/InputIcons/Graphics/Mouse-Wheel Down.svg" id="6_qyc6e"]
|
||||
[ext_resource type="Texture2D" uid="uid://de5ewtb72pmdu" path="res://addons/rokojori_action_library/Runtime/Sensors/InputIcons/Graphics/Mouse-Wheel Up.svg" id="7_n1ega"]
|
||||
[ext_resource type="Script" path="res://addons/rokojori_action_library/Runtime/Sensors/InputIcons/Types/GamePadAxisIcon.cs" id="7_y0txw"]
|
||||
[ext_resource type="Texture2D" uid="uid://6fkkrsbdjdf" path="res://addons/rokojori_action_library/Runtime/Sensors/InputIcons/Graphics/GamePad-Axis-Left + Right.svg" id="9_eeamd"]
|
||||
[ext_resource type="Texture2D" uid="uid://bih02uuga3j2u" path="res://addons/rokojori_action_library/Runtime/Sensors/InputIcons/Graphics/GamePad-Axis-Up + Down.svg" id="10_3i85w"]
|
||||
[ext_resource type="Texture2D" uid="uid://bmtwa1p6j1tu8" path="res://addons/rokojori_action_library/Runtime/Sensors/InputIcons/Graphics/Keyboard-EnterKey.svg" id="10_q44jo"]
|
||||
[ext_resource type="Texture2D" uid="uid://b73u16wm1h5gr" path="res://addons/rokojori_action_library/Runtime/Sensors/InputIcons/Graphics/Keyboard.svg" id="12_mf3bj"]
|
||||
[ext_resource type="Texture2D" uid="uid://dg52t67wh6h54" path="res://addons/rokojori_action_library/Runtime/Sensors/InputIcons/Graphics/Keyboard-Indicator.svg" id="13_ijjqw"]
|
||||
[ext_resource type="Texture2D" uid="uid://dxwnbh3a3fy8w" path="res://addons/rokojori_action_library/Runtime/Sensors/InputIcons/Graphics/GamePad-Left-Shoulder-Button.svg" id="13_omll7"]
|
||||
[ext_resource type="Texture2D" uid="uid://1pfyxi7wifn8" path="res://addons/rokojori_action_library/Runtime/Sensors/InputIcons/Graphics/Keyboard-SpaceKey.svg" id="14_6vom6"]
|
||||
[ext_resource type="Texture2D" uid="uid://bgi8cbw57gka0" path="res://addons/rokojori_action_library/Runtime/Sensors/InputIcons/Graphics/GamePad-MainButton.svg" id="14_n68qo"]
|
||||
[ext_resource type="Texture2D" uid="uid://cb8ldiej8234h" path="res://addons/rokojori_action_library/Runtime/Sensors/InputIcons/Graphics/GamePad-Axis-Background.svg" id="18_amimm"]
|
||||
[ext_resource type="Texture2D" uid="uid://ddfvjmi7sva6f" path="res://addons/rokojori_action_library/Runtime/Sensors/InputIcons/Graphics/GamePad-Axis-Pressed.svg" id="19_7x4g0"]
|
||||
[ext_resource type="Script" path="res://addons/rokojori_action_library/Runtime/Localization/LocaleText.cs" id="20_55eoq"]
|
||||
[ext_resource type="Texture2D" uid="uid://bajhvs0qnuj5q" path="res://addons/rokojori_action_library/Runtime/Sensors/InputIcons/Graphics/GamePad-Axis-Up.svg" id="20_r1y6a"]
|
||||
[ext_resource type="Texture2D" uid="uid://b2123dcu46oy0" path="res://addons/rokojori_action_library/Runtime/Sensors/InputIcons/Graphics/GamePad-Right-Shoulder-Button.svg" id="21_hcyk3"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_m53ti"]
|
||||
script = ExtResource("1_vsgl5")
|
||||
button = 4
|
||||
|
||||
[sub_resource type="Resource" id="Resource_a3cu1"]
|
||||
script = ExtResource("1_vsgl5")
|
||||
button = 5
|
||||
|
||||
[sub_resource type="Resource" id="Resource_xpfqu"]
|
||||
script = ExtResource("2_g15ft")
|
||||
icons = [SubResource("Resource_m53ti"), SubResource("Resource_a3cu1")]
|
||||
texture = ExtResource("3_pm2rw")
|
||||
widthScale = 1.0
|
||||
orderMode = 2
|
||||
isUpperCase = false
|
||||
fontSizeScale = 0.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_xbpgk"]
|
||||
script = ExtResource("4_y5jfh")
|
||||
button = 13
|
||||
|
||||
[sub_resource type="Resource" id="Resource_laa4d"]
|
||||
script = ExtResource("4_y5jfh")
|
||||
button = 14
|
||||
|
||||
[sub_resource type="Resource" id="Resource_28c0y"]
|
||||
script = ExtResource("2_g15ft")
|
||||
icons = [SubResource("Resource_xbpgk"), SubResource("Resource_laa4d")]
|
||||
texture = ExtResource("5_ycc70")
|
||||
widthScale = 1.0
|
||||
orderMode = 2
|
||||
isUpperCase = false
|
||||
fontSizeScale = 0.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_4mvgb"]
|
||||
script = ExtResource("4_y5jfh")
|
||||
button = 11
|
||||
|
||||
[sub_resource type="Resource" id="Resource_l8cwl"]
|
||||
script = ExtResource("4_y5jfh")
|
||||
button = 12
|
||||
|
||||
[sub_resource type="Resource" id="Resource_oje1t"]
|
||||
script = ExtResource("2_g15ft")
|
||||
icons = [SubResource("Resource_4mvgb"), SubResource("Resource_l8cwl")]
|
||||
texture = ExtResource("6_6nxcf")
|
||||
widthScale = 1.0
|
||||
orderMode = 2
|
||||
isUpperCase = false
|
||||
fontSizeScale = 0.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_8bcch"]
|
||||
script = ExtResource("7_y0txw")
|
||||
axis = 0
|
||||
type = 0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_rlnb1"]
|
||||
script = ExtResource("7_y0txw")
|
||||
axis = 0
|
||||
type = 1
|
||||
|
||||
[sub_resource type="Resource" id="Resource_fmatu"]
|
||||
script = ExtResource("20_55eoq")
|
||||
en = "L"
|
||||
entries = []
|
||||
context = ""
|
||||
|
||||
[sub_resource type="Resource" id="Resource_tqg5p"]
|
||||
script = ExtResource("2_g15ft")
|
||||
icons = [SubResource("Resource_8bcch"), SubResource("Resource_rlnb1")]
|
||||
texture = ExtResource("9_eeamd")
|
||||
widthScale = 1.0
|
||||
orderMode = 2
|
||||
label = SubResource("Resource_fmatu")
|
||||
isUpperCase = false
|
||||
fontSizeScale = 0.8
|
||||
|
||||
[sub_resource type="Resource" id="Resource_vi3u1"]
|
||||
script = ExtResource("7_y0txw")
|
||||
axis = 1
|
||||
type = 1
|
||||
|
||||
[sub_resource type="Resource" id="Resource_vjbhe"]
|
||||
script = ExtResource("7_y0txw")
|
||||
axis = 1
|
||||
type = 0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_q8dch"]
|
||||
script = ExtResource("20_55eoq")
|
||||
en = "L"
|
||||
entries = []
|
||||
context = ""
|
||||
|
||||
[sub_resource type="Resource" id="Resource_3oyc0"]
|
||||
script = ExtResource("2_g15ft")
|
||||
icons = [SubResource("Resource_vi3u1"), SubResource("Resource_vjbhe")]
|
||||
texture = ExtResource("10_3i85w")
|
||||
widthScale = 1.0
|
||||
orderMode = 2
|
||||
label = SubResource("Resource_q8dch")
|
||||
isUpperCase = true
|
||||
fontSizeScale = 0.8
|
||||
|
||||
[sub_resource type="Resource" id="Resource_wd2xx"]
|
||||
script = ExtResource("7_y0txw")
|
||||
axis = 2
|
||||
type = 0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_h3a17"]
|
||||
script = ExtResource("7_y0txw")
|
||||
axis = 2
|
||||
type = 1
|
||||
|
||||
[sub_resource type="Resource" id="Resource_07ljj"]
|
||||
script = ExtResource("20_55eoq")
|
||||
en = "R"
|
||||
entries = []
|
||||
context = ""
|
||||
|
||||
[sub_resource type="Resource" id="Resource_c6gt5"]
|
||||
script = ExtResource("2_g15ft")
|
||||
icons = [SubResource("Resource_wd2xx"), SubResource("Resource_h3a17")]
|
||||
texture = ExtResource("9_eeamd")
|
||||
widthScale = 1.0
|
||||
orderMode = 2
|
||||
label = SubResource("Resource_07ljj")
|
||||
isUpperCase = false
|
||||
fontSizeScale = 0.8
|
||||
|
||||
[sub_resource type="Resource" id="Resource_qmgk3"]
|
||||
script = ExtResource("7_y0txw")
|
||||
axis = 3
|
||||
type = 1
|
||||
|
||||
[sub_resource type="Resource" id="Resource_4ro5i"]
|
||||
script = ExtResource("20_55eoq")
|
||||
en = "R"
|
||||
entries = []
|
||||
context = ""
|
||||
|
||||
[sub_resource type="Resource" id="Resource_812y6"]
|
||||
script = ExtResource("2_g15ft")
|
||||
icons = [SubResource("Resource_qmgk3"), SubResource("Resource_vjbhe")]
|
||||
texture = ExtResource("10_3i85w")
|
||||
widthScale = 1.0
|
||||
orderMode = 2
|
||||
label = SubResource("Resource_4ro5i")
|
||||
isUpperCase = true
|
||||
fontSizeScale = 0.8
|
||||
|
||||
[sub_resource type="Resource" id="Resource_udrbd"]
|
||||
script = ExtResource("4_6ycsi")
|
||||
combined = [SubResource("Resource_xpfqu"), SubResource("Resource_28c0y"), SubResource("Resource_oje1t"), SubResource("Resource_tqg5p"), SubResource("Resource_3oyc0"), SubResource("Resource_c6gt5"), SubResource("Resource_812y6")]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_s3w6q"]
|
||||
script = ExtResource("5_sn8hr")
|
||||
backgroundTexture = ExtResource("5_amgur")
|
||||
directionUpTexture = ExtResource("6_0hfff")
|
||||
directionalOffset = 0.0
|
||||
fontSizeScale = 1.0
|
||||
isUpperCase = true
|
||||
|
||||
[sub_resource type="Resource" id="Resource_40bf3"]
|
||||
script = ExtResource("2_4sutq")
|
||||
value = 0.7
|
||||
unit = "em"
|
||||
isAnimated = false
|
||||
animationDuration = 0.0
|
||||
animationOffset = 0.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_xrtll"]
|
||||
script = ExtResource("1_64knt")
|
||||
backgroundTexture = ExtResource("10_q44jo")
|
||||
widthScale = 1.0
|
||||
fontSizeScale = 1.0
|
||||
fontSizeCharacterMultiply = 0.9
|
||||
fontIsUpperCase = true
|
||||
hasLabel = false
|
||||
borderLeft = 0.0
|
||||
borderRight = 0.0
|
||||
borderTop = 0.0
|
||||
borderBottom = 0.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_nkgsq"]
|
||||
script = ExtResource("1_64knt")
|
||||
backgroundTexture = ExtResource("12_mf3bj")
|
||||
widthScale = 1.0
|
||||
fontSizeScale = 1.0
|
||||
fontSizeCharacterMultiply = 0.9
|
||||
fontIsUpperCase = true
|
||||
hasLabel = true
|
||||
borderLeft = 40.0
|
||||
borderRight = 40.0
|
||||
borderTop = 40.0
|
||||
borderBottom = 40.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_wrdp7"]
|
||||
script = ExtResource("1_64knt")
|
||||
backgroundTexture = ExtResource("12_mf3bj")
|
||||
widthScale = 2.0
|
||||
fontSizeScale = 0.7
|
||||
fontSizeCharacterMultiply = 1.0
|
||||
fontIsUpperCase = true
|
||||
hasLabel = true
|
||||
borderLeft = 40.0
|
||||
borderRight = 40.0
|
||||
borderTop = 40.0
|
||||
borderBottom = 40.0
|
||||
leftIndicatorTexture = ExtResource("13_ijjqw")
|
||||
rightIndicatorTexture = ExtResource("13_ijjqw")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_mf61p"]
|
||||
script = ExtResource("1_64knt")
|
||||
backgroundTexture = ExtResource("14_6vom6")
|
||||
widthScale = 2.0
|
||||
fontSizeScale = 1.0
|
||||
fontSizeCharacterMultiply = 0.9
|
||||
fontIsUpperCase = true
|
||||
hasLabel = false
|
||||
borderLeft = 0.0
|
||||
borderRight = 0.0
|
||||
borderTop = 0.0
|
||||
borderBottom = 0.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_qt31g"]
|
||||
script = ExtResource("20_55eoq")
|
||||
en = "L"
|
||||
entries = []
|
||||
context = ""
|
||||
|
||||
[sub_resource type="Resource" id="Resource_4s1kq"]
|
||||
script = ExtResource("5_sn8hr")
|
||||
backgroundTexture = ExtResource("18_amimm")
|
||||
directionUpTexture = ExtResource("20_r1y6a")
|
||||
directionalOffset = 0.0
|
||||
label = SubResource("Resource_qt31g")
|
||||
fontSizeScale = 0.8
|
||||
isUpperCase = true
|
||||
buttonPressTexture = ExtResource("19_7x4g0")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_dr7bt"]
|
||||
script = ExtResource("1_64knt")
|
||||
backgroundTexture = ExtResource("13_omll7")
|
||||
widthScale = 1.0
|
||||
fontSizeScale = 1.0
|
||||
fontSizeCharacterMultiply = 0.9
|
||||
fontIsUpperCase = true
|
||||
hasLabel = true
|
||||
borderLeft = 0.0
|
||||
borderRight = 0.0
|
||||
borderTop = 0.0
|
||||
borderBottom = 0.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_2rh0g"]
|
||||
script = ExtResource("1_64knt")
|
||||
backgroundTexture = ExtResource("14_n68qo")
|
||||
widthScale = 1.0
|
||||
fontSizeScale = 1.0
|
||||
fontSizeCharacterMultiply = 0.9
|
||||
fontIsUpperCase = true
|
||||
hasLabel = true
|
||||
borderLeft = 0.0
|
||||
borderRight = 0.0
|
||||
borderTop = 0.0
|
||||
borderBottom = 0.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_34cgw"]
|
||||
script = ExtResource("5_a3fep")
|
||||
leftButtonTexture = ExtResource("2_q818g")
|
||||
middleButtonTexture = ExtResource("3_u1h0x")
|
||||
rightButtonTexture = ExtResource("4_5b8av")
|
||||
wheelUpTexture = ExtResource("7_n1ega")
|
||||
wheelDownTexture = ExtResource("6_qyc6e")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_5ywoi"]
|
||||
script = ExtResource("20_55eoq")
|
||||
en = "R"
|
||||
entries = []
|
||||
context = ""
|
||||
|
||||
[sub_resource type="Resource" id="Resource_jl0ql"]
|
||||
script = ExtResource("5_sn8hr")
|
||||
backgroundTexture = ExtResource("18_amimm")
|
||||
directionUpTexture = ExtResource("20_r1y6a")
|
||||
directionalOffset = 0.0
|
||||
label = SubResource("Resource_5ywoi")
|
||||
fontSizeScale = 0.8
|
||||
isUpperCase = true
|
||||
buttonPressTexture = ExtResource("19_7x4g0")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_b5rf1"]
|
||||
script = ExtResource("1_64knt")
|
||||
backgroundTexture = ExtResource("21_hcyk3")
|
||||
widthScale = 1.0
|
||||
fontSizeScale = 1.0
|
||||
fontSizeCharacterMultiply = 0.9
|
||||
fontIsUpperCase = true
|
||||
hasLabel = true
|
||||
borderLeft = 0.0
|
||||
borderRight = 0.0
|
||||
borderTop = 0.0
|
||||
borderBottom = 0.0
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_urlfx")
|
||||
font = ExtResource("1_xrnc5")
|
||||
fontSize = SubResource("Resource_40bf3")
|
||||
iconHeightInEm = 1.5
|
||||
mouseInputIcon = SubResource("Resource_34cgw")
|
||||
keyboardKeys = SubResource("Resource_nkgsq")
|
||||
keyboardModifiers = SubResource("Resource_wrdp7")
|
||||
keyboardSpaceKey = SubResource("Resource_mf61p")
|
||||
keyboardEnterKey = SubResource("Resource_xrtll")
|
||||
mainButtons = SubResource("Resource_2rh0g")
|
||||
leftShouldersButtons = SubResource("Resource_dr7bt")
|
||||
rightShouldersButtons = SubResource("Resource_b5rf1")
|
||||
digitalPad = SubResource("Resource_s3w6q")
|
||||
leftJoystick = SubResource("Resource_4s1kq")
|
||||
rightJoystick = SubResource("Resource_jl0ql")
|
||||
combinedInputs = SubResource("Resource_udrbd")
|
||||
locales = []
|
|
@ -5,7 +5,7 @@
|
|||
[resource]
|
||||
script = ExtResource("1_t42o5")
|
||||
axis = 0
|
||||
type = 0
|
||||
type = 1
|
||||
continous = true
|
||||
_value = 0.0
|
||||
_wasActive = false
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
[resource]
|
||||
script = ExtResource("1_y2djh")
|
||||
axis = 0
|
||||
type = 1
|
||||
type = 0
|
||||
continous = true
|
||||
_value = 0.0
|
||||
_wasActive = false
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
[resource]
|
||||
script = ExtResource("1_yy4wi")
|
||||
axis = 0
|
||||
type = 0
|
||||
type = 1
|
||||
continous = true
|
||||
_value = 0.0
|
||||
_wasActive = false
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
[resource]
|
||||
script = ExtResource("1_wej7c")
|
||||
axis = 1
|
||||
type = 1
|
||||
type = 0
|
||||
continous = true
|
||||
_value = 0.0
|
||||
_wasActive = false
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
[resource]
|
||||
script = ExtResource("1_22ykp")
|
||||
axis = 2
|
||||
type = 0
|
||||
type = 1
|
||||
continous = true
|
||||
_value = 0.0
|
||||
_wasActive = false
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
[resource]
|
||||
script = ExtResource("1_pxirv")
|
||||
axis = 2
|
||||
type = 1
|
||||
type = 0
|
||||
continous = true
|
||||
_value = 0.0
|
||||
_wasActive = false
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
[resource]
|
||||
script = ExtResource("1_nrdau")
|
||||
axis = 3
|
||||
type = 0
|
||||
type = 1
|
||||
continous = true
|
||||
_value = 0.0
|
||||
_wasActive = false
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
[resource]
|
||||
script = ExtResource("1_xf3mc")
|
||||
axis = 3
|
||||
type = 1
|
||||
type = 0
|
||||
continous = true
|
||||
_value = 0.0
|
||||
_wasActive = false
|
||||
|
|
|
@ -4,8 +4,8 @@
|
|||
|
||||
[resource]
|
||||
script = ExtResource("1_ow83o")
|
||||
axis = 5
|
||||
type = 1
|
||||
axis = 4
|
||||
type = 0
|
||||
continous = true
|
||||
_value = 0.0
|
||||
_wasActive = false
|
||||
|
|
|
@ -4,8 +4,8 @@
|
|||
|
||||
[resource]
|
||||
script = ExtResource("1_63g6c")
|
||||
axis = 3
|
||||
type = 1
|
||||
axis = 5
|
||||
type = 0
|
||||
continous = true
|
||||
_value = 0.0
|
||||
_wasActive = false
|
||||
|
|
|
@ -7,12 +7,12 @@
|
|||
[ext_resource type="Resource" uid="uid://chwstub7bnlpp" path="res://addons/rokojori_action_library/Runtime/Sensors/Default-Sensors/Keyboard & Mouse/Mouse/Mouse-Wheel Down.tres" id="5_diio6"]
|
||||
[ext_resource type="Resource" uid="uid://b52horrdbgyaa" path="res://addons/rokojori_action_library/Runtime/Sensors/Default-Sensors/Keyboard & Mouse/Mouse/Mouse-Wheel Up.tres" id="6_3kcki"]
|
||||
[ext_resource type="Resource" uid="uid://mbnb46tah4i7" path="res://addons/rokojori_action_library/Runtime/Sensors/Default-Sensors/Keyboard & Mouse/Movement/Move Forward.tres" id="7_1jado"]
|
||||
[ext_resource type="Resource" uid="uid://ds1rrltuj0mse" path="res://addons/rokojori_action_library/Runtime/Sensors/Default-Sensors/Keyboard & Mouse/Movement/Fly Up.tres" id="7_if4l6"]
|
||||
[ext_resource type="Resource" uid="uid://c5ueac4xt7oyb" path="res://addons/rokojori_action_library/Runtime/Sensors/Default-Sensors/Keyboard & Mouse/Movement/Move Back.tres" id="8_0us2c"]
|
||||
[ext_resource type="Resource" uid="uid://dwigqkllvj8dq" path="res://addons/rokojori_action_library/Runtime/Sensors/Default-Sensors/Keyboard & Mouse/Movement/Fly Down.tres" id="8_r5hwi"]
|
||||
[ext_resource type="Resource" uid="uid://ds1rrltuj0mse" path="res://addons/rokojori_action_library/Runtime/Sensors/Default-Sensors/Keyboard & Mouse/Movement/Move Down.tres" id="8_r5hwi"]
|
||||
[ext_resource type="Resource" uid="uid://bfxeh1y1vgkiu" path="res://addons/rokojori_action_library/Runtime/Sensors/Default-Sensors/Keyboard & Mouse/Movement/Strafe Left.tres" id="9_xdx7j"]
|
||||
[ext_resource type="Resource" uid="uid://bm2d6nhevcjel" path="res://addons/rokojori_action_library/Runtime/Sensors/Default-Sensors/Keyboard & Mouse/Movement/Strafe Right.tres" id="10_cwkpy"]
|
||||
[ext_resource type="Resource" uid="uid://ds1rrltuj0mse" path="res://addons/rokojori_action_library/Runtime/Sensors/Default-Sensors/Keyboard & Mouse/Movement/Move Down.tres" id="11_33hna"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_168ay")
|
||||
sensors = [ExtResource("2_fxahp"), ExtResource("3_6x0mm"), ExtResource("4_4gj3k"), ExtResource("5_diio6"), ExtResource("6_3kcki"), ExtResource("7_1jado"), ExtResource("8_0us2c"), ExtResource("9_xdx7j"), ExtResource("10_cwkpy"), ExtResource("7_if4l6"), ExtResource("8_r5hwi")]
|
||||
sensors = [ExtResource("2_fxahp"), ExtResource("3_6x0mm"), ExtResource("4_4gj3k"), ExtResource("5_diio6"), ExtResource("6_3kcki"), ExtResource("7_1jado"), ExtResource("8_0us2c"), ExtResource("9_xdx7j"), ExtResource("10_cwkpy"), ExtResource("11_33hna"), ExtResource("8_r5hwi")]
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
[sub_resource type="Resource" id="Resource_bf8g7"]
|
||||
script = ExtResource("2_p2364")
|
||||
key = 83
|
||||
keyLocation = 0
|
||||
ctrlHold = 2
|
||||
altHold = 2
|
||||
shiftHold = 2
|
||||
|
@ -19,6 +20,7 @@ _activeTreshold = 0.5
|
|||
[sub_resource type="Resource" id="Resource_bi0fk"]
|
||||
script = ExtResource("2_p2364")
|
||||
key = 4194322
|
||||
keyLocation = 0
|
||||
ctrlHold = 2
|
||||
altHold = 2
|
||||
shiftHold = 2
|
||||
|
@ -31,7 +33,11 @@ _activeTreshold = 0.5
|
|||
|
||||
[resource]
|
||||
script = ExtResource("1_xxflt")
|
||||
sensors = Array[Object]([SubResource("Resource_bf8g7"), SubResource("Resource_bi0fk")])
|
||||
sensors = [SubResource("Resource_bf8g7"), SubResource("Resource_bi0fk")]
|
||||
showOnlyVisibleIcons = true
|
||||
numVisible = 1
|
||||
inputIcons = []
|
||||
useInputIconsFromSensors = true
|
||||
continous = false
|
||||
_value = 0.0
|
||||
_wasActive = false
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
[gd_resource type="Resource" script_class="KeySensor" load_steps=2 format=3 uid="uid://ds1rrltuj0mse"]
|
||||
|
||||
[ext_resource type="Script" path="res://addons/rokojori_action_library/Runtime/Sensors/KeySensor.cs" id="1_2vgvk"]
|
||||
[ext_resource type="Script" path="res://addons/rokojori_action_library/Runtime/Sensors/KeySensor.cs" id="1_r0t8l"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_2vgvk")
|
||||
script = ExtResource("1_r0t8l")
|
||||
key = 69
|
||||
keyLocation = 0
|
||||
ctrlHold = 2
|
||||
altHold = 2
|
||||
shiftHold = 2
|
|
@ -6,6 +6,7 @@
|
|||
[sub_resource type="Resource" id="Resource_uixae"]
|
||||
script = ExtResource("2_rjp34")
|
||||
key = 87
|
||||
keyLocation = 0
|
||||
ctrlHold = 2
|
||||
altHold = 2
|
||||
shiftHold = 2
|
||||
|
@ -19,6 +20,7 @@ _activeTreshold = 0.5
|
|||
[sub_resource type="Resource" id="Resource_grqa0"]
|
||||
script = ExtResource("2_rjp34")
|
||||
key = 4194320
|
||||
keyLocation = 0
|
||||
ctrlHold = 2
|
||||
altHold = 2
|
||||
shiftHold = 2
|
||||
|
@ -31,7 +33,11 @@ _activeTreshold = 0.5
|
|||
|
||||
[resource]
|
||||
script = ExtResource("1_vohv8")
|
||||
sensors = Array[Object]([SubResource("Resource_uixae"), SubResource("Resource_grqa0")])
|
||||
sensors = [SubResource("Resource_uixae"), SubResource("Resource_grqa0")]
|
||||
showOnlyVisibleIcons = true
|
||||
numVisible = 1
|
||||
inputIcons = []
|
||||
useInputIconsFromSensors = true
|
||||
continous = false
|
||||
_value = 0.0
|
||||
_wasActive = false
|
||||
|
|