Time |
Nick |
Message |
00:28 |
hmmmm |
Zeno`: So have you or have you not been able to replicate it? |
00:30 |
Zeno` |
hmmmm, yes. But it's strange |
00:30 |
Zeno` |
I've been able to replicate it 75% let's put it that way. And the issue happens before your commits anyway |
00:31 |
hmmmm |
A++++++ accusations would raise again |
00:31 |
hmmmm |
s/raise/rage/ |
00:31 |
Zeno` |
That would apparently be the case |
00:33 |
jin_xi |
hmmmm: im currently using a double vm setup to first find nodes placed by decorations and then replace them with generated structures. this produces holes in the map reliably |
00:33 |
jin_xi |
anyways, if decorations could directly call some lua it would be easier |
00:33 |
Zeno` |
hmmmm, as for the assertion failure (which I didn't report I don't think), it hasn't happened again so it must be some weird and very rare case. The server is still running under gdb anyway |
00:34 |
hmmmm |
jin_xi, that shouldn't happen. can you show me how you're running it? |
00:34 |
hmmmm |
Zeno`, my guess is that it might occur in out-of-memory conditions. |
00:34 |
hmmmm |
a/in/under/ |
00:35 |
Zeno` |
hmmmm, you might be right |
00:35 |
jin_xi |
sure, gimme a sec |
00:35 |
hmmmm |
that's literally the only condition in which get_data() could throw an exception |
00:38 |
|
kaeza joined #minetest-dev |
00:39 |
jin_xi |
http://paste.ubuntu.com/8294886/ http://i.imgur.com/ESb1hYw.png |
00:39 |
hmmmm |
is that hole made of air or content_ignore? |
00:40 |
jin_xi |
how can i check? |
00:40 |
hmmmm |
try walking into it with noclip disabled |
00:40 |
jin_xi |
can walk |
00:42 |
hmmmm |
okay |
00:42 |
hmmmm |
anyway so find_dummies is run first, in on_generated |
00:43 |
hmmmm |
by the way jin_xi, that code is actually not required at all. you're not using a rather obscure mapgen object that was made for this situation. |
00:43 |
jin_xi |
pls tell me more |
00:43 |
hmmmm |
decoration callback |
00:43 |
jin_xi |
its there? |
00:44 |
jin_xi |
oh |
00:44 |
hmmmm |
yes, it's been there for about a year now |
00:44 |
jin_xi |
i missed that, i asked for it long time ago |
00:44 |
hmmmm |
i used it to place chests inside of dungeons and desert temples |
00:45 |
hmmmm |
see "gennotify"? |
00:46 |
jin_xi |
um, yes but i fail to parse |
00:46 |
hmmmm |
actually sorry about that |
00:46 |
hmmmm |
shoot |
00:46 |
hmmmm |
it didn't have a schematic flag |
00:47 |
jin_xi |
Returns a table mapping requested generation notification types to arrays of positions at which the |
00:47 |
jin_xi |
corresponding generated structures are located at within the current chunk. |
00:47 |
jin_xi |
??? |
00:47 |
hmmmm |
i'll have to expand gennotify to include decorations |
00:49 |
jin_xi |
oh i see now. took a lot of repeated reading |
00:50 |
hmmmm |
ah uh oh |
00:50 |
hmmmm |
i don't think i have minetest.set_gen_notify() documented |
00:51 |
jin_xi |
it is kindof obscure as it is now, yes |
00:51 |
hmmmm |
yep, so minetest.set_gen_notify() |
00:52 |
hmmmm |
takes a flags table of events to notify on |
00:52 |
hmmmm |
current flags being dungeon, temple, cave_begin, cave_end, large_cave_begin, large_cave_end |
00:52 |
hmmmm |
i think the idea was to have one associated with a specific schematic ID |
00:52 |
hmmmm |
but that never got implemented because i forgot about it |
00:53 |
hmmmm |
then, in your on_generated callback |
00:54 |
hmmmm |
foobar = minetest.get_mapgen_object("gennotify") -- at this point, foobar = {cave_begin = {x = blah, y = blah, z = blah}, cave_end = {x=400, y=-200, z=200}} |
00:54 |
hmmmm |
so on |
00:54 |
hmmmm |
so it'd have a table containing tables |
00:55 |
hmmmm |
table containing an array of tables that are the position vectors |
00:55 |
jin_xi |
or a list of positions where decos were placed, nice |
00:55 |
hmmmm |
right |
00:55 |
hmmmm |
that was the idea |
00:55 |
hmmmm |
the list of the decorations for a certain node placed |
00:55 |
hmmmm |
so that should be trivial to implement |
00:56 |
hmmmm |
add an option to register_decoration where you provide a gennotify "feature ID" and that'll be the key where things are stored in the table |
00:56 |
hmmmm |
so it'd be like |
00:56 |
hmmmm |
minetest.register_decoration{ blah blah blah blah, |
00:57 |
hmmmm |
gennotify_feature_id = "SomeShittyDecoration23" |
00:57 |
hmmmm |
}) |
00:57 |
jin_xi |
or just gennotify flag decorations, and get a list of all decorations for a chunk? should be small enough |
00:58 |
hmmmm |
so then in your on_generated, foobar = minetest.get_mapgen_object("gennotify"); foobar = {SomeShittyDecoration23 = {{x=400, y=-200, z=200}, {x=410, y=-220, z=220}} |
00:58 |
hmmmm |
or so on |
00:58 |
hmmmm |
no no no. |
00:58 |
hmmmm |
no. |
00:58 |
hmmmm |
you can't control other mods that way |
00:58 |
hmmmm |
do it this way |
01:10 |
|
Miner_48er joined #minetest-dev |
01:15 |
|
ImQ009 joined #minetest-dev |
02:11 |
|
ImQ009 joined #minetest-dev |
02:28 |
|
OldCoder joined #minetest-dev |
03:41 |
|
darkrose joined #minetest-dev |
03:43 |
|
darkrose joined #minetest-dev |
03:45 |
|
Hunterz joined #minetest-dev |
03:45 |
|
hax404_ joined #minetest-dev |
03:45 |
|
rmilan joined #minetest-dev |
03:46 |
|
sol_invictus joined #minetest-dev |
04:25 |
|
blaise joined #minetest-dev |
05:14 |
|
CraigyDavi joined #minetest-dev |
05:17 |
|
Megaf_ joined #minetest-dev |
06:47 |
|
CWz joined #minetest-dev |
07:39 |
Zeno` |
are you awake ShadowNinja? |
07:39 |
Zeno` |
Thanks for the detailed explanation |
07:40 |
Zeno` |
I still don't like the idea of sandboxing (not in a 0.4.x release anyway) but... *shrug* |
07:53 |
|
JTE_ joined #minetest-dev |
08:18 |
|
Hunterz joined #minetest-dev |
08:18 |
|
JTE_ joined #minetest-dev |
08:27 |
|
^v joined #minetest-dev |
08:32 |
|
jin_xi joined #minetest-dev |
08:59 |
kahrl |
could someone who speaks French take a look at #1202? |
09:03 |
kahrl |
also I'm adding a Translation subsystem (with no subsystem maintainer at the moment) |
09:04 |
kahrl |
just so we can label these kind of PRs as "@ Translation" |
09:04 |
kahrl |
if anyone is against that subsystem please say so |
09:07 |
|
diemartin joined #minetest-dev |
09:11 |
|
CraigyDavi` joined #minetest-dev |
09:17 |
kahrl |
I'd like to resolve as many of the issues/PRs at https://github.com/minetest/minetest/labels/@%20Translation as possible before weblate goes back up, so comments on those are welcome |
09:32 |
|
Mimilus joined #minetest-dev |
09:43 |
|
XDGAMERZzZ_ joined #minetest-dev |
10:17 |
|
deltib joined #minetest-dev |
10:41 |
|
CraigyDavi`` joined #minetest-dev |
10:45 |
|
proller joined #minetest-dev |
11:17 |
|
proller joined #minetest-dev |
11:26 |
|
ImQ009 joined #minetest-dev |
11:46 |
|
PenguinDad joined #minetest-dev |
11:51 |
|
ImQ009_ joined #minetest-dev |
11:53 |
|
diemartin joined #minetest-dev |
11:56 |
|
JTE_ joined #minetest-dev |
11:57 |
|
PenguinDad joined #minetest-dev |
12:06 |
|
s4mu3l_ch joined #minetest-dev |
12:24 |
|
Weedy joined #minetest-dev |
12:24 |
|
Weedy joined #minetest-dev |
12:42 |
|
proller joined #minetest-dev |
13:21 |
|
hmmmm joined #minetest-dev |
13:40 |
|
proller joined #minetest-dev |
14:04 |
|
OldCoder joined #minetest-dev |
14:24 |
|
Amaz joined #minetest-dev |
14:30 |
|
proller joined #minetest-dev |
14:42 |
|
proller joined #minetest-dev |
14:49 |
|
NakedFury joined #minetest-dev |
14:54 |
|
Megaf joined #minetest-dev |
14:54 |
|
Megaf joined #minetest-dev |
14:58 |
jin_xi |
hmmmm: ok, so i tried adding the feature, but im not exactly sure what im doing. |
15:00 |
hmmmm |
well no no |
15:00 |
hmmmm |
you don't need to! i will! |
15:00 |
hmmmm |
just not right now, I'm on work |
15:01 |
hmmmm |
i was just raising awareness that there is something already existing that you tried to do in your mod. really I'd like to solve your voxelmanipulator issues |
15:02 |
hmmmm |
now yesterday you said that there were two voxelmanipulators but in your posting i only saw one where you scanned for nodes and then called remove_node() on it |
15:04 |
jin_xi |
see line 45 http://paste.ubuntu.com/8294886/ (same paste) |
15:04 |
jin_xi |
this calls the turtle system, which does a dry run to determine the size of the structure and then calls vm with that area |
15:08 |
jin_xi |
here is what i tried so far... http://paste.ubuntu.com/8300598/ |
15:25 |
|
sol_invictus joined #minetest-dev |
15:25 |
|
Megaf_ joined #minetest-dev |
15:43 |
hmmmm |
jin_xi: what does p[2].spawn(p[1]) do? where is spawn()? |
15:44 |
hmmmm |
what you've done so far on implementing decoration stuff so far is mostly correct |
15:47 |
jin_xi |
http://paste.ubuntu.com/8300881/ http://paste.ubuntu.com/8300591/ its a cascade of functions named spawn... so the call p[2].spawn(p[1]) is basically tetris2.spawn(pos) |
15:47 |
jin_xi |
tetris2.spawn calls turtle.spawn which does the vm stuff |
15:48 |
hmmmm |
ahhh okay... so you build up a buffer table of things to write |
15:48 |
hmmmm |
you realize that voxelmanip is a buffer to the map |
15:48 |
hmmmm |
so you're writing to a buffer so that you can write to a buffer |
15:49 |
hmmmm |
you can change the table.insert things to vm_data[vm_area:index(rpos)] = materials[mat]; |
15:50 |
hmmmm |
hrmm, the code looks solid enough. you don't write to the mapgen object VM |
15:50 |
hmmmm |
however if another mod runs after your code uses a voxelmanip |
15:50 |
hmmmm |
that'd overwrite your changes |
15:52 |
|
Megaf joined #minetest-dev |
15:55 |
hmmmm |
assuming turtle.spawn is called once, this code should work. |
15:55 |
hmmmm |
and assuming there are no mods that use voxelmanip that might be overwriting your changes |
15:56 |
hmmmm |
could i have a copy of your mod to debug this? |
15:58 |
jin_xi |
sure |
16:07 |
|
zat joined #minetest-dev |
16:27 |
|
Hunterz joined #minetest-dev |
16:33 |
|
zat joined #minetest-dev |
16:36 |
hmmmm |
you know, I don't usually recommend hacks, but here's a really simple way to prevent cavegen from shitting over your stone/sand/dirt structures: |
16:36 |
hmmmm |
build the structures with nodes identical to the original node you wish to use, except with is_ground_content = false |
16:36 |
hmmmm |
and then on dig, have them drop the regular, is_ground_content = true variety |
16:37 |
VanessaE |
I already suggested that to Sokomine weeks ago :P |
16:37 |
hmmmm |
as long as people don't go overboard it should be okay |
16:37 |
hmmmm |
this is good enough until we get hardware lighting in minetest and we're able to free up an extra 8 bits in a mapnode |
16:38 |
hmmmm |
VanessaE: I think it may be worthwhile to add some sort of "inheritance" mechanism to nodedefs. |
16:38 |
VanessaE |
how would it work? |
16:38 |
hmmmm |
add a new api? |
16:39 |
hmmmm |
minetest.register_node_inherit("default:stone", {is_ground_content = false}) ? |
16:39 |
VanessaE |
I meant... |
16:39 |
hmmmm |
it would copy the nodedef from default:stone, and then override the settings with the custom ones you specify |
16:39 |
hmmmm |
the best part about what I'm suggesting is that in order to implement this feature, there are no additions to the core required. |
16:39 |
VanessaE |
the equivalent of doing this: https://github.com/VanessaE/angled_walls/blob/master/init.lua#L108 ---> https://github.com/VanessaE/angled_walls/blob/master/init.lua#L145 |
16:40 |
VanessaE |
but not in that sort of hacky way |
16:40 |
VanessaE |
ok so yeah, the same sorta thing. |
16:40 |
hmmmm |
yeah it seems you have the idea mostly |
16:41 |
hmmmm |
that's what I'd want to do, except all in one call and it'd be officially part of the API |
16:41 |
VanessaE |
right |
16:41 |
hmmmm |
does it make sense? |
16:41 |
hmmmm |
I realize that modders had probably thought of all these tricks a long time ago |
16:41 |
VanessaE |
it DOES make sense but I wonder if it's the right way to actually do it |
16:41 |
hmmmm |
but I'm just saying, we should actually do something about it rather than just let people do their own thing |
16:41 |
VanessaE |
*nod* I agree |
16:42 |
hmmmm |
VanessaE, there is no other way to do it |
16:42 |
VanessaE |
this clone method originally came from pilzadam, though what I do here required a recursive copy to avoid some hidden pass-by-reference fuckups I was running into. |
16:42 |
VanessaE |
but yeah, if there's no other way, then so be it |
16:42 |
hmmmm |
I mean you're probably thinking of not maintaining a copy of the node internally |
16:43 |
|
kahrl joined #minetest-dev |
16:43 |
hmmmm |
but that won't make a difference because the vector containing the nodedefs isn't a list of pointers, it's a list of actual NodeDef structures |
16:43 |
hmmmm |
so you wouldn't be saving any space |
16:44 |
VanessaE |
right |
16:44 |
VanessaE |
well I got that ^^^^ code from the Roblox wiki but it's just a generic copy so feel free to use it :) |
16:44 |
hmmmm |
it'd also make access non-trivial. you'd need to use getters/setters for all of the nodedef members |
16:44 |
VanessaE |
(line 11 in the file) |
16:45 |
hmmmm |
so, yeah, copying a node definition of something already registered then applying modifications, and registering the new one is the way to go. |
16:45 |
hmmmm |
i don't think it's hacky really. |
16:49 |
VanessaE |
I'll back it, since I've had to use this same construct more times than I care to remember ;-) but you can expect others will bitch |
16:57 |
|
OldCoder joined #minetest-dev |
17:20 |
|
Calinou joined #minetest-dev |
17:30 |
|
khonkhortisan joined #minetest-dev |
17:36 |
|
Krock joined #minetest-dev |
17:58 |
diemartin |
re: subclassing, it's trivial to do it with `setmetatable()` and `__index` |
17:58 |
diemartin |
(assuming register_xxx works by using `lua_getfield` instead of `lua_rawget`) |
18:00 |
diemartin |
just point `__index` to the "superclass", and explicitly set the overrides |
18:01 |
|
proller joined #minetest-dev |
18:12 |
|
ImQ009 joined #minetest-dev |
18:22 |
ShadowNinja |
How should a Lua API for mkdir be implemented? Add os.mkdir from ScriptApiUtil? minetest.mkdir? minetest.{fs,path}.mkdir? Should we include something like LuaFileSystem? |
18:22 |
VanessaE |
minetest_fs.mkdir |
18:22 |
VanessaE |
strictly filtered to never overwrite and only to create within certain areas e.g. the world dir or mod dir |
18:23 |
* VanessaE |
looks at Luafs |
18:23 |
kaeza |
minetest.fs.mkdir doesn't follow the naming conventions; we don't see minetest.game.register_node or such |
18:23 |
Krock |
ShadowNinja, minetest.create_folder("foobar") ? |
18:23 |
VanessaE |
folder? |
18:23 |
Calinou |
it needs to work easily on all operating systems |
18:23 |
VanessaE |
no fucking way |
18:24 |
Krock |
VanessaE, Y no? |
18:24 |
VanessaE |
it's a G*d damned directory |
18:24 |
VanessaE |
that's why no. |
18:24 |
kaeza |
also, `listdir()` pls |
18:24 |
ShadowNinja |
VanessaE: Nah, no new table. Then we'd need core_fs too. |
18:24 |
VanessaE |
ShadowNinja: hrm. well ok |
18:24 |
VanessaE |
core.mkdir or minetest.mkdir then |
18:24 |
ShadowNinja |
kaeza: for x in require("lfs").dir(...) do... |
18:25 |
VanessaE |
either one is about the same |
18:25 |
ShadowNinja |
VanessaE: (core == minetest) == true |
18:25 |
VanessaE |
looking at lfs, there's a lot of stuff here that some OS's might not allow |
18:25 |
VanessaE |
I wonder if lfs might be overkill. |
18:26 |
VanessaE |
ShadowNinja: case in point. it's just a matter of which name looks better in the API doc. |
18:27 |
VanessaE |
I guess you could add in lfs and just disable the functions that we don't need. |
18:27 |
VanessaE |
e.g. symlinks, file locking a |
18:27 |
VanessaE |
-a |
18:32 |
ShadowNinja |
Symlinks work on Windows, and file locking might be usefull. |
18:34 |
VanessaE |
mmmh |
18:39 |
|
Calinou joined #minetest-dev |
19:14 |
|
Columbus joined #minetest-dev |
19:15 |
Columbus |
Excuse me, a bit off topic question, about Graphics Processing |
19:15 |
|
luizrpgluiz joined #minetest-dev |
19:15 |
Columbus |
A CPU uses Pipelining, so that multiple instructions at once are processed. |
19:16 |
Columbus |
Would a programm be able, to emulate such function, |
19:16 |
Columbus |
that a program pipelines the draw (and so on) process |
19:16 |
Columbus |
Could that work? |
19:18 |
Columbus |
When someone could, please give that idea to someone of OpenGL, because maybe, that it works, and it could create new technology |
19:18 |
Columbus |
Excuse me for my bad english, it isn't my mother-language |
19:20 |
luizrpgluiz |
guys because minetest runs faster on Linux? |
19:25 |
luizrpgluiz |
? |
19:34 |
|
GhostDoge joined #minetest-dev |
20:01 |
|
mberends joined #minetest-dev |
20:02 |
|
Taoki[laptop] joined #minetest-dev |
20:06 |
|
luizrpgluiz left #minetest-dev |
20:18 |
|
deltib joined #minetest-dev |
21:29 |
|
proller joined #minetest-dev |
21:31 |
|
mberends joined #minetest-dev |
22:14 |
|
ImQ009 joined #minetest-dev |
23:07 |
|
Aaron1011 joined #minetest-dev |
23:10 |
|
proller joined #minetest-dev |
23:12 |
|
Zeno` joined #minetest-dev |
23:22 |
|
celeron55 joined #minetest-dev |
23:38 |
|
mrtux joined #minetest-dev |