mirror of
https://github.com/sbrl/Minetest-WorldEditAdditions.git
synced 2024-11-27 17:43:53 +01:00
sets (not working)
This commit is contained in:
parent
fa2c0642c1
commit
0b01520118
@ -6,6 +6,61 @@
|
||||
-- @author Starbeamrainbowlabs
|
||||
|
||||
worldeditadditions = {}
|
||||
worldeditadditions.modpath = minetest.get_modpath("worldeditadditions")
|
||||
dofile(worldeditadditions.modpath.."/utils/vector.lua")
|
||||
worldeditadditions.Set = dofile(worldeditadditions.modpath.."/utils/set.lua")
|
||||
worldeditadditions.Vector3 = dofile(worldeditadditions.modpath.."/utils/vector3.lua")
|
||||
worldeditadditions.Mesh,
|
||||
worldeditadditions.Face = dofile(worldeditadditions.modpath.."/utils/mesh.lua")
|
||||
|
||||
worldeditadditions.Queue = dofile(worldeditadditions.modpath.."/utils/queue.lua")
|
||||
worldeditadditions.LRU = dofile(worldeditadditions.modpath.."/utils/lru.lua")
|
||||
|
||||
|
||||
dofile(worldeditadditions.modpath.."/utils/strings/init.lua")
|
||||
dofile(worldeditadditions.modpath.."/utils/format/init.lua")
|
||||
dofile(worldeditadditions.modpath.."/utils/parse/init.lua")
|
||||
dofile(worldeditadditions.modpath.."/utils/tables/init.lua")
|
||||
|
||||
dofile(worldeditadditions.modpath.."/utils/numbers.lua")
|
||||
dofile(worldeditadditions.modpath.."/utils/nodes.lua")
|
||||
dofile(worldeditadditions.modpath.."/utils/node_identification.lua")
|
||||
dofile(worldeditadditions.modpath.."/utils/terrain.lua")
|
||||
dofile(worldeditadditions.modpath.."/utils/raycast_adv.lua") -- For the farwand
|
||||
dofile(worldeditadditions.modpath.."/utils/axes.lua")
|
||||
|
||||
dofile(worldeditadditions.modpath.."/lib/compat/saplingnames.lua")
|
||||
|
||||
dofile(worldeditadditions.modpath.."/lib/floodfill.lua")
|
||||
dofile(worldeditadditions.modpath.."/lib/overlay.lua")
|
||||
dofile(worldeditadditions.modpath.."/lib/layers.lua")
|
||||
dofile(worldeditadditions.modpath.."/lib/fillcaves.lua")
|
||||
dofile(worldeditadditions.modpath.."/lib/ellipsoid.lua")
|
||||
dofile(worldeditadditions.modpath.."/lib/torus.lua")
|
||||
dofile(worldeditadditions.modpath.."/lib/line.lua")
|
||||
dofile(worldeditadditions.modpath.."/lib/walls.lua")
|
||||
dofile(worldeditadditions.modpath.."/lib/replacemix.lua")
|
||||
dofile(worldeditadditions.modpath.."/lib/maze2d.lua")
|
||||
dofile(worldeditadditions.modpath.."/lib/maze3d.lua")
|
||||
dofile(worldeditadditions.modpath.."/lib/hollow.lua")
|
||||
dofile(worldeditadditions.modpath.."/lib/scale_up.lua")
|
||||
dofile(worldeditadditions.modpath.."/lib/scale_down.lua")
|
||||
dofile(worldeditadditions.modpath.."/lib/scale.lua")
|
||||
dofile(worldeditadditions.modpath.."/lib/conv/conv.lua")
|
||||
dofile(worldeditadditions.modpath.."/lib/erode/erode.lua")
|
||||
dofile(worldeditadditions.modpath.."/lib/noise/init.lua")
|
||||
|
||||
dofile(worldeditadditions.modpath.."/lib/count.lua")
|
||||
|
||||
dofile(worldeditadditions.modpath.."/lib/bonemeal.lua")
|
||||
dofile(worldeditadditions.modpath.."/lib/forest.lua")
|
||||
|
||||
dofile(worldeditadditions.modpath.."/lib/ellipsoidapply.lua")
|
||||
dofile(worldeditadditions.modpath.."/lib/airapply.lua")
|
||||
|
||||
dofile(worldeditadditions.modpath.."/lib/subdivide.lua")
|
||||
dofile(worldeditadditions.modpath.."/lib/selection/stack.lua")
|
||||
dofile(worldeditadditions.modpath.."/lib/selection/cloud.lua")
|
||||
local wea = worldeditadditions
|
||||
wea.modpath = minetest.get_modpath("worldeditadditions")
|
||||
|
||||
|
101
worldeditadditions/utils/set.lua
Normal file
101
worldeditadditions/utils/set.lua
Normal file
@ -0,0 +1,101 @@
|
||||
--- Sets for lua!
|
||||
-- local Set = {}
|
||||
--- Option 1:
|
||||
-- Set.__index = Set
|
||||
-- Set.__newindex = function(tbl, key, value)
|
||||
-- if not tbl.__protected[key] then
|
||||
-- rawset(tbl,key,value)
|
||||
-- else
|
||||
-- error("Protected!")
|
||||
-- end
|
||||
-- end
|
||||
-- Set.__protected = {
|
||||
-- __protected=true,
|
||||
-- new=true,
|
||||
-- add=true,
|
||||
-- delete=true,
|
||||
-- has=true
|
||||
-- }
|
||||
|
||||
--- Option 2:
|
||||
local Set = {}
|
||||
Set.__index = Set
|
||||
Set.__newindex = function(tbl, key, value)
|
||||
rawset(tbl.set,key,value)
|
||||
end
|
||||
|
||||
--- Creates a new set.
|
||||
-- @param i any Initial values(s) of the set.
|
||||
-- @returns Set A table of keys equal to true.
|
||||
function Set.new(i)
|
||||
local result = {set={}}
|
||||
setmetatable(result, Set)
|
||||
if type(i) == "table" then
|
||||
for k,v in pairs(i) do result[v] = true end
|
||||
elseif i then
|
||||
result[i] = true
|
||||
end
|
||||
return result
|
||||
end
|
||||
-- a = Set.new({"add","new","thing"})
|
||||
|
||||
--- Adds item(s) to set.
|
||||
-- @param a set Set to manipulate.
|
||||
-- @param i not nil Values(s) to add.
|
||||
-- @returns bool Success of operation.
|
||||
function Set.add(a,i)
|
||||
if type(i) == "table" then
|
||||
for k,v in pairs(i) do a[v] = true end
|
||||
else
|
||||
a[i] = true
|
||||
end
|
||||
return true
|
||||
end
|
||||
|
||||
--- Deletes item(s) from set.
|
||||
-- @param a set Set to manipulate.
|
||||
-- @param i not nil Values(s) to delete.
|
||||
-- @returns bool Success of operation.
|
||||
function Set.delete(a,i)
|
||||
if type(i) == "table" then
|
||||
for k,v in pairs(i) do a[v] = nil end
|
||||
else
|
||||
a[i] = nil
|
||||
end
|
||||
return true
|
||||
end
|
||||
|
||||
--- Checks if value(s) are present in set.
|
||||
-- @param a set Set to inspect.
|
||||
-- @param i not nil Values(s) to check.
|
||||
-- @returns bool Value(s) are present?
|
||||
function Set.has(a,i)
|
||||
if type(i) == "table" then
|
||||
for k,v in pairs(i) do
|
||||
if not a[k] then return false end
|
||||
end
|
||||
return true
|
||||
else
|
||||
return a[i] ~= nil
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
-- ██████ ██████ ███████ ██████ █████ ████████ ██████ ██████
|
||||
-- ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
|
||||
-- ██ ██ ██████ █████ ██████ ███████ ██ ██ ██ ██████
|
||||
-- ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
|
||||
-- ██████ ██ ███████ ██ ██ ██ ██ ██ ██████ ██ ██
|
||||
--
|
||||
-- ██████ ██ ██ ███████ ██████ ██████ ██ ██████ ███████ ███████
|
||||
-- ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
|
||||
-- ██ ██ ██ ██ █████ ██████ ██████ ██ ██ ██ █████ ███████
|
||||
-- ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
|
||||
-- ██████ ████ ███████ ██ ██ ██ ██ ██ ██████ ███████ ███████
|
||||
|
||||
function Set.__call(i) return Set.new(i) end
|
||||
|
||||
|
||||
-- Main Return:
|
||||
return Set
|
Loading…
Reference in New Issue
Block a user