summaryrefslogtreecommitdiff
diff options
authorNameNotQuality <none>2025-07-09 20:56:36 +0200
committerNameNotQuality <none>2025-07-09 20:56:36 +0200
commit62e44891ffa5bb1f5b58648c174bc76bc7b13a00 (patch)
tree95f88a83ea3548f994a9df7aa7fad00b9ed3f5c3
parentfaa24c2038f1d4c8056cea3c382111b41bdb7e7a (diff)
downloadnb-concrete-master.tar.gz
Remove big comments and modify some in lode_stylus.luaHEADmaster
-rw-r--r--concretesolution2
-rw-r--r--lode_stylus.lua396
2 files changed, 32 insertions, 366 deletions
diff --git a/concretesolution b/concretesolution
index 349452d..6af486d 100644
--- a/concretesolution
+++ b/concretesolution
@@ -72,7 +72,7 @@ info - Common colors and shades for reference:
* Red
* Orange (done)
* Yellow (default?)
- * Green (done as dark greens)
+ * Green (done as dark green and (still kinda dark?) green)
* Blue (done, light and dark)
* Purple
* Pink
diff --git a/lode_stylus.lua b/lode_stylus.lua
index 99d4c65..823e3c8 100644
--- a/lode_stylus.lua
+++ b/lode_stylus.lua
@@ -1,10 +1,3 @@
---TODO:
--- Anvil craft bug report?
---[[ Note: when Liberties is disabled but there's a stone stylus with crossy Liberties
- patt, it always sets pattern to gifty and can't change patt anymore. However I
- probably won't fix this as this is just a side effect of the crossy->gifty alias
- that atleast doesn't make the game error this way, other patts, e.g. starcrossy,
- when on stylus and Liberties uninstalled makes game error when etching--]]
--[[
NB More Concrete - Adds more concrete types to NodeCore
@@ -132,7 +125,10 @@ function nb_more_concrete.register_patterns_finish(table)
end -- register_patterns_finish
--- Liberties install bool to easily check if it's installed below and later
+-- Liberties is a mod which defines some patts too, one of which, Crossy, suprisingly
+-- turned out to be the same as the Gifty one below.
+-- So I'll alias them to skip installing one uselessly by checking for this variable
+-- which will show if it's enabled
if (core.get_modpath("lc_liberties")) then
nb_more_concrete.liberated = true
end
@@ -141,18 +137,14 @@ end
-- Bricky, Vermy, Hashy, Bindy, Verty, Horzy, Boxy, Iceboxy
--
-- Oh my goodness
--- What a wall of text! <- Written when this was an actual nice wall of text btw, now it has following comment wall etc.
+-- What a wall of text! <- Written when this was an actual nice wall of text btw, now it has this if etc.
nb_more_concrete.register_patterns(nb_more_concrete.annealed_patterns,{description = "Blank", blank=true})
nb_more_concrete.register_patterns(nb_more_concrete.annealed_patterns,{description = "Liny", paramtype2="facedir"})
--- I realised that this 'Gifty' pattern is exactly the same as the 'Crossy' one in the Liberties mod.
--- Maybe it's not that much of a problem, at most I could alias the Liberties' crosses to these gifts or something.
--- However, I'm not sure if I need to give them copyright/license credit, even though I came up with this myself.
--- -Later/edit: I will
if (nb_more_concrete.liberated) then -- Alias gifty to crossy, this gets checked for later to not define gifty anymore
nb_more_concrete.register_patterns(nb_more_concrete.annealed_patterns,{description = "Gifty", alias="crossy"})
else -- liberties could've gotten uninstalled, so let's alias its crosses back to Santa
nb_more_concrete.register_patterns(nb_more_concrete.annealed_patterns,{description = "Gifty", aliased="crossy"})
-end -- Note in the crafts later there's no check for alias variable, just once for "crossy" instead
+end -- Note in the crafts later there's no check for alias variable, just once for "crossy" instead manually added
nb_more_concrete.register_patterns(nb_more_concrete.annealed_patterns,{description = "Tily"})
nb_more_concrete.register_patterns(nb_more_concrete.annealed_patterns,{description = "Quady"})
nb_more_concrete.register_patterns(nb_more_concrete.annealed_patterns,{description = "Checkery"})
@@ -164,7 +156,7 @@ nb_more_concrete.register_patterns_finish(nb_more_concrete.annealed_patterns)
--- Tempered (for now same as annealed)
--nb_more_concrete.tempered_patterns=nb_more_concrete.annealed_patterns
---- Later probably also lux annealed and lux tempered (but _probably_ not boost lux and hot lode versions)
+--- Later probably also lux annealed and lux tempered (but /probably/ not boost lux and hot lode versions)
@@ -192,26 +184,10 @@ local stylish_def = {
},
-- Change toolcaps depending on temper
bytemper = function (item,def)
- -- Custom cool/hot indicator groups to avoid default lode cook/cool ABMs,
- -- custom ABMs will be implemented later
- -- Hopefully no other mods use the original groups for lode things,
- --[[ as I can't predict them here. They would need to add support for this?
- -- EDIT: Nevermind! I can just do 1 aism instead of all!
- def.lode_temper_cool = nil
- def.groups.lode_temper_cool=nil
- def.nb_lode_temper_cool = true
- def.groups.nb_lode_temper_cool=1--]]
if (item.name == "tempered") then
def.tool_capabilities = nc.toolcaps({scratchy=5})
elseif (item.name == "hot") then -- Hot doesn't actually melt everything and scratch=9999
def.tool_capabilities = nc.toolcaps({scratchy=3})
- --[[ Replace also cool nb groups set before the if
- def.lode_temper_hot = nil
- def.nb_lode_temper_cool = nil
- def.groups.nb_lode_temper_cool=nil
- def.groups.lode_temper_hot=nil
- def.nb_lode_temper_hot = true
- def.groups.nb_lode_temper_hot=1--]]
end
-- Create nb_scratchy groups for crafts later
--[[ This tool_capabilities table looks like this:
@@ -241,17 +217,7 @@ local stylish_def = {
-- Get pattern
local patt = stack:get_meta():get_string("pattern")
if not patt --[[or patt == ""--]] then
- --- Doesn't work, as stack cannot be swapped
- --[[ Let's randomly pick a pattern from the right table,
- -- so it isn't kept blank when changing temper (after which it turns to "")
- patt = nc.pickrand(patterns).name
- print(dump(patt))
- --patt = patterns[math.random(9)].name
- stack:get_meta():set_string("pattern",patt)
- print(dump(stack:to_table()))--]]
return desc end
- --print (patt)
-
-- Add to desc
-- First, check for crossy alias, so name can be changed to crossy instead
if (nb_more_concrete.liberated and patt=="gifty") then
@@ -266,39 +232,6 @@ local stylish_def = {
return desc
end,
- --[[ Set new pattern upon creation
- on_construct = function(pos)
- print("ON CONSTRUCTOR")
- tool = core.get_node[pos]
- -- Patterns: later set dependant on temper state
- patterns = nb_more_concrete.annealed_patterns
- tool:get_meta():set_string("pattern", nc.pickrand(patterns).name)
- -- Set the node
- core.swap_node(pos,tool)
- end--]]
-
- -- Preserve meta for patterns across temper state changes (e.g. heating up the stylus)
- --
- -- Later will choose a new pattern of the same index
- -- if the pattern table is switched (e.g. annealed -> tempered)
- --[[preserve_metadata = function(_, _, oldmeta, drops)
- local patt = oldmeta:get_string("pattern")
- if (patt) then
- drops[1]:get_meta():set_string("pattern", patt)
- return drops
- end
- end]] -- It doesn't work! It gets defined into the tool but doesn't work when
- -- changing temper state
- -- What actually Not works is nc's on_stack_change (pos,node,stack,old)
- --[[on_stack_change = function (_, __, stack, ___)
- print("ON STACK CHANGE!")
- -- Patterns: later set dependant on temper state
- patterns = nb_more_concrete.annealed_patterns
- stack:get_meta():set_string("pattern", nc.pickrand(patterns).name)
- -- Set the node
- return stack
- end--]]
-
}
-- NC versions older than a load of gibberish:
-- 5002ea97bd9ab058bb11d7f639612f5a894020c9
@@ -418,139 +351,8 @@ end
----------> Common lode crafts (create/recycle) and special patt aism
---- Specific cool/cook ABMs
--- The ABMS of NodeCore don't offer a callback, so it isn't possible to
--- make one so the stylus changes its pattern. This is why I need to make
--- my own.
---
--- Normally the after function in those ABMs had this local,
--- here it is modified
---[[local function replacestack(pos, temper)
- -- Get stack
- local stack = nc.stack_get(pos)
- --if stack:is_empty() then stack = nil end
- -- Node alternative to stack/^
- --local node = core.get_node(pos)
- -- Name from stack or node
- local name = --[[stack and--]]--[[ stack:get_name()-- or node.name
- -- Def
- local def = core.registered_items[name] or {}
- -- Alt lode temper
- local alt = def["lode_alt_" .. temper]
- if not alt then return error("no " .. alt .. " alt for " .. name) end
-
- --if stack then
- -- repl - alt stack (repl-acement)
- local repl = ItemStack(alt)
- -- qty - stack count (1?) (not sure what qty means)
- local qty = stack:get_count()
- if qty == 0 then qty = 1 end -- min 1
-
- -- Same amount of items as earlier
- repl:set_count(qty * repl:get_count())
-
- -- The thing I wanted to do: set a new pattern
- local patterns = nb_more_concrete.annealed_patterns -- Depend later on temper
- repl:get_meta():set_string("pattern", nc.pickrand(patterns).name)
-
- nc.stack_set(pos, repl)
-
- --[[else -- Omit, stylys is only as stack
- core.set_node(pos, {name = alt})
- nc.fallcheck(pos)
- end--]]
- -- Witness murder of metallurgizing victim? (what does that even mean? gotta ask ironman...)
- --[[nc.witness(pos, "metallurgize " .. alt)
-end--]]
-
--- Here are the crafts and aism from NC, modified
--- (I don't think it is worth defining a local function to define these
--- all, as they have different values in every variable)
---[[nc.register_craft({
- label = "nb lode stylus heating",
- action = "cook",
- touchgroups = {flame = 3},
- neargroups = {coolant = 0},
- cookfx = true,
- duration = 30, --
- nodes = {{match = {nb_lode_temper_cool = true, count = false}}},
- after = function(pos) return replacestack(pos, "hot") end
-})
-
-nc.register_craft({
- label = "nb lode stylus annealing",
- action = "cook",
- touchgroups = {flame = 0},
- neargroups = {coolant = 0},
- cookfx = {smoke = true, hiss = true},
- duration = 120, --
- priority = -1, --
- nodes = {{match = {nb_lode_temper_hot = true, count = false}}},
- after = function(pos) return replacestack(pos, "annealed") end
-})
-
-nc.register_craft({
- label = "nb lode stylus quenching",
- action = "cook",
- touchgroups = {flame = 0},
- neargroups = {coolant = 1},
- cookfx = true,
- nodes = {{match = {nb_lode_temper_hot = true, count = false}}},
- after = function(pos) return replacestack(pos, "tempered") end
-})
-
--- Instead of replacestack, the AISM here uses this local
-local function coolto(pos, stack, tempername)
- -- Get alt from def
- local def = core.registered_items[stack:get_name()]
- if not def then return end
- local alt = def["lode_alt_" .. tempername]
- if not alt then return end
-
- -- Others aside from stack
- nc.witness(pos, "metallurgize " .. alt)
- nc.playcookfx(pos, true, "hiss", 80, 0.2)
-
- -- Make final stack
- local repl = ItemStack(alt .. " " .. stack:get_count())
- -- Set pattern
- local patterns = nb_more_concrete.annealed_patterns -- Depend later on temper
- repl:get_meta():set_string("pattern", nc.pickrand(patterns).name)
- --print(repl:get_meta():get_string("pattern"))
- --
- return repl
-end
-
-nc.register_aism({
- label = "nb tong-carried lode stylus cooling",
- itemnames = {"nc_lode:stylus_hot"}, -- for some reason "group:nb_lode_temper_hot" didn't work
- priority=2,
- action = function(stack, data)
- -- Don't conflict with cooking ABMs already operating on stack nodes <-NC comment
- if data.node then return end
-
- -- Fast tempering in water
- if nc.quenched(data.pos) then
- return coolto(data.pos, stack, "tempered")
- end
-
- -- Annealing
- local meta = stack:get_meta() -- Help variable, also to not save meta to stack?
- local exp = meta:get_float("annealtime") or 0
-
- if exp > 0 and exp <= nc.gametime then -- Final anneal
- return coolto(data.pos, stack, "annealed")
- elseif exp <= 0 then --
- meta:set_float("annealtime", nc.gametime + 60)
- end
-
- nc.playcookfx(data.pos, {smoke = true}, "", 2, 1)
- return stack
- end
-})--]]
-
--- Or, instead of re-defining the heating/cooling and tong-carrying mechanics,
--- how about just 1 aism to replace a stylus with no pattern with one set?
+-- Instead of re-defining the heating/cooling and tong-carrying mechanics,
+-- let's make just 1 aism to replace a stylus with no pattern with one set.
-- This seems to be a very nice and simple solution, but it has a side effect:
-- the stylus is visibly changing to another pattern. I don't think it's that
-- bad though.
@@ -570,7 +372,6 @@ nc.register_aism({
return stack
end
})
---
-- Craft the stylus on anvil
@@ -726,7 +527,6 @@ local function regetched(basenode, etch, patt)
local pattname = mn .. ":" .. etch.name .. "_" .. patt.name -- mn:othermn_concrete_etchy
-- Pliant name, same as pattname but with _ply
local plyname = pattname .. "_ply" -- mn:othermn_concrete_etchy_ply
- -- If it isn't registered, let's make it
-- Pliant block
if not core.registered_nodes[plyname] then
local def = {} -- Final def, to which we add
@@ -738,7 +538,7 @@ local function regetched(basenode, etch, patt)
def.tiles = applytile(def.tiles, patttile(etch, patt))
def.tiles = applytile(def.tiles, etch.pliant_tile)
- def.name = nil -- Already done at the end of this ifknot in core.register_node
+ def.name = nil -- Name already done at the end of this ifnot in core.register_node
def.description = patt.description .. -- Etchy Pliant Concrete
" Pliant " .. basenode.description
@@ -749,115 +549,18 @@ local function regetched(basenode, etch, patt)
defaultgroup(def, mn .. "_pattern_" .. patt.name)
--end
defaultgroup(def, mn .. "_pliant")
- if def.paramtype2 == "4dir" then
+ --[[if def.paramtype2 == "4dir" then -- unused
def.on_rightclick = function(pos, node) -- Rotate upon rightclick
node.param2 = (node.param2 + 1) % 4 -- Capped param2 at 3
nc.set_loud(pos, node)
end
- end
- --- Actually, I scrap this, clockwise rotation of sides would be better?
- -- Extra paramtype2 compared to original NC with also 4 rotations; with this
- -- 4dir replacement, a copy of a pattern just to make it rotate vertically
- -- too (like horzy and verty patterns) wouldn't be needed, useful e.g. for
- -- my line pattern. It could fit in NC, even though as I said, there is
- -- horzy and verty which could seem intentional anyway, as they're useful as
- -- seperate textures for texturepacks such as Wintercore, which makes them
- -- bit different, unlike my line texture (|/-)
- -- ^\it is cool my texture is implemented in ASCII, eh? No.
- --if def.paramtype2 == "4dirfacedir" then
- --[[
- -- I wanted to make the texture rotate in seemingly the same way,
- -- but each time it is rotated the textures face a slightly different dir.
- --
- -- (I mean, e.g.: (^/v) and (v/v) (shown in format explained below)----------\
- -- look the same, as they make (|/|) with e.g. line texture) \
- -- \
- -- This way, it is maybe possible to make invisible details with the pliant \
- -- texture, but doesn't impair the game in any way. \
- -- \
- -- For this, I made the following while testing rotating facedir liny concrete... |
- v
- (format: (top/side in front of you), where it can show dir ^v<> or line | -)
-
- (sorted as (|/|) -> (-/|) -> (|/-) -> (-/-))
-
- Confusing Sorted texture directions
- in every param2 facedir...
-
- In north In east
- Flip the dir thingy after the / for south? Flip the thingy before the / for west?
-
- 4(^/^)(like0) 13(^/^)(like1) <- unused param2s
- 8(^/v)(like6,22) 19(v/v)
- 20(v/v)(like10) 21(^/v)(like15)
- 22(^/v)(like6,8) 23(v/v)(like19)
-
- -0,1,5,12 -1,0,12,4
- 0(^/^) 1(^/^)
- 1(>/^) 0(</^)
- 5(^/<) 12(^/>)
- 12(>/>) >4<,5,6,7(</<)
- -2,3,7,16 -3,2,14,8
- 2(v/^) 3(v/^)
- 3(</^) 2(>/^)
- 7(^/>) 14(^/<)
- 16(</<) >8<,9,10,11(>,>)
- -6,21,11, -15,20,16,5
- 6(^/v) 15(^/v)
- 21(>/v) 20(>/v)
- 11(v/<) 16(v/<)
- >13<,14,15(>/>) 4,>5<,6,7(</<)
- -10,23, -17,22,18,9
- 10(v/v) 17(v/^)
- 23(</v) 22(</v)
- 9(v/>) 18(v/>)
- >17<,18,19(</<) 8,>9<,10,11(>,>)
- --]]--[[
- if (core.settings:get_bool("nb_more_concrete_line_rotation",true)) then
- def.on_rightclick = function(pos, node, clicker) -- Rotate upon rightclick
- local cryptic_tableyNS= -- North/South.
- -- It's horrible! Or is it? I just typed these values based on the previous big comment.
- -- Next params for...
- -- 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
- { 1, 5, 3, 7, 1,12,21,16,21,17,23,13, 2,10,10,10, 6, 0, 0, 0,10,11,21, 9}
- local cryptic_tableyEW= -- East/West!
- -- 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
- {12, 0,14, 2, 3,17, 3,17,15, 1,15, 1, 4, 0, 8,20, 5,22, 9, 0,16,20,18, 0}
- -- Figure out if yaw of clicker is north/south to set node.param2 accordingly
- local yow=clicker:get_look_horizontal()
- -- I figured out these values by dumping clicker:get_look_horizontal() when right-clicking node in game
- if (yow>5.502 or yow<0.782 or (yow>2.358 and yow<3.921)) then
- node.param2 = cryptic_tableyNS[node.param2+1] -- +1 because lua doesn't start indexes with 0
- else
- node.param2 = cryptic_tableyEW[node.param2+1] --
- end
- nc.set_loud(pos, node)
- -- It works!
- end
- else -- Also option for optic-like rotation
- def.on_rightclick=nc.rotation_on_rightclick
- def.groups.nc_api_rotate_under=1
- end -- core.settings:get_bool(...
- -- Correct paramtype2
- def.paramtype2="facedir"
- end --]]-- 4dirfacedir
+ end--]]
if (def.paramtype2=="facedir") then
- -- I wanted to implement clockwise rotation on a specific side of a block,
- -- but I have little idea how to get a specific side.
+ -- I wanted to implement clockwise rotation on any side of a block,
+ -- but I have little idea how to get the selected side.
-- For now, let's use NC's rotation_on_rightclick
def.on_rightclick=nc.rotation_on_rightclick
- def.groups.nc_api_rotate_under=1
- --[[def.on_rightclick = function (pos,node,clicker, a, b)
- local eye_pos = clicker:get_pos()
- eye_pos.y=clicker:get_properties().eye_height
- local the_raycast = core.raycast(eye_pos,pos,false,true)
- --print(dump(the_raycast))
- print(dump(the_raycast:next()))
- --print(dump(b))
- end--]]
- --[[ <...I looked on the dark web and found the param2s for clockwise rotations...>
- nevermind not gonna show them numbers here yet because I didn't show the work's license
- --]]
+ def.groups.nc_api_rotate_under=1 -- required to work
end -- facedir
-- Add extra nb group, used mainly for pliant cure ABM
def.groups.nb_concrete_etchable = 1
@@ -869,8 +572,7 @@ local function regetched(basenode, etch, patt)
core.register_node(":" .. plyname, def)
end
--if not patt.blank then
- -- Here we use the pattname
- -- This is the solid/set block
+ -- Set block
if not core.registered_nodes[pattname] then
local def = {} -- Final def like earlier
nc.underride(def, etch.solid)
@@ -903,19 +605,12 @@ end
--
-- Etchmakers!
---[[local mudgroups = {
- cracky = 0,
- crumbly = 1,
- snappy = 0,
- choppy = 0,
- stone = 0,
- smoothstone = 0,
- rock = 0
-}--]]
+-- (here I call the functions to make the concretes)
+
+--local mudgroups = {...
--local function buildpatterns()
--- For each PATTern
--- Define patt.name and patt.pattern_tile
+-- Make sure patt.name and patt.pattern_tile are defined
for _, patt in pairs(nb_more_concrete.annealed_patterns) do
--nc.translate_inform(patt.description)
patt.name = patt.name or string:gsub(string:lower(patt.description),
@@ -926,21 +621,7 @@ end
-- For every concrete, modify etchable correctly
-- Already done by NC
--[[for _, etch in pairs(nc.registered_concrete_etchables) do
- -- Not sure if this check is required, as nc probably already checked for basename
- -- But I keep it
- if not etch.basename then return error("etchable (concrete) basename required") end
- -- replace nc_ with nothing like NC does, it ignores nb and others but should be ok anyway
- etch.name = etch.name or string:gsub(string:lower(string:gsub(
- etch.basename, "^nc_", "")), "%W", "_")
- -- pliant
- etch.pliant_tile = etch.pliant_tile or "^(" ..-- ^(nc_concrete_pliant.png^[opacity:64)
- "nc_concrete_pliant.png^[opacity:" .. (etch.pliant_opacity or 64) .. ")"
- etch.pliant = etch.pliant or {}
- etch.pliant.groups = etch.pliant.groups or mudgroups
- etch.pliant.groups.concrete_etchable = 1
-
- etch.solid = etch.solid or {}
- etch.drop_in_place = etch.drop_in_place or etch.basenode
+ ...
end--]]
for _, etch in pairs(nc.registered_concrete_etchables) do
local basenode = core.registered_nodes[etch.basename]
@@ -959,14 +640,10 @@ end
local function getdefs(node)
local def = core.registered_items[node.name] or {}
-- If the pattern_def is blank, it will return nc's pattern list, which breaks the recipe
- -- Returned can only be the nb list in general; should I add a universal check for it?
- -- This is probably sufficient though (and universal - works same in stone (stylus) craft)
+ -- (Returned can only be the nb list in general; should I add a universal check for it?
+ -- This is probably sufficient though (and universal - works same in stone (stylus) craft))
if (def.pattern_def.blank) then
return nb_more_concrete.annealed_patterns[1], def.etch_def
- --[[elseif (nb_more_concrete.liberated and -- Now there's check for this in lode craft,
- so there doesn't need to be another one in stone craft
- def.pattern_def.name == "crossy") then -- Same with alias gifty to crossy
- return nb_more_concrete.annealed_patterns[3], def.etch_def--]]
end
return def.pattern_def, def.etch_def
end
@@ -974,7 +651,6 @@ end
-- Make pliant node make noise and rotate if paramtype2 is set
local function setply(pos, nodename, player)
local node = {name = nodename}
- --print(node.name)
if core.registered_nodes[node.name].paramtype2 == "4dir"
and player then
node.param2 = core.dir_to_fourdir(
@@ -1007,7 +683,6 @@ nc.register_craft({
}
},
after = function(pos, data)
- --print("LODELY FUNCTIONB!")
-- Get pattdef, etchdef
local pattdef, etchdef = getdefs(core.get_node(pos))
if not (pattdef and etchdef) then return end
@@ -1027,12 +702,9 @@ nc.register_craft({
if (wieldpatt == "blank") then
setpref = "nc_concrete:" .. etchdef.name .. "_"
end
- --print (wieldpatt)
- --print (pattdef.name)
-- If wielded pattern isn't equal to block's pattern
if wieldpatt and wieldpatt ~= "" and wieldpatt ~= pattdef.name then
-- Set the pliant block and return
- --print(setpref..wieldpatt.."_ply") -- primitive debugging methods
setply(pos, setpref .. wieldpatt .. "_ply", data.crafter) -- mn:chromete_etchy_ply
return
end
@@ -1040,7 +712,6 @@ nc.register_craft({
-- Now we know that next pattern will be set for stylus and block instead
-- Get next pattern
local nxpatt = pattdef.next.name
- --print(nxpatt)
-- Check for blank like earlier
if (nxpatt == "blank") then
setpref = "nc_concrete:" .. etchdef.name .. "_"
@@ -1048,7 +719,6 @@ nc.register_craft({
setpref = mn .. ":" .. etchdef.name .. "_"
end
-- So it can be set on pliant
- --print("next: " .. setpref..nxpatt.."_ply")
setply(pos, setpref .. nxpatt .. "_ply", data.crafter)
-- And set as next pattern for stylus
wield:get_meta():set_string("pattern", nxpatt)
@@ -1088,8 +758,6 @@ nc.register_craft({
after = function(pos, data)
local pattdef, etchdef = getdefs(core.get_node(pos))
if not (pattdef and etchdef) then return end
- --[[ Here we cannot have nb patterns (useless, blank's already not nb_concrete_etchable)
- if (pattdef.name == "blank") then pattdef = nc.concrete_patterns[1] end]]
local setpref = "nc_concrete:" .. etchdef.name .. "_"
@@ -1114,12 +782,8 @@ nc.register_craft({
end
})
--- Pliant concrete cure ABM
---
-- The NC pliant cure ABM doesn't work for our pliants,
-- since it only works with "nc_concrete:" concretes.
--- Should I report that so NC just removes the "_ply" off of the block name,
--- working with this mod and others? Maybe not?
---
-- Here's an ABM that works (from NC)
nc.register_soaking_abm({
label = "pliable nb concrete cure",
@@ -1132,15 +796,16 @@ nc.register_soaking_abm({
1, {"group:concrete_flow", "group:water"}) then
return false
end -- Fire speeding up cure
- local found = nc.find_nodes_around(pos, "group:igniter", 1)
- return #found + 1
- end,
+ local found = nc.find_nodes_around(pos, "group:igniter", 1)
+ return #found + 1
+ end,
- soakcheck = function(data, pos, node)
- if data.total < 100 then
+ soakcheck = function(data, pos, node)
+ if data.total < 100 then -- Create smoke during curing
nc.smokefx(pos, 1, data.rate)
return
end
+ -- Get the final cured node
local pattdef, etchdef = getdefs(core.get_node(pos)) -- Fixed |
if not (pattdef and etchdef) then return end -- bit V
local curename = mn .. ":" .. etchdef.name .. "_" .. pattdef.name -- nb_more_concrete:mn_concrete_etchy
@@ -1148,8 +813,9 @@ nc.register_soaking_abm({
nc.smokeburst(pos)
nc.dynamic_shade_add(pos, 1)
+ --
nc.set_loud(pos, {name = curename, param2 = node.param2})
nc.witness(pos, "cure pliant concrete")
return false
end
-}) -- END!
+}) -- END