Time |
Nick |
Message |
00:01 |
|
TC01 joined #minetest |
00:21 |
|
MrIbby joined #minetest |
01:55 |
|
alkotob_ joined #minetest |
02:08 |
|
Freejack joined #minetest |
02:31 |
|
Gizmokid2005 joined #minetest |
02:37 |
|
STHGOM joined #minetest |
02:37 |
|
STHGOM joined #minetest |
03:06 |
|
Azelphur joined #minetest |
03:15 |
|
Azelphur joined #minetest |
03:25 |
|
Void7 joined #minetest |
03:27 |
|
MrIbby joined #minetest |
04:00 |
|
DMackey- joined #minetest |
04:17 |
|
DI3HARD139 joined #minetest |
05:01 |
|
lumidify joined #minetest |
05:05 |
|
xSmurf joined #minetest |
05:08 |
|
ssieb joined #minetest |
05:10 |
|
lordfingle joined #minetest |
05:19 |
|
alkotob_ joined #minetest |
05:36 |
|
swift110-phone joined #minetest |
05:49 |
|
swift110-phone joined #minetest |
05:52 |
|
Hawk777 joined #minetest |
05:55 |
|
basxto joined #minetest |
06:22 |
|
PjotrOrial joined #minetest |
06:22 |
|
PjotrOrial joined #minetest |
06:34 |
|
froike__ joined #minetest |
06:35 |
|
Hawk777 joined #minetest |
06:52 |
|
lumidify joined #minetest |
06:53 |
|
sonicpp joined #minetest |
07:00 |
|
CWz joined #minetest |
07:14 |
|
deva joined #minetest |
07:17 |
deva |
I am trying to do some 'inheritance' in node registration |
07:17 |
deva |
I have made a lua table with all common node traits, then copy each instance and set the final parameters before registration |
07:18 |
deva |
But I cannot seem to get this working with the light_source attribute |
07:18 |
deva |
(It does work for tiles) |
07:25 |
deva |
Here are the contents of my init.lua file: http://pastebin.com/Z1g5xsGq |
07:30 |
|
PjotrOrial joined #minetest |
07:30 |
|
PjotrOrial joined #minetest |
07:41 |
deva |
Any suggestions to fix this will be greatly appreciated. |
07:51 |
Hijiri |
deva: I have other problems with your code, but light source nodes need the paramtype "light" |
07:51 |
Hijiri |
you can search for it in the api doc |
07:51 |
Hijiri |
my other issues are with the use of globals and reusing the same table for node registration |
07:52 |
Hijiri |
doing blah = some_table doesn't copy some_table, it's just a reference to the table |
07:52 |
Hijiri |
so you are changing the original table to have light_source = 14 |
07:52 |
Hijiri |
If you then want to register another node, the base table will start with light_source = 14, and it will stay that way unless you change it |
07:53 |
Hijiri |
If you want to get an unaltered table there are a couple ways I would suggest |
07:53 |
Hijiri |
one is to write a function that does a shallow copy of a table and use that |
07:53 |
Hijiri |
another is to write a function that returns a fresh table with the base table stuff in it |
07:54 |
Hijiri |
actually a third option, you could just separate those callbacks into local definitions and use them in multiple node definitions |
07:54 |
Hijiri |
this message makes 11 lines, I think it's a new record for me |
07:54 |
|
FirePowi joined #minetest |
07:56 |
Hijiri |
to solve |
07:56 |
Hijiri |
sorry, didn't mean to hit enter |
07:56 |
|
Krock joined #minetest |
07:57 |
Krock |
Longest mod name found so far: moremesecons_adjustable_player_detector |
07:57 |
Hijiri |
deva: the convention for globals is to allow each mod one global with the same name as the mod, so that global variable clashes are avoided (it's impossible to activate two mods with the same identifier) |
07:58 |
Hijiri |
If you need your variables accessible across different source files, you can make your global a table and put them in there. Otherwise local variables will work fine |
07:59 |
Hijiri |
I just realized the light thing means you can't have opaque light sources |
07:59 |
Hijiri |
opaque light-wise, not texture wise |
08:00 |
Hijiri |
though it must have been something I noticed and forgot in the past too, it doesn't seem that hard to notice |
08:01 |
Chinchou |
Meaning that a light source node can't block light? |
08:04 |
|
Szkodnix joined #minetest |
08:05 |
|
Markow joined #minetest |
08:06 |
|
Telesight joined #minetest |
08:09 |
deva |
Hijiri, Thanks for the elaborate answer :-) |
08:10 |
deva |
It actually also answers a couple of my follow up questions before I even got to ask them :-p |
08:11 |
agaran |
is there way to disableunderground lava generation? |
08:12 |
deva |
Hijiri, I also played around with the notion of "self" but couldn't get the node to for example change it's texture this way. |
08:12 |
deva |
Is the node table used globally for all nodes of this type? |
08:12 |
deva |
Or how does this work? |
08:13 |
deva |
I would like to in for example a timer callback do something like local self = minetest.get_node_or_nil(pos) and then self.tiles = {...} |
08:14 |
deva |
Would that even make sense? Or would I be manipulation all nodes of that type? |
08:14 |
|
Out`Of`Control joined #minetest |
08:18 |
|
Volkj joined #minetest |
08:20 |
|
LNJ2GO joined #minetest |
08:23 |
Krock |
deva, you can't change the definition of a node in run-time |
08:24 |
Krock |
so changing the tiles is not possible. You'd have to replace it with another node |
08:24 |
Krock |
also, the definitions are stored in minetest.registered_nodes["mymod:nodename"] |
08:25 |
Krock |
.get_node_or_nil does only return the rotation/light and its node name |
08:25 |
deva |
Krock, so the original node definition table is not used anymore after register has been called? |
08:26 |
deva |
Ie. it does a deep copy of it? |
08:26 |
Krock |
used by mods, yes. but not by core, which controls the visuals |
08:26 |
deva |
oh ok (rotation light), that makes sense |
08:27 |
Krock |
because it's node-specific. all other things, like textures or draw type are kind of "constant" |
08:27 |
deva |
Krock, I had an idea of making an object wrapper for the nodes with SetTexture method and so on, but I guess that doesn't make much sense |
08:28 |
Krock |
it's quite useless when you call it after minetest registered all nodes :P |
08:29 |
deva |
I guess this "non objects" approach is because having all nodes as objects would be bad for performance? |
08:30 |
deva |
Lua objects I means... I assume they are objects in C++ :-) |
08:30 |
Krock |
having each node with its own definition would cause a horrible use of memory |
08:31 |
Krock |
the node name itself is resolved into a signed 16-bit integer |
08:32 |
deva |
Why 16bit? |
08:32 |
Krock |
so I wouldn't say that it's an object in C++.. but not sure |
08:35 |
Krock |
typedef u16 content_t; |
08:35 |
Krock |
because of that |
08:36 |
Krock |
dunno exactly why 16 bits were choosen |
08:36 |
Krock |
oh wait. there's a struct "MapNode", so this would mean it's a kind of object |
08:38 |
Krock |
lol. the day and night light values are squashed into a 8-bit integer |
08:38 |
deva |
u16 probably means that it is unsigned :-) |
08:38 |
Krock |
yes |
08:39 |
|
ruskie joined #minetest |
08:39 |
deva |
I guess MapNode should at least store the ndoe metadata |
08:39 |
deva |
At least it seems from the docs that these are store per node |
08:40 |
Krock |
no, metadata is stored seperately |
08:41 |
deva |
ok |
08:41 |
Krock |
because not all nodes have one |
08:41 |
* deva |
afk |
08:42 |
Krock |
ack |
09:06 |
|
Darcidride joined #minetest |
09:12 |
IhrFussel |
Krock, can you confirm that the map won't get corrupted if I delete blocks from DB? |
09:12 |
Krock |
haven't tested it on my own but it should not corrupt anything |
09:13 |
IhrFussel |
Oh wait..were you the one who said it shouldn't happen if I didn't change map settings? |
09:13 |
Krock |
yes |
09:13 |
Krock |
I doubt that you changed the map params, so no problem |
09:13 |
IhrFussel |
Will /deleteblocks do the same? |
09:13 |
Krock |
yes |
09:15 |
|
Kray joined #minetest |
09:15 |
IhrFussel |
Okay I will do a backup before though just to be on the safe side |
09:15 |
IhrFussel |
Cause I'm planning to delete 300+ mapblocks |
09:16 |
|
Fritigern joined #minetest |
09:22 |
|
Kray joined #minetest |
09:27 |
Krock |
300 aren't that many |
09:28 |
IhrFussel |
Krock, well more than /deleteblocks here :P |
09:32 |
|
tpe joined #minetest |
09:43 |
|
Fixer joined #minetest |
09:47 |
|
PseudoNoob joined #minetest |
09:55 |
|
proller joined #minetest |
10:11 |
|
lumidify joined #minetest |
10:15 |
IhrFussel |
Krock, do you know when a mapblock contains "air" as node? I'm guessing only when there was another node at that spot before and got replaced or removed? Otherwise every mapblock would contain lots of air nodes |
10:25 |
|
Out`Of`Control joined #minetest |
10:25 |
Krock |
huh? empty mapblock means that it's filled with air |
10:26 |
Krock |
otherwise it wouldn't even exist |
10:27 |
Krock |
all nodes in the mapblock are set to a content id, so you can't have "void spots" |
10:33 |
|
Gizmokid2005 joined #minetest |
10:41 |
IhrFussel |
Krock, sfan5's script takes the DB hex values and converts them to human readable format and not every mapblock has "air" but exists |
10:41 |
Krock |
that's strange |
10:41 |
IhrFussel |
I found a mapblock with timestamp "undefined" |
10:41 |
Krock |
like.. it has nothing inside? |
10:42 |
Krock |
I would understand if it was filled with stone |
10:42 |
Krock |
or water |
10:42 |
IhrFussel |
Krock, is an undefined timestamp correct or a bug? |
10:42 |
Krock |
bug, I think |
10:43 |
Krock |
or the map was not saved properly when the server crashed |
10:44 |
|
Tux[Qyou] joined #minetest |
10:44 |
IhrFussel |
Krock, http://pastebin.com/A8z5GaM6 |
10:45 |
Krock |
most likely a bug |
10:45 |
IhrFussel |
What is weird is that I just deleted all blocks with only 1 node "air" and this one somehow survived |
10:45 |
Krock |
but that shouldn't crash minetest or similar |
10:46 |
IhrFussel |
I will just delete that one manually again |
10:47 |
Krock |
how did you delete them? un-hex and un-compress each mapblock and analyze it? That takes somewhat long |
10:49 |
sfan5 |
IhrFussel: no "undefined" timestamp is not a bug |
10:49 |
|
CWz joined #minetest |
10:50 |
IhrFussel |
Krock, DELETE FROM blocks WHERE pos = [position] |
10:50 |
Krock |
that's logical but how did you know the positions? |
10:51 |
IhrFussel |
sfan5's script tells it I just pasted part of the mapblock output in pastebin |
10:51 |
Krock |
sfan5, not a bug? then why did it fail to read it? |
10:55 |
|
Szkodnix joined #minetest |
10:56 |
IhrFussel |
Krock, this is sfan5's python script to parse the mapblock https://gist.github.com/sfan5/52917a0e1338bcda2176edbc416dae60 called by the shell script at the bottom |
10:57 |
Krock |
nice |
10:58 |
Krock |
o("Timestamp: %s", "undefined" if ts == 0xffffffff else str(ts)) |
10:58 |
Krock |
(u32)-1 |
10:58 |
Megaf |
!server Megaf |
10:58 |
MinetestBot |
Megaf: Megaf Server v4.0 | mt.megaf.info:30003 | Clients: 0/20, 0/1 | Version: 0.4.14-Megaf / MegafXploreNext | Ping: 6ms |
10:58 |
Krock |
!server pony |
10:58 |
Megaf |
0 players! |
10:58 |
MinetestBot |
Krock: No results |
10:59 |
Megaf |
Good morning all |
11:00 |
IhrFussel |
Krock, is it safe to delete mapblocks with only "ignore" ? |
11:00 |
Krock |
lol. ignore shouldn't even be generated |
11:01 |
Krock |
well, yes. I think |
11:02 |
IhrFussel |
Krock, maybe the mapblock has to contain at least 1 node to store objects in it? |
11:02 |
Krock |
dunno how objects are stored so I can't tell :/ |
11:03 |
Krock |
usually they get inactive before they reach ungenerated area |
11:04 |
IhrFussel |
Krock, here is one full output of such a mapblock http://pastebin.com/4C09bqJB |
11:04 |
Krock |
hmm. it says it was generated |
11:05 |
Krock |
strange |
11:16 |
IhrFussel |
Well I deleted all mapblocks with only 1 node "air" or "ignore" ... total was over 500 |
11:23 |
|
lumidify joined #minetest |
11:24 |
|
PjotrOrial joined #minetest |
11:24 |
|
PjotrOrial joined #minetest |
11:30 |
|
T4im joined #minetest |
11:30 |
|
PjotrOrial joined #minetest |
11:31 |
|
AcidNinjaFWHR joined #minetest |
11:39 |
Megaf |
IhrFussel: whats the size difference now? |
11:41 |
IhrFussel |
Megaf, old size 2744833024 , new size 2744833024 |
11:42 |
IhrFussel |
Oops |
11:42 |
IhrFussel |
xD |
11:42 |
Krock |
delta size = 0 |
11:42 |
IhrFussel |
Wait..seems like the size didn't change at all |
11:43 |
Megaf |
dat delta |
11:44 |
Megaf |
i wonder if clearobjects change the size at all |
11:44 |
IhrFussel |
How is that possible? I deleted at least several MBs of blocks |
11:47 |
Megaf |
Mysteries of life |
11:48 |
IhrFussel |
Megaf, I found the reason "The size of a SQLite database file does not necessarily shrink when records are deleted. If auto_vacuum is not enabled, it will never shrink unless you perform a vacuum operation on it." |
11:48 |
Megaf |
Yep |
11:49 |
Krock |
like fragmentation |
11:49 |
Megaf |
On my db vacuum will only reduce the size in 100 MB or so, so I don't even bother |
11:50 |
IhrFussel |
Krock, so did I fragment my map file now and its performance is worse? |
11:50 |
Krock |
oh yes, it will lag horribly :P |
11:50 |
Megaf |
Not necessarily IhrFussel |
11:50 |
Krock |
no, this is a common situation in a database and the guys from sqlite surely had to do with that problem |
11:50 |
Megaf |
But if you can shutdown the server, then sqlite3 map.sqlite vacuum do it |
11:52 |
|
SylvieLorxu joined #minetest |
11:53 |
IhrFussel |
Vacuuming the DB defragments it again? |
11:53 |
Krock |
yeah |
11:54 |
Krock |
well, at least it removes the blank places in the database |
11:55 |
IhrFussel |
Krock, vacuuming is the same as "shrinking" or something else? Cause I read shrinking damages the DB file when used too much |
11:56 |
Krock |
uh |
11:56 |
Krock |
no idea |
11:56 |
Out`Of`Control |
how do you vacuum? |
11:57 |
Megaf |
Out`Of`Control: I wrote it a couple of lines up |
11:57 |
Megaf |
Go back 5 minutes |
11:57 |
Megaf |
Or 6 |
11:57 |
|
PjotrOrial joined #minetest |
11:57 |
|
PjotrOrial joined #minetest |
11:57 |
|
everamzah joined #minetest |
11:58 |
Megaf |
Oo |
11:58 |
Krock |
IhrFussel, select the table you want to vacuum and use "VACUUM table_name;", that's all |
12:00 |
Volkj |
if a db is vacuumed a reindex is needed? |
12:00 |
Volkj |
on firefox it was used like "sqlite3 database.sqlite VACUUM; sqlite3 database.sqlite REINDEX" |
12:00 |
Krock |
reindex? the index is used as position |
12:01 |
Krock |
so you would destroy the coordinate system |
12:01 |
Volkj |
my bad, reindex of the sqlite database |
12:08 |
Volkj |
tried the vacuum & reindex couple on a new singleplayer game, mapfile was reduced in filesize of some KBs (5100 > 4900) after a vacuum, no sign of map damages |
12:09 |
Megaf |
Hm, I had never reindexed my map, wonder if it would make any difference at all. |
12:15 |
|
Grandolf joined #minetest |
12:19 |
Hirato_ |
depends a lot of how you use it, or format the queries for that matter |
12:20 |
Hirato_ |
but basically that stuff is to fix up the indexes so they're not as fragmented |
12:20 |
Hirato_ |
in theory it's faster, but in practice that's not really the case, however it does decrease the size by quite a considerable margin if it's really fragmented |
12:21 |
Volkj |
does it acts like a defrag to minimize access to the map file? |
12:21 |
Hirato_ |
well, depends how sqlite works |
12:22 |
Hirato_ |
normally the indexes and stuff tend to get cached in memory once queried and stay there |
12:27 |
|
xunto joined #minetest |
12:47 |
|
proller joined #minetest |
13:03 |
|
Elench joined #minetest |
13:08 |
deva |
Is it possible to locate a block (specifically its position) in the world by its name? |
13:08 |
Krock |
I think you mean "node", a 1x1x1m big cube |
13:09 |
Krock |
yes, you can do an ABM on it (active block modifier), so it gets the specified nodes after a specific time |
13:10 |
Krock |
there's also a function like minetest.find_nodes_in_area(p1, p2) - simply look up the lua_api.txt file |
13:10 |
deva |
Aah, yes, that seems to be what I want :-) |
13:12 |
agaran |
Krock: seen 'valley' generator? |
13:17 |
Krock |
agaran, uhm not yet |
13:18 |
agaran |
very interesting.. |
13:18 |
Krock |
unless you mean the valleys mg |
13:18 |
agaran |
valleys mg yes |
13:18 |
Krock |
oh yes, it generates a great landscape |
13:18 |
|
Jordach joined #minetest |
13:23 |
|
basxto joined #minetest |
13:35 |
|
est31 joined #minetest |
13:48 |
|
hmmmm joined #minetest |
13:58 |
|
LNJ2GO left #minetest |
14:00 |
|
jojoa1997 joined #minetest |
14:48 |
|
Trustable joined #minetest |
14:52 |
|
HonoredGlory joined #minetest |
15:00 |
|
Tmanyo joined #minetest |
15:02 |
|
Taoki joined #minetest |
15:02 |
|
Void7 joined #minetest |
15:05 |
|
KaadmY joined #minetest |
15:08 |
deva |
I s there a way to store a persisted value with a player? |
15:09 |
deva |
Think: "store the positions of all player-locked checsts in a game" |
15:10 |
deva |
Theoretically the minetest.find_nodes_in_area works for me, but the area I'm looking at is much larger than the function can handle within reasonable time |
15:10 |
deva |
So I would like to store the block positions with the player object as they are added to the world |
15:11 |
deva |
... which works while playin, but when I log out and back in the list is empty... |
15:15 |
|
rubenwardy joined #minetest |
15:19 |
|
GunshipPenguin joined #minetest |
15:20 |
IhrFussel |
deva, AFAIK the only way is a file |
15:21 |
deva |
IhrFussel, A server-side store file? |
15:21 |
IhrFussel |
Yes, for example the areas mod uses that to store all protected areas on the map |
15:22 |
deva |
Sounds like it could be a solution |
15:22 |
IhrFussel |
!mod areas |
15:22 |
MinetestBot |
IhrFussel: Advanced area protection [areas] by ShadowNinja - https://forum.minetest.net/viewtopic.php?t=7239 |
15:22 |
IhrFussel |
Maybe you can use some of its code |
15:23 |
deva |
Looks like it yes :-) |
15:23 |
deva |
Thanks a lot |
15:26 |
Megaf |
IhrFussel: so, I just vacuumed and reindexed my servers map.sqlite. |
15:27 |
Megaf |
size before vacuum. 4453740. After vacuum 4324116. In KB |
15:27 |
Megaf |
reindex didnt affect db size |
15:27 |
Megaf |
!mod green_screen |
15:27 |
MinetestBot |
Megaf: Green screen [green_screen] by Megaf - https://forum.minetest.net/viewtopic.php?t=9494 |
15:27 |
Megaf |
:) |
15:28 |
Megaf |
129.6 MB smaller |
15:33 |
IhrFussel |
Megaf, awesome, I will vacuum mine later too...how long did it take? |
15:37 |
Megaf |
hm, around one hour maybe |
15:37 |
Megaf |
max |
15:38 |
Megaf |
reindex was much quicker |
15:38 |
Megaf |
IhrFussel: Actually I have no idea, 30 minutes maybe |
15:39 |
Megaf |
it depends on your CPU moslty |
15:39 |
|
FirePowi joined #minetest |
15:40 |
|
whitephoenix joined #minetest |
15:42 |
Megaf |
!server Megaf |
15:42 |
MinetestBot |
Megaf: Megaf Server v4.0 | mt.megaf.info:30003 | Clients: 0/20, 0/0 | Version: 0.4.14-Megaf / MegafXploreNext | Ping: 7ms |
15:42 |
Megaf |
server is back, with db vacuumed |
15:43 |
|
namach joined #minetest |
15:46 |
|
Volkj joined #minetest |
15:47 |
|
Fixer joined #minetest |
15:49 |
Volkj |
Megaf: do the vacuum makes the game less laggy? |
15:49 |
Megaf |
Volkj: I have no idea. I don't have Minetest here at the moment, will let you know after I get it and join the server |
15:50 |
agaran |
good afternoon |
15:50 |
|
MrBeNNy joined #minetest |
15:51 |
Megaf |
good afternoon agaran |
15:52 |
|
edaq joined #minetest |
15:54 |
|
halt_ joined #minetest |
15:55 |
Volkj |
Megaf: thank you. Playing on a server that got some serious lag spikes (10s of seconds, iirc ~120 seconds max) and wondering if "fragmented" map files, or ones with corrupted data, may be a source of that lag |
15:57 |
|
Hawk777 joined #minetest |
15:58 |
Megaf |
sometimes minetest admins just dont know what they are doing... They just get minetest from a prebuilt package and throw a lot of mods on it hoping it will run gracefully well |
15:58 |
Megaf |
Volkj: ^ |
15:59 |
Volkj |
problem was that lag was low with .13, starting to grow since the server was updated to .14 |
15:59 |
agaran |
Volkj: yesterday sfan5 discovered that sometimes certain mods leave lots of metadata even after node was removed.. that causes some issues (at least on IhrFussel's server to my knowledge) |
16:00 |
Megaf |
sometimes server lag spikes when it is saving the map to disk. Decreasing the save to disk interval might help |
16:00 |
sfan5 |
nope not certain mods |
16:00 |
sfan5 |
it just happens |
16:00 |
sfan5 |
no mods involved |
16:00 |
sfan5 |
the lots of metadata issue was with craftguide and the nodes were still there |
16:00 |
agaran |
sfan5: so not only leftovers? |
16:01 |
sfan5 |
the issue i reported on minetest/minetest is not leftovers, it's simply a bug |
16:01 |
Megaf |
I don't fully understand what you meant by empty inventories in mapblocks |
16:01 |
Megaf |
where these inventories came from? |
16:01 |
sfan5 |
the other thing is: craftguide nodes take 32k bytes of metadata space |
16:02 |
sfan5 |
Megaf: tl;dr useless data in mapblocks |
16:02 |
agaran |
so better to not have that one.. |
16:02 |
Megaf |
15,01You have no choice, It's believed it was a bug. Not sure if the bug still present or not. |
16:03 |
Megaf |
bold on black rocks |
16:05 |
Volkj |
could be unified_inventory linked to the metadata issue? |
16:05 |
sfan5 |
no |
16:05 |
everamzah |
i always assumed minetest.remove_node(pos) cleared metadata :$ |
16:06 |
Megaf |
if it doesn't that's clearly a bug |
16:06 |
sfan5 |
i'm pretty sure it does that too |
16:07 |
everamzah |
oh, so it's different if it's dug? |
16:07 |
sfan5 |
??? |
16:08 |
Megaf |
!server Megaf |
16:08 |
MinetestBot |
Megaf: Megaf Server v4.0 | mt.megaf.info:30003 | Clients: 0/20, 0/0 | Version: 0.4.14-Megaf / MegafXploreNext | Ping: 7ms |
16:08 |
Megaf |
Volkj: joining my server to check lag and stuff |
16:08 |
|
STHGOM joined #minetest |
16:08 |
|
STHGOM joined #minetest |
16:10 |
Megaf |
ok, something is very wrong with my db after vacuum and reindex |
16:10 |
Volkj |
it corrupted? |
16:11 |
Megaf |
<ERROR> 2016-09-11 13:10:55: [Server] Item "mesecons:wire_11100000_off" not defined |
16:11 |
Megaf |
and some nodes had been rotated |
16:12 |
rubenwardy |
does minetest.set_node(pos, { name = "air" }) remove metadata? |
16:13 |
everamzah |
or is it that pre-existent air nodes are getting inventories attached to them? (happy to add to the confusion.) |
16:13 |
Megaf |
ok, wires fixed |
16:18 |
IhrFussel |
Now I found another mapblock "Compressed map metadata (2607 bytes, 31410 bytes uncompressed)" ... it only contains 1 dirt node and 1 dirt_with_grass node |
16:19 |
IhrFussel |
31k meta doesn't sound correct |
16:21 |
IhrFussel |
77k meta in block with 0 objects, 1 air and 1 wool:pink |
16:22 |
IhrFussel |
And lots of those...some have wool:cyan instead of wool:pink |
16:23 |
agaran |
sfan5: wild guess, could be that when node is loaded and has no metadata sometimes it gets previously-existing metadata from uncleared memory then write, seeing valid meta writes it? |
16:28 |
IhrFussel |
287 mapblocks with the exact node count of 2, all of them have the same size I think and many of them have no flags, some have "day_night_differs" |
16:30 |
|
Void7 joined #minetest |
16:30 |
IhrFussel |
Another example: Mapblock with dirt,dirt_with_grass,wool:white, 0 objects 39k meta |
16:31 |
|
MrIbby joined #minetest |
16:31 |
IhrFussel |
air,wool:cyan,wool:pink, 0 objects, 77k meta |
16:32 |
|
Yst joined #minetest |
16:33 |
IhrFussel |
air,moreblocks:clean_glass,default:aspen_wood, 0 objects 60k meta |
16:34 |
IhrFussel |
air,default:stone,building_blocks:Marble, 0 objects, 78k meta |
16:36 |
IhrFussel |
I could flood the chatroom with DOZENS of those, but the node count can have ANY amount with 0 objects and have >50k meta |
16:39 |
sfan5 |
agaran: we don't do manual memory management, this can't happen |
16:39 |
sfan5 |
everamzah: inventories are not the problem |
16:39 |
agaran |
sfan5: ok, I use/know only C, not sure if C++ constructors clear mem on creation or not.. |
16:39 |
sfan5 |
i just said inventories because i didn't understand the meta serialisation format yet |
16:39 |
sfan5 |
no it's not even that |
16:40 |
sfan5 |
C++ container are always empty when you create them |
16:40 |
sfan5 |
there is no way around that |
16:40 |
agaran |
good, I use(d) pure C on bare-metal.. no memory protection...no kernel nothing.. so bit different perspective.. |
16:42 |
agaran |
IhrFussel: did you ever encounter MapBlock::deSerialize(): Ignoring an error in log? |
16:42 |
IhrFussel |
Even a mapblock with 8 general nodes (air,default) has 36k meta |
16:42 |
IhrFussel |
I can check for that |
16:44 |
IhrFussel |
agaran, are you sure the engine logs those errors without --verbose and --info? |
16:44 |
agaran |
hmm, no.. |
16:45 |
agaran |
this will go in warning stream |
16:45 |
agaran |
if happens |
16:45 |
IhrFussel |
Warning stream gets logged |
16:46 |
agaran |
and if you did not get that, it is good.. no errors is always good |
16:46 |
IhrFussel |
agaran, grep is still running |
16:47 |
IhrFussel |
Nope no results "grep -E "MapBlock::" .minetest/debug.txt" |
16:49 |
IhrFussel |
Most recent warning was this "2016-09-11 15:41:20: WARNING[Server]: active block modifiers took 367ms (longer than 200ms)" |
16:50 |
IhrFussel |
But that problem is most likely connected to the meta data problem |
16:56 |
Megaf |
agaran: How hard would it be making minetest a baremetal application? |
16:56 |
agaran |
Megaf: too hard if you ask me |
16:57 |
Megaf |
even removing all network stack and using framebuffer instead of OpenGL? |
16:57 |
agaran |
Megaf: you would need to port/provide a lot of stuff it uses |
16:57 |
Megaf |
framebuffer is kinda standard |
16:57 |
agaran |
still you need something to render data.. |
16:58 |
agaran |
bare metal means you have no os that initializes stuff for you, nothing that provides you keypress event etc... |
16:58 |
agaran |
it is doable but I doubt if it makes sense.. |
16:58 |
Megaf |
I know what baremetal means :) It's worse than DOS applications |
16:58 |
agaran |
bare metal for small things, like sensors, embeded controllers for psu/smps/charger.. |
16:58 |
agaran |
DOS wasn't even half bare.. |
16:58 |
agaran |
you had bios interrupts and dos interrupts.. |
16:59 |
Megaf |
oh, by baremetal you mean not even BIOS? |
16:59 |
agaran |
I was writing stuff using debug.exe in asm when i was youngster.. |
16:59 |
agaran |
you have no bios on ARM.. bios is x86/pc specific.. |
16:59 |
agaran |
on sun hardware you have prom, but it is not same.. |
16:59 |
Megaf |
yup |
17:00 |
agaran |
and by bare metal I mean something that has nothing like that.. either cortex M3/M4 arm, or avr8/mcs51.. |
17:00 |
Megaf |
sfan5: IhrFussel: just opened a block at random in sqlitebrowser. There's "ignore" written on it |
17:01 |
Megaf |
ok, so minetest baremetal is definnetally doable. It will just take a lot of time |
17:01 |
IhrFussel |
Megaf, I had those only ignore node blocks too with lots of meta...I just delete them |
17:02 |
Megaf |
75 bytes in this block |
17:05 |
IhrFussel |
Megaf, are you using sfan5's parse-mapblock.py script? |
17:06 |
|
lumidify joined #minetest |
17:06 |
Megaf |
nope, I'm reading the db directly |
17:07 |
IhrFussel |
https://gist.github.com/sfan5/52917a0e1338bcda2176edbc416dae60 take a look |
17:08 |
IhrFussel |
It lists large mapblocks nicely together with position at top and object count, node size, meta size, node count, node type, node timers |
17:14 |
IhrFussel |
agaran, I deleted 600+ mapblocks from the DB this morning now I found 324 more with lots of meta |
17:16 |
agaran |
hmm do you have list of positions you deleted to compare if any of them got again overloaded with meta? |
17:20 |
IhrFussel |
agaran, that can't happen cause I delete the entire block, if it happens again it's not about the mapblock position |
17:20 |
agaran |
ok what I wanted to know if same mapblocks happen to get overloaded (thus current version causes that), or that are old blocks which are big or grow big |
17:22 |
IhrFussel |
I wanted to check the timestamp of such a mapblock "So 3. Mai 20:14:51 CET 1970" |
17:22 |
IhrFussel |
Sunday May 3 1970...that's weird |
17:22 |
agaran |
thats some hours after start of epoch, I did not know that minetest was working since then ;) |
17:22 |
|
srifqi joined #minetest |
17:26 |
IhrFussel |
agaran, epoch started in Jan not May xP |
17:26 |
agaran |
oh, minor detail so few hours and some months |
17:29 |
IhrFussel |
Do all mapblocks start at epoch time? |
17:30 |
IhrFussel |
Or maybe the timestamp is not even unix time? |
17:31 |
|
lordfingle joined #minetest |
17:35 |
sfan5 |
no the timestamp is not unix time |
17:36 |
IhrFussel |
Guys how am I supposed to delete all the mapblocks that contain >50k meta but only have regular nodes with no meta attached... sfan5 whats the format? |
17:36 |
sfan5 |
that's more complicated |
17:36 |
sfan5 |
i don't have time to help with anything now anyway |
18:03 |
IhrFussel |
agaran, this is a pure nightmare...I'm at 8 nodes with >50k meta now...I'm guessing even many blocks with 10 or more default nodes contain that much |
18:14 |
|
LNJ2GO joined #minetest |
18:21 |
|
Markow joined #minetest |
18:27 |
agaran |
IhrFussel: hmm, what worries me most is how they happen to occur, |
18:40 |
|
srifqi joined #minetest |
18:40 |
|
Jordach joined #minetest |
18:40 |
srifqi |
hi Jordach |
18:41 |
Megaf |
hey jojoa1997 |
18:41 |
Megaf |
Jordach: |
18:41 |
Jordach |
meow |
18:44 |
|
Szkodnix joined #minetest |
18:48 |
Megaf |
!server Megaf |
18:48 |
MinetestBot |
Megaf: Megaf Server v4.0 | mt.megaf.info:30003 | Clients: 0/20, 0/1 | Version: 0.4.14-Megaf / MegafXploreNext | Ping: 7ms |
18:49 |
jojoa1997 |
hmpf Megaf pinging me |
18:50 |
srifqi |
!ping Xanadu |
18:54 |
Megaf |
jojoa1997: yep |
18:54 |
Megaf |
did it again |
18:54 |
|
AcidNinjaFWHR joined #minetest |
18:54 |
Megaf |
how are you? |
18:54 |
Megaf |
dat IPv6 |
18:56 |
aix |
https://i.aix.ovh/60285.png |
18:59 |
|
DMackey- joined #minetest |
19:01 |
Megaf |
lol aix |
19:07 |
|
est31 joined #minetest |
19:09 |
Fixer |
added new moreblocks buug https://github.com/minetest-mods/moreblocks/issues/55 |
19:10 |
aix |
yay |
19:10 |
aix |
bugs are fun |
19:11 |
Fixer |
fix is simple |
19:15 |
|
fling joined #minetest |
19:15 |
|
fling joined #minetest |
19:16 |
|
torgdor joined #minetest |
19:17 |
|
Darcidride joined #minetest |
19:17 |
IhrFussel |
!server IhrFussel |
19:17 |
MinetestBot |
IhrFussel: IhrFussel's Server | 81.169.215.250:25000 | Clients: 17/35, 8/17 | Version: 0.4.14-dev / minetest | Ping: 15ms |
19:20 |
Megaf |
https://www.youtube.com/watch?v=e5lcETwAItA |
19:20 |
Megaf |
!title |
19:20 |
MinetestBot |
Megaf: Ghostbusters (8 Bit Remix Cover Version) [Tribute to Ray Parker, Jr.] - 8 Bit Universe - YouTube |
19:21 |
|
PseudoNoob joined #minetest |
19:21 |
|
Jordach joined #minetest |
19:22 |
Megaf |
ヾ(âŒâ– _â– )ノ♪ |
19:22 |
Megaf |
♪(┌・。・)┌ |
19:22 |
Megaf |
ヾ( Í° ͜ʖ͡°)ノ♪ |
19:22 |
Megaf |
ヾ(-_- )ゞ |
19:22 |
Megaf |
Ok, I stopped |
19:23 |
Megaf |
http://japaneseemoticons.me/dancing-emoticons/ |
19:23 |
Megaf |
!title |
19:23 |
MinetestBot |
ConnectionResetError: [Errno 104] Connection reset by peer (file "/usr/lib/python3.4/socket.py", line 374, in readinto) |
19:23 |
Megaf |
!title |
19:23 |
MinetestBot |
Megaf: Dancing Japanese Emoticons | Kaomoji, Emoji & Dongers |
19:23 |
|
Void7 joined #minetest |
19:23 |
Megaf |
I think this one is better https://www.youtube.com/watch?v=PChnIc6Twik |
19:35 |
|
Dolus joined #minetest |
19:36 |
|
rubenwardy joined #minetest |
19:37 |
|
swift110 joined #minetest |
19:37 |
|
swift110 joined #minetest |
19:48 |
agaran |
I wish that lua had 'next' like in perl for loops.. |
19:48 |
|
LNJ2GO left #minetest |
19:52 |
rubenwardy |
like "continue" |
19:57 |
agaran |
well.. perhaps? |
19:58 |
Fixer |
rubenwardy: you here? |
19:58 |
rubenwardy |
yes |
19:58 |
Fixer |
rubenwardy: i have one problem with awards mod |
19:58 |
rubenwardy |
oh noes |
19:59 |
Fixer |
rubenwardy: iirc when F5 debug text is on, awards appear somewhat behind that text (obscured a little) |
20:00 |
agaran |
rubenwardy: awards is awesome.. I was testing mapgens.. and enabled awards.. it is simply awesome, just way to keep anouncements visible bit longer could be neat, plus removing/disabling ones that are not possible (no pvp/no damage, you can't stack bones) |
20:03 |
agaran |
rubenwardy: so 'continue' does exist? I just want to avoid if (a)... <do some prep> if b... again next steps if (c).. and so on |
20:03 |
rubenwardy |
no, lua doesn't do continue |
20:03 |
agaran |
meh, so nested if's have to stay |
20:03 |
rubenwardy |
http://stackoverflow.com/questions/3524970/why-does-lua-have-no-continue-statement |
20:04 |
Hijiri |
you could do something sort of like continue with coroutines, but it would be verbose |
20:04 |
Hijiri |
also it might be too expensive if it's a hotpath |
20:05 |
agaran |
do break end seems interesting.. |
20:05 |
rubenwardy |
that's hacky |
20:05 |
rubenwardy |
but then again it's lua |
20:05 |
rubenwardy |
awards currently show for 3 seconds, agaran: https://github.com/minetest-mods/awards/blob/master/api.lua#L319 |
20:05 |
agaran |
well this piece of code it is repeated some hundred times when network is scanned, so I wouldn't want it to be too slow |
20:06 |
agaran |
rubenwardy: yes.. first time I notice blink only and was 'wtf' as I forgot it is awards enabled.. ;) |
20:06 |
agaran |
well I just did git pull..;) |
20:08 |
agaran |
and it will be probably optional dependency for my thing.. I can imagine quite a few awards related to building industry stuff.. |
20:09 |
rubenwardy |
"This is a common complaint. The Lua authors felt that continue was only one of a number of possible new control flow mechanisms (" |
20:09 |
|
Jordach joined #minetest |
20:09 |
agaran |
well I understand that.. |
20:10 |
agaran |
but if I have some prereq which I can check before doing more expensive computation.. then I want to do so |
20:10 |
agaran |
(like table/hash looped lookups etc) |
20:10 |
agaran |
and nested ifs decrease readability in this case but I can live with that |
20:16 |
|
MrIbby joined #minetest |
20:18 |
Hijiri |
they could have added call/cc |
20:18 |
Hijiri |
tfw no scheme API |
20:20 |
Hijiri |
though with call/cc you need other messy stuff like dynamic wind |
20:24 |
|
kruug joined #minetest |
20:24 |
kruug |
So, I know there isn't an "on_point" function...what would be the best way to register that the player is pointing at a node? |
20:26 |
|
ptv joined #minetest |
20:26 |
Hijiri |
there isn't a good way right now, I think there are a couple PRs that introduce a raycasting function like used by the client |
20:27 |
Hijiri |
once that gets in you could check every step where the client is pointing, though that might be expensive if you are casting far |
20:27 |
Hijiri |
if we get client-side scripting a pointing thing would probably go there |
20:28 |
|
tztz joined #minetest |
20:28 |
Hijiri |
I mean, if you wrote the raycast every step thing it would go in there |
20:28 |
Hijiri |
that way you don't have to calculate for all players on the server, the client script can just send point events (something defined by the mod) to the server |
20:28 |
|
PseudoNoob joined #minetest |
20:29 |
rubenwardy |
!g https://youtu.be/L967yXhh3NU |
20:29 |
kruug |
Yeah, it would be client-side |
20:29 |
MinetestBot |
rubenwardy: Problem getting data from Google. |
20:29 |
rubenwardy |
"Top down multiplayer shooter sandbox" |
20:30 |
kruug |
Hmmm...yeah, I wouldn't have any idea where to start with raycasting... |
20:31 |
agaran |
kruug: technic has -some- code working like raycasting but I don't know how good it is, or how well it works, just remember that I saw it while I was reading/glancing thru code |
20:32 |
|
PseudoNoob joined #minetest |
20:36 |
Hijiri |
well it should be possible to raycast correctly completely in lua, but it might be slow since if there are a lot of entities you may have to do a lot of lua<->C++ switches getting the collisionboxes of them. Not to mention reading the map. |
20:37 |
Hijiri |
selectionboxes I mean |
20:37 |
Hijiri |
actually looks like objects don't have a separate selection_box |
20:39 |
|
everamzah joined #minetest |
20:40 |
everamzah |
https://github.com/minetest/minetest/blob/master/src/game.cpp#L3315 Does this mean mobile minetest has aux1 afterall? (as long as their fast mode is toggled on?) |
20:43 |
rubenwardy |
everamzah, it means that the E (aux1) button is always down when in fast mode |
20:43 |
rubenwardy |
so you are always running |
20:43 |
rubenwardy |
android does have aux1, you just can't press it due to no keyboard |
20:52 |
|
MrIbby joined #minetest |
20:53 |
|
redblade joined #minetest |
20:54 |
|
lordfingle joined #minetest |
21:38 |
|
swift110 joined #minetest |
21:38 |
|
swift110 joined #minetest |
21:44 |
Chinchou |
rubenwardy, there actually are some devices with a hardware keyboard(mine has one), but they're extremely rare |
21:59 |
|
alkotob joined #minetest |
22:15 |
nolsen |
Hardware keyboards are the best android keyboards. |
22:15 |
Fixer |
hehe |
22:16 |
T4im |
shouldn't people just be able to connect a standard keyboard to the android phones usb port? (with a usb converter of course) |
22:16 |
Jordach |
yeeep |
22:16 |
Jordach |
my old tablet had a kb extension |
22:16 |
Jordach |
which could be used with very old MT builds |
22:16 |
Fixer |
dunno |
22:17 |
Fixer |
better buy a normal PC |
22:17 |
* T4im |
finds the thought amusing though of people playing minetest on their phones with actual keyboards attached |
22:17 |
Fixer |
yeah |
22:18 |
T4im |
certainly will get you some look in a in a café or tram |
22:18 |
Fixer |
it is like removing your teeth via ***l way |
22:18 |
|
PsychoVision joined #minetest |
22:23 |
Chinchou |
I hate android(and similar) for other reasons |
22:23 |
Chinchou |
rather just use a laptop, carrying them in a bag isn't difficult. |
22:23 |
Chinchou |
I am curious how MT will play on the Pyra once I have mine... |
22:25 |
Chinchou |
For that matter, I am now imagining someone playing FlightgearFS on a Pyra. The thought is strangely amusing to me. |
22:55 |
Fixer |
Chinchou: https://en.wikipedia.org/wiki/Masochism |
22:56 |
Chinchou |
Fixer: For? FGFS? I'm well aware that it won't work well. Why do you think I'm amused? |
22:59 |
Chinchou |
I'm now imagining someone carrying around a flight yoke... |
22:59 |
* Chinchou |
snorts |
23:48 |
|
MrIbby joined #minetest |
23:59 |
|
PsychoVision joined #minetest |