123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- -- test ABMs with neighbor and without_neighbor
- local S = core.get_translator("testnodes")
- -- ABM required neighbor
- core.register_node("testabms:required_neighbor", {
- description = S("Node for test ABM required_neighbor.") .. "\n"
- .. S("Sensitive neighbor node is testnodes:normal."),
- drawtype = "normal",
- tiles = { "testabms_wait_node.png" },
- groups = { dig_immediate = 3 },
-
- on_construct = function (pos)
- local meta = core.get_meta(pos)
- meta:set_string("infotext",
- "Waiting for ABM testabms:required_neighbor "
- .. "(normal drawtype testnode sensitive)")
- end,
- })
- core.register_abm({
- label = "testabms:required_neighbor",
- nodenames = "testabms:required_neighbor",
- neighbors = {"testnodes:normal"},
- interval = 1,
- chance = 1,
- action = function (pos)
- core.swap_node(pos, {name="testabms:after_abm"})
- local meta = core.get_meta(pos)
- meta:set_string("infotext",
- "ABM testabsm:required_neighbor changed this node.")
- end
- })
- -- ABM missing neighbor node
- core.register_node("testabms:missing_neighbor", {
- description = S("Node for test ABM missing_neighbor.") .. "\n"
- .. S("Sensitive neighbor node is testnodes:normal."),
- drawtype = "normal",
- tiles = { "testabms_wait_node.png" },
- groups = { dig_immediate = 3 },
-
- on_construct = function (pos)
- local meta = core.get_meta(pos)
- meta:set_string("infotext",
- "Waiting for ABM testabms:missing_neighbor"
- .. " (normal drawtype testnode sensitive)")
- end,
- })
- core.register_abm({
- label = "testabms:missing_neighbor",
- nodenames = "testabms:missing_neighbor",
- without_neighbors = {"testnodes:normal"},
- interval = 1,
- chance = 1,
- action = function (pos)
- core.swap_node(pos, {name="testabms:after_abm"})
- local meta = core.get_meta(pos)
- meta:set_string("infotext",
- "ABM testabsm:missing_neighbor changed this node.")
- end
- })
- -- ABM required and missing neighbor node
- core.register_node("testabms:required_missing_neighbor", {
- description = S("Node for test ABM required_missing_neighbor.") .. "\n"
- .. S("Sensitive neighbor nodes are testnodes:normal and testnodes:glasslike."),
- drawtype = "normal",
- tiles = { "testabms_wait_node.png" },
- groups = { dig_immediate = 3 },
-
- on_construct = function (pos)
- local meta = core.get_meta(pos)
- meta:set_string("infotext",
- "Waiting for ABM testabms:required_missing_neighbor"
- .. " (wint normal drawtype testnode and no glasslike"
- .. " drawtype testnode sensitive)")
- end,
- })
- core.register_abm({
- label = "testabms:required_missing_neighbor",
- nodenames = "testabms:required_missing_neighbor",
- neighbors = {"testnodes:normal"},
- without_neighbors = {"testnodes:glasslike"},
- interval = 1,
- chance = 1,
- action = function (pos)
- core.swap_node(pos, {name="testabms:after_abm"})
- local meta = core.get_meta(pos)
- meta:set_string("infotext",
- "ABM testabsm:required_missing_neighbor changed this node.")
- end
- })
|