Time |
Nick |
Message |
02:20 |
hmmmm |
celeron55, when you're around, i'd like to know how you feel about moving debug stream initialization to _after_ the config file is read |
02:20 |
hmmmm |
also, kind of wondering why sockets_init() is called in between setting default settings and reading the config file |
02:21 |
hmmmm |
is there a specific reason for that? |
02:53 |
hmmmm |
well whatever, nevermind, i just did it |
02:54 |
hmmmm |
https://github.com/kwolekr/minetest/commit/f74cc107af0f6d9c9f2988d6bfbb63a93f989382 here, if you'd like.. set debug_log_level to 0 for no logging, or 1 for dstream and errorstream, 2 for action and higher, 3 for info and higher, 4 for verbose and higher |
02:58 |
hmmmm |
shoot i left commented dead code in there.. here's the version i would actually put in master: https://github.com/kwolekr/minetest/commit/3ff37437463cbfb6d5413d3a23df6f9b8532638c |
03:40 |
VanessaE |
if anyone gives a damn: https://github.com/celeron55/minetest/issues/476 |
05:17 |
hmmmm |
vanessa sorry, not my area. |
05:17 |
VanessaE |
it's okay |
05:17 |
hmmmm |
man i kinda wish i'm able to quickly determine if a block exists on disk or not without needing to do disk access. |
05:30 |
hmmmm |
i think it would be beneficial, in the long run, to store some kind of data structure along with the map blocks that would represent which exist or don't exist, or maybe it can be constructed in memory on map load based on an enumeration of all keys |
05:32 |
VanessaE |
well there's always the old way: |
05:32 |
VanessaE |
use a bitmap. |
05:32 |
VanessaE |
but that would still be huge |
05:32 |
hmmmm |
yes, it takes 8gb to do that. so obviously it's out of the question. |
05:33 |
hmmmm |
i've been thinking of combining a simple BST that holds a range |
05:33 |
|
ecube joined #minetest-dev |
05:33 |
VanessaE |
what about a per-block bitmap? Something you can load when the mapblock is loaded, and just keep in memory otherwise |
05:33 |
VanessaE |
and just flush it out the way you would excess mapblocks |
05:33 |
hmmmm |
uhh. you miss the point |
05:34 |
VanessaE |
well no, I get your point. |
05:34 |
VanessaE |
but ultimately you have to generate that data somehow. |
05:36 |
hmmmm |
anyway you have a BST where the key is the beginning address and the value is the length of the run or whatever |
05:37 |
VanessaE |
sounds like a variation of RLE compression. |
05:37 |
hmmmm |
mapblock address goes in, finds the slot where it should go |
05:37 |
VanessaE |
but anyway |
05:37 |
hmmmm |
grabs the node to the left of that and checks if it's below the end range |
05:37 |
hmmmm |
great |
05:38 |
hmmmm |
no that's not great |
05:38 |
hmmmm |
it'd be segmented in parts for separate Y and Z no doubt |
05:38 |
hmmmm |
the only parts that would get combined in the range are the X |
05:39 |
hmmmm |
so how do i do a 3d range... |
05:39 |
hmmmm |
octree! |
05:40 |
hmmmm |
seems like a lot of work just to do what i would like to do, but the speed benefit would be great since you wouldn't have to do a check on disk every time you want to see if something needs generation or not |
05:41 |
hmmmm |
and then you'd be able to know which blocks to emerge from disk |
05:41 |
hmmmm |
so you'd be able to enqueue it on its own disk access thread |
05:42 |
VanessaE |
two questions remain though: How would you acquire the data to build this octree from, and what do you do if it grows too large? |
05:42 |
VanessaE |
s/how/where/ |
05:43 |
hmmmm |
it wouldn't grow 'too large'.. the only way it'd get too large is if there was a checkerbox pattern of non-generated blocks which is impossible unless you programatically generated the map in that manner |
05:43 |
VanessaE |
ok, sounds fair enough |
05:44 |
hmmmm |
but you can find a way to abuse pretty much anything if you try |
05:44 |
VanessaE |
don't I know that ;-) |
05:44 |
hmmmm |
i would get the data to build the tree on map load.. i would just enumerate all keys |
05:44 |
hmmmm |
anyway that's in the backburner but it's an idea |
05:45 |
VanessaE |
right. that's more or less what I was suggesting earlier when I said "Something you can load when the mapblock is loaded" |
05:45 |
VanessaE |
so we agree ;) |
05:45 |
hmmmm |
as it stands now, all emergethreads will have to do disk access since we can't tell if it exists on disk without checking on disk |
05:46 |
hmmmm |
interpolated "blocking disk io" - "computation" like that would decrease performance |
05:46 |
hmmmm |
because you could be doing CPU work while it's waiting for the disk to do something slow |
05:47 |
hmmmm |
my ultimate vision for minetest is to have dedicated compute emergethreads and a single dedicated disk i/o emergethread, and to do that it'd be absolutely necessary to be able to figure out if a block exists already only by looking at memory |
06:22 |
|
kotolegokot joined #minetest-dev |
08:27 |
celeron55 |
VanessaE: itemstack is a copy of the stack |
08:28 |
celeron55 |
after modifying it, you need to copy it back |
08:41 |
|
darkrose joined #minetest-dev |
08:51 |
|
darkrose joined #minetest-dev |
08:51 |
|
darkrose joined #minetest-dev |
09:26 |
RealBadAngel |
celeron55, use exeact code with on_punch and it will work |
09:26 |
RealBadAngel |
something in on_rightclick just restores user wielded item |
09:27 |
RealBadAngel |
no matter what you will do |
09:29 |
RealBadAngel |
i guess after the code is called it is also executed part of the code like user wasnt able to place wielded node, so no change to it is applied |
09:38 |
|
iqualfragile joined #minetest-dev |
09:58 |
|
rsiska joined #minetest-dev |
10:02 |
|
PilzAdam joined #minetest-dev |
10:40 |
|
darkrose joined #minetest-dev |
10:40 |
|
darkrose joined #minetest-dev |
10:47 |
iqualfragile |
im getting some strange light-level related bug on my server, is someone willing to investigate? |
11:09 |
iqualfragile |
well, have some screenshots: http://imgur.com/a/9FLTI |
11:12 |
|
rubenwardy joined #minetest-dev |
11:18 |
|
ffoxin joined #minetest-dev |
12:15 |
|
iqualfragile1 joined #minetest-dev |
13:29 |
|
ffoxin joined #minetest-dev |
14:44 |
PilzAdam |
seems like backface_culling isnt read correctly in special_tiles |
14:44 |
PilzAdam |
https://gist.github.com/PilzAdam/4745506 <- this never fails |
14:48 |
|
hmmmm joined #minetest-dev |
15:00 |
Taoki |
Back to working on the physics. Getting Y speed to use acceleration when in free-move mode or swimming... much more realistic now |
15:03 |
VanessaE |
it might be nice for fly speed to peak at a higher speed than we have now, as long as you're tweaking tht |
15:03 |
VanessaE |
that* |
15:04 |
Taoki |
I'm only trying to get Y movement to work the same as X and X movement (as in use acceleration). Currently going up or down just sets the speed |
15:05 |
Taoki |
*X and Z |
15:25 |
hmmmm |
you know i'm looking really long and hard at the emerge queue, and i question whether or not you actually need to keep track of which clients asked for which blocks |
15:26 |
hmmmm |
i say: no, it's completely, 100% unnecessary |
15:26 |
hmmmm |
gonna remove that whole thing. i don't understand why BLOCK_EMERGE_FLAG_FROMDISK would ever be set in the first place, and even if it were, no idea what's wrong with just generating the damn thing no matter what |
15:30 |
|
ffoxin joined #minetest-dev |
15:36 |
|
ffoxin joined #minetest-dev |
16:22 |
|
Calinou joined #minetest-dev |
16:54 |
|
ffoxin joined #minetest-dev |
17:17 |
VanessaE |
celeron55: question. People seem to be running up against limits on the existing texture atlas more and more lately. It is possible to increase its maximum size? If not, can we finally just disable it by default? |
17:23 |
* Calinou |
says: disable it by default |
17:23 |
VanessaE |
s/it is/is it/ |
17:23 |
Calinou |
even on my netbook it gives no performance increase, so why enable it :P |
17:31 |
|
SpeedProg joined #minetest-dev |
18:06 |
hmmmm |
you can play minetest on a netbook!??! |
18:42 |
ffoxin |
hmmmm: why not since it's a native c++, not heavy java or whatever |
18:44 |
Calinou |
hmmmm: yes |
18:45 |
Calinou |
some random asus netbook from 2011, intel atom N455, 1GB RAM |
18:45 |
Calinou |
playable on multiplayer and singleplayer |
18:45 |
Calinou |
disable fancy trees and clouds :P |
18:45 |
Calinou |
and use fullscreen for added performance too |
18:52 |
|
rsiska joined #minetest-dev |
19:20 |
RealBadAngel |
https://github.com/celeron55/minetest/pull/478 |
19:20 |
RealBadAngel |
fix to bug VanessaE reported |
19:20 |
RealBadAngel |
can somebody merge it? |
19:22 |
PilzAdam |
add: "return: itemstack" to lua-apit.txt |
19:23 |
RealBadAngel |
where? |
19:23 |
PilzAdam |
on_rightclick() |
19:25 |
RealBadAngel |
why should i? i just fixed the bug, not added new content |
19:26 |
PilzAdam |
your patch lets item_place() return the return value of on_rightclick() |
19:26 |
PilzAdam |
and the return value of item_place() is the leftover itemstack |
19:27 |
|
ffoxin joined #minetest-dev |
19:28 |
RealBadAngel |
i have no idea how to describe it properly |
19:28 |
RealBadAngel |
can you do that? |
19:30 |
PilzAdam |
the return value of item_place() is the leftover itemstack of the wielded item; on_rightclick() shouldnt access it |
19:31 |
RealBadAngel |
?? |
19:31 |
RealBadAngel |
sorry i dont get you at all |
19:32 |
RealBadAngel |
this is meant for such use |
19:33 |
hmmmm |
ffoxin, that's completely irreleveant information. |
19:35 |
RealBadAngel |
PilzAdam, youre tryin to tell me that bug is a feature? |
19:36 |
PilzAdam |
no, I say fix it in a different way |
19:36 |
RealBadAngel |
rotfl |
19:36 |
RealBadAngel |
no comments |
20:12 |
|
Taoki joined #minetest-dev |
20:27 |
|
SpeedProg1 joined #minetest-dev |
20:30 |
RealBadAngel |
PilzAdam, fyi theres no other way to fix it because item_place with returnin itemstack will override anything user will do with wielded item |
20:31 |
PilzAdam |
move the call of on_rightclick() somewhere before item.on_place() is called |
20:31 |
PilzAdam |
this will also fix VanessaE's other "bug" |
20:31 |
RealBadAngel |
which one? |
20:32 |
PilzAdam |
she doesnt like that on_rightclick() is called in on_place() |
20:33 |
|
iqualfragile joined #minetest-dev |
20:33 |
|
iqualfragile1 joined #minetest-dev |
20:34 |
|
iqualfragile joined #minetest-dev |
20:48 |
|
ffoxin joined #minetest-dev |
20:57 |
sfan5 |
critical bug: |
20:57 |
sfan5 |
/home/stefan/mt-build/build/c55/celeron55-minetest-a27857e/po/pt/minetest.po:412: »msgid«- und »msgstr«-Eintrag enden nicht jeweils mit »\n« |
20:57 |
sfan5 |
... |
20:58 |
PilzAdam |
sfan5, if make doesnt update the .mo files it doesnt produce this error |
20:58 |
sfan5 |
i know, but that doesn't help |
20:58 |
sfan5 |
translated message: |
20:58 |
sfan5 |
/home/stefan/mt-build/build/c55/celeron55-minetest-a27857e/po/pt/minetest.po:412: »msgid«- and »msgstr« entries do not end each with »\n« |
21:01 |
PilzAdam |
sfan5, fixed in weblate, now tell thexyz to merge it |
21:16 |
hmmmm |
so why are duplicate blocks allowed to be added to the BlockEmergeQueue if the peer_id is 0? |
21:16 |
hmmmm |
i don't think that's right at all. |
21:22 |
RealBadAngel |
PilzAdam, on_rightclick is not called when node is placed. moving the code somewhere else is pointless. IMHO on_rightclick shall be called instead with itemstack too, and expect returning it |
21:23 |
RealBadAngel |
because rightclick is anyways action taken with item in hand |
21:24 |
VanessaE |
the natural result of a rightclick in the game is to place an item on the ground and decrement the count of that item in the player's inventory. |
21:24 |
VanessaE |
so being able to do inventory management is crucial to maintaining consistency. |
21:27 |
RealBadAngel |
http://pastebin.com/Atd1x3a8 |
21:28 |
RealBadAngel |
modified code and example usage |
21:28 |
RealBadAngel |
itemstack is being passed to rightclick, and it can modify it when needed |
23:13 |
RealBadAngel |
https://github.com/celeron55/minetest/pull/481 |
23:14 |
RealBadAngel |
PilzAdam, ive pushed it again with slight changes, update to api doc |
23:14 |
RealBadAngel |
change doesnt break old mods using on_rightclick without itemstack parameter |
23:15 |
RealBadAngel |
so, if you want to change itemstack, just define function with it, and be sure to return it |
23:16 |
PilzAdam |
why return the itemstack? |
23:16 |
PilzAdam |
(in on_rightclick()) |
23:17 |
PilzAdam |
its call by reference, so just modify the param passed to the function |
23:17 |
PilzAdam |
and item_place() does; on_rightclick(..., itemstack); return itemstack; |
23:17 |
RealBadAngel |
if you will modify it, then return it |
23:18 |
RealBadAngel |
back to item_place and whatever called that |
23:18 |
RealBadAngel |
any other way wont work |
23:19 |
PilzAdam |
wrong |
23:19 |
PilzAdam |
since itemstack is call by reference, you dont need to return it |
23:20 |
RealBadAngel |
i will try |
23:24 |
RealBadAngel |
PilzAdam, as i said, youre wrong |
23:24 |
RealBadAngel |
dont believe, try the code please |
23:27 |
PilzAdam |
it works for me |
23:28 |
PilzAdam |
https://gist.github.com/PilzAdam/4747568 |
23:28 |
PilzAdam |
^ this works |
23:29 |
RealBadAngel |
rotfl |
23:29 |
RealBadAngel |
you just made the same i did |
23:29 |
RealBadAngel |
but in 2 lines instead of 1 |
23:29 |
PilzAdam |
no, because i dont need return itemstack in on_rightclick() |
23:30 |
RealBadAngel |
maybe you dont |
23:30 |
RealBadAngel |
but players do |
23:31 |
RealBadAngel |
function is screwed, i dont know who did it. and you dancin around the problem |
23:31 |
RealBadAngel |
it has to be returned when changed |
23:32 |
RealBadAngel |
dont like my code (pfft a few lines) then code it |
23:32 |
RealBadAngel |
but stop makin troubles |
23:32 |
RealBadAngel |
as modder you were excellent |
23:33 |
RealBadAngel |
but as developer you suck big time |
23:33 |
RealBadAngel |
period |
23:33 |
RealBadAngel |
good night |
23:34 |
PilzAdam |
RealBadAngel, I just try to keep things consistent |
23:35 |
VanessaE |
consistency must, by definition, include being consistent with what modders expect a function to do based on what the API says *and does not say* |
23:35 |
PilzAdam |
and after_place_node() also gives a reference to the itemstack |
23:44 |
RealBadAngel |
can somebody push that oneliner fix to make things work? |
23:45 |
VanessaE |
yes, pleas edo |
23:45 |
VanessaE |
I already have two mods that depend on it |
23:45 |
VanessaE |
(else there are duplication bugs) |
23:50 |
VanessaE |
good, that worked. |
23:51 |
RealBadAngel |
what? |
23:51 |
VanessaE |
homedecor git updated |
23:51 |
VanessaE |
just had to remove a rogue item from creative inventory (fences with signs should not be there in practice) |
23:53 |
RealBadAngel |
im testing now 24 facedirs |
23:53 |
RealBadAngel |
everythin seems to be workin |
23:53 |
VanessaE |
crap, that last bit was supposed to be in a different window. |
23:53 |
VanessaE |
sorry about that guys. |
23:53 |
VanessaE |
RBA, back to query. |
23:53 |
RealBadAngel |
hehe ok |