Minetest logo

IRC log for #minetest-hub, 2017-04-11

| Channels | #minetest-hub index | Today | | Google Search | Plaintext

All times shown according to UTC.

Time Nick Message
00:00 Shara hah
00:00 Shara though it does make it kinda hard for me to use anything :P
00:01 Shara mostly intrested in the beds
00:01 Jordach Shara, my plan is to have a singular game server
00:01 benrob0329 BSD 4 clause, obviously
00:01 Jordach (aka an offical thing)
00:01 Shara I need nice beds for something.
00:01 Jordach Shara, unlucky
00:01 Jordach it needs that custom player model
00:01 Shara hmm
00:02 Shara might not even matter for what I'm thinking of
00:02 Shara not all beds are for sleeping in!
00:04 benrob0329 > Tabs
00:04 benrob0329 TRIGGERED
00:04 Jordach tabs can be converted into spaces by any fucking editor
00:04 Jordach the tab key comes from the typewriters tabulator key
00:04 Jordach for exactly that goddamn purpose
00:45 Jordach i want to revisit the late 80s to early 90s
00:45 Jordach (specifically 87->94)
00:45 Jordach scratch 87, make it 84
00:47 paramat i was there :] the space LEGO was excellent then
00:47 Jordach paramat, more specifically
00:47 Jordach the rise and death of analog before digital madness
00:50 Jordach paramat, there's just something *magical* about cassettes
00:50 Jordach my phone's digital music playback just drives me mad
00:51 Jordach it's the "flat" and "monotone" sound these modern phones produce
00:56 Jordach paramat, https://www.youtube.com/watch?v=fT4lDU-QLUY
00:56 Jordach just feels magical
00:56 Jordach and remarkably peaceful
01:00 paramat yes i loved cassettes, didn't really do records
01:00 Jordach paramat, got a collection of these marvels in restored condition
01:02 Jordach what makes that video special
01:02 Jordach it's before doom on DOS
01:02 Jordach before win 9x
01:03 Jordach before even modern dialup systems
02:25 Sokomine hmm. perhaps i ought to ask if trees_lib can be added to minetest-mods. it's a lib, not many screenshots, and people intrested will currently never find it, and adjustments to changes in mtg also ought to be considered
02:34 sniper338 joined #minetest-hub
02:39 sofar Sokomine: url?
02:39 sofar nvm
02:47 Sokomine found it? i mentionned it in a recent post
02:49 sofar google fu
02:49 Sokomine the purpose of the lib is to add all that belongs to trees *except* spawning. it's basicly a complex register function that accepts schematics, l-system and functions for tree growth. node registration and sapling growth are handled. could probably use some adjustments to more recent mt. and maybe i ought to add a more basic example
02:49 Sokomine :-)
02:50 Sokomine in the end it's a lib, and those tend to be useful only if they're available and installed
02:50 sofar don't see a license
02:51 sofar other then that, we can put it in minetest-mods :)
02:51 sofar slap MIT on it and transfer?
02:51 sofar afk a bit
02:51 Sokomine let me check where the sample code came from...but afaik that was mostly mtg
02:55 * benrob0329 pops in
02:55 benrob0329 Isc License.
02:55 * benrob0329 pops out
02:56 Sokomine i usually use gplv3.0. maybe unpractical for a lib? the example code is partly taken from duanes valles mapgen, vanessaes moretrees and mgv6
03:10 mogeid joined #minetest-hub
03:18 Sokomine what would be the best liscence in this case? probably lgpl? mtg seems to use that...
03:20 sofar lgpl-2.1 is best for mtg compat
03:20 sofar mit is second best
03:20 sofar same reason
03:21 mogeid joined #minetest-hub
03:50 sofar https://gist.github.com/sofar/b3244ce728a907c6a442fcf7cd050985
03:50 sofar just for the heck of it
03:51 sofar oh, was meant for -dev
04:03 nore https://github.com/minetest/minetest_game/pull/1696 to follow with this afternoon's argument, this should make everyone happy :)
04:16 benrob0329 github dark theme is great when you have a headache
04:18 paramat joined #minetest-hub
04:18 benrob0329 hi paramat
04:23 paramat full moon O_O and full jupiter right next to it
04:24 benrob0329 nice
04:33 sofar the moon is fantastic tonight
04:33 sofar I might pull out my tripod and 7x15s
05:18 octacian_ joined #minetest-hub
05:22 nore hey all
05:22 nore need input on this: https://github.com/minetest/minetest_game/pull/1696
05:23 nore one important change if this is merged is that TNT & fire will be *enabled* by default even for multiplayer; however if will be trivial to disable them (can be done in-game with the config tab)
05:33 nerzhul joined #minetest-hub
05:38 benrob0329 +1
05:45 benrob0329 sofar: I would reply to the creation vs evolution thread, but I'm just too tired
05:47 sofar hahaha
05:50 benrob0329 Ah screw it, I replied anyways
05:57 lumidify joined #minetest-hub
06:00 octacian joined #minetest-hub
06:18 Megaf_ joined #minetest-hub
06:19 benrob0329 Gnight all
06:30 CWz joined #minetest-hub
06:38 octacian Night all
06:44 nore night
07:50 nrzkt joined #minetest-hub
08:06 Zeno` is there nothing with can do about the current warnings?
08:06 Zeno` s/with/we
08:06 Zeno` oops wrong channel
08:17 sniper338 joined #minetest-hub
08:23 Krock joined #minetest-hub
08:50 Shara Morning all
08:51 Krock moin Shara
08:51 Krock how are you?
08:52 Amaz Moring Shara :)
08:52 Shara Not bad thanks.
10:06 Darcidride joined #minetest-hub
10:27 Fixer joined #minetest-hub
10:32 Jordach joined #minetest-hub
10:46 red-001 #minetest is pretty confusing right now
10:47 nerzhul why ?
10:49 red-001 way too many accronyms
11:02 VanessaE question, in a furnace that's active, if the fuel slot is empty but the furnace is still burning from the last lump of whatever, is it normal that inv:room_for_item() should return false when you check that slot?
11:02 VanessaE or rather, it always returns false in that case.  is there a way around this?
11:06 sniper570 joined #minetest-hub
11:15 Megaf joined #minetest-hub
11:16 Krock VanessaE, room_for_item() does not take regard on the type of node or its functionality
11:17 VanessaE I know. just talking about that particular corner-case
11:17 VanessaE to the eye, the slot is empty, but room_for_item() disagrees
11:17 Krock wrong list name, index or stack to put in?
11:17 VanessaE nope, it's all correct as far as I can tell
11:18 Krock hmm
11:19 VanessaE https://github.com/minetest-mods/technic/blob/master/technic/machines/register/generator.lua#L5
11:19 VanessaE here's a practical example
11:19 VanessaE (assume splitstacks != 1 for the sake of this code)
11:20 Zeno` is the leak still happening VanessaE?
11:20 VanessaE as long as the furnace is totally idle, room_for_item() returns true regardless of the stack size
11:20 Krock but there you put the stuff into the list "src"
11:20 Zeno` I tried to download twice last night but both times failed
11:20 VanessaE Zeno`: yes, and still not sure of the cause, only that I can reproduce it on-demand.
11:21 Zeno` ok, I'll try the download again
11:21 VanessaE Krock: that's the correct list for this node.
11:21 VanessaE or wait
11:21 VanessaE that's the current code, I took out the fuel check
11:22 VanessaE wait wait
11:22 Krock insert_object needs "splitstacks" check too
11:22 VanessaE I pointed you to the wrong code, detp
11:22 VanessaE derp*
11:22 Krock lol
11:23 VanessaE actually no, that's the correct file.
11:23 Krock but wrong line?
11:23 VanessaE naw, it's right.  the list is just named "src" for some reason.
11:23 VanessaE (I didn't write it, I'm only adding a feature)
11:24 VanessaE anyway, insert_object is only ever called if can_insert returns true.
11:25 VanessaE (you can see it happen if an item goes in and then comes back out - that's an indication that the stack could be split; what comes out is just the leftovers)
11:25 VanessaE so if you insert a lump of coal or whatever, and the furnace "takes" it and starts burning it, it empties the fuel slot
11:26 VanessaE if you check the fuel slot with room_for_item(), it will return false.
11:26 Krock that's somewhat strange
11:26 VanessaE unless the stack count is 1.
11:26 * CWz gives VanessaE a box of peanutbrittle
11:26 VanessaE it'll accept it then
11:26 VanessaE (which you can see in the code is actually how the can_insert check is done)
11:27 VanessaE hi CWz
11:28 Zeno` 3 hrs 57 minutes :/
11:28 VanessaE ?
11:28 Zeno` I wish there could be a smaller test case hehehe
11:28 VanessaE oh the download
11:29 Zeno` yeah :/
11:29 VanessaE well, at least the map will be fairly up-to-date now (only one day old)
11:30 VanessaE Krock: any ideas?  btw the same thing happens with the regular old furnace (as modified by pipeworks; that's the one where I had a deliberate fuel check and removed it because of this glitch)
11:31 Krock I've looked through the C++ code of room_for_item but couldn't find anything that would prevent from putting items into empty stacks
11:31 VanessaE hrm
11:41 Fixer hi
11:42 lumidify joined #minetest-hub
11:45 VanessaE hi
11:46 Krock hello Fixer
11:47 * Jordach irl http://i.imgur.com/LfBFEZP.png
11:49 Fixer Jordach: expected to see pepe...
11:55 Jordach Fixer, tfw you get fucked by your team not helping and by dark souls being dark souls
11:55 Jordach never playing the objective in BF1
11:55 Jordach ;_;
11:59 Fixer PB&J Pup: Remove mod #1695
11:59 Fixer kek
11:59 CWz Jordach, sound like a TF2 experience
11:59 Jordach CWz, nah lets just camp and snipe instead of capturing flags
12:10 Jordach CWz, i just always love heavy machine guns
12:11 Zeno` I just like sniping
12:11 Jordach >pussy
12:11 Zeno` it annoys people and it's funny because it's legit
12:11 CWz Zeno' play's tf2
12:11 Jordach i'll use those rifles, but no scope :P
12:12 CWz ?
12:12 Zeno` CWz, yea
12:12 CWz cool
12:12 Jordach CWz, Battlefield 1 allows you to use bolt action rifles without their scope
12:12 Zeno` and also bf and also cod (although not much cod for ages)
12:12 CWz silly Zeno` cod is a fish
12:12 Zeno` :P
12:13 CWz Both Sniper and Zeno are australian
12:15 Zeno` you know sniper?
12:15 Jordach snipins a good job m8
12:15 Zeno` sniper is not Australian btw
12:15 Jordach out of doors, plenty o' work
12:15 Darcidride joined #minetest-hub
12:15 Zeno` well he might be... but he doesn't live in AU
12:17 Calinou New Zealand I think?
12:17 Zeno` nah
12:17 Zeno` closer to Africa I think :P
12:18 zorman2000 joined #minetest-hub
12:18 Fixer ha
12:19 Fixer i've noticed some opensource guys went into steam
12:19 Zeno` just waiting for hl3
12:19 Fixer played only bf 1942 and bf2
12:20 Fixer Zeno`: will be probably released in this century
12:20 Fixer or gabe dies
12:20 Zeno` yuo think?
12:20 Fixer i want to believe.png
12:20 Zeno` Duke Nukem Forever is more likely to me released!
12:23 Megaf joined #minetest-hub
12:29 red-001 naw they are just going to call it hl4
12:41 Fixer hl 4-1
12:43 Megaf I will just leave this here. https://9gag.com/gag/aLDGOwz
12:44 Fixer you can do that too
12:45 Fixer depending on food
12:54 Megaf oh boy, I want her https://9gag.com/gag/aQ9mQNd?sc=gif She is very smart
13:01 nerzhul Megaf: please talk about minetest, it's not #minetest-mylife
13:05 red-001 it's not as bad as #minetest
13:05 red-001 the channel is way offtopic today
13:08 Jordach joined #minetest-hub
13:11 nerzhul red-001: oh yes, i hope, because it's a channel to discuss about minetest and develop :)
13:11 nerzhul not the core itself, but community + coredevs
13:12 Jordach nerzhul, if you're like me and have no morale entirely
13:12 Jordach generic chatting is much better
13:13 Fixer i've tried to brainstorm this a little https://github.com/minetest/minetest_game/issues/1485
13:17 sniper338 joined #minetest-hub
13:19 Megaf we should have #Minetest-Help, #Minetest-Dev, #Minetest-Chat and #Minetest-Hub
13:20 Megaf #Minetest been redirect to #Minetest-Help
13:20 Megaf That'd work
13:20 Fixer two channels is totally enough
13:20 nerzhul and #Minetest-mylife :p
13:20 Fixer #Minetest-nerzhul
13:20 Fixer #Minetest-Fixer
13:20 Megaf I actually laughed at that
13:21 Fixer it gets ridiculous here
13:21 Fixer we already have minetest.net/minetest.org/minetest.com/and shitton of irc channels
13:21 Fixer just move everybody back to #minetest
13:21 Fixer and devs in #minetest-dev ofc
13:22 Amaz And rename #minetest-project #minetest-hijacked :P
13:22 Fixer nuke -project and -hub and -de -whatever
13:22 Megaf Thankfully I haven't been given any power. If I'd any power I'd clean things up everywhere in the project.
13:22 Megaf Amaz, lol
13:22 Fixer it is not like #minetest is so flooded with chat
13:22 Fixer kids can be ignored on #minetest :trollface:
13:22 * Megaf is a kid
13:23 Megaf as you can tell
13:23 Megaf Now, is there anyone here running Minetest server in LXC containers?
13:24 Megaf It just occurred to me that'd be a pretty interesting idea on one of my Raspberry Pis
13:24 red-001 #minetest-project is already dead
13:24 Megaf I have a 4 core one, the Raspberry Pi 2, I'm pretty sure I can run 4 containers in that thing.
13:24 Fixer Megaf: age?
13:25 red-001 do people use the non-english channels?
13:25 Fixer Megaf: below 18?
13:25 Megaf Fixer,  nope.
13:25 Fixer crawl uses #crawl and #crawl-dev , CDDA uses just one channel for everything, #minetest has like 5 or more channels
13:26 Megaf I wasn't serious on the age thing, nor on the girl thing. Just ignore that.
13:26 Megaf I think usually 3 channels is a good number a general one, where chat about everything is already, a help one and a dev one
13:27 Fixer i'm fine with 2 channels as it was
13:27 Megaf and IF the community of a specific language is large enough, then maybe a channel for that language could be created
13:27 Fixer but oh well
13:27 red-001 we seems to have about 5 general channels and one dev channel
13:27 Megaf Fixer, me too, as long as off topic is allowed.
13:28 Calinou don't forget #minetest-offtopic (for serious chatter), #minetest-/b/ (for the right people)
13:28 Shara Well, -hub is meant to be for different kinds of contributors to talk
13:28 Calinou :P
13:30 Fixer holy crap
13:30 Fixer there is #minetest-/b/ ?
13:30 red-001 now there is
13:30 Fixer or it is sarcastic?
13:30 red-001 yes
13:32 red-001 oh freenode search only shows registered channels
13:33 nerzhul yes
13:36 * Megaf joins /b/
13:36 Megaf I've been there before
13:43 Krock Offtopic repost: "a new security patch has been applied https://i.imgur.com/xuzqyFl.mp4 "
13:44 Fixer Krock: minetest_game
13:44 Fixer revealed
13:44 Fixer pokerface while typing and hoping it is english
13:45 Krock ^^
13:46 octacian joined #minetest-hub
13:47 Krock o/ octacian
13:47 Fixer joins/parts/quits disabled
13:48 octacian hello Krock
13:49 Fixer hello octacian
13:49 octacian hey Fixer
14:00 Calinou https://i.imgur.com/nawMSxe.png
14:00 Calinou Fixer: ^
14:00 Calinou this is too damn true
14:00 Calinou (404 errors of old vs modern sites)
14:00 Fixer Calinou: yep
14:01 Megaf my personal website gives this precisely (copied from the actual shown page) "404 File Not Found"
14:01 Fixer Calinou: remember new windows/gnome BSOD? Smile. Pooop. Smth happened
14:02 Fixer do not be alarmed @ stay calm
14:07 Megaf uh, oh, #Minetest-Chat is a thing now. Off Topic only
14:08 Megaf we have #Minetest-OffTopic too, to chat
14:13 octacian I just noticed that when I set the hand inventory to a new hand (specifically to a custom hand meant for creative), the new hand tool_capabilities are only used if I'm not wielding another item
14:13 octacian Is this meant, or what?
14:14 Krock I thought that was fixed recently
14:14 octacian oh
14:14 octacian Well, I should probably update MT in that case :D
14:15 octacian (I've been very inactive on GitHub lately so don't have a clue what's happened for the last month or so)
14:15 Krock https://github.com/minetest/minetest/commit/08b680d
14:15 Krock 21 days old
14:15 octacian Yay! Hardware colouring for itemstacks.
14:15 octacian Thanks!
14:15 Krock !next
14:15 ShadowBot Another satisfied customer. Next!
14:16 octacian Krock: here's a random question. Which would you prefer (assuming that no nodes had an on_punch callback): Instantly breaking blocks in creative, or no?
14:17 octacian (and if anybody else gave their opinion I'd be happy as well)
14:17 Krock a delay of about 200ms should exist IMO
14:18 octacian hmmm
14:18 octacian You don't happen to know what that translates to using the digtime variable used by the creative mod? (default 42)
14:18 Krock I rarely play in creative mode but digging too fast can be annoying for detailed work
14:19 Krock uhm
14:19 octacian Well, the basic concept is that with immediate dig you just click rather than hold
14:19 octacian I'm just unsure as to which would be more convenient
14:22 Fixer octacian: there was already a discussion about that
14:22 octacian Mind giving me a link?
14:22 octacian I'm trying to decide for my own subgame, just want to get some other's opinions
14:22 octacian Krock: yep, updating fixed hand issue
14:23 octacian I now have fully-functioning gamemode, just need to properly check creative_enabled setting
14:23 Krock final dig time = <digtime in params> / time_from_last_punch * full_punch_interval
14:24 Krock seems to be in ms
14:24 octacian ok
14:24 Krock *s
14:25 octacian Fixer: since you seem to be around, which would you prefer?
14:25 octacian Immediate dig or like what MTG currently has?
14:25 Krock crreative currently uses 0.5s
14:27 octacian sounds about right
14:27 Fixer octacian: current one is a bit slow, it needs to be faster to not catch with the blocks
14:28 octacian Fixer: are you saying slightly faster or immediate?
14:29 Fixer octacian: slightly faster, immediate is also fine tbh %)
14:30 octacian hmmm OK
14:30 Fixer octacian: with instant there is bigger chance of error
14:30 octacian That's true.
14:30 octacian But once you get used to it, it's slightly nicer because everything breaks immediately rather than different things at varied times
14:38 octacian ..would XtremeHacker join already? lol
14:45 Shara octacian: Did someone invite him/her?
14:45 Shara If not, feel free
14:45 octacian Reminds me, he doesn't know about this channel. Well, that's an obvious reason why he won't join :rotfl:
14:46 Shara It's fine to invite someone if they are contributing to MT in some way.
14:46 octacian Well, soon as he joins another channel I will
14:47 octacian He works with me on a few things - mods, a subgame, so yes, he does contribute to MT in some way
14:48 Shara I'm mostly afk today, but will voice if I see him here
14:52 octacian OK, thanks.
14:57 XtremeHacker joined #minetest-hub
14:59 octacian Shara: could you give XtremeHacker voice?
15:00 Shara Welcome :)
15:00 octacian Thanks!
15:04 XtremeHacker Thans. :)
15:04 XtremeHacker *Thanks
15:37 * CWz has a theory that Engineer is actually the most useless class in tf2, since his sentry can be replaced by a heavy solider combo.
15:38 Jordach they don't
15:44 Megaf joined #minetest-hub
15:48 Megaf o/
15:48 Jordach o7
15:51 Fixer broken hand
15:51 Fixer o\
15:52 Megaf /o\
15:52 Megaf \o/
15:52 Megaf (o_o)
15:55 Krock or scratching on the head?
15:56 Megaf I think o7 is just protecting his eyes from the sun while searching for something near the horizon
15:57 Krock depends if there's a straigt down line after the horizontal one in your font
15:58 Krock o'7  basically, as replacement
15:58 VanessaE_phone joined #minetest-hub
16:29 lumidify joined #minetest-hub
16:55 Krock !tell tenplus1 http://i.imgur.com/ML0I2vC.png - look like a nuclear war to me tbh
16:55 ShadowBot Krock: O.K.
17:08 sofar ~
17:08 sofar aliens
17:08 sofar argh
17:08 sofar ~
17:09 Jordach ayy lmao
17:09 sofar ~
17:09 sofar /o\
17:09 sofar aliens
17:09 sofar sigh
17:09 sofar that looked better in my head
17:10 Shara Hi sofar :P
17:17 Krock lol
17:18 nore hey sofar
17:18 sofar hacking up my timer class a bit atm
17:18 nore heh
17:18 sofar I don't like how it needs a global name
17:18 sofar trying to make it use a local name instead
17:19 sofar but, then I need to use debug.* functions to get the upvalue
17:19 sofar maybe I shouldn't, or use a different method
17:20 nore oh, btw: those of you who preferred fire & tnt disabled by default on multiplayer servers: is game#1696 ok for you? it enables both of them back by default, but disabling them is as simple as going into the "configuration" tab of the inventory and unticking both of them
17:20 nerzhul joined #minetest-hub
17:20 nore ehm, what do you need a global name??
17:21 nore *why
17:21 nore hey nerzhul
17:21 sofar for persistency, I can't store a reference to the function
17:21 sofar I need to store a reference to the name
17:21 nore wait.
17:21 sofar but, I'm beginning to wonder if I should abandon storing it at all
17:21 nore so you sore a reference to the name of the function?
17:21 nore *store
17:21 sofar yes, the name
17:21 nore uuuuuuh
17:21 sofar yeah, exactly
17:21 nore no don't ever do that
17:22 nore several problems with that
17:22 sofar that's what I'm concluding now as well
17:22 nore 1. the function's name might be changed
17:22 nore 2. it might have upvalues
17:23 sofar yeah, and my timer class should be able to handle function refs just fine at timer creation
17:23 sofar hmm
17:23 nore so the correct way to do that is minetest.register_timer(<timer name>, <timer def>)
17:23 sofar ok, let's redo it a bit
17:23 sofar no, it's all under a Timer() class
17:23 nore with the function getting what would previously were upvalues as arguments
17:23 nerzhul hey nore
17:23 sofar no more stuffing minetest.* even worse
17:23 nore okay, Timer.register_timer
17:23 nore same thing
17:24 nore the thing is, you have to register the timer somewhere
17:24 nore else you can't restore it
17:24 Krock local t1 = Timer(function() <def> end)  t1:Start(<interval>)
17:24 nore no
17:24 nore doesn't work either
17:24 nore because you start the timer
17:25 nore the server is restarted
17:25 nerzhul sofar, i agree for purely generic features outside of minetest specific scope it's a good idea
17:25 nore and now it no longer knows the function
17:25 Krock eww. right
17:25 nore so I see only two ways to do this: 1. register_timer thing
17:25 sofar just wait
17:25 sofar stop it
17:25 sofar go get coffee
17:25 sofar come back in 30
17:25 * sofar shoos
17:25 sofar shoo
17:25 sofar shooooo
17:26 nore 2. a preprocessing step that performs transformation of the source code from the intuituve version to the less intuitive one
17:26 nore aaaaand, going back to work now :p
17:26 Krock nore, you were shoooo'ed away ;)
17:26 nore Krock: exactly :p
17:27 nore I'm letting sofar think and see why there are no other solutions
17:27 nore (arguably, passing the function as a string instead is yet another solution... but even more awful)
17:28 nore (and bad for performance as well)
17:28 Krock erializing the whole function would solve it but is somewhat insecure
17:28 Krock *serializing
17:28 nore you can't serialize a function I think
17:31 epoch joined #minetest-hub
17:32 Krock somehow I managed it once... uhm
17:34 Krock > return string.dump(function() print("foobar") end)
17:34 Krock ^ produces bytecode, nore
17:34 nore ah yeah
17:35 nore but loading bytecode is not safe so not allowed IIRC
17:35 Krock yes
17:37 sofar I didn't serialize the *code*
17:37 sofar guys, you're going on a red herring I didn't even make
17:37 sofar 20 more minutes, shoo
17:37 * sofar waves hands unintimidatingly torwards Krock and nore
17:37 Krock these are just hypotheses
17:39 nore sofar: I never said you serialized the code  :)
17:39 nore but I'm waiting and will see what you come up with
17:40 Krock I think sofar must mute this channel for a while to not get interrupted
17:40 Krock it's quite mean to stop sofar from working on this feature
17:41 rubenwardy joined #minetest-hub
17:41 epoch joined #minetest-hub
17:41 sofar lol
17:42 Krock ^^
17:42 Krock hello rubenwardy o/
17:42 rubenwardy hi
17:44 nore Mode #minetest-hub [-v nore] by sofar
17:45 Krock Mode #minetest-hub [+b ~nore@free.node/user/somewhat] by sofar
17:45 Calinou free.nude
17:45 Krock or that ^
17:45 nore heh
17:45 * sofar shoos more
17:46 nore Krock: it's ~ncourant@sas.eleves.ens.fr actually :p
17:46 rubenwardy wat
17:46 nore hey rubenwardy
17:47 * Krock gives sofar a 't' for the 2nd last position that will definitely make his "shoo" work
17:47 Krock *shoos
17:47 nore (I don't know how this work and how you can control it)
17:47 Krock nore, the cloaks? you can request one in the services channel
17:48 nore hmmm
17:48 nore should do that someday
18:00 sofar ok, it's working entirely now
18:01 sofar publishing to minetest-mods, including demo code
18:01 nore sofar: code or it didn't happen
18:01 sofar we can curate and test it there
18:01 nore :p
18:17 * sofar writes docs :P
18:22 nore you didn't push anything yet :'(
18:24 Jordach sofar, what'cha doin
18:24 sofar gotta have docs
18:25 sofar Jordach: saveable timer class code
18:25 sofar github.com/minetest-mods/timer
18:25 Jordach oo
18:26 nore sofar: push it and push docs later :p
18:32 sofar reload
18:33 sofar reload
18:34 Jordach RELOADING
18:34 * sofar pushes
18:34 sofar ... his desk
18:34 * sofar giggles
18:35 sofar To github.com:minetest-mods/timer.git
18:35 sofar * [new branch]      master -> master
18:35 sofar alright it's pushed
18:39 nore sofar: okay, so it's equivalent to the register_timer thing I spoke about :p
18:39 nore except that the mod is responsible for the seralization
18:39 sofar yes except I dropped the entire `register_foo` naming thing
18:40 sofar just treat it like a lua class
18:40 sofar we could add serialization and deserialization as a method
18:40 sofar actually
18:40 nore also
18:40 sofar we could even do the storage load and retrieve
18:40 sofar Timer:store(storageref, "keyname")
18:41 nore yes
18:41 sofar t = Timer(func, storageref, "keyname")
18:41 nore I'd still like an easy way to do what you usually do with minetest.after
18:42 nore i.e. minetest.after(5, function(pos) minetest.set_node(pos, {name = "default:stone"}) end, pos)
18:42 sofar t = Timer(func, storageref, "keyname", default_interval, default_repeats)
18:42 nore but put that in a function
18:42 nore like on_place = function(...) minetest.after(...) end
18:42 sofar you can do
18:42 nore how
18:42 nore ?
18:42 sofar t = Timer(function(bla) end, ....
18:43 nore yes?
18:43 sofar yeah, should work just fine
18:43 nore you can't pass arguments with that method
18:43 sofar correct, you can not
18:43 nore also, you can have only one running at once
18:43 sofar no, you can have as many as you want?
18:44 nore not with the same function/timer class
18:45 sofar local t = Timer(....)
18:45 nore and you don't know in advance how many you will want in the case I just said
18:45 sofar I don't see the problem. t can be a local variable
18:45 sofar you can make thousands of t's
18:45 nore but
18:45 sofar for i = 1,1000 do local t= Timer() end
18:46 nore you can't restore these
18:46 nore or store them
18:46 sofar if you want to save them you need to array them
18:46 sofar I don't see the problem with that
18:46 sofar that's what arrays are for
18:46 nore and know when to delete them etc
18:46 nore that's horribly complicated
18:46 sofar that's not something I can solve anyway
18:46 nore however, what you can do
18:46 nore yes you can
18:47 sofar well I suppose with a storageref and key name, it could autosave?
18:47 sofar but then I need to maintain lots of state
18:47 nore allow each of your timers to contain several at once, but with the same function, only the arguments & delay would be different
18:47 sofar which I don't want to
18:48 sofar you're making it way too complex
18:48 nore and you do things like timer:start_new(delay, args)
18:48 sofar nooooo
18:48 nore nah, that's the usual use case
18:48 nore why no?
18:48 sofar if you want that, make a new overlay class that does that
18:49 sofar and does the housekeeping of what is essentially an array
18:49 nore hmmm, I'll do that, probably
18:49 * sofar shoos nore
18:49 nore meh
18:50 * nore shuns sofar
18:50 sofar now, auto-storing and retrieving, that is something we should put in Timer()
18:50 sofar since that is very useful
18:50 sofar but I don't see why every entity couldn't have a Timer in it's own luaobject
18:51 sofar so I don't see the need for an embedded list
18:57 Megaf joined #minetest-hub
18:59 lumidify_ joined #minetest-hub
20:28 sofar ok I'm gonna make it handle saving/restoring as well
20:28 sofar the Timer() initializer can directly read from storage if needed
20:29 sofar and then you can Timer:save() it when you need
20:29 sofar that'll make the demo code really simple too
20:38 Sokomine sofar: i think trees_lib is now ready. i've seperated the examples from the lib and done some adjustments to the examples for mtg (i.e. added apsen tree and copied leafdecay). that part can be found on https://github/Sokomine/trees_lib_examples
20:38 Sokomine how do i hand trees_lib over to minetest_mods now? :-)
20:39 Sokomine it still could use some adjustments to more recent changes - in particular that lbm/timer growth instead of abms
20:40 sofar github transfer it to `sofar`
20:40 Sokomine perhaps the few lines that show how easy aspen trees could be added (once their schematic and textures are there) in comparison to how many lines it takes in mtg will convince some that the lib could be of use :-)
20:40 sofar I'll move it tonight
20:40 Sokomine thank you
20:41 Sokomine now...er...where do i find that...*searching for link*
20:41 epoch joined #minetest-hub
20:46 Sokomine found it. thanks. hope it'll help if more people can work on it. i'm sometimes a bit lazy with my own repros and pull requests
20:50 nerzhul sofar, you mean persistent storage?
20:51 sofar nerzhul: yes. I'll push an update in a sec
20:51 sofar it's working nicely and makes it even easier to make timers
20:52 sofar I should test it with an anon function too, just to be sure
20:52 nerzhul sofar, do you use mod storage or another storage model ? i think we should fededate our storage at a point
20:52 sofar use mod storage
20:53 sofar gimme a sec and I'll have code to show
21:08 sofar https://github.com/minetest-mods/timer
21:08 sofar nerzhul: nore: Krock: ^^
21:08 sofar take a look at the usage as well:
21:08 sofar https://github.com/minetest-mods/timer/blob/master/timerdemo/init.lua
21:09 Krock \o/
21:10 nerzhul sofar, interesting
21:10 sofar note that the timer gets stored in the calling mod, not in the timer class mod
21:10 nerzhul and it permits each mod to use its private storage it's nice
21:10 sofar yes, so things like upgrading will be easier for mods
21:11 nerzhul yes, and if a mod is removed, timer is removed with it
21:11 sofar and you can still do non-persistent timers easily
21:11 sofar exactly
21:11 Fixer btw, why minetest-mods are not in minetest/ organisation?
21:11 sofar I wanted my own empire
21:12 sofar eh, wait
21:12 sofar :)
21:12 sofar no, it doesn't belong there, period
21:12 sofar minetest-mods is basically organizing mod devs
21:12 sofar as opposed to organizing core devs
21:13 nerzhul Fixer, it's difficult, as you cannot have subgroups unlike gitlab
21:13 nerzhul minetest/mods/timers is not possible with github
21:13 Fixer oh
21:14 sofar also minetest-mods can contain things that -core probably would never accept
21:15 sofar it spreads a bit of risk
21:15 Fixer https://forum.minetest.net/viewtopic.php?f=18&amp;t=16595#p262452 please read Wikipedia Founder cat eyes
21:16 sofar Fixer: ?
21:17 Fixer sofar: "Where can i find new specifications for 27. map format?"
21:17 Fixer sofar: i've poked unexplore author to check new map format and he has no idea what was changed/added
21:17 sofar open an issue, I'd say
21:17 sofar docs out of date -> bug
21:18 Fixer thats a good idea
21:30 sofar nore: the one thing I may want to add is a `data` ref that gets passed through to the timer function
21:30 sofar timer:set_data(data)
21:30 sofar timer:get_data()
21:30 nore I think this would be good to have indeed :)
21:30 sofar so you can pass it an arbitrary bit of data
21:30 sofar but it would not get saved to storage
21:30 nore what
21:31 nore then it's useless
21:31 sofar since it can contain functions
21:31 sofar there's no way to save it
21:31 sofar or userdata
21:31 nore well, you are responsible for the data being able to be saved
21:31 sofar easy enough to timer:set_data() after initializing it
21:32 sofar and if the mod changes behavior, it may entirely redo the structure of `data`
21:32 sofar so storing it would potentially cause issues with mod upgrades
21:33 sofar it would be entirely reasonable to pass an luaobject ref
21:34 nore hmmm
21:35 nore well, it's the always-there storage & compatibility problem
21:35 nore the one that never has a perfect solution
21:49 rubenwardy sofar,: unpack(arg)
21:49 rubenwardy function foo(bar, ...)    local tab = unpack(arg)    end
21:49 rubenwardy tab because ... in table form
21:49 rubenwardy opposite of pack
21:50 rubenwardy actually no
21:50 rubenwardy arg is a table with the value of ...
21:50 rubenwardy unpack turns a table into an arglist
21:51 rubenwardy so you could do     start_timer(name, ...)     local def = {name=name, data=arg}   end
21:51 rubenwardy https://www.lua.org/pil/5.2.html
21:52 sofar I know unpack, minetest.after uses it
21:52 rubenwardy unpack is the wrong one, arg is right
21:52 sofar but it's use is limited since you can always use a nameless function and embed the data
21:53 sofar minetest.after(4, function()...
21:53 sofar and again, you can't rely on `arg` being serializable
21:53 sofar and even table entries may change
21:54 sofar suppose I pass a ref to a table entry, it may not exist after startup anymore
21:54 rubenwardy warn about that then
21:54 sofar or not do it
21:54 sofar just use a local closure
21:54 sofar or treat it as unsaved data
21:58 sofar I mean, we're all just lazy because we write things like
21:58 sofar minetest.after(5, minetest.set_node, pos, node)
21:58 sofar instead of the WAY more DIFFICULT *cough*
21:59 sofar minetest.after(5, function() minetest.set_node(pos, node) end)
21:59 sofar :)
21:59 nore the first avoids closures and is more easy (in some sense) to serialize :)
21:59 sofar the difference is literally: "function() ( )"
22:00 rubenwardy does Timer define a timer type that can be started many times?
22:00 rubenwardy or does it make a new timer instance
22:00 nore rubenwardy: it doesn't :'(
22:00 sofar no
22:00 sofar a timer is a timer
22:00 sofar a timer is not ten timers
22:00 sofar a timer is ONE timer
22:02 rubenwardy do you have any examples of loading timers?
22:02 sofar linked, yes
22:02 sofar https://github.com/minetest-mods/timer/blob/master/timerdemo/init.lua
22:02 sofar there's 3 timers in that code example
22:04 rubenwardy oh, so it DOES define a timer type, it just can only be started once
22:04 nore yes
22:05 nore that's completely useless imho, but *shrug*
22:05 sofar ?
22:05 sofar why useless?
22:05 nore I mean, you often have events that make another event happen x time later
22:05 sofar just make a new one
22:05 rubenwardy what about buffs?
22:05 sofar local t1, t2
22:06 sofar moar timers
22:06 nore hmm, not useless because there are cases I see where it is usefull
22:06 nore i.e. executing an event every x seconds
22:06 nore but
22:06 sofar I can make it execute N times too
22:06 nore for the thing executing an event x seconds after another one
22:06 rubenwardy you'd have to make another timer with the exact same table and the same key as one that's defined at load time
22:07 nore with it being persistent which is want we can't do in minetest.after
22:07 nore it doesn't help
22:07 nore *what
22:07 sofar show me a scenario
22:07 sofar I think you're not seeing that this code can support that
22:07 sofar easily
22:07 sofar we can frob all sorts of useless bits into the class
22:08 nore okay
22:08 sofar or use it smarter
22:08 nore so
22:08 sofar I don't know what the right answer is
22:08 sofar but I do know that making swiss army knifes is not a good way to do OOP
22:09 nore you have a tool
22:09 nore that when you right-click on a node
22:09 nore after 10s, the node turns into gold
22:09 nore of course, the tool only has a limited number of uses, so you don't want to lose any event
22:10 nore how do you do that?
22:10 sofar counter argument
22:10 Fixer joined #minetest-hub
22:10 sofar you right click an entity
22:10 sofar after 10 seconds, the entity poops a golden egg
22:10 nore counter argument?
22:10 sofar how do you do that?
22:10 sofar you can't serialize the object
22:10 sofar the entity could be missing after a server restart
22:11 sofar or, dead
22:11 nore that's your problem
22:11 nore nodes positions exist at all times
22:11 sofar #define "your"
22:11 sofar "sofar's" ?
22:11 nore what I mean is
22:11 sofar the mod using the timer class?
22:12 nore what you want to do with the entity is using the reference again later
22:12 nore that could have problems even without persistent timers
22:12 nore the problem of the person writing the mod :p
22:12 nerzhul sofar, i'm re-adding the player files backend on #5475
22:12 nore so for that you have to take care anyway
22:12 rubenwardy https://gist.github.com/rubenwardy/46caffac4196b64d661f2ad3fbdac7a3
22:13 nerzhul i'm plug-in it like a database
22:13 nore however, for something that's a node position
22:13 sofar s/you/mod_writer/
22:13 nore nothing can happen
22:13 nore yes
22:13 sofar well generally when 2 people talk, and one says "you" they mean the other person in the conversation
22:14 rubenwardy your solution means that a different function could be run after a shutdown. Whilst this may be useful, it'll cause more problems than it solves - what if they don't have a timer in the root scope?
22:14 nore rubenwardy: yes, that's what I want :)
22:14 rubenwardy see gist
22:15 rubenwardy updated gist to more match sofar's api
22:16 sofar can we please stop writing API's using minetest.register_nopnsense()?
22:17 rubenwardy I updated it
22:17 rubenwardy and also it's nice when APIs are consistent
22:17 sofar minetest.timer_interval?
22:17 rubenwardy the content is important, not the naming of functions
22:17 nore hmm, I think rubenwardy meant the_timer_name:run(...)
22:18 nore same thing :p
22:18 rubenwardy there you are, updated
22:18 nore you can remove the "mod:event" as well
22:19 rubenwardy updated again
22:19 sofar s/timer_type/t/ (it's not a "_type")
22:19 sofar lol
22:19 rubenwardy it is
22:19 rubenwardy well, it's not a language type
22:20 rubenwardy timer_def may be clearer
22:20 sofar you know what
22:20 sofar I think we can do that
22:20 rubenwardy the point is that it's bad to get conflicting function definitions after serialisation
22:20 sofar differently though
22:20 sofar here's now
22:21 sofar well no, hmm
22:21 sofar I need to think about it a bit
22:21 sofar but, not sure I like it yet
22:22 sofar what I think I can do
22:22 sofar is this
22:22 sofar instead of t:start()
22:22 sofar you can do
22:22 sofar local t_1 = t:start(param1, param2, param3)
22:23 sofar that makes a new timer instance
22:23 sofar or something like that
22:24 sofar see the big problem I have is that you've made 2 objects instead of one
22:24 sofar I'd ... just make 2 objects
22:24 nerzhul sofar, #5475 needs you attention when timer:start()
22:24 Jordach wooooooo
22:24 Jordach got my energy back to develop
22:27 sofar I can live with embedding/passing the data into the timer function, but you guys are making my OOP hurt with the request to make an object model that has 2 behaviors
22:27 sofar you guys need a TimerManager() class around Timer()
22:28 Jordach >OOP
22:28 Jordach the door is that-a-way
22:29 Jordach pack your shit
22:29 Jordach </sarcasm>
22:29 sofar I'm absolutely not a fan of OOP
22:29 Jordach :D
22:29 Jordach :DDDDDD
22:29 sofar but lua does it nicely and elegantly that it's just stupid to not use it
22:30 Jordach lua at least makes writing C hell of a lot easier
22:30 Jordach (in the viewpoint of that lua is C but easier to write for another person)
22:32 sofar I would have loved it if lua was a curly brace language
22:32 sofar oh well
22:33 sofar rubenwardy: what's wrong with e.g. ItemStack() and Settings() ?
22:33 nore sofar: easy, just preprocess your files with s/{/begin/ and s/}/end/ :)
22:33 nore hmm, doesn't work for if/then though
22:33 sofar x = begin a = 5, c = 6, end
22:34 nore heh
22:34 rubenwardy those are fine as they have no side effects
22:34 nore ^ this is valid OCaml code btw :p
22:34 sofar ocaml? ocaml!
22:35 sofar that language should come with a warning: WRITTEN BY FRENCH PEOPLE, BEWARE
22:35 nore OCaml is nice :)
22:35 nore aaaand?
22:35 nore OCaml is a wonderful language
22:36 sofar []
22:36 sofar there's a bar of soap
22:36 sofar go wash your mouth :)
22:36 * nore only sees an empty list
22:37 nerzhul OCaml is just a crappy language :p
22:37 nerzhul it's like Minitel vs Internet :D
22:38 Jordach sofar, nore is french ;)
22:38 nore print_endline ("OCaml is a " ^ (match talking_to with "sofar" | "nerzhul" -> "" | _ -> "wonderful ") ^ "programming language.")
22:38 nore :)
22:38 Jordach it explains alot
22:38 sofar Jordach: I'm well aware of most peoples' nationalities :)
22:38 nore heh
22:38 Jordach i forgot the space in a lot
22:39 Sokomine nore: such people-translaters could be of general use :)
22:39 nore Sokomine: :D
22:40 nore I don't see why some people say OCaml is awful though :'(
22:41 Jordach if i wanted a trash language i'd have learned java years ago
22:41 nore when you have to work on complicated datatypes (like when you are writing a compiler), it is just so much more adapted than C/C++/Lua/Python/Java/etc
22:41 nore and it has *pattern matching*
22:42 * nore 's eyes brighten when he sees a language provides pattern matching
22:43 Sokomine hmpf. i'll never catch up reading the forum! new posts appear faster than ic an read...
22:43 rubenwardy Haskell
22:44 rubenwardy That's what I'm using to write a compile atm :)
22:45 nore yeah, Haskell does this as well :)
22:45 nore I prefer OCaml but this I can concede it's just a matter of taste ^^
22:45 nore Sokomine: I gave up reading the forum looooooong ago
22:45 nore even just reading the modding sections
22:47 Jordach Sokomine, forum.minetest.net 127.0.0.1
22:48 Jordach it's a mountain of shitposts at this point
22:48 Sokomine jordach: *g* need to set that for all these people that post while i'm still trying to read :)
22:49 * Jordach solves the sapling and plant growing issue entirely
22:49 Jordach core:omni_*
22:49 nore Jordach: how?
22:49 Jordach nore, each plant registry under register_decoration does not count the others ratio
22:50 Jordach i'm already using 0.000007 on trees in plains and it fails
22:50 Jordach even at that precision
22:50 nore what do you mean, it fails?
22:50 Jordach nore, other registered decorations do not count towards placing it
22:50 nore ah
22:50 nore that's bad :/
22:50 Jordach it's why i'm using omni plants
22:50 Fixer *,..,*
22:50 Jordach they're randomised during on_gen
22:51 Fixer there is nice bot for jabber written in Ocaml
22:51 Fixer i used this doing bot fights
22:51 Fixer that was hilarious
22:51 * Jordach forgot about the DJ Hero soundtrack again
22:52 Jordach and blender broke again
22:52 Fixer Jordach: https://pbs.twimg.com/media/C9KPANZWsAEzJoT.jpg
22:52 Jordach fail as in total app crash
22:52 Fixer Jordach: https://pbs.twimg.com/media/C9KPAOAW0AE_QUt.jpg
22:55 Fixer long silence from Jordach
22:55 Jordach uwot
22:56 sofar Jordach: that just means you're using it correctly
22:57 Jordach sofar, only when minimised
23:00 Jordach Sokomine, farmed / grown lilac; http://i.imgur.com/T9YOwhL.png
23:00 Jordach mesh is the grown on a flower bed variant
23:00 Jordach wild ones are only the standard X shape
23:00 Jordach and that fits in a block, i measured
23:13 sofar 10 surfaces?
23:14 sofar so it makes 5 plants in a bunch, do I see that right?
23:14 Jordach well, flowers grown in a flowerbed produce 5 plants
23:14 Jordach considering you have to find them wild for the inital seed
23:15 Jordach see https://github.com/Jordach/Solar_Plains/issues/6#issuecomment-291122699
23:15 sofar no, I'm just talking about the visual
23:15 Jordach eys
23:16 sofar I see 10 surfaces, I'm assuming you're attempting to make "a bunch" of flowers in one obj
23:16 Jordach yeeeep
23:16 Jordach it'll look proper later on
23:16 sofar well it doesn't look unproper now
23:16 Jordach i mean in game
23:16 sofar I'm just ... 10 surfaces for what looks like a bunch of 5 plants
23:17 Jordach the engine doesn't do it for me, so
23:17 sofar take out the middle one and go for 8/4 ?
23:17 sofar could add it to meshoptions
23:17 Jordach lemme place a few in world
23:17 sofar the engine could do it
23:17 Jordach sofar, the corners are actually different ;)
23:17 Jordach they're not inline in a X shape
23:18 Jordach they're 1/16th off to the left relative to that rotation
23:18 sofar right, that can all go into meshoptions
23:18 Jordach so there's no visual z-fighting
23:18 sofar yes, of coure
23:18 sofar that can all go into meshoptions
23:18 Jordach sofar, and as usual, my mcore.options will support it
23:19 Jordach makes it far easier to work with those bits
23:19 sofar place_param2 = jordach_style_meshopt_value,
23:19 Jordach top kek
23:19 Jordach wait what
23:19 Jordach place_param2
23:19 * Jordach checks https://github.com/minetest/minetest/blob/master/doc/lua_api.txt
23:20 Jordach https://github.com/minetest/minetest/blob/master/doc/lua_api.txt#L3901
23:20 Jordach DAAAAAMN
23:20 sofar there's no client side prediction to that, though
23:20 sofar (that's a bug)
23:22 Jordach i'll ignore it for now
23:22 Jordach but will be ready to roll whenever it's ready
23:24 Sokomine any forum moderators present? looks like the lastest postings could get cleaned up...
23:24 sofar I have the powers
23:24 sofar but celeron55 doesn't want me to use them
23:24 Sokomine nore: there are sometimes very intresting topics
23:25 Sokomine Jordach: er. i've just handed my trees_lib over to sofar for minetest-mods. it does handle the saplings and node registration etc but isn't enitrely up to date with more recent changes like lbm
23:26 Sokomine jordach: very nice that lilac. please get it added as a flower. not only to bfd
23:26 Jordach Sokomine, you mean Solar Plains
23:27 Jordach i've started from nothing
23:27 Jordach and re-implemented everything over anew
23:28 Sokomine Jordach: oh? working on a new game now instead of bfd? hope you'll make it a little easier for players :-)
23:28 Sokomine btw, i could use some rape seed flowers....for farming. i'm still after those oil plants i'd love to have added to farming in mtg
23:29 Jordach can do
23:29 Sokomine that would be great :-)
23:29 Jordach Sokomine, it's a redesign of BFD but in a less inane way
23:30 Jordach and contains the next part of my design
23:31 Jordach Sokomine, instead of how VE-S does trading and such
23:31 Jordach i plan on something even fancier
23:32 Nathans21 joined #minetest-hub
23:32 Jordach i've got a few programming logic sketches
23:32 Jordach but other than that, it's a basic prototype
23:35 Sokomine trading? what does that have got to do with it?
23:35 Jordach multiplayer sucks without things to actually do
23:37 Jordach http://i.imgur.com/z7lO9Ok.png Sokomine, sofar
23:38 Sokomine ah yes, i remember you where planning something
23:38 Jordach considering my ability to optimise everything in MT Lua wise
23:38 Sokomine have you tried out brandonreeses adventuretest? the server with the most current version? it's pretty nicely done. i love that npc run around in the villages and even talk to a degree :-)
23:39 Jordach Sokomine, don't let me have a crack at that ;)
23:39 Jordach you know my talent for polish
23:39 Sokomine Jordach: i don't like the style of the grass. but the flower is very nice
23:39 Jordach Sokomine, always improvable
23:40 Sokomine it's probably too bright for my taste. and just a diffrent style. but i really like the flower
23:41 Jordach http://i.imgur.com/PoBviWd.png
23:41 Jordach sand is considerably better
23:41 Jordach and my ginger cat is giving me a cuddle
23:42 * Sokomine grabs the cat and runs away with it
23:42 Jordach he's a middle aged git
23:42 Jordach he only really loves me and prefers sitting on my lap to anyone elses
23:43 Sokomine :-)

| Channels | #minetest-hub index | Today | | Google Search | Plaintext