From 052ba92a1a87d6ca469035025b576f4c6e5b699e Mon Sep 17 00:00:00 2001 From: Pierre-Yves Rollo Date: Sat, 8 Dec 2018 19:31:20 +0100 Subject: [PATCH] Added LCD monitor --- nodes.lua | 84 ++++- svg/lcd_monitors.svg | 488 +++++++++++++++++++++++++++ textures/digiterms_lcd_back.png | Bin 0 -> 602 bytes textures/digiterms_lcd_front.png | Bin 0 -> 1343 bytes textures/digiterms_lcd_front_off.png | Bin 0 -> 1325 bytes textures/digiterms_lcd_sides.png | Bin 0 -> 582 bytes 6 files changed, 566 insertions(+), 6 deletions(-) create mode 100644 svg/lcd_monitors.svg create mode 100644 textures/digiterms_lcd_back.png create mode 100644 textures/digiterms_lcd_front.png create mode 100644 textures/digiterms_lcd_front_off.png create mode 100644 textures/digiterms_lcd_sides.png diff --git a/nodes.lua b/nodes.lua index c80887d..8108aed 100644 --- a/nodes.lua +++ b/nodes.lua @@ -88,6 +88,79 @@ local cathodic_collision_box = { } } +local lcd_node_box = { + type = "fixed", + fixed = { + {-7/16, 8/16, 13/32, 7/16, 7/16, 7/16}, + {-7/16, -13/32, 13/32, 7/16, -8/16, 7/16}, + {-8/16, 8/16, 13/32, -7/16, -8/16, 7/16}, + {7/16, 8/16, 13/32, 8/16, -8/16, 7/16}, + {-8/16, -8/16, 7/16, 8/16, 8/16, 8/16}, + } +} + +local lcd_collision_box = { + type = "fixed", + fixed = { + {-8/16, -8/16, 13/32, 8/16, 8/16, 8/16}, + } +} + +digiterms.register_monitor('digiterms:lcd_monitor', { + description = "LCD monitor", + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = false, + tiles = { "digiterms_lcd_sides.png", "digiterms_lcd_sides.png", + "digiterms_lcd_sides.png", "digiterms_lcd_sides.png", + "digiterms_lcd_back.png", "digiterms_lcd_front.png" }, + drawtype = "nodebox", + groups = {choppy = 1, oddly_breakable_by_hand = 1}, + node_box = lcd_node_box, + collision_box = lcd_collision_box, + selection_box = lcd_collision_box, + display_entities = { + ["digiterms:screen"] = { + on_display_update = font_api.on_display_update, + depth = 7/16 - display_api.entity_spacing, + top = -1/128, right = 1/128, + size = { x = 12/16, y = 12/16 }, + columns = 12, lines = 6, + color = "#203020", font_name = digiterms.font, halign="left", valing="top", + }, + }, + on_punch = function(pos, node) + display_api.on_destruct(pos) + local meta = minetest.get_meta(pos) + meta:set_string("display_text", nil) + minetest.swap_node(pos, {name = 'digiterms:lcd_monitor_off', + param = node.param, param2 = node.param2 }) + end +}) + +minetest.register_node('digiterms:lcd_monitor_off', { + description = "LCD monitor", + paramtype = "light", + paramtype2 = "facedir", + drops = "digiterms:lcd_monitor", + sunlight_propagates = false, + tiles = { "digiterms_lcd_sides.png", "digiterms_lcd_sides.png", + "digiterms_lcd_sides.png", "digiterms_lcd_sides.png", + "digiterms_lcd_back.png", "digiterms_lcd_front_off.png" }, + drawtype = "nodebox", + groups = {choppy = 1, oddly_breakable_by_hand = 1, not_in_creative_inventory = 1}, + node_box = lcd_node_box, + collision_box = lcd_collision_box, + selection_box = lcd_collision_box, + on_place = display_api.on_place, + on_receive_fields = common_node_def.on_receive_fields, + on_punch = function(pos, node) + minetest.swap_node(pos, {name = 'digiterms:lcd_monitor', + param = node.param, param2 = node.param2 }) + display_api.update_entities(pos) + end, +}) + digiterms.register_monitor('digiterms:cathodic_amber_monitor', { description = "Cathodic amber monitor", paramtype = "light", @@ -118,20 +191,19 @@ digiterms.register_monitor('digiterms:cathodic_amber_monitor', { minetest.swap_node(pos, {name = 'digiterms:cathodic_amber_monitor_off', param = node.param, param2 = node.param2 }) end - }) minetest.register_node('digiterms:cathodic_amber_monitor_off', { + description = "Cathodic amber monitor", paramtype = "light", paramtype2 = "facedir", - description = "Cathodic amber monitor", drops = "digiterms:cathodic_amber_monitor", sunlight_propagates = false, tiles = { "digiterms_amber_top.png", "digiterms_amber_bottom.png", "digiterms_amber_sides.png", "digiterms_amber_sides.png^[transformFX]", "digiterms_amber_back.png", "digiterms_amber_front_off.png",}, drawtype = "nodebox", - groups = {choppy = 1, oddly_breakable_by_hand = 1}, + groups = {choppy = 1, oddly_breakable_by_hand = 1, not_in_creative_inventory = 1}, node_box = cathodic_node_box, collision_box = cathodic_collision_box, selection_box = cathodic_collision_box, @@ -145,9 +217,9 @@ minetest.register_node('digiterms:cathodic_amber_monitor_off', { }) digiterms.register_monitor('digiterms:cathodic_green_monitor', { + description = "Cathodic green monitor", paramtype = "light", paramtype2 = "facedir", - description = "Cathodic green monitor", sunlight_propagates = false, tiles = { "digiterms_green_top.png", "digiterms_green_bottom.png", "digiterms_green_sides.png", "digiterms_green_sides.png^[transformFX]", @@ -177,16 +249,16 @@ digiterms.register_monitor('digiterms:cathodic_green_monitor', { }) minetest.register_node('digiterms:cathodic_green_monitor_off', { + description = "Cathodic green monitor", paramtype = "light", paramtype2 = "facedir", - description = "Cathodic green monitor", drops = "digiterms:cathodic_green_monitor", sunlight_propagates = false, tiles = { "digiterms_green_top.png", "digiterms_green_bottom.png", "digiterms_green_sides.png", "digiterms_green_sides.png^[transformFX]", "digiterms_green_back.png", "digiterms_green_front_off.png",}, drawtype = "nodebox", - groups = {choppy = 1, oddly_breakable_by_hand = 1}, + groups = {choppy = 1, oddly_breakable_by_hand = 1, not_in_creative_inventory = 1}, node_box = cathodic_node_box, collision_box = cathodic_collision_box, selection_box = cathodic_collision_box, diff --git a/svg/lcd_monitors.svg b/svg/lcd_monitors.svg new file mode 100644 index 0000000..bfb226e --- /dev/null +++ b/svg/lcd_monitors.svg @@ -0,0 +1,488 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/textures/digiterms_lcd_back.png b/textures/digiterms_lcd_back.png new file mode 100644 index 0000000000000000000000000000000000000000..743c5374b47d027971fcc58a6c8560f7765cbcdc GIT binary patch literal 602 zcmV-g0;ToqN`9<#%f3{xd50pam@ta=2{ z$ouh64feUX{VC?HQS_I;yBsUC%KT>V)!;f7cH^|j;t(+}42#{A+wZGz`rf=AP%b zQZENK%f4qmBik-BvK7PLQT=hxgWvvqd2;}4Rv;9o%*vsSAhiF#!GxRh{Pj~hJ{rA8 zwqQ3@hx5D5?{6wuL0CEu#s5B+S=($KKx+rmr7)n`TQkELC70+Ch{%?hos63q%^H}Y z2to-$U^*&{rml{kBcxNg@ER7TMqp}-Q-_uyA6d~80< zU;xjI5x8?42MSdHt6Yzd_qlv#X@iJ10$6-d6<8ZCD^vm0??B$~eX;9cM%flX&Gq+h zFSExLKmoKsH*#jD>GxQ&+A${qc>eMUlMl=c9;j_rU_TRpX8F#BPyS9CfXN}}^^6%I z;aWD2)(%=LmSY~=a+%9yzjAx}1n>gj^tBP&PWO~!AQchrZ8#E7&mVT*xtMNRvK!p7 zaw|ZjdR}Y7v;}5E4=e}9-``(OC9MD|%Lon4SQ0KX(a@4x-Bx94bR<4M-lGU!FR!@y zQbbnDXHz#blM<=Lv|Fn*zkDP)9vWj9H@@)$CvX5tjEP0RXr061@ zQpyu6gBfSb2CYlV3hYgLc)AB{O0<&OX)Lu|jqTp|eeUb`Jk#d-os}&f(Ab7+T;Q*7 z{~|Hvxi(^PTRXDUPX$p+X$K`3%>%QgE53aFoPn7UsfrgWHP{S^-WSo>hKB%KV17P6eR!k! z-Hq0c)l21T+FW2-Z$_u-c}KoWLCT$+ilcb{^>R(*YQ5`$Ch(d^_IZF)m&=Vn>GU2` z7u1$5dFO4tMY(&9VF-J8c=+M1-51*Hwd``eqF4b`zmJw`H=kb`LL=krwV#5R7&4!H zT$RubN4@??EqHf#q`xe0BfQ2bmyDVS zD-K8;+)AxocxI-a@N{T6<7lxkAnrfhPib$6{{SuL!{9L$-sb=S002ovPDHLkV1irs BW@Z2Y literal 0 HcmV?d00001 diff --git a/textures/digiterms_lcd_front_off.png b/textures/digiterms_lcd_front_off.png new file mode 100644 index 0000000000000000000000000000000000000000..4dd307040f64cb6226541ea5f75857a7af855025 GIT binary patch literal 1325 zcmV+|1=9M7P)zszb$*dv*1ux80&xEpujv1H9Tu(3fi zmBAt_tE$H{?@1bUcja$HWVSs$J$-TaCom)t5eQ)z80#Zp?i{V*?wHkO5g~f-NJ0_- zHXe|`jB&GJuH41fh%}MuzA6=P#pWqp~|D+>N(SAJg&C z=smIp^}xO3j5!f8@7nNDQJCeWcu;PtWh;rwytM=AS{TsmZ9VMn16)Fi)VG@0Jqz13vNXa5ttdram)aEbfRwoSXO2S?L93I zGo!VJd&6vDpzzbD!F#l81kiCedIZrs5%)T}mINXdfib_fm7)R9YZl$lgS1VPQP``jidJt6+Q6v>wEUAC5oe` zB9@U7m;!F0Ju|B|o%9ExNz>Q29~L%b9MK~O4;xJi@mkh|Qks=LY}QU}DS(cSP0HqV zi1EJ@RP_t;V#o+ywgpha^3UggM+=yTQwghtK5B4fiay`dZ=O#&Oy0kJ z`hdxaNX#5&J~2>WpL`k+qMon~<#!sf?*MfQfyRPUsfUDXEj&kSjn;hjUz*3~A+zr@ zOgZpV0DE9l3x+LY30`8MWdNzsZA2tq-(Gg#+rc%CtK|E1+ZT})R6ReiQ&rif=`pi2 z!!W-7^KBl!-vxw-t`ielYYziB&4MkUkC$f@!Ta?cH(wjkK8j)6FNWia-sV2Qbo@yF zmt&h-MU@|=z{$ihK~^b^L$x9G2-J(~E6}3l?G{rN*R*8KltG$(441%3$_nf?`gnOc z2Qb#{H0D$J_6-=$yx;Yp#{6krFCD092sPE<%ja)MIsX$ZB`j-^tkOql4x6luQ;%c? zjMh44Yp?k9WA21*M&wq!P${L}gXmF2T1>d_ubJWGdqhsZ0DQHy5OkXCgAwjDRRDvn zh3?7U2TR6I!)nvMPwYCfW8r>a)h?Mk;V^E%<@M!m=TApDL~4xYYuf%&Qg23&Dzzt} zQ6&v+IBN7>Z?}wA>s=2tf!A8#=2&HYyRHR=tU&KEG+w7_7`a~*gWNr77{V@>%YWY5 zbD`bLPz2Z84aEweR`Awx+pPuUKI7Z14?xEWD`q}*z-`$)yyaU_bfD(65);t_b31`B z*M+qqRoSP(qvgsq6XNuF|0Q?9r{9nC=jJqbV({B-?DI{8l?I%JW`h|DA*)OW1AM*x j?n^2X&wo6h7S;a&Cu+=eFxDK+00000NkvXXu0mjf_=Rf5 literal 0 HcmV?d00001 diff --git a/textures/digiterms_lcd_sides.png b/textures/digiterms_lcd_sides.png new file mode 100644 index 0000000000000000000000000000000000000000..19cf971c445fd3d5d113f23712bc7bd98fda4d8f GIT binary patch literal 582 zcmV-M0=fN(P)MsenaFir zH;8o?jllCCV_>FqH+u(Fg^1AIm>D8ML?W-(E4tg}b&;85ChkUMG3UU20I>HaGwE*r z|6ElO5i$Z1VYp*vLjjIPF3-KzZqjN=ls$akt16b5ULu@taEzR@t?_#{T=A;@4A~|=BO&K z>%!d;GmAN=oqUyupsF$VhyFQ8L;xY;z#PMIcYKV2h&&1kHN%HeS(qDU_RYVWuOgb0 z#v$yFFZlFg*FLh{pFjmwxUP%trZQRgLP1bdL=<-?BG`N5eqjFo{(f4-TKiGbj5(-o z6kxB#egEP8et(BQ`FA&KEkp&g(+2<%#Y|B+*?u0)r?wG+yYut&bE^JuxbJm%J?k#2 z2w(_R8&Nq$dfn+a07*qoM6N<$f}G#`KmY&$ literal 0 HcmV?d00001