Completed the Editor
This commit is contained in:
parent
abbc9b3d07
commit
ef8b8910b0
@ -26,7 +26,8 @@ function logikraft.registerCable(name,nodeboxes,connections,nbconn)
|
|||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = nodeboxes
|
fixed = nodeboxes
|
||||||
},
|
},
|
||||||
groups = {circuitry = 1,dig_immediate = 3}
|
groups = {circuitry = 1,dig_immediate = 3},
|
||||||
|
drop = nil
|
||||||
})
|
})
|
||||||
|
|
||||||
-- We sort the connections and nbconn
|
-- We sort the connections and nbconn
|
||||||
|
|||||||
@ -1,34 +1,3 @@
|
|||||||
local _contexts = {}
|
|
||||||
|
|
||||||
function logikraft.setNameFormspec(targetType, defaultName)
|
|
||||||
|
|
||||||
local text = "Please enter the name of this " .. targetType
|
|
||||||
|
|
||||||
local formspec = {
|
|
||||||
"formspec_version[4]",
|
|
||||||
"size[6,3.476]",
|
|
||||||
"label[0.375,0.5;", minetest.formspec_escape(text), "]",
|
|
||||||
"field[0.375,1.25;5.25,0.8;name;".. minetest.formspec_escape(targetType) .. " name;"..(defaultName or "").."]",
|
|
||||||
"button[1.5,2.3;3,0.8;commit;OK]"
|
|
||||||
}
|
|
||||||
|
|
||||||
-- table.concat is faster than string concatenation - `..`
|
|
||||||
return table.concat(formspec, "")
|
|
||||||
end
|
|
||||||
|
|
||||||
function logikraft.showSetNameFormspec(playerName, targetName)
|
|
||||||
minetest.show_formspec(playerName, "logikraft:setNameFormSpec", logikraft.setNameFormspec(targetName))
|
|
||||||
end
|
|
||||||
|
|
||||||
minetest.register_on_player_receive_fields(function(player, formname, fields)
|
|
||||||
if formname ~= "logikraft:setNameFormSpec" then return end
|
|
||||||
|
|
||||||
if fields.commit then
|
|
||||||
local pname = player:get_player_name()
|
|
||||||
minetest.chat_send_all(pname .. " guessed " .. fields.name)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
minetest.register_node("logikraft:circuitBlock", {
|
minetest.register_node("logikraft:circuitBlock", {
|
||||||
description = "Circuit Block",
|
description = "Circuit Block",
|
||||||
tiles = {"circuit_block.png"},
|
tiles = {"circuit_block.png"},
|
||||||
|
|||||||
@ -55,6 +55,7 @@ do
|
|||||||
local nodename = "logikraft:component_"..name.."_"..tostring(x).."_"..tostring(y)
|
local nodename = "logikraft:component_"..name.."_"..tostring(x).."_"..tostring(y)
|
||||||
minetest.register_node(nodename, {
|
minetest.register_node(nodename, {
|
||||||
drawtype = "block",
|
drawtype = "block",
|
||||||
|
description = name.." component",
|
||||||
tiles = {
|
tiles = {
|
||||||
"component_"..name..".png",
|
"component_"..name..".png",
|
||||||
"component.png",
|
"component.png",
|
||||||
|
|||||||
11
blocks/iocomponent.lua
Normal file
11
blocks/iocomponent.lua
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
minetest.register_node("logikraft:inputBlock", {
|
||||||
|
description = "Input Block",
|
||||||
|
tiles = {"input_block.png"},
|
||||||
|
groups = {circuitry = 1,dig_immediate = 3}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("logikraft:outputBlock", {
|
||||||
|
description = "Output Block",
|
||||||
|
tiles = {"output_block.png"},
|
||||||
|
groups = {circuitry = 1,dig_immediate = 3}
|
||||||
|
})
|
||||||
40
formspecs.lua
Normal file
40
formspecs.lua
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
local _contexts = {}
|
||||||
|
|
||||||
|
|
||||||
|
function logikraft.showNameFormspec(playername,pos)
|
||||||
|
|
||||||
|
local node = minetest.get_node(pos)
|
||||||
|
local nodedesc = minetest.registered_nodes[node.name].description
|
||||||
|
|
||||||
|
local text = "Please enter the name of the " .. nodedesc .. " at ("..tostring(pos.x)..","..tostring(pos.y)..","..tostring(pos.z)..")"
|
||||||
|
|
||||||
|
local meta = minetest.get_meta(pos)
|
||||||
|
local oldname = meta:get_string("logikraft:name") or ""
|
||||||
|
|
||||||
|
|
||||||
|
local formspec = {
|
||||||
|
"formspec_version[4]",
|
||||||
|
"size[6,3.476]",
|
||||||
|
"label[0.375,0.5;", minetest.formspec_escape(text), "]",
|
||||||
|
"field[0.375,1.25;5.25,0.8;name;".. minetest.formspec_escape(nodedesc) .. " name;"..oldname.."]",
|
||||||
|
"button_exit[1.5,2.3;3,0.8;commit;OK]"
|
||||||
|
}
|
||||||
|
_contexts[playername] = pos
|
||||||
|
minetest.show_formspec(playername, "logikraft:nameFormSpec", table.concat(formspec, ""))
|
||||||
|
end
|
||||||
|
|
||||||
|
minetest.register_on_player_receive_fields(function(player, formname, fields)
|
||||||
|
if formname ~= "logikraft:nameFormSpec" then return end
|
||||||
|
|
||||||
|
if fields.commit then
|
||||||
|
local pname = player:get_player_name()
|
||||||
|
if _contexts[pname]
|
||||||
|
then
|
||||||
|
local meta = minetest.get_meta(_contexts[pname])
|
||||||
|
meta:set_string("logikraft:name",fields.name)
|
||||||
|
minetest.chat_send_player(pname, "Set to "..fields.name)
|
||||||
|
else
|
||||||
|
minetest.chat_send_player(pname, "Could not get pos data from formspec")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end)
|
||||||
33
init.lua
33
init.lua
@ -2,47 +2,20 @@
|
|||||||
logikraft = {}
|
logikraft = {}
|
||||||
|
|
||||||
dofile(minetest.get_modpath("logikraft") .. "/utils.lua")
|
dofile(minetest.get_modpath("logikraft") .. "/utils.lua")
|
||||||
|
dofile(minetest.get_modpath("logikraft") .. "/formspecs.lua")
|
||||||
dofile(minetest.get_modpath("logikraft") .. "/circuits.lua")
|
dofile(minetest.get_modpath("logikraft") .. "/circuits.lua")
|
||||||
dofile(minetest.get_modpath("logikraft") .. "/blocks/circuit.lua")
|
dofile(minetest.get_modpath("logikraft") .. "/blocks/circuit.lua")
|
||||||
dofile(minetest.get_modpath("logikraft") .. "/blocks/component.lua")
|
dofile(minetest.get_modpath("logikraft") .. "/blocks/component.lua")
|
||||||
dofile(minetest.get_modpath("logikraft") .. "/blocks/cable.lua")
|
dofile(minetest.get_modpath("logikraft") .. "/blocks/cable.lua")
|
||||||
dofile(minetest.get_modpath("logikraft") .. "/blocks/cables_register.lua")
|
dofile(minetest.get_modpath("logikraft") .. "/blocks/cables_register.lua")
|
||||||
|
dofile(minetest.get_modpath("logikraft") .. "/blocks/iocomponent.lua")
|
||||||
dofile(minetest.get_modpath("logikraft") .. "/items.lua")
|
dofile(minetest.get_modpath("logikraft") .. "/items.lua")
|
||||||
|
|
||||||
minetest.register_on_joinplayer(function(player)
|
minetest.register_on_joinplayer(function(player)
|
||||||
player:hud_set_hotbar_itemcount(24)
|
player:hud_set_hotbar_itemcount(24)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
minetest.register_node("logikraft:inputBlock", {
|
|
||||||
description = "Input Block",
|
|
||||||
tiles = {"input_block.png"},
|
|
||||||
after_place_node = function(pos, placer)
|
|
||||||
local meta = minetest.get_meta(pos)
|
|
||||||
meta:set_string("formspec",logikraft.setNameFormspec("Input Block"),meta:get_string("name"))
|
|
||||||
end,
|
|
||||||
on_receive_fields = function(pos, formname, fields, player)
|
|
||||||
if fields.quit then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
minetest.get_meta(pos):set_string("name",fields.name)
|
|
||||||
end,
|
|
||||||
groups = {circuitry = 1,dig_immediate = 3}
|
|
||||||
})
|
|
||||||
minetest.register_node("logikraft:outputBlock", {
|
|
||||||
description = "Output Block",
|
|
||||||
tiles = {"output_block.png"},
|
|
||||||
after_place_node = function(pos, placer)
|
|
||||||
local meta = minetest.get_meta(pos)
|
|
||||||
meta:set_string("formspec",logikraft.setNameFormspec("Output Block"),meta:get_string("name"))
|
|
||||||
end,
|
|
||||||
on_receive_fields = function(pos, formname, fields, player)
|
|
||||||
if fields.quit then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
minetest.get_meta(pos):set_string("name",fields.name)
|
|
||||||
end,
|
|
||||||
groups = {circuitry = 1,dig_immediate = 3}
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -143,6 +143,12 @@ minetest.register_craftitem("logikraft:editor", {
|
|||||||
elseif logikraft.componentnodes[node.name]
|
elseif logikraft.componentnodes[node.name]
|
||||||
then
|
then
|
||||||
minetest.chat_send_all("Looking at component "..logikraft.componentnodes[node.name].name)
|
minetest.chat_send_all("Looking at component "..logikraft.componentnodes[node.name].name)
|
||||||
|
elseif node.name == "logikraft:inputBlock"
|
||||||
|
then
|
||||||
|
logikraft.showNameFormspec(user:get_player_name(), pointed_thing.under)
|
||||||
|
elseif node.name == "logikraft:outputBlock"
|
||||||
|
then
|
||||||
|
logikraft.showNameFormspec(user:get_player_name(), pointed_thing.under)
|
||||||
end
|
end
|
||||||
|
|
||||||
return itemstack
|
return itemstack
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user