Time Nick Message 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: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:56 Hijiri to solve 07:56 Hijiri sorry, didn't mean to hit enter 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: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: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 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: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 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:27 Krock 300 aren't that many 09:28 IhrFussel Krock, well more than /deleteblocks here :P 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 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: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 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: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: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: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: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: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: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 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 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: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: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: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:51 Megaf good afternoon agaran 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: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:10 Megaf ok, something is very wrong with my db after vacuum and reindex 16:10 Volkj it corrupted? 16:11 Megaf 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 IhrFussel Another example: Mapblock with dirt,dirt_with_grass,wool:white, 0 objects 39k meta 16:31 IhrFussel air,wool:cyan,wool:pink, 0 objects, 77k meta 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 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: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: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:27 agaran IhrFussel: hmm, what worries me most is how they happen to occur, 18:40 srifqi hi Jordach 18:41 Megaf hey jojoa1997 18:41 Megaf Jordach: 18:41 Jordach meow 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 Megaf how are you? 18:54 Megaf dat IPv6 18:56 aix https://i.aix.ovh/60285.png 19:01 Megaf lol aix 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: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: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 Megaf I think this one is better https://www.youtube.com/watch?v=PChnIc6Twik 19:48 agaran I wish that lua had 'next' like in perl for loops.. 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)... 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 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: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 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 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 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: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: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: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 21:44 Chinchou rubenwardy, there actually are some devices with a hardware keyboard(mine has one), but they're extremely rare 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: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