commit 0f64676fd645f2042b3f77cd78d7fca43caeb879 Author: Le Sanglier des Ardennes Date: Mon Jan 22 18:30:15 2018 +0100 Version 0.0.1 diff --git a/README.md b/README.md new file mode 100644 index 0000000..4457ac6 --- /dev/null +++ b/README.md @@ -0,0 +1,13 @@ +Node voxel 0.0.1 +================ + +By Le Sanglier des Ardennes + + +License of source code +---------------------- +WTFPL + +License of media (textures and sounds) +-------------------------------------- +WTFPL diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..4472b19 --- /dev/null +++ b/init.lua @@ -0,0 +1,76 @@ +-- Node Voxel + +-- http://lua-users.org/wiki/FileInputOutput + +-- see if the file exists +function file_exists(file) + local f = io.open(file, "rb") + if f then f:close() end + return f ~= nil +end + +-- get all lines from a file, returns an empty +-- list/table if the file does not exist +function lines_from(file) + if not file_exists(file) then return {} end + lines = {} + for line in io.lines(file) do + lines[#lines + 1] = line + end + return lines +end + + +minetest.register_chatcommand("nodevoxel", { + params = " ", + description = "Add an nodevoxel with parameters", + func = function(user, args) + + if args == "" then + return false, "Parameters required." + end + + local nodevoxelAction, nodevoxelParam = args:match("^(%S+)%s(%S+)$") + + if not nodevoxelParam then + return false, "Entity parameters required" + end + + local player = minetest.get_player_by_name(user) + if not player then + return false, "Player not found" + end + + local fmt = "Add an %s nodevoxel at: (%.2f,%.2f,%.2f)" + + local pos = player:getpos() + + -- /nodevoxel add 1 + if nodevoxelAction == "add" then + minetest.chat_send_player(user, "Add nodevoxel " .. nodevoxelParam) + + if nodevoxelParam == "1" then + -- y = height + + -- tests the functions above + local file = 'obj01.txt' + local lines = lines_from(file) + + -- print all line numbers and their contents + for k,v in pairs(lines) do + if k >= 4 then + x, y, z, c = v:match("([^,]+) ([^,]+) ([^,]+) ([^,]+)") + minetest.set_node({x=pos.x + x, y=pos.y + z, z=pos.z + y}, {name="default:wood"}) + print (k .. ' : ', x, y, z, c) + end + end + + return true, fmt:format(args, pos.x, pos.y, pos.z) + end + else + return false, "No nodevoxel added" + end + + return false, "No nodevoxel added" + end +}) diff --git a/model/obj01.gox b/model/obj01.gox new file mode 100644 index 0000000..2153d8a Binary files /dev/null and b/model/obj01.gox differ diff --git a/model/obj01.txt b/model/obj01.txt new file mode 100644 index 0000000..c7d59b8 --- /dev/null +++ b/model/obj01.txt @@ -0,0 +1,436 @@ +# Goxel 0.7.2 +# One line per voxel +# X Y Z RRGGBB +-10 0 0 ffffff +-7 0 0 ffffff +-5 0 0 ffffff +-4 0 0 ffffff +-3 0 0 dc0a0a +-2 0 0 dc0a0a +-1 0 0 dc0a0a +-10 1 0 ffffff +-8 1 0 ffffff +-7 1 0 ffffff +-5 1 0 ffffff +-4 1 0 ffffff +-3 1 0 dc0a0a +-2 1 0 dc0a0a +-1 1 0 dc0a0a +-10 2 0 ffffff +-8 2 0 ffffff +-7 2 0 ffffff +-5 2 0 ffffff +-2 2 0 dc0a0a +-10 3 0 ffffff +-8 3 0 ffffff +-7 3 0 ffffff +-6 3 0 ffffff +-5 3 0 ffffff +-10 4 0 ffffff +-9 4 0 ffffff +-8 4 0 ffffff +-7 4 0 ffffff +-6 4 0 ffffff +-2 4 0 000000 +-1 4 0 000000 +-10 5 0 ffffff +-9 5 0 ffffff +-8 5 0 ffffff +-7 5 0 ffffff +-2 5 0 000000 +-1 5 0 000000 +-9 6 0 ffffff +-8 6 0 ffffff +-7 6 0 ffffff +-6 6 0 ffffff +-5 6 0 ffffff +-1 6 0 ffffff +-6 7 0 ffffff +-5 7 0 ffffff +-4 7 0 ffffff +-3 7 0 ffffff +-2 7 0 ffffff +-1 7 0 ffffff +-1 9 0 c6cf67 +-8 10 0 c6cf67 +-4 10 0 c6cf67 +-2 10 0 c6cf67 +-1 10 0 c6cf67 +-11 11 0 c6cf67 +-7 11 0 c6cf67 +-6 11 0 c6cf67 +-10 12 0 c6cf67 +-16 13 0 c6cf67 +-10 0 1 f56161 +-1 0 1 dc0a0a +-10 1 1 f56161 +-1 1 1 dc0a0a +-10 2 1 f56161 +-1 2 1 000000 +-10 3 1 f56161 +-10 4 1 f56161 +-10 5 1 f56161 +-9 5 1 f56161 +-8 5 1 f56161 +-7 5 1 f56161 +-6 8 1 c6cf67 +-9 9 1 c6cf67 +-5 9 1 c6cf67 +-3 9 1 c6cf67 +-2 9 1 c6cf67 +-16 10 1 c6cf67 +-12 10 1 c6cf67 +-8 10 1 c6cf67 +-7 10 1 c6cf67 +-5 10 1 c6cf67 +-11 11 1 c6cf67 +-1 0 2 dc0a0a +-1 2 2 000000 +-7 7 2 c6cf67 +-10 8 2 c6cf67 +-7 8 2 c6cf67 +-6 8 2 c6cf67 +-4 8 2 c6cf67 +-3 8 2 c6cf67 +-16 9 2 c6cf67 +-15 9 2 c6cf67 +-14 9 2 c6cf67 +-13 9 2 c6cf67 +-10 9 2 c6cf67 +-8 9 2 c6cf67 +-6 9 2 c6cf67 +-16 10 2 c6cf67 +-15 10 2 c6cf67 +-13 10 2 c6cf67 +-12 10 2 c6cf67 +-1 0 3 0f0adc +-1 1 3 000000 +-8 6 3 c6cf67 +-14 7 3 c6cf67 +-13 7 3 c6cf67 +-12 7 3 c6cf67 +-11 7 3 c6cf67 +-8 7 3 c6cf67 +-5 7 3 c6cf67 +-4 7 3 c6cf67 +-14 8 3 c6cf67 +-13 8 3 c6cf67 +-11 8 3 c6cf67 +-9 8 3 c6cf67 +-7 8 3 c6cf67 +-14 9 3 c6cf67 +-13 9 3 c6cf67 +-2 0 4 000000 +-1 0 4 0f0adc +-1 1 4 000000 +-9 5 4 c6cf67 +-11 6 4 c6cf67 +-10 6 4 c6cf67 +-9 6 4 c6cf67 +-6 6 4 c6cf67 +-5 6 4 c6cf67 +-12 7 4 c6cf67 +-10 7 4 c6cf67 +-9 7 4 c6cf67 +-2 0 5 000000 +-1 0 5 0f0adc +-10 4 5 c6cf67 +-9 4 5 c6cf67 +-8 4 5 c6cf67 +-10 5 5 c6cf67 +-9 5 5 c6cf67 +-7 5 5 c6cf67 +-11 6 5 c6cf67 +-10 6 5 c6cf67 +-4 0 6 000000 +-3 0 6 000000 +-2 0 6 000000 +-1 0 6 000000 +-6 2 6 c6cf67 +-7 3 6 c6cf67 +-8 4 6 c6cf67 +-9 5 6 c6cf67 +-3 0 7 c6cf67 +-4 1 7 c6cf67 +-6 2 7 c6cf67 +-5 2 7 c6cf67 +-7 3 7 c6cf67 +-3 0 8 c6cf67 +-4 1 8 c6cf67 +-3 -10 0 ffffff +-1 -10 0 ffffff +-3 -9 0 ffffff +-2 -9 0 ffffff +-1 -9 0 ffffff +-5 -8 0 ffffff +-4 -8 0 ffffff +-3 -8 0 ffffff +-2 -8 0 ffffff +-1 -8 0 ffffff +-8 -7 0 ffffff +-7 -7 0 ffffff +-6 -7 0 ffffff +-5 -7 0 ffffff +-4 -7 0 ffffff +-3 -7 0 ffffff +-2 -7 0 ffffff +-1 -7 0 ffffff +-11 -6 0 ffffff +-10 -6 0 ffffff +-9 -6 0 ffffff +-8 -6 0 ffffff +-6 -6 0 ffffff +-5 -6 0 ffffff +-4 -6 0 ffffff +-3 -6 0 ffffff +-2 -6 0 ffffff +-1 -6 0 ffffff +-11 -5 0 ffffff +-6 -5 0 ffffff +-5 -5 0 ffffff +-4 -5 0 ffffff +-11 -4 0 ffffff +-6 -4 0 ffffff +-3 -4 0 000000 +-2 -4 0 000000 +-1 -4 0 000000 +-11 -3 0 f56161 +-10 -3 0 f56161 +-6 -3 0 ffffff +-4 -3 0 000000 +-3 -3 0 000000 +-2 -3 0 000000 +-11 -2 0 ffffff +-10 -2 0 ffffff +-6 -2 0 ffffff +-5 -2 0 000000 +-4 -2 0 000000 +-1 -2 0 dc0a0a +-10 -1 0 ffffff +-7 -1 0 ffffff +-6 -1 0 ffffff +-5 -1 0 000000 +-4 -1 0 000000 +-2 -1 0 dc0a0a +-1 -1 0 dc0a0a +-2 -11 1 ffffff +-1 -11 1 ffffff +-2 -10 1 ffffff +-1 -10 1 ffffff +-3 -8 1 ffffff +-2 -8 1 ffffff +-5 -7 1 ffffff +-11 -6 1 f56161 +-10 -6 1 f56161 +-9 -6 1 f56161 +-11 -5 1 f56161 +-11 -4 1 f56161 +-11 -3 1 f56161 +-11 -2 1 f56161 +-10 -2 1 f56161 +-10 -1 1 f56161 +-2 -1 1 dc0a0a +-1 -1 1 dc0a0a +-1 -12 2 ffffff +-1 -11 2 ffffff +-1 -1 2 dc0a0a +-1 -1 3 0f0adc +-1 -1 4 0f0adc +-2 -2 5 000000 +-1 -2 5 000000 +-2 -1 5 000000 +-1 -1 5 000000 +-3 -1 6 000000 +-3 -1 7 c6cf67 +3 -16 0 000000 +4 -16 0 000000 +5 -16 0 000000 +6 -16 0 000000 +2 -15 0 000000 +3 -15 0 000000 +6 -15 0 000000 +6 -14 0 000000 +6 -13 0 000000 +0 -12 0 ffffff +6 -12 0 000000 +6 -11 0 000000 +0 -10 0 ffffff +6 -10 0 000000 +0 -9 0 ffffff +6 -9 0 000000 +7 -9 0 000000 +8 -9 0 000000 +9 -9 0 000000 +10 -9 0 000000 +0 -8 0 ffffff +1 -8 0 ffffff +2 -8 0 ffffff +3 -8 0 ffffff +4 -8 0 ffffff +5 -8 0 ffffff +6 -7 0 ffffff +7 -7 0 ffffff +0 -6 0 ffffff +1 -6 0 ffffff +7 -6 0 ffffff +3 -5 0 dc0ad5 +4 -5 0 dc0ad5 +7 -5 0 ffffff +0 -4 0 000000 +1 -4 0 000000 +2 -4 0 000000 +3 -4 0 dc0ad5 +4 -4 0 dc0ad5 +7 -4 0 ffffff +0 -3 0 000000 +1 -3 0 000000 +2 -3 0 000000 +3 -3 0 dc0ad5 +4 -3 0 dc0ad5 +5 -3 0 dc0ad5 +7 -3 0 ffffff +0 -2 0 dc0a0a +3 -2 0 dc0ad5 +4 -2 0 dc0ad5 +5 -2 0 dc0ad5 +7 -2 0 ffffff +0 -1 0 dc0a0a +1 -1 0 dc0a0a +3 -1 0 dc0ad5 +4 -1 0 dc0ad5 +5 -1 0 dc0ad5 +6 -1 0 ffffff +7 -1 0 ffffff +2 -15 1 ffffff +0 -11 1 ffffff +1 -11 1 ffffff +0 -10 1 ffffff +1 -10 1 ffffff +5 -9 1 000000 +5 -8 1 000000 +6 -8 1 000000 +8 -8 1 000000 +7 -7 1 000000 +8 -7 1 000000 +4 -4 1 dc0ad5 +3 -2 1 dc0ad5 +4 -2 1 dc0ad5 +0 -1 1 dc0a0a +1 -1 1 dc0a0a +3 -1 1 dc0ad5 +4 -1 1 dc0ad5 +2 -15 2 ffffff +0 -13 2 ffffff +0 -12 2 ffffff +1 -12 2 ffffff +2 -12 2 ffffff +0 -11 2 ffffff +1 -11 2 ffffff +6 -7 2 000000 +5 -6 2 000000 +5 -5 2 000000 +0 -1 2 dc0a0a +1 -1 2 62e151 +2 -15 3 ffffff +0 -13 3 ffffff +1 -13 3 ffffff +2 -13 3 ffffff +3 -13 3 ffffff +0 -12 3 ffffff +1 -12 3 ffffff +2 -12 3 ffffff +3 -5 3 000000 +4 -5 3 000000 +2 -4 3 000000 +1 -2 3 62e151 +0 -1 3 0f0adc +2 -15 4 ffffff +0 -14 4 ffffff +1 -14 4 ffffff +2 -14 4 ffffff +3 -14 4 ffffff +1 -13 4 ffffff +2 -13 4 ffffff +1 -4 4 000000 +0 -3 4 000000 +1 -3 4 62e151 +0 -1 4 0f0adc +2 -16 5 ffffff +1 -15 5 ffffff +2 -15 5 ffffff +3 -15 5 ffffff +2 -14 5 ffffff +3 -14 5 ffffff +0 -3 5 62e151 +1 -3 5 62e151 +0 -2 5 62e151 +0 -1 5 000000 +2 -16 6 ffffff +2 -15 6 ffffff +3 -15 6 ffffff +2 -15 7 ffffff +0 0 0 dc0a0a +1 0 0 dc0a0a +3 0 0 dc0ad5 +4 0 0 dc0ad5 +5 0 0 ffffff +6 0 0 ffffff +0 1 0 dc0a0a +1 1 0 dc0a0a +5 1 0 ffffff +0 2 0 dc0a0a +1 2 0 dc0a0a +4 2 0 ffffff +5 2 0 ffffff +0 3 0 000000 +3 3 0 ffffff +4 3 0 ffffff +0 4 0 000000 +1 4 0 000000 +2 4 0 ffffff +3 4 0 ffffff +1 5 0 ffffff +2 5 0 ffffff +0 6 0 ffffff +1 6 0 ffffff +0 9 0 c6cf67 +2 10 0 c6cf67 +0 0 1 dc0a0a +1 0 1 dc0a0a +0 1 1 dc0a0a +1 1 1 dc0a0a +0 2 1 dc0a0a +1 2 1 dc0a0a +0 3 1 000000 +0 0 2 dc0a0a +1 0 2 dc0a0a +0 1 2 dc0a0a +1 1 2 dc0a0a +0 2 2 dc0a0a +1 2 2 dc0a0a +0 0 3 0f0adc +0 1 3 0f0adc +1 1 3 0f0adc +0 2 3 000000 +0 0 4 0f0adc +0 0 5 000000 +-17 11 0 c6cf67 +-19 12 0 c6cf67 +-18 12 0 c6cf67 +-17 12 0 c6cf67 +-20 13 0 c6cf67 +-19 13 0 c6cf67 +-17 13 0 c6cf67 +-21 14 0 c6cf67 +-20 14 0 c6cf67 +-17 10 1 c6cf67 +-18 11 1 c6cf67 +-17 11 1 c6cf67 +-19 12 1 c6cf67 +-18 12 1 c6cf67 +-17 12 1 c6cf67 +-21 13 1 c6cf67 +-20 13 1 c6cf67 +-19 13 1 c6cf67 +-21 14 1 c6cf67 +-17 11 2 c6cf67 diff --git a/screenshot/voxmin01.png b/screenshot/voxmin01.png new file mode 100644 index 0000000..afd16d2 Binary files /dev/null and b/screenshot/voxmin01.png differ diff --git a/screenshot/voxmin02.png b/screenshot/voxmin02.png new file mode 100644 index 0000000..736dd72 Binary files /dev/null and b/screenshot/voxmin02.png differ