Time |
Nick |
Message |
00:00 |
|
domtron_ joined #minetest-dev |
00:30 |
|
paramat joined #minetest-dev |
00:30 |
paramat |
will merge later game#648 |
00:30 |
ShadowBot |
https://github.com/minetest/minetest_game/issues/648 -- Default: Add snow, snowblock, ice to puts_out_fire group by paramat |
00:30 |
|
paramat left #minetest-dev |
00:44 |
|
est31 joined #minetest-dev |
01:37 |
|
paramat joined #minetest-dev |
01:41 |
paramat |
i'll merge game 648 very soon, i think i can go ahead since it was requested by PilzAdam |
01:45 |
paramat |
however in the fire mod i will need to split off the extinguishing of flames into a separate lightweight fast-acting abm, as currently it is implemented in a slow-acting abm together with heavy code |
01:46 |
est31 |
its the same problem as leafdecay I think |
01:57 |
paramat |
the new abm can work like lavacooling, using 'neighbors = {"group:puts_out_fire"}' so that most of the work is done in the engine, not in lua, this way extinguishing fire can act fairly quickly |
02:01 |
paramat |
now merging game 648 |
02:04 |
paramat |
complete |
02:11 |
paramat |
now i feel like finally adding all those missing spaces to nodes.lua .. |
02:34 |
T4im |
hmm "Double fault error from mod 'default' in callback item_OnPlace(): error in error handling" bug or expected? despite lack of information, I think it boils down to `minetest.place_node({x=0, y=0, z=0}, { name = "default:cactus", param1=0, param2=0 })` |
02:35 |
est31 |
T4im, what precisely are you doing |
02:35 |
T4im |
playing around with mtt :) |
02:36 |
T4im |
placing every node into the world, trying out all sorts of things with them automaticly |
02:36 |
T4im |
I think minetest.place_node doesn't like placing nodes with on_place = minetest.rotate_node |
02:36 |
T4im |
but a bit guessing |
02:37 |
T4im |
not sure if that's to be expected or worth a testcase |
02:37 |
paramat |
cacatus has 'on_place = minetest.rotate_node', perhaps that's interacting with you'placing' it with a rotation? |
02:37 |
T4im |
well, that was the guess, yes.. tree trunk the same |
02:38 |
paramat |
ah ninja'd |
02:38 |
T4im |
:D |
02:38 |
est31 |
you do get these double fault errors when lua calls c which calls lua and which raises an error |
02:39 |
T4im |
ah, good to know |
02:40 |
T4im |
so somewhere along the line something perhaps expects a player object with direction for the rotation, but doesn't have one |
02:40 |
est31 |
right now, just as a coincidence, I've gotten enough annoyed by it, to investigate it further |
02:41 |
T4im |
"Place node with the same effects that a player would cause" I've heared that somewhere before :D |
02:42 |
T4im |
I think dig_node did claim the same, and then called can_dig without player.. which lead to a few issues, until it was officially declared optional |
02:45 |
OldCoder |
est31, http://minetest.org/150824.txt - but other devs say not related. The user and I are prepared to help debug the original problem regardless. |
02:45 |
OldCoder |
If there are requests or suggestions for next steps, we are attentive. |
02:46 |
hmmmm |
T4im, just to verify, the full error message says something along the lines of "runtime error in <blah blah>: error in error handling, correct? |
02:46 |
hmmmm |
and you do get a backtrace? |
02:47 |
T4im |
no backtrace, no segfault |
02:47 |
hmmmm |
really |
02:47 |
T4im |
just "ERROR[main]: ServerError: Double fault error from mod 'default' in callback item_OnPlace(): error in error handling" |
02:47 |
hmmmm |
and how did you trigger this? |
02:47 |
hmmmm |
just this? minetest.place_node({x=0, y=0, z=0}, { name = "default:cactus", param1=0, param2=0 })` |
02:47 |
est31 |
T4im, do you use luajit |
02:48 |
T4im |
good question.. lemme check quickly.. I've been switching latly a few times |
02:48 |
est31 |
because embedded lua prints no stack trace, luajit prints that fake trace |
02:50 |
T4im |
hmm should have been used |
02:50 |
T4im |
any way to check for sure? |
02:51 |
hmmmm |
aside from the pause menu..? |
02:51 |
est31 |
if luajit then print("hi") |
02:52 |
est31 |
but might be disabled if security is enabled |
02:52 |
hmmmm |
ah sorry T4im it seems like that's not the kind of double fault error we're looking for |
02:52 |
est31 |
? |
02:52 |
hmmmm |
it's the runtime error/error in error handling one |
02:52 |
hmmmm |
with a backtrace |
02:52 |
est31 |
what are we actually looking for |
02:53 |
hmmmm |
a way to reproduce a true error in error handling without setting debug = nil |
02:56 |
est31 |
well he got error in error handling, no? |
02:57 |
hmmmm |
they're caused by separate things |
02:57 |
est31 |
? |
02:57 |
hmmmm |
that error in error handling produces a backtrace and is comparatively easy to track down |
02:57 |
hmmmm |
it happens when a lua api produces another callback which errors while already inside of a callback |
02:58 |
hmmmm |
the inner callback produces an error in error handling because lua thinks it's already handling an error |
02:58 |
hmmmm |
so it gets captured and thrown to the parent callback as a LuaError |
02:59 |
hmmmm |
the parent callback catches the LuaError as a runtime error and captures a backtrace pointing to where the erroring callback was registered |
02:59 |
hmmmm |
err, where the erroring callback was triggered |
02:59 |
est31 |
builtin/game/item.lua:276 |
02:59 |
hmmmm |
we cannot "fix" this, it's a lua thing |
02:59 |
est31 |
very helpful |
03:00 |
hmmmm |
what I'm concerned about is the case where people get "error in error handling" with absolutely no other information |
03:00 |
hmmmm |
this, I'm not able to reproduce except for setting debug = nil which is quite contrieved |
03:01 |
est31 |
why is getting no backtrace worse than getting a complete shit backtrace? |
03:01 |
hmmmm |
because you're left with no clue whereas at least you have some indication of what kinds of things could be the problem with the shit backtrace |
03:01 |
hmmmm |
at least with my diagnostics you can tell which callback it happens in, and to what mod |
03:02 |
est31 |
you know it was due to somebody placing an item, but thats all, no? |
03:02 |
hmmmm |
right but that's better than nothing |
03:02 |
est31 |
but its still a bug |
03:02 |
hmmmm |
and the former is well understood |
03:02 |
hmmmm |
while the latter we have no idea why it happens and if it's somehow minetest's fault |
03:02 |
hmmmm |
the former is a lua bug - not ours |
03:02 |
hmmmm |
we cannot fix it |
03:02 |
hmmmm |
therefore i'm not interested |
03:02 |
est31 |
we can workaroung |
03:02 |
hmmmm |
how |
03:02 |
est31 |
workaround* |
03:03 |
est31 |
pcall from lua itself |
03:03 |
est31 |
works like a charm |
03:03 |
T4im |
my luajit between compile-jail and runtime environment got a bit out of sync, running with actual luajit now, with stack trace… now I just need to get a way to copy it out x) |
03:04 |
T4im |
actually that's not really a helpful stacktrace either, nvm |
03:04 |
hmmmm |
est31: how can it be implemented though |
03:04 |
T4im |
just points me to where I called the place_node |
03:04 |
hmmmm |
yes but with that information, you know: |
03:04 |
hmmmm |
1). which node being placed is causing the failure |
03:04 |
hmmmm |
2). the callback actually failing (on_place) |
03:05 |
est31 |
you dont know 1 |
03:05 |
est31 |
you just know its some node |
03:05 |
est31 |
from a mod |
03:05 |
hmmmm |
what's preventing him from adding a print statement? |
03:05 |
T4im |
well core.place_node({ x=0, y=3, z=0 }, { name = "default:cactus", param1=0, param2=0 }) causes it |
03:05 |
est31 |
we dont need any error reporting then: <hmmmm> what's preventing him from adding a print statement? |
03:05 |
hmmmm |
.. |
03:05 |
est31 |
because everybody can just debug with print statements |
03:06 |
est31 |
just put print("1") print("2") etc between all lines |
03:06 |
hmmmm |
look, est, if you are able to fix it, then please do |
03:06 |
hmmmm |
i'm merely pointing out that of the two variations of the problem, this is much less interesting |
03:08 |
est31 |
run it with normal lua, you get no stacktrace as well |
03:09 |
est31 |
also, if its a lua bug, are lua authors aware of it |
03:09 |
hmmmm |
that's because normal lua does not have a script execution wrapper extension like luajit does |
03:10 |
est31 |
do we have a minimum example we can show to upstream? |
03:10 |
hmmmm |
tons. |
03:10 |
hmmmm |
well not really |
03:11 |
hmmmm |
you'd have to write your own, but within minetest it's extremely simple to recreate |
03:11 |
est31 |
the error in error handling also appears with embedded lua |
03:11 |
est31 |
I dont know about that wrapper, but I do know you get error in error handling also with normal lua |
03:12 |
T4im |
is there any way to hook into the error event? as in, being able to do some cleanup or print out some last information? a sort of "on_error" routine? (of course with no guarantees of working properly, but rather opportunistic) |
03:12 |
est31 |
T4im, look at script_error_handler in c_internal.cpp |
03:17 |
est31 |
hmmmm, Im just wondering, if that error is so well understood, why isnt it neither reported to upstream nor fixed |
03:18 |
hmmmm |
dunno, ask in #lua or something |
03:23 |
paramat |
game#649 :P~ |
03:23 |
ShadowBot |
https://github.com/minetest/minetest_game/issues/649 -- Default/nodes.lua: Add missing spaces, shorten lines by paramat |
03:36 |
|
Niebieski joined #minetest-dev |
03:38 |
hmmmm |
sorry est, i really just can't do minetest stuff tonight |
03:38 |
hmmmm |
my brain is fried |
03:39 |
hmmmm |
why don't you search in the lua source for luaD_throw(L, LUA_ERRERR) and set printfs around them so you can see which is triggered on that kind of error |
03:41 |
est31 |
I'll hack a pure lua solution tonight, and we can use that as fallback if we dont find a better way to fix the bug |
03:46 |
kahrl |
can someone explain how m_errorhandler in ScriptApiBase works? |
03:46 |
kahrl |
it's a lua stack index saved for eternity upon game startup |
03:46 |
est31 |
yes |
03:46 |
est31 |
lua_pcall takes it as argument |
03:46 |
kahrl |
isn't the lua stack essentially cleared whenever you call from lua into C? |
03:46 |
kahrl |
so this index won't make sense then |
03:46 |
hmmmm |
that's what I thought but it seems to work for some reason |
03:47 |
kahrl |
weird |
03:47 |
est31 |
it doesnt work when you call from lua to c |
03:47 |
hmmmm |
nested calls probably /don't/ work because the error handler function index is messed up |
03:47 |
hmmmm |
oh I know why |
03:47 |
hmmmm |
that's exactly why |
03:48 |
hmmmm |
it uses the same lua stack for the lifetime of m_script |
03:49 |
hmmmm |
whenever it does a callback, some more things are pushed onto the stack, some things are popped off, etc. but it's always the same stack |
03:49 |
hmmmm |
when in lua it gets a new stack |
03:50 |
hmmmm |
so I assume the reason for the error in error handling is a bad index due to the fact that it relies on an absolute position in a known stack state whereas the callback after a lua api is called gets a new stack |
03:50 |
est31 |
but the stack is still the same |
03:50 |
est31 |
its still m_luastack |
03:50 |
hmmmm |
you mean m_luastate |
03:51 |
est31 |
L is set in SCRIPTAPI_PRECHECKHEADER to be getStack |
03:51 |
est31 |
err the result of getStack() |
03:51 |
hmmmm |
hrm |
03:51 |
kahrl |
that variable is badly named |
03:51 |
hmmmm |
i guess you're right, i don't know |
03:51 |
kahrl |
and getStack too |
03:51 |
kahrl |
they should call it "state" not "stack" |
03:52 |
hmmmm |
less talking, more investigating ^^ |
03:52 |
kahrl |
the type is a lua_State |
03:52 |
kahrl |
which can hold different stacks at different times |
03:52 |
est31 |
what?! |
03:53 |
est31 |
you pass that thing to functions, their docs call it "the stack" and it can actually hold multiple stacks? |
03:54 |
kahrl |
how else would the stack, after a call from lua to C, hold exactly the function's arguments and nothing else? |
03:55 |
kahrl |
and after the C function returns it reverts to the old stack |
03:55 |
kahrl |
I imagine it must be a "stack of stacks" |
03:55 |
kahrl |
where a new stack is created whenever a C function is called |
03:56 |
est31 |
perhaps C callbacks just get another lua state object? |
03:56 |
kahrl |
yeah, I guess that's also a possibility |
03:56 |
* paramat |
waves hand "these are not the error in error handlings you are looking for" |
03:57 |
hmmmm |
definitely not |
03:57 |
hmmmm |
wtf |
03:57 |
hmmmm |
it is a 'stack of stacks' |
03:57 |
hmmmm |
each 'stack' is contained in a CallInfo structure |
03:57 |
hmmmm |
this is also how lua tracks the amount of recursion |
03:58 |
hmmmm |
in any case I'm still not sure why you think my theory is wrong |
03:58 |
|
Player_2 joined #minetest-dev |
03:58 |
hmmmm |
instead of guessing, just read the source code |
03:58 |
hmmmm |
luaD_precall |
03:59 |
kahrl |
if you were saying that to me, I think the theory is right |
03:59 |
est31 |
okay, I've hacked a POC for lua based error reporting: https://gist.github.com/est31/e84180467a76f8badb42 |
03:59 |
hmmmm |
@ est |
04:08 |
est31 |
ok, now I've added an assert(lua_type(L, m_errorhandler) == LUA_TFUNCTION);, and guess whether it succeeded |
04:08 |
est31 |
so kahrl hmmmm your theory seems to be right |
04:15 |
|
Niebieski joined #minetest-dev |
04:29 |
|
paramat left #minetest-dev |
04:39 |
|
Niebieski joined #minetest-dev |
04:49 |
est31 |
summary for today's discussion: https://github.com/minetest/minetest/issues/1423#issuecomment-134472243 |
05:14 |
|
paramat joined #minetest-dev |
05:14 |
|
leat joined #minetest-dev |
05:17 |
paramat |
okay i will merge game#649 in a moment, before conflicts arise |
05:17 |
ShadowBot |
https://github.com/minetest/minetest_game/issues/649 -- Default/nodes.lua: Add missing spaces, shorten lines by paramat |
05:41 |
|
emptty joined #minetest-dev |
05:45 |
paramat |
now merging game 649 |
05:48 |
|
Hunterz joined #minetest-dev |
05:51 |
|
Player_2 joined #minetest-dev |
05:54 |
paramat |
merge complete |
05:54 |
|
leat joined #minetest-dev |
05:54 |
kahrl |
NICE https://gist.github.com/kahrl/2f97189739af34a7bf8f |
05:55 |
kahrl |
previously, of course, the above was an "error in error handling" error |
05:55 |
kahrl |
but #3112 fixes that |
05:55 |
ShadowBot |
https://github.com/minetest/minetest/issues/3112 -- Push error handler afresh each time lua_pcall is used by kahrl |
05:59 |
kahrl |
est31, hmmmm: ^ |
06:00 |
hmmmm |
looks great to me |
06:01 |
hmmmm |
kahrl, just curious, was the error simply "error in error handling" or did it have a runtime error message as well? |
06:01 |
kahrl |
one thing I wonder is if lua_pushcfunction would be faster than the lua_rawgeti on LUA_REGISTRYINDEX |
06:01 |
kahrl |
let me check |
06:02 |
kahrl |
2015-08-25 08:02:08: ERROR[Main]: ServerError: Lua: Double fault error from mod 'default' in callback item_OnPlace(): error in error handling |
06:02 |
kahrl |
that's all |
06:02 |
hmmmm |
!?!?! |
06:02 |
hmmmm |
oh shit |
06:02 |
hmmmm |
no way is that THE error |
06:02 |
hmmmm |
let me check! |
06:03 |
hmmmm |
or wait, were you running vanilla lua? |
06:03 |
kahrl |
yes |
06:03 |
hmmmm |
ahhh that explains it |
06:03 |
hmmmm |
so the mystery remains unsolved |
06:04 |
|
leat joined #minetest-dev |
06:05 |
|
nrzkt joined #minetest-dev |
06:06 |
|
nrzkt joined #minetest-dev |
06:06 |
kahrl |
right, with luajit I get the partial backtrace |
06:08 |
kahrl |
and with luajit + #3112 I get the full backtrace like in the above gist |
06:08 |
ShadowBot |
https://github.com/minetest/minetest/issues/3112 -- Push error handler afresh each time lua_pcall is used by kahrl |
06:12 |
Sketch2 |
I can't find this in the wiki, but is there a limit to how many metadata fields you have per node? |
06:13 |
hmmmm |
65535 |
06:16 |
Sketch2 |
oh, for real? wow, k. |
06:16 |
hmmmm |
that's not an excuse to design your mod sloppily though |
06:17 |
Sketch2 |
I'll never need that many. I just wanted to make sure it wasn't something tiny like 2, 'cuz I know there's only a couple of the regular params available. |
06:27 |
|
paramat left #minetest-dev |
06:48 |
|
julienrat joined #minetest-dev |
06:49 |
|
julienrat left #minetest-dev |
07:05 |
|
Darcidride joined #minetest-dev |
07:32 |
|
blaze joined #minetest-dev |
07:34 |
|
nore joined #minetest-dev |
07:36 |
|
emptty joined #minetest-dev |
07:41 |
|
nrzkt joined #minetest-dev |
08:00 |
|
Yepoleb_ joined #minetest-dev |
08:03 |
|
Amaz joined #minetest-dev |
08:37 |
|
Ardonel joined #minetest-dev |
09:03 |
|
Player_2 joined #minetest-dev |
09:10 |
|
twoelk joined #minetest-dev |
09:11 |
|
Darcidride joined #minetest-dev |
09:36 |
|
leat joined #minetest-dev |
09:40 |
|
T4im joined #minetest-dev |
09:46 |
|
deltib joined #minetest-dev |
09:46 |
|
kilbith joined #minetest-dev |
10:16 |
|
sfan5 joined #minetest-dev |
10:37 |
|
Calinou joined #minetest-dev |
10:37 |
|
tuy joined #minetest-dev |
10:40 |
|
H-H-H joined #minetest-dev |
10:48 |
|
leat joined #minetest-dev |
11:10 |
|
Zeitgeist_ joined #minetest-dev |
11:17 |
|
neoascetic joined #minetest-dev |
11:30 |
|
proller joined #minetest-dev |
11:38 |
|
CraigyDavi joined #minetest-dev |
11:40 |
|
Gael-de-Sailly joined #minetest-dev |
12:01 |
|
nore joined #minetest-dev |
12:42 |
|
proller joined #minetest-dev |
13:28 |
|
zupoman joined #minetest-dev |
13:28 |
|
zupoman joined #minetest-dev |
13:38 |
|
proller joined #minetest-dev |
13:52 |
|
ElectronLibre joined #minetest-dev |
14:05 |
|
nore joined #minetest-dev |
14:15 |
|
Hunterz joined #minetest-dev |
14:44 |
|
Siva joined #minetest-dev |
14:59 |
|
Taoki joined #minetest-dev |
15:07 |
|
tuy joined #minetest-dev |
15:22 |
|
Robert_Zenz joined #minetest-dev |
16:12 |
|
szupervigyor joined #minetest-dev |
16:20 |
|
rubenwardy joined #minetest-dev |
16:23 |
rubenwardy |
hmmmm, I don't think that Lua scripts should not implicitly override each other |
16:23 |
rubenwardy |
it is a good feature to have, although it should be done explicitly through some mod.conf |
16:23 |
rubenwardy |
would be good for server-side as well |
16:24 |
|
hmmmm joined #minetest-dev |
16:24 |
rubenwardy |
of course, the feature requires the the overrider knows / supports which version of the other mod will be installed. |
16:24 |
rubenwardy |
hmmmm, check log (if you haven't already) |
16:24 |
|
leat joined #minetest-dev |
16:24 |
rubenwardy |
* scripts should implicityly override each other |
16:24 |
rubenwardy |
I'm tired :P |
16:29 |
|
Hunterz joined #minetest-dev |
16:37 |
|
julienrat joined #minetest-dev |
16:37 |
|
julienrat left #minetest-dev |
16:43 |
T4im |
I take it, the only way to deliberately create an unknown node from lua is by voxelmanip; is there any more-or-less reliable way to get an unused content_id, or is there even a reserved one for that purpose? |
16:44 |
Sketch2 |
put in a do, place a node, remove that mod. |
16:44 |
Sketch2 |
*do = node |
16:44 |
T4im |
Sketch2: at runtime |
16:45 |
T4im |
automaticly :D |
16:45 |
|
nrzkt joined #minetest-dev |
16:46 |
Sketch2 |
er mod was what I was trying to type. mind is on the history of graphics. um, so why would you want to do this? |
16:46 |
T4im |
automatic testing |
16:47 |
Sketch2 |
I don't know how you could place a node that's undefined. That kinda goes against how computers run |
16:47 |
Sketch2 |
you have to define something before you can use it |
16:47 |
T4im |
I already know that I can, I just asked about some specifics on how to do it right/best |
16:48 |
Sketch2 |
the only reason they might exist in-game, is because the definition has been taken out. |
16:48 |
T4im |
or has never been put in... |
16:50 |
|
domtron joined #minetest-dev |
16:51 |
Sketch2 |
I know that there was a camo mod that if you placed a player-turret, then dug out the block beneath it... |
16:51 |
Sketch2 |
it would fall and lose it's metadata |
16:52 |
Sketch2 |
so it would then shoot you, because it no longer knew who placed it |
16:53 |
Sketch2 |
I remember modding that mod to fix that glitch. |
16:54 |
Sketch2 |
I know that's not exactly what you're talking about, but in a similar way, I think your voxelmanip trick is your best bet |
16:54 |
Sketch2 |
that the stripping has to come after the placing |
16:55 |
Sketch2 |
maybe if you made a mod to do that somehow |
17:00 |
T4im |
Sketch2: do you know anything about how content ids for mapnodes are being assigned? |
17:07 |
Sketch2 |
it's in mapblock.cpp, nameidmapping.cpp, and content_mapnode.cpp |
17:08 |
Sketch2 |
oh, and nodedef.cpp - what exactly do you need to know? |
17:09 |
T4im |
exactly what I asked in the first sentence |
17:09 |
|
leat joined #minetest-dev |
17:14 |
|
Krock joined #minetest-dev |
17:18 |
Sketch2 |
so I'm reading it as "How do you purposely get an undefined error node" |
17:19 |
Sketch2 |
If you want a blank block, I still think you need to place one that's been defined, because that's how computer programs work |
17:19 |
Sketch2 |
you need to define it before you can use it |
17:20 |
Sketch2 |
then strip its data, and it should get you what you want |
17:20 |
VanessaE |
what I do in such a situation is place many such blocks, back up the world, then remove the mod |
17:21 |
VanessaE |
that way I can just cp the backed-up world back to the worlds dir and start minetest |
17:21 |
VanessaE |
I use that procedure for testing conversion ABMs and aliases, in particular |
17:22 |
T4im |
VanessaE: I can't depend on manual removal, and I can set unknown nodes just fine, I just need a good way to get an unused content_id... either by reserveration or by e.g. looping backwards through the available-id space to find the first unused one, or maybe a better idea that someone comes up with |
17:22 |
VanessaE |
now THAT I am not sure about |
17:23 |
VanessaE |
can't just randomly pick a high value say in the 20k-30k range? |
17:24 |
Megaf |
Sketch2: why do you want to create an unkown block? |
17:24 |
H-H-H |
Sketch2 doesnt |
17:24 |
Megaf |
Sketch2: you could just create a node with the unkown texture and name it as unkown block |
17:24 |
H-H-H |
T4im does |
17:24 |
Sketch2 |
I don't. T4im does for who-knows-what reason |
17:25 |
T4im |
VanessaE: well, if there's no better way I probably do something along those lines yea.. best I've come up with yet is looping backward from the max-id and check if a name is associated with it |
17:25 |
Megaf |
^ T4im |
17:25 |
T4im |
Megaf: nope, read up ;) |
17:25 |
Sketch2 |
lols, that's great |
17:25 |
Megaf |
!server Megaf |
17:25 |
ShadowBot |
Megaf: server [--{name,address,ip,players,ping,port} <value>] |
17:25 |
Megaf |
ops |
17:26 |
T4im |
VanessaE: but for that to work "good" I'd like to know for example that assignment is done icrementally from the lowest id available.. or whatever procedure is used |
17:26 |
VanessaE |
T4im: well reason I suggest such a high value is not even Dreambuilder goes that high (it's somewhere in the mid-16k range, if I understand content_id correctly) |
17:27 |
T4im |
well, would be good to know if it just increments, or if there's some other logic behind it |
17:27 |
T4im |
:D |
17:27 |
T4im |
hmmmm probably could answer that in a few words |
17:27 |
T4im |
:D |
17:27 |
H-H-H |
look in the code lol |
17:28 |
H-H-H |
that would tell ya |
17:28 |
VanessaE |
^ |
17:28 |
T4im |
well, guess so... |
17:28 |
T4im |
:) |
17:29 |
VanessaE |
note that there's a hiccup around 2048, from when the limit was increased. caused a glitch in older maps. |
17:29 |
VanessaE |
(specifically, one node, whatever it might have been in the map, became undefined such that it didn't even have a node name anymore) |
17:30 |
|
leat joined #minetest-dev |
17:30 |
T4im |
well would be interesting if that ended up as a universal unknown then ;) |
17:31 |
VanessaE |
heh |
17:31 |
T4im |
Megaf: the short answer is, I do automatic testing; like placing all nodes of a registered item space against unknown nodes in order to check if they would crash (like when they forget checking for definition), so fake texture won't do :P |
17:31 |
T4im |
pointed_thing crazynesses |
17:37 |
T4im |
"CONTENT_NC" -- "yay, a no-content reserveration... oh wait.. that's a nyancat" -_- |
17:39 |
VanessaE |
haha |
17:51 |
T4im |
oh wait, there's actually really a reservation at 125 \o/ |
17:58 |
VanessaE |
bbl |
17:58 |
T4im |
bye, and thanks :) |
18:05 |
|
julienrat joined #minetest-dev |
18:10 |
|
twoelk|2 joined #minetest-dev |
18:18 |
|
Gael-de-Sailly joined #minetest-dev |
18:18 |
|
exoplanet joined #minetest-dev |
18:20 |
|
Zeitgeist_ joined #minetest-dev |
18:23 |
|
Zeitgeist_ joined #minetest-dev |
18:30 |
|
domtron joined #minetest-dev |
18:40 |
|
MinetestForFun joined #minetest-dev |
18:43 |
|
sfan5 joined #minetest-dev |
18:53 |
nanepiwo |
is there any way to make a node interacteable by those without interact? |
18:54 |
|
Taoki joined #minetest-dev |
19:00 |
nanepiwo |
ill assume no without editing the CPP code |
19:20 |
|
nore joined #minetest-dev |
19:24 |
|
est31 joined #minetest-dev |
19:25 |
est31 |
nanepiwo, no, this isnt possible |
19:25 |
nanepiwo |
ok |
19:25 |
est31 |
it is possible to give them interact, and restrict every action, except for that node |
19:25 |
nanepiwo |
how? |
19:26 |
est31 |
but in order to genuinely have interact only for some nodes you'd need to edit prediction and other things |
19:26 |
est31 |
and this is clientside behaviour |
19:26 |
est31 |
with client scripting this will perhaps become possible |
19:26 |
nanepiwo |
or I can lock them in a cell with unbreakable nodes :P |
19:26 |
est31 |
nanepiwo, what's the actual usecase? |
19:27 |
nanepiwo |
a rules mod similar to https://forum.minetest.net/viewtopic.php?f=9&t=11200 |
19:27 |
nanepiwo |
I don't like the idea of some formspec appearing on join |
19:28 |
nanepiwo |
I'll try standing on a pad which opens rules. |
19:46 |
celeron55 |
the thing you can do is give interact to everyone, but actually require something like interact_extra for most things (by using the is_protected api functionality and maybe something else) |
19:47 |
celeron55 |
(or maybe call it "member" or whatever suits the particular purpose) |
19:50 |
nanepiwo |
that could work |
19:55 |
|
proller joined #minetest-dev |
20:17 |
|
emptty joined #minetest-dev |
20:47 |
|
johnnyjoy joined #minetest-dev |
21:11 |
|
AnotherBrick joined #minetest-dev |
21:35 |
OldCoder |
Didn't the error in error handling bug get fixed? I thought it was patched recently |
21:35 |
OldCoder |
ERROR[main]: Lua: Double fault error from mod 'riventest' in callback node_on_punch(): error in error handling |
21:35 |
OldCoder |
In thread 7f08d2ddf740: server.cpp:511: void Server::step(float): A fatal error occurred: Lua: Double fault error from mod 'riventest' iERROR[main]: Lua: Double fault error from mod 'riventest' in callback node_on_punch(): error in error handling |
21:35 |
OldCoder |
In thread 7f08d2ddf740: server.cpp:511: void Server::step(float): A fatal error occurred: Lua: Double fault error from mod 'riventest' in callback node_on_punch(): error in error handlingn callback node_on_punch(): error in error handling |
21:35 |
OldCoder |
Sorry, it looks like that pasted twice |
21:35 |
OldCoder |
|
21:37 |
kahrl |
OldCoder: the info about what mod and callback it happened in was added |
21:37 |
OldCoder |
So it still says error in error handling? |
21:37 |
kahrl |
yes |
21:38 |
OldCoder |
O.K. thanks; looking into this further |
21:38 |
kahrl |
I have a PR that should fix some/most/(all?) of those |
21:38 |
OldCoder |
May I have it as a patch? |
21:38 |
kahrl |
#3112 |
21:38 |
ShadowBot |
https://github.com/minetest/minetest/issues/3112 -- Push error handler afresh each time lua_pcall is used by kahrl |
21:38 |
OldCoder |
I will test for you |
21:38 |
OldCoder |
Reviewing |
21:38 |
kahrl |
that would be great :) |
21:38 |
* OldCoder |
will add this right this minute if there is a diff |
21:39 |
OldCoder |
kahrl, I'm on #3112. Is there a way to get this as a diff or patch? |
21:39 |
ShadowBot |
https://github.com/minetest/minetest/issues/3112 -- Push error handler afresh each time lua_pcall is used by kahrl |
21:39 |
kahrl |
wget https://github.com/minetest/minetest/issues/3112.patch |
21:39 |
kahrl |
then git am 3112.patch |
21:40 |
kahrl |
oops, make that: wget https://github.com/minetest/minetest/pull/3112.patch |
21:40 |
OldCoder |
|
21:40 |
OldCoder |
wget; this includes both commits? |
21:40 |
kahrl |
yeah |
21:41 |
OldCoder |
Proceeding and will report back |
21:43 |
|
proller joined #minetest-dev |
21:50 |
OldCoder |
kahrl, the patch applied successfully and seems to have worked |
21:50 |
* OldCoder |
is now able to see where a problem has lurked |
21:50 |
kahrl |
awesome :) |
21:50 |
OldCoder |
Cite the time saved as a justification for the PR |
21:50 |
* OldCoder |
goes to fix the actual bug that has been uncovered |
22:32 |
|
est31 joined #minetest-dev |
22:46 |
|
Zeitgeist_ joined #minetest-dev |
23:33 |
VanessaE |
where is the "source" code for minetest_game's schematics? |
23:34 |
VanessaE |
(I mean the table data used to create the .mts files in default/schematics) |
23:34 |
|
Siva joined #minetest-dev |
23:35 |
VanessaE |
looks like it's this code? https://github.com/paramat/saveschems/blob/master/init.lua |
23:57 |
|
wischi joined #minetest-dev |