diff --git a/crafts.lua b/crafts.lua
new file mode 100644
index 0000000..2ab79cc
--- /dev/null
+++ b/crafts.lua
@@ -0,0 +1,78 @@
+--[[
+ digiterms mod for Minetest - Digilines monitors using Display API / Font API
+ (c) Pierre-Yves Rollo
+
+ This file is part of digiterms.
+
+ signs is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ signs is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with signs. If not, see .
+--]]
+
+local function material_fallback(list)
+ for _, material in ipairs(list) do
+ if minetest.registered_items[material] then
+ return material
+ end
+ end
+end
+
+local body = material_fallback({
+ 'homedecor:plastic_sheeting',
+ 'default:steel_ingot',
+})
+
+local glass = material_fallback({
+ 'xpanes:pane_flat',
+ 'default:glass',
+})
+
+local electronic = material_fallback({
+ 'mesecons_microcontroller:microcontroller0000',
+ 'mesecons_luacontroller:luacontroller0000',
+ 'default:copper_ingot',
+})
+
+local wire = 'digilines:wire_std_00000000'
+
+print("Craft materials:")
+print("Body: "..(body or "None!"))
+print("Glass: "..(glass or "None!"))
+print("Electronic: "..(electronic or "None!"))
+print("Wire: "..(wire or "None!"))
+
+minetest.register_craft({
+ output = "digiterms:lcd_monitor 1",
+ recipe = {
+ {body, electronic, ''},
+ {glass, material_fallback({'mesecons_materials:silicon', 'dye:black'}), ''},
+ {body, wire, ''}
+ }
+})
+
+minetest.register_craft({
+ output = "digiterms:cathodic_amber_monitor",
+ recipe = {
+ {body, body, ''},
+ {glass, 'dye:orange', electronic},
+ {body, body, wire}
+ }
+})
+
+minetest.register_craft({
+ output = "digiterms:cathodic_green_monitor 1",
+ recipe = {
+ {body, body, ''},
+ {glass, 'dye:green', electronic},
+ {body, body, wire}
+ }
+})
diff --git a/depends.txt b/depends.txt
index 36dd5c2..771586c 100644
--- a/depends.txt
+++ b/depends.txt
@@ -1,3 +1,12 @@
display_api
font_api
digilines
+dye
+default
+xpane?
+scifi_nodes?
+basic_materials?
+homedecor?
+mesecons_microcontroller?
+mesecons_luacontroller?
+mesecons_materials?
diff --git a/functions.lua b/functions.lua
index 0fcfd26..50c69f2 100644
--- a/functions.lua
+++ b/functions.lua
@@ -18,8 +18,6 @@
along with signs. If not, see .
--]]
-digiterms.columns = 30
-
local function get_lines(pos)
local lines = {}
local meta = minetest.get_meta(pos)
@@ -74,8 +72,96 @@ local function push_text(lines, text, maxlines, maxcolumns)
end
function digiterms.push_text_on_screen(pos, text)
- local lines = get_lines(pos)
- push_text(lines, text, 6, digiterms.columns)
- set_lines(pos, lines)
- display_api.update_entities(pos)
+ local def = minetest.registered_nodes[minetest.get_node(pos).name]
+ if def.display_entities and def.display_entities["digiterms:screen"] then
+ def = def.display_entities["digiterms:screen"]
+ if def.lines and def.columns then
+ local lines = get_lines(pos)
+ push_text(lines, text, def.lines, def.columns)
+ set_lines(pos, lines)
+ display_api.update_entities(pos)
+ else
+ minetest.log("warning", "[digiterms] At "..minetest.pos_to_string(pos)
+ ..", digiterms:screen entity should have 'lines' and 'columns' attribures.")
+ end
+ else
+ minetest.log("warning", "[digiterms] Node at "..minetest.pos_to_string(pos)
+ .." does not have digiterms:screen entity.")
+ end
+end
+
+local node_def_defaults = {
+ groups = { display_api = 1},
+ on_place = display_api.on_place,
+ on_destruct = display_api.on_destruct,
+ on_rotate = display_api.on_rotate,
+ on_punch = display_api.update_entities,
+ on_construct = function(pos)
+ minetest.get_meta(pos):set_string("formspec",
+ "field[channel;Channel;${channel}]")
+ display_api.on_construct(pos)
+ end,
+ on_receive_fields = function(pos, formname, fields, player)
+ local name = player:get_player_name()
+ if minetest.is_protected(pos, name) then
+ minetest.record_protection_violation(pos, name)
+ return
+ end
+
+ if (fields.channel) then
+ minetest.get_meta(pos):set_string("channel", fields.channel)
+ end
+ end,
+ digiline = {
+ wire = { use_autoconnect = false },
+ receptor = {},
+ effector = {
+ action = function(pos, _, channel, msg)
+ if channel ~= minetest.get_meta(pos):get_string("channel") then
+ return
+ end
+ digiterms.push_text_on_screen(pos, msg)
+ end,
+ },
+ },
+}
+
+function superpose_table(base, exceptions)
+ local result = table.copy(base)
+ for key, value in pairs(exceptions) do
+ if type(value) == 'table' then
+ result[key] = superpose_table(result[key] or {}, value)
+ else
+ result[key] = value
+ end
+ end
+ return result
+end
+
+function digiterms.register_monitor(
+ nodename, nodedef, nodedefon, nodedefoff)
+ local ndef = superpose_table(node_def_defaults, nodedef)
+ if nodedefon and nodedefoff then
+ ndef.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 = nodename..'_off',
+ param = node.param, param2 = node.param2 })
+ end
+ minetest.register_node(nodename, superpose_table(ndef, nodedefon))
+
+ -- Register the corresponding Off node
+ ndef.drops = nodename
+ ndef.groups.not_in_creative_inventory = 1
+ ndef.on_destruct = nil
+ ndef.on_punch = function(pos, node)
+ minetest.swap_node(pos, {name = nodename, -- Stange but it works
+ param = node.param, param2 = node.param2 })
+ display_api.update_entities(pos)
+ end
+ minetest.register_node(nodename..'_off', superpose_table(ndef, nodedefoff))
+ else
+ minetest.register_node(nodename, ndef)
+ end
end
diff --git a/init.lua b/init.lua
index 1d16ddc..5c57ead 100644
--- a/init.lua
+++ b/init.lua
@@ -23,9 +23,15 @@ digiterms.name = minetest.get_current_modname()
digiterms.path = minetest.get_modpath(digiterms.name)
digiterms.font = "mozart"
+display_api.register_display_entity("digiterms:screen")
+
dofile(digiterms.path.."/font_mozart.lua")
dofile(digiterms.path.."/functions.lua")
dofile(digiterms.path.."/nodes.lua")
---dofile(digiterms.path.."/crafts.lua")
+dofile(digiterms.path.."/crafts.lua")
-display_api.register_display_entity("digiterms:screen")
+if minetest.get_modpath("scifi_nodes") then
+ print ('[digiterms] scifi_nodes mod present, adding some more nodes')
+ dofile(digiterms.path.."/scifi_nodes.lua")
+ dofile(digiterms.path.."/scifi_crafts.lua")
+end
diff --git a/nodes.lua b/nodes.lua
index 8108aed..4b9bdb8 100644
--- a/nodes.lua
+++ b/nodes.lua
@@ -18,57 +18,6 @@
along with signs. If not, see .
--]]
-local common_node_def = {
- groups = { display_api = 1},
- on_place = display_api.on_place,
- on_destruct = display_api.on_destruct,
- on_rotate = display_api.on_rotate,
- on_punch = display_api.update_entities,
- on_construct = function(pos)
- minetest.get_meta(pos):set_string("formspec",
- "field[channel;Channel;${channel}]")
- display_api.on_construct(pos)
- end,
- on_receive_fields = function(pos, formname, fields, player)
- local name = player:get_player_name()
- if minetest.is_protected(pos, name) then
- minetest.record_protection_violation(pos, name)
- return
- end
-
- if (fields.channel) then
- minetest.get_meta(pos):set_string("channel", fields.channel)
- end
- end,
- digiline = {
- wire = { use_autoconnect = false },
- receptor = {},
- effector = {
- action = function(pos, _, channel, msg)
- if channel ~= minetest.get_meta(pos):get_string("channel") then
- return
- end
- digiterms.push_text_on_screen(pos, msg)
- end,
- },
- },
-}
-
-function digiterms.register_monitor(nodename, nodedef)
- def = table.copy(common_node_def)
- for key, value in pairs(nodedef) do
- if key == 'groups' then
- def[key] = def[key] or {}
- for key2, value2 in pairs(value) do
- def[key][key2] = value2
- end
- else
- def[key] = value
- end
- end
- minetest.register_node(nodename, def)
-end
-
local cathodic_node_box = {
type = "fixed",
fixed = {
@@ -111,9 +60,6 @@ digiterms.register_monitor('digiterms: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,
@@ -129,36 +75,14 @@ digiterms.register_monitor('digiterms:lcd_monitor', {
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.png" },
+}, {
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', {
@@ -166,9 +90,6 @@ digiterms.register_monitor('digiterms:cathodic_amber_monitor', {
paramtype = "light",
paramtype2 = "facedir",
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.png",},
drawtype = "nodebox",
groups = {choppy = 1, oddly_breakable_by_hand = 1},
node_box = cathodic_node_box,
@@ -184,36 +105,14 @@ digiterms.register_monitor('digiterms:cathodic_amber_monitor', {
color = "#FFA000", 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: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",
- drops = "digiterms:cathodic_amber_monitor",
- sunlight_propagates = false,
- tiles = { "digiterms_amber_top.png", "digiterms_amber_bottom.png",
+}, {
+ 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, not_in_creative_inventory = 1},
- node_box = cathodic_node_box,
- collision_box = cathodic_collision_box,
- selection_box = cathodic_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:cathodic_amber_monitor',
- param = node.param, param2 = node.param2 })
- display_api.update_entities(pos)
- end,
+ "digiterms_amber_back.png", "digiterms_amber_front.png",},
+}, {
+ 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",},
})
digiterms.register_monitor('digiterms:cathodic_green_monitor', {
@@ -221,9 +120,6 @@ digiterms.register_monitor('digiterms:cathodic_green_monitor', {
paramtype = "light",
paramtype2 = "facedir",
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.png",},
drawtype = "nodebox",
groups = {choppy = 1, oddly_breakable_by_hand = 1},
node_box = cathodic_node_box,
@@ -239,34 +135,12 @@ digiterms.register_monitor('digiterms:cathodic_green_monitor', {
color = "#00FF00", 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:cathodic_green_monitor_off',
- param = node.param, param2 = node.param2 })
- end
-})
-
-minetest.register_node('digiterms:cathodic_green_monitor_off', {
- description = "Cathodic green monitor",
- paramtype = "light",
- paramtype2 = "facedir",
- 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.png",},
+}, {
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, not_in_creative_inventory = 1},
- node_box = cathodic_node_box,
- collision_box = cathodic_collision_box,
- selection_box = cathodic_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:cathodic_green_monitor',
- param = node.param, param2 = node.param2 })
- display_api.update_entities(pos)
- end,
})
diff --git a/scifi_crafts.lua b/scifi_crafts.lua
new file mode 100644
index 0000000..4c825ed
--- /dev/null
+++ b/scifi_crafts.lua
@@ -0,0 +1,45 @@
+--[[
+ digiterms mod for Minetest - Digilines monitors using Display API / Font API
+ (c) Pierre-Yves Rollo
+
+ This file is part of digiterms.
+
+ signs is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ signs is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with signs. If not, see .
+--]]
+
+local wire = 'digilines:wire_std_00000000'
+
+minetest.register_craft({
+ output = "digiterms:scifi_glassscreen",
+ type = "shapeless",
+ recipe = { "scifi_nodes:glassscreen", "digilines:wire_std_00000000" }
+})
+
+minetest.register_craft({
+ output = "digiterms:scifi_widescreen",
+ type = "shapeless",
+ recipe = { "scifi_nodes:widescreen", "digilines:wire_std_00000000" }
+})
+
+minetest.register_craft({
+ output = "digiterms:scifi_tallscreen",
+ type = "shapeless",
+ recipe = { "scifi_nodes:tallscreen", "digilines:wire_std_00000000" }
+})
+
+minetest.register_craft({
+ output = "digiterms:scifi_keysmonitor",
+ type = "shapeless",
+ recipe = { "scifi_nodes:keysmonitor", "digilines:wire_std_00000000" }
+})
diff --git a/scifi_nodes.lua b/scifi_nodes.lua
new file mode 100644
index 0000000..dff15a8
--- /dev/null
+++ b/scifi_nodes.lua
@@ -0,0 +1,169 @@
+--[[
+ font_api mod for Minetest - Library to add font display capability
+ to display_api mod.
+ (c) Pierre-Yves Rollo
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see .
+--]]
+
+digiterms.register_monitor("digiterms:scifi_glassscreen", {
+ description = "Digiline glassscreen",
+ paramtype = "light",
+ paramtype2 = "facedir",
+ use_texture_alpha = true,
+ sunlight_propagates = true,
+ light_source = 15,
+ tiles = {
+ "digiterms_scifi_glscrn.png",
+ "digiterms_scifi_glscrn.png",
+ "digiterms_scifi_glscrn.png",
+ "digiterms_scifi_glscrn.png",
+ "digiterms_scifi_glscrn.png",
+ "digiterms_scifi_glscrn.png",
+ },
+ drawtype = "nodebox",
+ node_box = {
+ type = "fixed",
+ fixed = {
+ {-0.4375, -0.5, -0.125, 0.4375, -0.1875, 0.0625}, -- NodeBox1
+ {-0.375, -0.5, -0.0625, 0.375, 0.5, 0}, -- NodeBox10
+ }
+ },
+ sounds = default.node_sound_glass_defaults(),
+ groups = {choppy = 1, oddly_breakable_by_hand = 1},
+ display_entities = {
+ ["digiterms:screen"] = {
+ on_display_update = font_api.on_display_update,
+ depth = -1/32,
+ top = -5/32,
+ size = { x = 23/32, y = 10/16 },
+ columns = 20, lines = 4,
+ color = "#76EDCD", font_name = digiterms.font, halign="left", valing="top",
+ },
+ },
+})
+
+digiterms.register_monitor("digiterms:scifi_widescreen", {
+ description = "Digiline widescreen",
+ tiles = {
+ "scifi_nodes_black.png",
+ "scifi_nodes_black.png",
+ "scifi_nodes_black.png",
+ "scifi_nodes_black.png",
+ "scifi_nodes_black.png",
+ "digiterms_scifi_widescreen.png"
+ },
+ drawtype = "nodebox",
+ paramtype = "light",
+ light_source = 5,
+ paramtype2 = "facedir",
+ sunlight_propagates = true,
+ node_box = {
+ type = "fixed",
+ fixed = {
+ {-0.375, -0.3125, 0.4375, 0.375, 0.3125, 0.5}, -- NodeBox1
+ {-0.5, -0.375, 0.375, -0.375, 0.375, 0.5}, -- NodeBox2
+ {0.375, -0.375, 0.375, 0.5, 0.375, 0.5}, -- NodeBox3
+ {-0.3125, 0.25, 0.375, 0.3125, 0.375, 0.5}, -- NodeBox4
+ {-0.3125, -0.375, 0.375, 0.25, -0.25, 0.5}, -- NodeBox5
+ {-0.5, -0.3125, 0.375, 0.5, -0.25, 0.5}, -- NodeBox6
+ {-0.5, 0.25, 0.375, 0.5, 0.3125, 0.5}, -- NodeBox7
+ }
+ },
+ groups = {cracky=1, oddly_breakable_by_hand=1},
+ display_entities = {
+ ["digiterms:screen"] = {
+ on_display_update = font_api.on_display_update,
+ depth = 7/16 - display_api.entity_spacing,
+ size = { x = 11/16, y = 8/16 },
+ columns = 12, lines = 2,
+ color = "#72ba9a", font_name = digiterms.font, halign="left", valing="top",
+ },
+ },
+})
+
+digiterms.register_monitor("digiterms:scifi_tallscreen", {
+ description = "Digiline tallscreen",
+ tiles = {
+ "scifi_nodes_black.png",
+ "scifi_nodes_black.png",
+ "scifi_nodes_black.png",
+ "scifi_nodes_black.png",
+ "scifi_nodes_black.png",
+ "digiterms_scifi_tallscreen.png"
+ },
+ drawtype = "nodebox",
+ light_source = 5,
+ paramtype = "light",
+ paramtype2 = "facedir",
+ sunlight_propagates = true,
+ node_box = {
+ type = "fixed",
+ fixed = {
+ {-0.3125, -0.375, 0.4375, 0.3125, 0.375, 0.5}, -- NodeBox1
+ {-0.375, 0.375, 0.375, 0.375, 0.5, 0.5}, -- NodeBox2
+ {-0.375, -0.5, 0.375, 0.375, -0.375, 0.5}, -- NodeBox3
+ {0.25, -0.3125, 0.375, 0.375, 0.3125, 0.5}, -- NodeBox4
+ {-0.375, -0.25, 0.375, -0.25, 0.3125, 0.5}, -- NodeBox5
+ {-0.3125, -0.5, 0.375, -0.25, 0.5, 0.5}, -- NodeBox6
+ {0.25, -0.5, 0.375, 0.3125, 0.5, 0.5}, -- NodeBox7
+ }
+ },
+ groups = {cracky=1, oddly_breakable_by_hand=1},
+ display_entities = {
+ ["digiterms:screen"] = {
+ on_display_update = font_api.on_display_update,
+ depth = 7/16 - display_api.entity_spacing,
+ size = { x = 7/16, y = 12/16 },
+ columns = 8, lines = 3,
+ color = "#72ba9a", font_name = digiterms.font, halign="left", valing="top",
+ },
+ },
+})
+
+digiterms.register_monitor("digiterms:scifi_keysmonitor", {
+ description = "Digiline keyboard and monitor",
+ tiles = {
+ "scifi_nodes_keyboard.png",
+ "scifi_nodes_black.png",
+ "scifi_nodes_black.png",
+ "scifi_nodes_black.png",
+ "scifi_nodes_black.png",
+ "digiterms_scifi_monitor.png"
+ },
+ drawtype = "nodebox",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "facedir",
+ node_box = {
+ type = "fixed",
+ fixed = {
+ {-0.5, -0.5, -0.4375, 0.5, -0.4375, -0.0625}, -- NodeBox1
+ {-0.125, -0.5, 0.375, 0.125, 0.0625, 0.4375}, -- NodeBox2
+ {-0.25, -0.5, 0.125, 0.25, -0.4375, 0.5}, -- NodeBox3
+ {-0.5, -0.3125, 0.25, 0.5, 0.5, 0.375}, -- NodeBox4
+ }
+ },
+ groups = {cracky=1, oddly_breakable_by_hand=1},
+ display_entities = {
+ ["digiterms:screen"] = {
+ on_display_update = font_api.on_display_update,
+ depth = 4/16 - display_api.entity_spacing,
+ top = -5/32,
+ size = { x = 10/16, y = 7/16 },
+ columns = 16, lines = 3,
+ color = "#B4F1EC", font_name = digiterms.font, halign="left", valing="top",
+ },
+ },
+})
diff --git a/screenshot.png b/screenshot.png
new file mode 100644
index 0000000..f81c4ab
Binary files /dev/null and b/screenshot.png differ
diff --git a/svg/scifi_monitors.svg b/svg/scifi_monitors.svg
new file mode 100644
index 0000000..1a7396b
--- /dev/null
+++ b/svg/scifi_monitors.svg
@@ -0,0 +1,366 @@
+
+
+
+
diff --git a/textures/digiterms_scifi_glscrn.png b/textures/digiterms_scifi_glscrn.png
new file mode 100644
index 0000000..c1bcded
Binary files /dev/null and b/textures/digiterms_scifi_glscrn.png differ
diff --git a/textures/digiterms_scifi_monitor.png b/textures/digiterms_scifi_monitor.png
new file mode 100644
index 0000000..2801567
Binary files /dev/null and b/textures/digiterms_scifi_monitor.png differ
diff --git a/textures/digiterms_scifi_tallscreen.png b/textures/digiterms_scifi_tallscreen.png
new file mode 100644
index 0000000..08935ea
Binary files /dev/null and b/textures/digiterms_scifi_tallscreen.png differ
diff --git a/textures/digiterms_scifi_widescreen.png b/textures/digiterms_scifi_widescreen.png
new file mode 100644
index 0000000..7ac56e6
Binary files /dev/null and b/textures/digiterms_scifi_widescreen.png differ