From 43a8e5bbec73ed92ab89af6c564cf10375298ff7 Mon Sep 17 00:00:00 2001 From: Izaya Orihara Date: Wed, 5 Oct 2016 15:59:44 +1100 Subject: [PATCH] Turned the whole thing into a modpack. --- modpack.txt | 1 + depends.txt => t400/depends.txt | 0 init.lua => t400/init.lua | 69 ++++++++++++++-------------- {textures => t400/textures}/t21.png | Bin 4 files changed, 36 insertions(+), 34 deletions(-) create mode 100644 modpack.txt rename depends.txt => t400/depends.txt (100%) rename init.lua => t400/init.lua (75%) rename {textures => t400/textures}/t21.png (100%) diff --git a/modpack.txt b/modpack.txt new file mode 100644 index 0000000..33d91f5 --- /dev/null +++ b/modpack.txt @@ -0,0 +1 @@ +The presence of this file indicates that the current folder is a modpack. \ No newline at end of file diff --git a/depends.txt b/t400/depends.txt similarity index 100% rename from depends.txt rename to t400/depends.txt diff --git a/init.lua b/t400/init.lua similarity index 75% rename from init.lua rename to t400/init.lua index a42d53f..17063af 100644 --- a/init.lua +++ b/t400/init.lua @@ -1,7 +1,11 @@ +if not digiline then + print("Digilines not found.") + return +end local oldprint=print local function print(...) for k,v in ipairs({...}) do - oldprint("[Test3D] "..tostring(v)) + oldprint("[Test3D:T400] "..tostring(v)) end end print("Test3D loading.") @@ -10,15 +14,9 @@ local tInstructions = { "NOP", "ADD", "SUB", +"PEEK", +"POKE", } ---[[ -local statedir = minetest.get_worldpath() .. '/' .. minetest.get_current_modname() .. "/" -print("State directory: "..statedir) -if not digiline then - print("Digilines not found.") - return -end -]]-- local function push(pos,val) local meta = minetest.get_meta(pos) local sstack = "" @@ -43,43 +41,46 @@ local function pop(pos) end return tonumber(n) end -local function t21_digiline_receive(pos, node, channel, msg) +local function t400_digiline_receive(pos, node, channel, msg) print(pos,node,channel,msg) meta = minetest.get_meta(pos) - if meta:get_string("state") == "waiting" and meta:get_string("waitingfor") == channel then - push(pos,msg) + if meta:get_string("waitingfor") == channel then + if meta:get_string("state") == "waitingstack" then + push(pos,msg) + if meta:get_string("state") == "waitingins" then + meta:set_int("ci",tonumber(msg)) + end end end -print("Created T21 digiline function") +print("Created T400 digiline function") -local function t21_set_infotext(pos) +local function t400_set_infotext(pos) local meta=minetest.get_meta(pos) local running="false" if meta:get_int("test3d_running") == 1 then running="true" end meta:set_string("infotext","Running: "..running.."\nState: "..meta:get_string("state").."\nPC: "..tostring(meta:get_int("pc")).."\nACC: "..tostring(meta:get_int("acc")).."\nBAK: "..tostring(meta:get_int("bak"))) end -local function t21_set_meta(pos) +local function t400_set_meta(pos) local meta = minetest.get_meta(pos) - local fspec = "size[8,9]\nlabel[0,0;T21 execution node]\nfield[0.25,1;8,1;channel;Channel prefix;${channel}]\n" + local fspec = "size[8,9]\nlabel[0,0;T400 execution node]\nfield[0.25,1;8,1;channel;Channel prefix;${channel}]\n" fspec = fspec .. "textarea[0.25,2;8,7.5;program;Program;${program}]\n" fspec = fspec .. "button_exit[0,8.5;7.9,1;;Done]\n" meta:set_string("formspec",fspec) meta:set_string("channel","") - meta:set_string("program","#This is the default program.") - meta:set_string("state","running") -- can be "running", or "waiting" + meta:set_string("state","running") -- can be "running", "waitingstack" or "waitingins" meta:set_string("waitingfor","") -- address waiting for - meta:set_int("pc",0) - meta:set_int("acc",0) - meta:set_int("bak",0) - t21_set_infotext(pos) - print("Initialized T21 at "..tostring(pos.x)..","..tostring(pos.y)..","..tostring(pos.z)) + meta:set_string("stack","") -- internal stack + meta:set_int("ci",0) -- current instruction + meta:set_int("pc",0) -- program counter + t400_set_infotext(pos) + print("Initialized T400 at "..tostring(pos.x)..","..tostring(pos.y)..","..tostring(pos.z)) end -minetest.register_node("test3d:t21", { - description = "T21 Execution Node", +minetest.register_node("test3d:t400", { + description = "T400 Execution Node", tiles = { { - image="t21.png", + image="t400.png", animation={ type = "vertical_frames", aspect_w=16, @@ -89,7 +90,7 @@ minetest.register_node("test3d:t21", { }, }, }, - on_construct = t21_set_meta, + on_construct = t400_set_meta, on_punch = function(pos, _, _, _) local meta=minetest.get_meta(pos) local cstate = meta:get_int("test3d_running") @@ -106,7 +107,7 @@ minetest.register_node("test3d:t21", { digiline = { receptor = {}, effector = { - action = t21_digiline_receive + action = t400_digiline_receive } }, on_receive_fields = function(pos,_,fields,sender) @@ -143,13 +144,13 @@ minetest.register_node("test3d:t21", { sProgram = sProgram:sub(1,-1) meta:set_string("program",sProgram) print("Program:\n"..sProgram) - meta:set_int("pc",1) + meta:set_int("pc",0) end }) -print("T21 node registered") +print("T400 node registered") minetest.register_abm({ - nodenames={"test3d:t21"}, + nodenames={"test3d:t400"}, interval=1, chance=1, action = function(pos) @@ -167,17 +168,17 @@ minetest.register_abm({ local pc = meta:get_int("pc") local acc = meta:get_int("acc") local bak = meta:get_int("bak") - print("Running T21 node with instance at position "..tostring(pos.x)..","..tostring(pos.y)..","..tostring(pos.z).." (PC: "..tostring(pc)..", ACC: "..tostring(acc)..", BAK: "..tostring(bak)..")") + print("Running T400 node with instance at position "..tostring(pos.x)..","..tostring(pos.y)..","..tostring(pos.z).." (PC: "..tostring(pc)..", ACC: "..tostring(acc)..", BAK: "..tostring(bak)..")") local tProgram = string.split(meta:get_string("program"),"\n") local tLine = string.split(tProgram[pc]:upper()) if pc == #tProgram then pc = 0 end meta:set_int("pc",pc+1) end end - t21_set_infotext(pos) + t400_set_infotext(pos) end, }) -print("T21 ABMs registered") +print("T400 ABMs registered") --[[ minetest.register_chatcommand("lua", { -- I'm a terrible person diff --git a/textures/t21.png b/t400/textures/t21.png similarity index 100% rename from textures/t21.png rename to t400/textures/t21.png