From f0a9da387a9fd0e673e5d3e24f12b70114009d37 Mon Sep 17 00:00:00 2001 From: Paul Liverman III Date: Thu, 5 Apr 2018 15:43:24 -0700 Subject: [PATCH] init wip --- main.moon | 2 + prototypes/examples/app-bar.moon | 53 ++++++++++ prototypes/examples/badge.moon | 14 +++ prototypes/examples/bottom-navigation.moon | 20 ++++ prototypes/examples/buttons.moon | 23 ++++ prototypes/examples/chip.moon | 20 ++++ prototypes/examples/divider.moon | 10 ++ prototypes/examples/todo.txt | 23 ++++ prototypes/scp-clicker/gfx/banknote.png | Bin 0 -> 8298 bytes prototypes/scp-clicker/gfx/fizzing-flask.png | Bin 0 -> 12384 bytes prototypes/scp-clicker/gfx/hazard-sign.png | Bin 0 -> 22287 bytes prototypes/scp-clicker/main.moon | 104 +++++++++++++++++++ prototypes/slab.moon | 59 +++++++++++ 13 files changed, 328 insertions(+) create mode 100644 main.moon create mode 100644 prototypes/examples/app-bar.moon create mode 100644 prototypes/examples/badge.moon create mode 100644 prototypes/examples/bottom-navigation.moon create mode 100644 prototypes/examples/buttons.moon create mode 100644 prototypes/examples/chip.moon create mode 100644 prototypes/examples/divider.moon create mode 100644 prototypes/examples/todo.txt create mode 100644 prototypes/scp-clicker/gfx/banknote.png create mode 100644 prototypes/scp-clicker/gfx/fizzing-flask.png create mode 100644 prototypes/scp-clicker/gfx/hazard-sign.png create mode 100644 prototypes/scp-clicker/main.moon create mode 100644 prototypes/slab.moon diff --git a/main.moon b/main.moon new file mode 100644 index 0000000..e458fea --- /dev/null +++ b/main.moon @@ -0,0 +1,2 @@ +for k in pairs love.handlers + print k diff --git a/prototypes/examples/app-bar.moon b/prototypes/examples/app-bar.moon new file mode 100644 index 0000000..023fdd8 --- /dev/null +++ b/prototypes/examples/app-bar.moon @@ -0,0 +1,53 @@ +-- based on http://www.material-ui.com/#/components/app-bar + +{ + toolbar: { + width: 1 + -- height not defined, it will be defined by largest sub-element (in this case, the text) + -- sub-items' heights will be equal, widths according to aspect ratio + padding: 5 + { + dropdown: { + toggle: "click" -- vs hover (default) + background: hamburger -- a drawable hamburger icon + background: { hamburger, close_x } -- idea: first is default state, second is when activated + {} -- sub-items (not shown unless activated) + } + } + { + text: "Title" + clicked: (btn, x, y) -> + -- func that replaces (switch method?) toolbar w one defined below + } + { + align: "right" + dropdown: { + toggle: "click" + background: down_arrow + {} -- sub-items (not shown unless activated) + } + } + } +} + +{ + toolbar: { + padding: 5 + { + background: close_x + } + { + textinput: { + name: "title" -- something to make it easier to access whatever value is stored here currently ? + value: "Title" + -- something to style it to just be the text + } + } + { + align: "right" + text: "SAVE" + clicked: (btn, x, y) -> + -- do something to save what has been put in the textinput + } + } +} diff --git a/prototypes/examples/badge.moon b/prototypes/examples/badge.moon new file mode 100644 index 0000000..0ce5b0b --- /dev/null +++ b/prototypes/examples/badge.moon @@ -0,0 +1,14 @@ +-- reference http://www.material-ui.com/#/components/badge + +{ + background: some_image -- or could be text or something + badge: { + -- can be any kind of element, will be sized and offset to top-right + -- but will have a circular outer display color for whatever it is + -- (so really should use transparent circular items or text only) + -- this example: a count of 2 with a background color of red and text color white + text: 2 + background: {255, 0, 0, 255} + color: {255, 255, 255, 255} + } +} diff --git a/prototypes/examples/bottom-navigation.moon b/prototypes/examples/bottom-navigation.moon new file mode 100644 index 0000000..11f4be5 --- /dev/null +++ b/prototypes/examples/bottom-navigation.moon @@ -0,0 +1,20 @@ +-- from http://www.material-ui.com/#/components/bottom-navigation + +{ + toolbar: { + width: 0.5 + padding: 3 + { + -- default align is top-left (we want left, but in this case, vertical alignment doesn't mean anything) + background: recents_icon + } + { + align: "center" + background: favorites_icon + } + { + align: "right" + background: nearby_icon + } + } +} diff --git a/prototypes/examples/buttons.moon b/prototypes/examples/buttons.moon new file mode 100644 index 0000000..daf3f93 --- /dev/null +++ b/prototypes/examples/buttons.moon @@ -0,0 +1,23 @@ +{ + text: "click me" + -- define a clicked fn here +} +{ + padding: 3 + text: "button" + background: {0, 255, 255, 255} -- teal + color: {255, 255, 255, 255} -- white +} +{ + padding: 8 + text: "+" + background: {0, 255, 255, 255} -- teal + color: {255, 255, 255, 255} -- white + round: true -- to make a rounded button (like a badge) + round: 5 -- round the background box by this percent/pixels +} +{ + background: some_image + clicked: (btn, x, y) -> -- now its a button! :D + hovered: (x, y) -> -- with optional hoverable capability +} diff --git a/prototypes/examples/chip.moon b/prototypes/examples/chip.moon new file mode 100644 index 0000000..cd2cfe0 --- /dev/null +++ b/prototypes/examples/chip.moon @@ -0,0 +1,20 @@ +-- http://www.material-ui.com/#/components/chip + +{ + rounded: 5 + background: some_color + padding: {right: 5} + -- somehow this knows to expand to size of children horizontally, but not vertically... + { + rounded: true -- full circle instead of special pixel count + background: an_image + } + { + text: "Colored Chip" + } + { + width: 0.8 -- 80% size of parent + rounded: true + background: an_x_image + } +} diff --git a/prototypes/examples/divider.moon b/prototypes/examples/divider.moon new file mode 100644 index 0000000..f8fcd45 --- /dev/null +++ b/prototypes/examples/divider.moon @@ -0,0 +1,10 @@ +-- http://www.material-ui.com/#/components/divider + +{ + text: "some text" +} +{ -- makes a horizontal rule effectively + newline: true + height: 1.0001 + background: dark_grey +} diff --git a/prototypes/examples/todo.txt b/prototypes/examples/todo.txt new file mode 100644 index 0000000..0129570 --- /dev/null +++ b/prototypes/examples/todo.txt @@ -0,0 +1,23 @@ +http://www.material-ui.com/#/components/card +http://www.material-ui.com/#/components/date-picker +http://www.material-ui.com/#/components/dialog -- like a window +http://www.material-ui.com/#/components/drawer +http://www.material-ui.com/#/components/grid-list +http://www.material-ui.com/#/components/list -- like a vertical toolbar ? (menu alias ?) +http://www.material-ui.com/#/components/paper -- is a drop-shadow effect around itself +http://www.material-ui.com/#/components/circular-progress -- a spinner (note: should be able to show specific amount too) +http://www.material-ui.com/#/components/linear-progress -- a slider / progressbar +http://www.material-ui.com/#/components/refresh-indicator -- a specialized spinner +http://www.material-ui.com/#/components/select-field +http://www.material-ui.com/#/components/checkbox +http://www.material-ui.com/#/components/toggle -- a short slider turned into boolean +http://www.material-ui.com/#/components/snackbar -- a little notification from bottom +http://www.material-ui.com/#/components/stepper +http://www.material-ui.com/#/components/subheader +http://www.material-ui.com/#/components/table -- grid +http://www.material-ui.com/#/components/tabs -- like my tabs, except allows any content for 'name' of tabs +http://www.material-ui.com/#/components/text-field -- textinput +http://www.material-ui.com/#/components/time-picker +http://www.material-ui.com/#/components/toolbar -- a little more advanced than mine? + +Templates and theming are important. Being able to set all colors for a chunk of UI at once is a good thing. diff --git a/prototypes/scp-clicker/gfx/banknote.png b/prototypes/scp-clicker/gfx/banknote.png new file mode 100644 index 0000000000000000000000000000000000000000..a20a791fc94226fcc267f1102fc36e4e042a1684 GIT binary patch literal 8298 zcmeHNc~q0vw*LStRuOEiLp6d`smN%pR%Wo(t3V})3^FC6q9Q^-WJ*Gk))sE%6%O<%dwpg#Z@LjN=bRxF49T1@Se1He|m>)?Ta)SH6g-h}BR zWWuq`TWet7e(AU3JI@toJXd@-x&~(WiPbV_pvCNXF@E;h!_^Hf()HA~O0l=#*YzK6 z{ecYqSqDt|E&+fiX3Pix1mBwhK*I)i0CHSu*ASLIhUo?%|PDa@q^s6czFmXCJjGj`#XF(SzWjSDybi%^ruajOJrk&z;ln&E|mKT{lSv>MFe*^YgT_ zXU&^NX?i2_A~!1KC1riG-wln=pHO1G{RKBomcYEAw6?enZ8pB@YYmy$m2>X~Hpi)K zqT$W^=D_Q^6`N<3JEP&lapXC6x2<0IdqTCP;9>jN8nyh!0iD%TtJ_B@crVJcW`Ob% z3WT}EaH&Hyv)RE@t_d7?ER3EMLVV5hE8wM3!|nM~mqX1m+ntZHoU_NBP1>QKT&-^N zWi^S33;<=+EpEMSY`l;Jv*jS8~*1KQ=$9 z=x)VOHpn&2Y?sSqA5$+1?ni~RsBYhSVa;R= zoqLLV_8#qE-jGj@kCzU*sJV{k`>97+AF08iP@P{YT4^-JB$Ad)8TKDJ83j9BvV4+F zjGCIQB?zLX1Fq2+D#~0~43t z2R&+PbRpwMAMf?T%bTb|CCzcga}@O{D1+;invJ`I@`~U=89rgnEiQV3VdSF?ZL_gU zyHo=<0__I49b=)+*g&Uge~KflRm9GrE~MPSjfB#~SB+`t9*=F^MYj=Q?BXFZUjeJ9Xy{+GAem;=3XsTI71qb&Zv_)G22- z+#R1kPbVE+m<2JKn`V}7u;P58?jC!9_*fevg`MVO-aa~2j zo3uYDW}XvD0?WS^de<$~KdJ0>W%6ZM1eeP#1mXF*OgC+xle(zVii>(l7rI5TrsKn# zjYlg7#pno!e4l#CDot|X*1Knqqa9%bB3Ubf6zqcC$Dn`;rwyKV3Z*if$rC|ymDmWs z&JPn|Oq|KCS9S&D8?%QuD>8IpPzp?7+Qv5)NKhGX$t0L*X7|9h;V_Lx zNuEyQ_Cp8-avXF=Z$Y7EP3}vy#}3mU+dm@*Br9n-2s)<_V|YJZd+;FL!E>&Uje~Yt zt&+DfK%)aA`9vD0OJR6D%5>`IJ4`iK4ywn;PeVZf6~^#;(JMnrsto#CG=7M+(fI+B z)h2^8Km|w8gu~&~=>$K8w4cO|5%2RtY7C+IzR@24GOBk!n1;cGK~kt!M%cnCRJ!Nr zT~DZtsNfUqEVNm1)R=$O1==cg50pMo5b@HoaVyoViA#fT_J065j2JZtIs);)tt}0< zKB6t)-lI^G4R*kJJ)+iPChv~VjtJBHLBB2PTUek;rP2t{uV+3Ldtun#IH0O-1`h)q zf#;?d#42b%C6x{yXSxUX82SBUsxn;#?ly4{nJx_)0X&2IfgutPQve27r8S~Jm+aGB zYn8<{Z&|h^(b&0cx*t(4Hn5k*3{x97iz8%AT{#K(yQ`Yu+R5tECOwUE&+4a z$SYPUzlqz|2I9ZJrfREt13VTQ-aqu)L>Sis52NP~%SbVU286W+{da5?7RG=naJ|)z zTo}2rplFV4%Ro~RY$#ibeea3m9jjS;YsMXGp)$sI%;rO$8H+!WLmx-Gmq2U6m2TK6 z%WEWTd>QPWdwz*cGaQ8;Fw|TkWmuDS+2bd$6HlR?&_z4sGrmfhvT*}a%Wbw@ueVi{ z6euRi1=<_xZfZ3em0@eY;0cn$;P;OAGuA;5t{e(mzHPZN;JYk903H3pY$^AGyCxs^ zai&)iA~#lI8>qHE;w@l_^73v!G~g%l^a^FWDoVOI(Ntq*U3|q^<_Np3!#B2=_W)_7 z+>$W+XvB z7+vGYd#ujbAPAdM)`9pq)hs@Q*e&$=>1Q7UAyWdTLU)u$F4e}Wn{?*=llNFtw;3(y z*eoA_te&MwNFSaZ^MA~(S9u^cVJ*0?DORaDu}N>GRU=urD(D%V2YEz?hDO}At=ok` zG^PZJ_}xmB9iwiF@;I1g7wctVVR48lAabLm3%%e5so_#$6Byf72UfIh>Br33t`b(H z6<5tH3mqv=hUc}7yPM|}cGpd;{z3BC;4!{lg<=OWBZy9I$29I}%_l~M&=aa9((0tr z0=Hna6NgAv{n$1_Yb^FCRv(8XbEeZ6d+7VMRaE+Xz(SFJ4o06WzgxNZsb^R^NShFT zF!Oz(fy#jcN@B$~qi&3E);bY$f3awC`>PBwKCg8$PIhXD)rm*mjUJkjaWGAwfHN)Y zdMB2KX4LJaPBC_y3?sKK26obC!*C#%QH}@uSd`w9Iu$#*if6-saqmk=o~8!|IGp<^{*T7&RJBt5af=iTdv%> z2sRE)H~&NZrJwV0!y<~1gy=MQ9K__V-@kpR)I9l1T9kqWdF%K)Zz=P#mX?G*W)?>3 zpiT;@#@@h|`f)EU9gD3Nx$YOuNZF>qMQ|Sjx(j7Wwbs_IL&eGo+nG8eLQPzCop>D( zHc~iR3D7;py7w zB89&hwbVLx@MgCR0F?C!qOiT}0Hmi28zChR@)h0;_U`C&|i?e!CPy zj1!P57TyweOOW@pZer-%G%_Fr@SmHspWXRDK(+NSZk^~n`FoMY`WT&XdqT$YTBP2| ztzo$Ds1scL#tgAarLqru)jc-|T>)*KVEdq&?4T(j+axZ|2jH z>E?fP{`g{6%C}6-=|U!R&MLS~T4PvRW2n%()E{=mwEe-LijORRk%9cpuDWXuU|6%*%+W=KT;im5=fiz ztJ&I&uZarzLgg3_qt|9DEh-jErFN*ZEcuxSWb#WRf}Mw3TKPqg1HDPd(>B*?!g3_0 zTno4`74No?17DlUYWNm^^35efA# zj8gSs%5Yo06FbR0x zPMusA2F-R0q&06fP%)ssW+a*|Pgg+Ya(L^f)4=1SgaFEac+`|_)VGZSsN@z}tT?y@ zcw|htkPrDW(Lxm@(mf}{bHn7N@TG0|D=l%5&37l?|4JJ~g`C z7>F~d{s)q3=(qa@zsIDVadX21TZZPTe=g6VpI&@9U8V;n4Oc={hFo@bJjsKDhVTSy z>WwME8@eN{F+&F$nMO<3s5d{L>0nEA!Bw35pcK3i_-=()BknS<*yx*!E_70nT815Y zqg=rStD^Ln=={z`N3+qLneCq});)ocCc-}db&4Ecmk)PY+@y&^Tz5RMH8zkT0`7o9 z+Q=BvK3{yqff^uLwP z)3#~bj2?ZP(e(Fg24w3CIJVm6kG)P->(0kPhn~5cT!{hKg=&m$(seujUdMJC#RdK{ zLmyA5mzAIE(sV5Ykhs`=bXR6a{ShW{qKAMvRTvn+sJn1Lh- zA@~reS(wMZphi9Vd=&9$5ndx_!9!8$VD<}Z6bh9q1~C2o`KFV(@2+o>f9`HU(0ZurkS88TvU5R==xTY z!@=1DwRWOikA;(9Mj#}UfE<4KtJPY516NG6}l3ge<3Zi?)XdUzA zx;8x1X^mfW?TV%P$c;B;q&pC(tK0(S>-zT+=%s#jCjg$}UeXR`);ksX_TtwI8ZHW# zKs`Zns^^2}pW87$ly5c|e8i&_3&zK{3$j5UJvFeA-pe*bKZ4?O4ji_Hx`)M*uUuk^ zc}WF#p#hAZKHFsxIo%t+e)1O&w;)N50xZ*6)(z2RF$TlKb+#1rCshxrj`MJ7G8K^` z>(`T${a>>JT9d`cn8^2*CXvzxTSl#iosJM}wdO6K9FZtrOKdGv{9>rx>P}H{cWIe| zR%eTZX=v#E=0nlfrP7phDn9#d+Q`IVHK?OEQ$L4@m=5Om2nr%@t*gluj%u0>6+y;L z3msXIdYmU}UXneJNueUzL3m7JZZ(d7sk!x84=AuxX~^OIJPcd~F>EU#DygHqPF_Ls zQQiUJWWD^qCcx6c3JZ?H3y#0!2vc(T90~3&_#3md=Kw_PY+3d->kN;C!b}u_oG>jz zXg0wIpc&Y*moh#XF@GAwTWe3`dUNybNwNgH<|L2AZ3(v@1MfBJ`M_^|mWjhK%GACd zB&{(Mxxo2ScQw(ELVm*WAyOAC8DUtG}gS~bPj^L3jto=|qV^@-83@`uxV zkD3OE{iv$f6CV2A0}!vNVJ=0k!HR?^x_2#)QA}rni3$TJ@x)L@&x^*3@cOqMQ1a5T)nwERjY>x?T#B zSK-s2-Pa3uF7oYQR_%x_x(2GN^<$edZZDC38aA*HjuUlV*Qb7Zgji5hV6&UU06rNCh(W zX6@q{9O?Q=2;zVHvS8-vpP^h7{&B%t;N5~*JBGg!=Hu^$QwiTO{UcC$W&KUW^%GF*s{9=ly#MA`r+<05KmvWeJz|3efLqi#1AriTY778Ft1JNEyu+V^ we>&uU5DX0~aPv@5S!(_-z<(V=zpBlu7H54k)`UNXHUM6Sd=J)sdGgzT2Qm4|q5uE@ literal 0 HcmV?d00001 diff --git a/prototypes/scp-clicker/gfx/fizzing-flask.png b/prototypes/scp-clicker/gfx/fizzing-flask.png new file mode 100644 index 0000000000000000000000000000000000000000..0a8cd511bfc3c48ce4ea21841c6a6274bec2609f GIT binary patch literal 12384 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 literal 0 HcmV?d00001 diff --git a/prototypes/scp-clicker/gfx/hazard-sign.png b/prototypes/scp-clicker/gfx/hazard-sign.png new file mode 100644 index 0000000000000000000000000000000000000000..ddd8b5b46bacb3c282c454db3272cefab2c295cc GIT binary patch literal 22287 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 literal 0 HcmV?d00001 diff --git a/prototypes/scp-clicker/main.moon b/prototypes/scp-clicker/main.moon new file mode 100644 index 0000000..b2fcf26 --- /dev/null +++ b/prototypes/scp-clicker/main.moon @@ -0,0 +1,104 @@ +import graphics from love + +slab = { + types: { "menu", "spinner" } + screen: { x: 0, y: 0, width: graphics.getWidth!, height: graphics.getHeight! } +} + +slab.generic = class + new: (element={}, parent=slab.screen) => + for k,v in pairs element + @[k] = v + + if @width + if @width <= 1 + @w = parent.w * @width + else + @w = @width + + if @height + if @height <= 1 + @h = parent.h * @height + else + @h = @height + +slab.menu = class + new: (parent=slab.screen) => + for child in *@ + if @menu.width + child.width = @menu.width + if @menu.height + child.height = @menu.height + if @menu.align + child.align = @menu.align + + -- TODO menus are a vertical structure + +slab.make = (element={}, parent=slab.screen) -> + element = slab.generic element, parent + for t in *slab.types + element = slab[t](parent) if element[t] + return element + +-- b = slab.make sample_value: true +-- print(b.sample_value) + +clickers = { + width: 1/3 + height: 1 + menu: { -- block elements default to minimum space required + height: 1/3 -- defined here applies to children + align: "center" -- defined here means the children are aligned this way + { + name: "cash_clicker" + clicked: (btn, x, y) -> + -- stuff + spinner: { + value: 0 -- a defined value means it is set instead of just spinning constantly ? + { + width: 0.8 + align: "center" + background: graphics.newImage "gfx/banknote.png" + } + { + align: "bottom-left" + text: "Lv. 0" + } + } + } + { + name: "danger_clicker" + clicked: (btn, x, y) -> + -- stuff + spinner: { + value: 0 + { + width: 0.8 + align: "center" + background: graphics.newImage "gfx/hazard-sign.png" + } + { + align: "bottom-left" + text: "Lv. 0" + } + } + } + { + name: "research_clicker" + clicked: (btn, x, y) -> + -- stuff + spinner: { + value: 0 + { + width: 0.8 + align: "center" + background: graphics.newImage "gfx/fizzing-flask.png" + } + { + align: "bottom-left" + text: "Lv. 0" + } + } + } + } +} diff --git a/prototypes/slab.moon b/prototypes/slab.moon new file mode 100644 index 0000000..5f4875f --- /dev/null +++ b/prototypes/slab.moon @@ -0,0 +1,59 @@ +props = { + "toolbar" + "window" + "tabs" + "area" + "grid" + "spinner" + "dial" + "slider" + "title" + "text" + "checkbox" + "radio" + "class" + "align" + "clicked" + "hovered" + "wheelmoved" + "mousepressed" + "mousereleased" + "textinput" + "keypressed" + "keyreleased" + "margin" + "padding" + "border" + "width" + "height" + "size" + "background" + "color" + "tooltip" +} + +-- all_handlers = { "update", "draw", "errhand" } +-- for handler in pairs love.handlers +-- table.insert all_handlers, handler +-- +-- null = -> + +slab = { + -- load: (handlers=all_handlers) -> + -- for handler in *handlers + -- current = love[handler] or null + -- love[handler] = (...) -> + -- current(...) + -- return slab[handler](...) +} + +-- return a table w __call for building the UI ? +-- considering the way I am handling this library is by a bunch of properties that can be mixed, perhaps a +-- ECS system might help manage things ? + +-- Method: add (adds new elements, possibly triggering a reflow) +-- Method: replace (removes all inner elements and adds new elements, possibly triggering a reflow) +-- dropdown (essentially a btn w hover or click -> and a vertical toolbar (menu?)), textinput +-- Enumeration: colors (red, blue, green, teal, black, white, etc -- for convienence) + +return slab