Add custom operators (Part 2)
This commit is contained in:
parent
34548d8509
commit
eaf7c486b8
4
init.lua
4
init.lua
|
@ -1,8 +1,8 @@
|
||||||
local modpath = core.get_modpath"i3"
|
local modpath = core.get_modpath"i3"
|
||||||
dofile(modpath .. "/src/operators.lua")
|
local _loadfile = dofile(modpath .. "/src/operators.lua")
|
||||||
|
|
||||||
local function lf(path)
|
local function lf(path)
|
||||||
return loadfile(modpath .. path)
|
return _loadfile(modpath .. path)
|
||||||
end
|
end
|
||||||
|
|
||||||
i3 = {
|
i3 = {
|
||||||
|
|
|
@ -88,7 +88,7 @@ function i3.register_craft(def)
|
||||||
end
|
end
|
||||||
|
|
||||||
for symbol in gmatch(concat(def.grid), ".") do
|
for symbol in gmatch(concat(def.grid), ".") do
|
||||||
c = c + 1
|
c++
|
||||||
def.items[c] = def.key[symbol]
|
def.items[c] = def.key[symbol]
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
|
@ -110,7 +110,7 @@ function i3.register_craft(def)
|
||||||
end
|
end
|
||||||
|
|
||||||
for name in gmatch(concat(items, ","), "[%s%w_:]+") do
|
for name in gmatch(concat(items, ","), "[%s%w_:]+") do
|
||||||
c = c + 1
|
c++
|
||||||
def.items[c] = clean_name(name)
|
def.items[c] = clean_name(name)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -104,7 +104,7 @@ local function drop_table(name, drop)
|
||||||
end
|
end
|
||||||
|
|
||||||
if not di.rarity then
|
if not di.rarity then
|
||||||
count_sure = count_sure + 1
|
count_sure++
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -146,7 +146,7 @@ local function cache_recipes(item)
|
||||||
end
|
end
|
||||||
|
|
||||||
for k, v in pairs(replacements[item]) do
|
for k, v in pairs(replacements[item]) do
|
||||||
k = k + shift
|
k += shift
|
||||||
|
|
||||||
if _recipes[k] then
|
if _recipes[k] then
|
||||||
_recipes[k].replacements = v
|
_recipes[k].replacements = v
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
local fmt = string.format
|
local fmt = string.format
|
||||||
local _loadfile = loadfile
|
local var = "[%w%.%[%]\"\'_]"
|
||||||
local var = "[%w%.%[%]_]"
|
|
||||||
|
|
||||||
local operators = {
|
local operators = {
|
||||||
["([%+%-%*%^/&|])="] = function(a, b, c)
|
["([%+%-%*%^/&|])="] = function(a, b, c)
|
||||||
|
@ -26,6 +25,14 @@ local operators = {
|
||||||
[">>"] = function(a, b)
|
[">>"] = function(a, b)
|
||||||
return fmt("bit.rshift(%s, %s)", a, b)
|
return fmt("bit.rshift(%s, %s)", a, b)
|
||||||
end,
|
end,
|
||||||
|
|
||||||
|
["<<="] = function(a, b)
|
||||||
|
return fmt("%s = bit.lshift(%s, %s)", a, a, b)
|
||||||
|
end,
|
||||||
|
|
||||||
|
[">>="] = function(a, b)
|
||||||
|
return fmt("%s = bit.rshift(%s, %s)", a, a, b)
|
||||||
|
end,
|
||||||
}
|
}
|
||||||
|
|
||||||
local function compile(data)
|
local function compile(data)
|
||||||
|
@ -61,6 +68,6 @@ local function _load(path, line, data)
|
||||||
return l, err
|
return l, err
|
||||||
end
|
end
|
||||||
|
|
||||||
function loadfile(path)
|
return function(path)
|
||||||
return _load(path) or _loadfile(path)
|
return _load(path) or loadfile(path)
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,24 +1,22 @@
|
||||||
local a, b, c = 0, 0, 0
|
local a, b, c = 0, 0, 0
|
||||||
|
|
||||||
b+=1
|
b+=1
|
||||||
c++; local foo = "bar";
|
c++; local foo = "bar";
|
||||||
print(c-=1)
|
print(c-=1)
|
||||||
print(c++)
|
print(c++)
|
||||||
local t = {
|
local t = {
|
||||||
a = a++,
|
a = a++,
|
||||||
b = b++,
|
b = 2,
|
||||||
c = c++,
|
c = c+=2,
|
||||||
d = a&3,
|
d = a&3,
|
||||||
|
e = 1,
|
||||||
}
|
}
|
||||||
|
t["b"] <<= 4
|
||||||
print(dump(t))
|
print(dump(t))
|
||||||
|
|
||||||
--c += 1
|
--c += 1
|
||||||
c*=2
|
c*=2
|
||||||
|
|
||||||
local i = 16
|
local i = 16
|
||||||
i += i<<4
|
i += i<<4
|
||||||
print(i) -- 272
|
print(i) -- 272
|
||||||
|
|
||||||
print(a+=2) -- 2
|
print(a+=2) -- 2
|
||||||
print(c++) -- 3
|
print(c++) -- 3
|
||||||
print(a-=1) -- -1
|
print(a-=1) -- -1
|
||||||
|
|
Ŝarĝante…
Reference in New Issue