From 54fee08ee52115b77a627d8e82e104aa9bf750bd Mon Sep 17 00:00:00 2001 From: Juan Linietsky Date: Tue, 19 May 2015 21:36:35 -0300 Subject: [PATCH 1/5] more fixes -only refuse to load an older file if version major is different, fixes #1944 -fix drive letter default value, fixes #1939 --- 2d/kinematic_char/engine.cfg | 7 +++++++ 2d/lights_shadows/engine.cfg | 3 +++ 2d/navpoly/engine.cfg | 7 +++++++ 2d/normalmaps/engine.cfg | 7 +++++++ 2d/screen_space_shaders/engine.cfg | 6 ++++++ 2d/screen_space_shaders/screen_shaders.scn | Bin 5896 -> 5936 bytes 2d/texscreen/bubbles.scn | Bin 1456 -> 1551 bytes 2d/texscreen/engine.cfg | 7 +++++++ 8 files changed, 37 insertions(+) diff --git a/2d/kinematic_char/engine.cfg b/2d/kinematic_char/engine.cfg index 0132442c..4ce8f836 100644 --- a/2d/kinematic_char/engine.cfg +++ b/2d/kinematic_char/engine.cfg @@ -4,6 +4,13 @@ name="Kinematic Collision" main_scene="res://colworld.scn" icon="res://icon.png" +[display] + +width=800 +height=600 +stretch_mode="2d" +stretch_aspect="keep" + [input] move_up=[key(Up)] diff --git a/2d/lights_shadows/engine.cfg b/2d/lights_shadows/engine.cfg index 7e028c35..771288c2 100644 --- a/2d/lights_shadows/engine.cfg +++ b/2d/lights_shadows/engine.cfg @@ -6,6 +6,9 @@ main_scene="res://light_shadows.scn" [display] stretch_mode="2d" +width=800 +height=600 +stretch_aspect="keep" [rasterizer] diff --git a/2d/navpoly/engine.cfg b/2d/navpoly/engine.cfg index 51eefd7b..40515dd3 100644 --- a/2d/navpoly/engine.cfg +++ b/2d/navpoly/engine.cfg @@ -2,3 +2,10 @@ name="Navigation Polygon (2D)" main_scene="res://navigation.scn" + +[display] + +width=800 +height=600 +stretch_mode="2d" +stretch_aspect="keep" diff --git a/2d/normalmaps/engine.cfg b/2d/normalmaps/engine.cfg index 3fc20487..f0002dc2 100644 --- a/2d/normalmaps/engine.cfg +++ b/2d/normalmaps/engine.cfg @@ -2,3 +2,10 @@ name="2D Normal Mapping" main_scene="res://normalmap.scn" + +[display] + +stretch_mode="2d" +width=800 +height=600 +stretch_aspect="ignore" diff --git a/2d/screen_space_shaders/engine.cfg b/2d/screen_space_shaders/engine.cfg index 108fdeba..527e2f8f 100644 --- a/2d/screen_space_shaders/engine.cfg +++ b/2d/screen_space_shaders/engine.cfg @@ -3,3 +3,9 @@ name="Screen-Space Shaders" main_scene="res://screen_shaders.scn" +[display] + +width=780 +height=600 +stretch_mode="2d" +stretch_aspect="keep" diff --git a/2d/screen_space_shaders/screen_shaders.scn b/2d/screen_space_shaders/screen_shaders.scn index cc62ac82030fb1680ad0bd1beb5724a5a1782a36..fc2be96fc9926b3e6e892e12a868e5dd58465182 100644 GIT binary patch delta 1145 zcmYk5QA}H96vxlKw|EN|23Tl~b?aBkTA@rTER_r>QXEEI z+H5i1i&>VdG1{2a%on2%Di0X%lGQanEH#-4iIOd0x24NwcytdM9`ICOyvgt6f6sT$ zxhMJG?~3nRpYz;=szUW?0=OUpd|v}_kvL=qxWxn1e&?LxQXnz`CT4BXM{Un@r~HbO zi^bT**~5I&7f*Nbld*T$Ul5BvPJ8&7)wME6oNvXsgJ<(@dCB11rlrK&%WLcpNE%j; zFu$<46x}z>9_4d`8|T;GTrldA%DTb1xcLN=V9hXxjGA_sbr!khgkf%1PfW5QXFXPg zmBpDg_9DL&Ta9+W)6M|YF~PK$n44K-ZG11d)ddEI(8?c!)AFlYFaJ@Cx4=PqagVepw7z<&O*VX&@F9e-i`oNqNg%ZBiX+j=M#Th^`!=ebWe z9t+<{T(|Z`V^Mhb@)<4B^oF@L@>${6_XCBEdrdpsYtioXZ(QytJR_gQyC|V(2xYv@ z0v%>7cR66~!(sGdzkD<=$uFg+xb)4uMRDXMoT9{6#O=JKY~`ik-MlpRH|4c-oI}is zkk8vg2U@e`@X!yq9}OVjHX*_RgU|;E>0YSK4Zx-OZLEa9tW5$VA0s9J?%*KJ0ptK1 z;7KNFZ&?<2{94o79q;7)tUApxNN0mK+(M9tF;Z$A1}AIBKXDgb71svN zm2AU7o9rzK``Ax&l7tRz%q&kC9$oRKaMVcZ;L7Rp!~DIHef@OO5Orv0k&!zXK~kZXyIFOqPZ-aFk8T8BF06&C8T+s=R4rir{89u!vd1RaCATVzCs@fXDFZbhxfV z2dNQ9RdtdIKCG&)v1&3~m0nU~@v7?1>FRqGS3DwBSLtDqv4kpx3zhgf_*m+Jw=b;I za3ijRKc|;GneZ0Xjb^lKt(Fumb-64|pcL8*?~Q7s*|ANu;70h4qK3y&4`r1I+6{XF zCmz`%vL8L%aY&2MM^*=j6HE+^N+-!gH_=asWF`y{WcssA1P@)qQ$z+QH03q$`dl2GyHHTKZSllfDiO zbQ*_46sMt))@ve_p#MNb4;-iW|E*1q2yl{cJ1F#1yT4=?sQL-!H_auMmy^*4_%XDy JX6?SU^B)-aRObKy delta 1110 zcmZXSZ)jUp6u{4WFWr0X+f1>w*%q}oO`D|ulDbaQuE@@NuYdBVthkf~9b(tn#?rMZ zZ6rb&$s8<-$iSzFi%3Sn4{jgk`epFMy{@QWis%%S7UagZh_Elx4+;b8$?%&Oeup22 za}Squ?ycZkLC@)gVL-xGe2 z*(Z>gyv;>l%NN4bl;`l|9cq!ve`T-fSuUJ{NzbRke0n0zr7w9+t1z8rJx@Z0E3L*j zJA7T07A~C2uz)x>wKx%gqwFKoDY`|xXLgD2H|l2?a7VWoh7GPZiG8rHzij>_z9dd= znLX0Lk!@h>Zyy?{t24$%$4&s#%a`1z6paZmL43S#p-8+R6iSzW!C^ z!OG~mT=VVP>Sq0~LXJb17RCEGjxv`vagB8a05>~aka;(Zofy`hvQ_QWC7+PLYd7dF zTg43a{-nH_PYH-68Eo4f`HK=VHcJ~DqbE^j09sxKUJ476QF5kk z;lqjJ2>1*31In<^AaW5Q-vhO!K6rEbd)$eBEG_|KEo#&Ou>ao?0P;e$8XjkL=0d}a zgM9}3=2k<vpOI)&`mBoiIV?2k(uJK{TU4S;0^IYM9^6+v+F7Rv_e5LZX--#hE zmn*3P_<7JW;yi0XfK1=3T02>Eq-q^xLn~G5BpXgvt*d0|cXz$}aW|JO=w|V_TOW(1 zcT!mhvRvCgyMf+VE=BEm%7ReIs`v}BG?flpS`OpdRerWiV|j)t(8DCp71-C3zex#H zBcWI!=8bs2OXF%x(v9fPXhoBHJhH;w>zMe%^`pHk9D{radTGtaiD#LN@4$0Rj*LN= zJgN2p0Idv~`Y9+r3MU9ZlVE@dn1fAiIogN>4klp()X=2{nwbpklIOdKNULKsAZV0`k{}?`bV diff --git a/2d/texscreen/bubbles.scn b/2d/texscreen/bubbles.scn index 779cba6930b1fc02626cf82de3661a3934b45732..41026aceed0d264372e05e999c94af67fcbbd51a 100644 GIT binary patch delta 743 zcmWlXOK1~e6ov21KWS`Dp<1;~G4)SuQWamt7iw+q%%n+;E~Hgds^p(0lP22EgiIeA zi)pEE>H|a7DoUh?E?iW_g$fc&W?%V-4s*!lm_vOT?|@b->w(W&ZVS z9b1m21b~W`p$qRa7nf2!4nEPVnu3ALn2U6z5>Zod%EQcQ!fBfxiy3M+OCw}(k3Y_8 zh!NNO%wkz8Vb!?}*p&xtz$d&OGgyWF<^A=A7oIBxtT4HI*NaVIRNMip26rICm3W+w zs<9&)UCo6LvNpc|4OQIeA?cWsVsk90-!hhAKOfV3ncX^9OIVIM(wk8GnyLnWq01}P zNr-Og3l~jzBD@w+*?dbkfLPgdG<%)Q&G;TdioGrLK^a|JGdv@#YQ2e+u60Qlr9)O! zQT&Jtybpx9-l1zXNt0CLZ9b_R$~=>RxjS!3a^|1B`7|%SlP^rTYAF|0Bc}?F(6w+# zPM2%1E{{5wHsmcHpBwkfCqLM>=QqpWn6q}+ z`_&XwS>w~1I`)Y?fA(w>ZV7J8#s!)Qj7)>VrFy(so7&x-&^jiWd>8{bvgpC0NeI{8 z0E3m|gs`lW))@Q7&@2B$|9hynNGqouQzsuom{I?CUr2s$IXC+U?A$y*UK1+=Q@2)3 z3uitacKg8%>k delta 625 zcmWlXT}Tvh6vgk%e|A@Ei>Eo=N3)51d1h)}zKXIeEM3YSPSoLP5gb#k4N*>(Mj zc0`1FN>~D|6hTU&9<+xZOOcSkz(tqICp-r%13CDQml0L`7(it|Y#>QW8rje9~m3sE>S6)eD2^oonO(oBPWJOH-u#=4$DaFGA)F`*4 zcO<2$gVK$$8Wd=pjyfSrOjIkLW%Y=v9Cut6VnAAkAsn5{x6Wcd4BI*RC_$W;gkNBW z>sMZbkH0`GJgT13OhfOZpXnRtsVM%ylV!VHkI`-Dr7vxA0$*jWaRIk Date: Wed, 20 May 2015 17:38:41 +0200 Subject: [PATCH 2/5] Add input mapping GUI demo --- gui/input_mapping/controls.gd | 49 +++++++++++++++++++++++++++++++++ gui/input_mapping/controls.scn | Bin 0 -> 2686 bytes gui/input_mapping/engine.cfg | 18 ++++++++++++ 3 files changed, 67 insertions(+) create mode 100644 gui/input_mapping/controls.gd create mode 100644 gui/input_mapping/controls.scn create mode 100644 gui/input_mapping/engine.cfg diff --git a/gui/input_mapping/controls.gd b/gui/input_mapping/controls.gd new file mode 100644 index 00000000..6ca059c8 --- /dev/null +++ b/gui/input_mapping/controls.gd @@ -0,0 +1,49 @@ +# Note for the reader: +# +# This demo conveniently uses the same names for actions and for the container nodes +# that hold each remapping button. This allow to get back to the button based simply +# on the name of the corresponding action, but it might not be so simple in your project. +# +# A better approach for large-scale input remapping might be to do the connections between +# buttons and wait_for_input through the code, passing as arguments both the name of the +# action and the node, e.g.: +# button.connect("pressed", self, "wait_for_input", [ button, action ]) + +extends Control + +var player_actions = [ "move_up", "move_down", "move_left", "move_right", "jump" ] +var action # To register the action the UI is currently handling +var button # Button node corresponding to the above action + +func wait_for_input(action_bind): + action = action_bind + # See note at the beginning of the script + button = get_node("bindings").get_node(action).get_node("Button") + get_node("contextual_help").set_text("Press a key to assign to the '" + action + "' action.") + set_process_input(true) + +func _input(event): + # Handle the first pressed key + if (event.type == InputEvent.KEY): + # Register the event as handled and stop polling + get_tree().set_input_as_handled() + set_process_input(false) + # Reinitialise the contextual help label + get_node("contextual_help").set_text("Click a key binding to reassign it, or press the Cancel action.") + if (not event.is_action("ui_cancel")): + # Display the string corresponding to the pressed key + button.set_text(OS.get_scancode_string(event.scancode)) + # Start by removing previously key binding(s) + for old_event in InputMap.get_action_list(action): + InputMap.action_erase_event(action, old_event) + # Add the new key binding + InputMap.action_add_event(action, event) + +func _ready(): + # Initialise each button with the default key binding from InputMap + var input_event + for action in player_actions: + # We assume that the key binding that we want is the first one (0), if there are several + input_event = InputMap.get_action_list(action)[0] + # See note at the beginning of the script + get_node("bindings").get_node(action).get_node("Button").set_text(OS.get_scancode_string(input_event.scancode)) diff --git a/gui/input_mapping/controls.scn b/gui/input_mapping/controls.scn new file mode 100644 index 0000000000000000000000000000000000000000..276712ba2205efe1e3c9b04f52ba9d67e5d2ffbd GIT binary patch literal 2686 zcmY*b4Qw366@I&W_S$!G&W`Pz?eovvIgax~a!G8fl1Y=dw-?8b-Gc0fgeL9I-re4L zle^txch8QUsM?T*w9p6z`WGTKhgy}C1GObZs7h%r4wR@+Cs%Q~P z$Dkru>CMjUyzl*dGdpj_CuA8GpL&2`C&0TRzzh$-0k|A+q#6YTSVDaMTh-KlEj^La z42{%z0{}j!Kt=H>MICBLBgn4FK^+OyDSEzOT8>gsok?gU_5LZ{){}ZpcV=SL z&*d~vTrQXeHAOl(Xz{An`D`thQ7U0r?p1|rb9#2tQSz$2pE_b*wX(Vqv#?oRRjL=0 zrsJ4-XeOJ*jF~Fh3ZoFvQ9{D{7tz^jK zLrZMO(wx+!VyTX9(hu)!nhPffYm~g^sEPvh0fB2k06%EZB}#@c5-dLCtD(x7$%YrRItn1j%kU zC~5}^ik8+LcNv(`d0tB^Y}M@K6#j}n2x{aS7|G+L1O50)wOVw{X-jn{6M%GR~T%9+kG^JRe<6OKL?QqA1v~H`>laQuoeU6#U=A=Jz zX^s9(&~2sAy&G)OiF0Bqr>FKSrr|cxUxOa`7Ojaq502VRR&WJ{{z*PWi+tLgKD?FI z&2#(k#GQNPJA{43e1T@_rd8chGNz^IMxp4?KU9uluRI-X=WLzKfDqX&KZzmfNphSw zlvLz4aA+F{q_ffn26@@z+Y)`)CiT`%sg|x9jt!k825X2A|3w87EtpI^DzG1DD^7S^ zkRx&ILckCP=+8t z4$jh|J9&Ld^L#e0qa8xl($k)=HSqy$_277wnaS9iQ<`<}iC>~C1bfn)_G;yAZ`01w zAm%H8r|@as%-E$+)tQUT@C6Kc+}Q_fJ>N-bC-fcOi4-^BF+Qzjy5Hz|f%J3A4Bf*Y zdX1CCbop_@;GUyzm?B$%7N4nKR9$pdT{9Q zJ21vs#h&|l&2fgsUyjP(!6E$7nzl8)psd+;?1jYFeCu*#g}rJFG}`N z8}*k$a3*sIABUZH&5>oLHmEN>3fE{<`n#$zkPJ(-(>Mo-;rHDpSY8@{EgrPP*yusG z9fnKoP@wJcDi|N~mpWjU$qCwlyI{viC)R9#Paj2Pzr9f3sYReXePs%9mTPmP{AX(XZUv9!*9ILH z%>bWCnCW~`&Y|Lo=PGCA0(Q#{I6ZU@MF^A4tZgSEc0mVgPvPR%E)v8E>3%85MZgum zeg~WEW}ie@K}4yS1%mfN52=>|QXg{<_)iSaHwN(Pyb!==q=3JH75rKz?BT%=EOlBArMFa!{B3K zHnNOG+|EYJNr;to0YaamMK-5EO-W?81o5-{y}mM<%xyFAp+FwyZges$_p-SzFI2`i zu*{102G%w)KpAiG!evzE#a%3?BhW%drGu;}iWr18W;D#?bFQTA|L02D&Jj3Vh6tOE zGG)dV>n(D1k@zIoetS^aDBR-<3o5| zI>lImg`3L~BQw4WS?&v!a{RpXlf!bJQ9glm1mrOTg#wqIT7 z{t{% Date: Tue, 26 May 2015 01:05:08 -0300 Subject: [PATCH 3/5] ability to run 2D physics in a thread also, 2D physics is now thread safe too. see physics_2d/thread_model --- 2d/platformer/engine.cfg | 1 + 1 file changed, 1 insertion(+) diff --git a/2d/platformer/engine.cfg b/2d/platformer/engine.cfg index 50b6b862..5461cbdd 100644 --- a/2d/platformer/engine.cfg +++ b/2d/platformer/engine.cfg @@ -28,6 +28,7 @@ spawn=[key(F1), jbutton(0, 11)] [physics_2d] default_gravity=700 +thread_model=1 [rasterizer] From a4e0c19b8dbcfff996eb711dbf8aa45fb97c1b2f Mon Sep 17 00:00:00 2001 From: Juan Linietsky Date: Tue, 26 May 2015 01:30:36 -0300 Subject: [PATCH 4/5] oops, previous commit was not working it is working now --- 2d/platformer/engine.cfg | 1 - 1 file changed, 1 deletion(-) diff --git a/2d/platformer/engine.cfg b/2d/platformer/engine.cfg index 5461cbdd..50b6b862 100644 --- a/2d/platformer/engine.cfg +++ b/2d/platformer/engine.cfg @@ -28,7 +28,6 @@ spawn=[key(F1), jbutton(0, 11)] [physics_2d] default_gravity=700 -thread_model=1 [rasterizer] From e2c589765ef1f29057f07712152e9514c9e8bc83 Mon Sep 17 00:00:00 2001 From: Juan Linietsky Date: Wed, 27 May 2015 17:30:50 -0300 Subject: [PATCH 5/5] -fix bug in animation editor -fix crash bug in physics motion, closes #1993 --- 2d/motion/engine.cfg | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/2d/motion/engine.cfg b/2d/motion/engine.cfg index 064de6b3..26111190 100644 --- a/2d/motion/engine.cfg +++ b/2d/motion/engine.cfg @@ -2,3 +2,10 @@ name="Motion Test" main_scene="res://motion.scn" + +[display] + +width=800 +height=600 +stretch_mode="2d" +stretch_aspect="keep"