Minetest logo

IRC log for #minetest-dev, 2012-11-06

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

All times shown according to UTC.

Time Nick Message
00:04 ecube joined #minetest-dev
00:07 RealBadAngel joined #minetest-dev
03:28 hmmmm celeron55, can you explain to me what exactly happens when a block is marked as underground?
03:30 hmmmm all i can actually see is that it's used in Map::isNodeUnderground() and it's marked as underground in a diagnostic string description of a block
03:30 hmmmm like, other than that, is it totally useless...?
03:47 hmmmm I don't understand why you need to emerge the neighbors of what's being generated either
03:55 hmmmm why is m_map->emergeBlock(obj->m_static_block) called without allow_generate = false in ServerEnvironment::removeRemovedObjects()?  surely an object won't be in a nonexistent block...?  or not?  I'm thinking of the case where someone has noclip on, and they go into some far off area and the block hasn't been generated yet - you drop an object, such as a pickaxe, it falls, and it gets removed by something
03:56 hmmmm now i can get that, but this is being called in the main server thread, no?  not the emerge thread where it's supposed to be, so the main thread will be held up by this douche who dropped his pickaxe in the wrong spot and it's being removed
03:57 hmmmm I personally think it should be changed to createBlock()
03:57 hmmmm do you forsee any undesirable side effects from this?
04:02 hmmmm i can't really continue until this is resolved somehow
04:47 VanessaE darkrose, thexyz:  Can someone push this to upstream?  It does look a bit better than what we have now.
04:47 VanessaE https://github.com/jordan4ibanez/minetest/commit/37d6c3a2f19854caf6dfeb352cb9f6c50bb52757
04:50 * VanessaE wanders off to bed.
04:58 OldCoder VanessaE, good night
07:01 celeron55 hmmmm: i am not exactly sure if it is used for something else, but i think this is the main thing:
07:01 celeron55 can you think of how the game can figure out from where the sunlight comes from?
07:03 celeron55 it does it so that if a block is not underground and there is no generated stuff above it, it assumes sunlight is coming from the top of it; otherwise it is not
07:03 celeron55 that may be a bit obscured or not used currently because it generates so large areas at a time; i am not exactly sure
07:04 celeron55 hmmmm: you need to get the neighbors because parts of trees and things like that need to be able to be placed on them
07:04 hmmmm ?!?
07:05 hmmmm are you sure about that?  from what i'm reading, you just scan downward until you find a node which has sunlight_propogates = false
07:05 celeron55 i can't remember that much about what the code currently does; i just know the ideas behind the stuff
07:08 hmmmm indeed, it has nothing to do with isNodeUnderground
07:08 celeron55 there are probably three or more sunlight-related algorithms for different situations (node placed, mapblock generated, miscellaneous area generated; or something alike)
07:11 hmmmm if it's not too slow, i'd eventually like to have the sun at an angle (maybe like 8 directions total?) instead of directly above
07:11 hmmmm but, later
07:12 celeron55 it's probably possible; just statically offset the lookup of "above" every 8 nodes in the y direction
07:13 celeron55 or whatever
07:13 celeron55 ah, you meant to calculate 8 different lighting values?
07:13 hmmmm no
07:13 hmmmm what you said first was what i had in mind
07:13 celeron55 ok; it's worth a try
07:14 hmmmm but i mean the two ideas could be combined
07:14 hmmmm any thoughts on this?  [22:47] <hmmmm> I don't understand why you need to emerge the neighbors of what's being generated either
07:14 celeron55 i answered that already
07:15 hmmmm oh
07:15 hmmmm didn't see that
07:15 hmmmm if the tree placement and what not gets put in lua, you know SOMEBODY is going to make a tree larger than 16 blocks in some direction though
07:15 hmmmm which might break things
07:16 celeron55 minecraft has it's own way of making that happen: it generates only a single "mapblock" at a time, but generates caves and trees and things like that in a larger area around it to make sure everything that might end up in it gets put in it
07:16 celeron55 and discards the leftovers
07:17 hmmmm uber inefficient
07:17 celeron55 maybe; maybe not; depends on the details
07:17 hmmmm the cave generation algorithm i still don't entirely understand... the bottom line is that it's probably really slow and it's probably going to stay that way for some time
07:18 hmmmm i like the current caves anyway
07:19 celeron55 optimizing generation for speed only is not wise in the long run; the priority should be on the output of it
07:21 celeron55 people don't care if they get 10000000000 boring nodes per second; they care if they get whatever amount of awesome stuff at almost whatever speed
07:21 hmmmm it's awesome to have both, though. :)
07:22 celeron55 but if it's either or, then it must be the "not speed" one
07:22 hmmmm i'll agree with that
07:23 hmmmm now what do you think about emergeBlock being called with allow_generate = false?
07:23 hmmmm there are only two instances of that being used, both in environment.cpp
07:23 hmmmm i'd like to really get rid of any non-emerge-thread map generations for various reasons
07:24 hmmmm er, allow_generate = true*
07:24 celeron55 the same thing is done by the map generator/loader thread too, and it is invoked in more places afaik
07:24 celeron55 it doesn't use emergeBlock
07:25 celeron55 umm...
07:26 hmmmm the thing is i don't know where i'd plop the mapgen object for emergeBlock generation calls
07:26 hmmmm i intended for each emerge thread to have one mapgen object
07:27 celeron55 i see more than two instances of it being used with and with no allow_generate in environment.cpp
07:28 celeron55 and what is the problem with allow_generate=false compared to ture?
07:28 celeron55 true*
07:28 hmmmm lines 1275, 1518, 1768
07:28 hmmmm yea i missed one
07:28 hmmmm and there's one with it explicitly true in server.cpp
07:29 hmmmm ....which is in findSpawnPos
07:29 celeron55 ^ answer the question
07:29 hmmmm [02:26] <hmmmm> the thing is i don't know where i'd plop the mapgen object for emergeBlock generation calls
07:29 celeron55 so it applies to false and true?
07:29 hmmmm just true, because that's the only case where it'd be using the mapgen
07:31 celeron55 i think all cases could work so that if the block isn't generated, they'd ask for the generation and come back polling for it later until it is
07:31 hmmmm ekh
07:31 hmmmm i wonder how it'd carry out the polling
07:32 hmmmm for example in findSpawnPos the only reason it uses emergeBlock is to ensure that the spawn position actually exists
07:32 celeron55 i think all of the places can just cancel what they are doing and automatically come back to try again, as they currently are
07:32 hmmmm but with the new mapgen setup i'd just add that block to the emerge queue
07:32 celeron55 findSpawnPos can't do that as-is, yes
07:33 celeron55 ehm... and ServerEnvironment::addActiveObjectAsStatic is some kind of a mapgen-with-mobs helper
07:33 celeron55 ...i guess
07:33 hmmmm and the other two are removeRemovedObjetcts and deactivateFarObjects apparently
07:33 celeron55 but for example ServerEnvironment::removeRemovedObjects can just queue, cancel and come back later
07:33 hmmmm right
07:33 hmmmm now why can't i just use createBlock for that?
07:34 hmmmm that particular one
07:34 celeron55 maybe
07:35 hmmmm i was saying before that it tries to emerge m_static_block, which is "the block frmo which the object was loaded from, and in which a copy of the static data resides"
07:35 celeron55 i don't see why that couldn't be done
07:35 hmmmm so if it didn't exist, then...
07:35 hmmmm basically
07:35 hmmmm is there something like createBlock except it'll fail if it's not in memory and not on disk?
07:36 celeron55 emergeBlock with allow_generate=false?
07:36 celeron55 dunno
07:36 hmmmm oh that's true
07:36 hmmmm hah
07:37 hmmmm yeah, so i'll just add ", false" there, and that should do the trick
07:37 hmmmm and there are the two remaining which will poll like you said
07:38 celeron55 it could be useful to have a working system for creating blocks without generating the node data, and have it work properly (leaving everything else in it intact) when it finally is generated
07:39 celeron55 including non-generator node data
07:39 celeron55 it probably works already though
07:39 celeron55 because tree-like thing scurrently need that
07:39 celeron55 s<<1
07:46 hmmmm will do
07:46 hmmmm but i'll have to do it in a different commit
07:46 hmmmm this is already ginormous
07:47 hmmmm 'night
08:27 SpeedProg joined #minetest-dev
14:11 PilzAdam joined #minetest-dev
14:17 doserj joined #minetest-dev
14:37 RealBadAngel hi
15:02 hmmmm joined #minetest-dev
15:37 PilzAdam Im currently developing a farming mod for upstream
15:38 PilzAdam should there be some functions like register_plant() or should I define every growing step by hand?
15:39 celeron55 register_plant() sounds like the way to go
15:39 celeron55 make it public so other lazy mods can use it
15:40 PilzAdam i already have some test code for this: https://github.com/PilzAdam/minetest_game/blob/farming/mods/farming/init.lua
15:48 RealBadAngel Hi celeron55
15:49 RealBadAngel what do you think about my modifications to the formspec?
17:16 hmmmm i was looking at addActiveObjectAsStatic again, and i've gotta wonder
17:16 hmmmm why must the emerge succeed?
17:17 hmmmm when would it possibly be valid for a static active object to be added to a nonexistant block?
17:23 Calinou joined #minetest-dev
18:00 sstrandberg joined #minetest-dev
18:03 hmmmm would you say that a definition of all the available biomes belongs in ServerEnvironment?
18:04 PilzAdam OldCoder, https://github.com/downloads/PilzAdam/minetest_game/farming.zip
18:04 OldCoder Hi
18:04 OldCoder Thank you!
18:04 OldCoder Working
18:07 PilzAdam oops, that was the wrong channel
18:07 OldCoder I got it anyway
18:09 celeron55 hmmmm: is addActiveObjectAsStatic even called anywhere
18:09 celeron55 appears it is not
18:09 hmmmm oh
18:09 celeron55 throw it in the bin
18:10 hmmmm that's true :)!
18:10 hmmmm well wait, what does it actually do?  what's a "static" object?
18:11 celeron55 a static object is an active object that is stored in the non-active state... the state in which they are on disk, and the state in which they are when they are far away from players, to not have the full infinite world active at the same time
18:12 celeron55 it is basically a serialized AO
18:12 celeron55 stored in the mapblock, not environment
18:13 hmmmm hmm, i can't think of any situations where that'd be helpful
18:13 hmmmm what were you thinking of at the time when you wrote it?
18:14 celeron55 i... think it was used for at least testing the generation of mobs in the mapgen
18:14 celeron55 not sure
18:14 celeron55 but it's kind of useless for that too
18:14 hmmmm i don't think mobs will ever be a part of the engine
18:14 hmmmm again
18:14 hmmmm alright, to the trash it goes
18:15 PilzAdam what are the params active_object_count and *_wider that are passed to abms?
18:18 hmmmm active_object_count is the number of objects in that block
18:18 hmmmm active_object_count_wider is the total number of objects of that and all the neighbors
18:19 PilzAdam thx
18:19 PilzAdam there should be a hint in lua-api.txt
18:20 hmmmm i think someone was supposed to make a lua api documentation wiki
18:20 hmmmm all this crap should be added there
18:21 celeron55 well... cornernote had it, and he just quit
18:21 hmmmm pft
18:21 celeron55 the data has been copied, but we don't have the platforms he used
18:21 celeron55 http://api.minetest.net/ currently serves a static copy from thexyz's servers
18:24 celeron55 would be quite convenient to just add it now here, but well...  http://api.minetest.net/type/view/name/abm.html
18:25 celeron55 thexyz: by the way, can you make that one available as a .tar.gz?
18:31 OldCoder The API site is back?
18:35 celeron55 it's in fact back by cornernote too, but he filled it with the vegan crap he started flooding everywhere 8)
18:36 hmmmm why did he quit again?
18:36 PilzAdam people sometimes go crazy
18:36 hmmmm it seems like it's a little better than it was, but people leave all the time
18:36 hmmmm like too often
18:36 celeron55 he was burned out and trolled out and got finally completely pissed off when thexyz kicked him
18:37 hmmmm this is basically the only minecraft clone project that's worth a shit
18:37 hmmmm i don't know where else he'd go to
18:37 PilzAdam RL?
18:38 hmmmm RL is overrated
18:38 PilzAdam +1
18:38 celeron55 i hope he first takes a break and then re-figures out his time management so he can possibly focus on something without going crazy
18:39 hmmmm i actually have a huge project due on the 17th for school but i'm procrastinating with minetest
18:39 celeron55 i seriously hope people don't screw up their lives because of minetest
18:39 celeron55 it's not worth it 8D
18:40 PilzAdam btw: if someone is interested in the farming mod I currently develop for upstream: https://github.com/PilzAdam/minetest_game/tree/farming/mods/farming
18:40 hmmmm nah if it weren't this it'd be some other video game
18:57 OldCoder celeron55, MT probably is not the leading cause of cancer :p
18:57 OldCoder If anything it is a stress reducer
18:58 OldCoder Except for those who must keep it working O_o
18:58 OldCoder :-)
18:58 OldCoder Calinou, tell me true // if you // can connect
18:58 Calinou nope
18:58 OldCoder PilzAdam, I will update farmingminus in a bit
18:58 OldCoder Calinou, Hmm?!
18:58 OldCoder I will connect myself, then
18:59 Calinou europe.minetest.org port 30010
18:59 OldCoder No!
18:59 OldCoder There is only 30000
18:59 OldCoder That is a separate VPS
18:59 OldCoder No connect to the first dozen or so worlds
18:59 OldCoder The entire point is that that VPS is in Europe
18:59 OldCoder For our Europe friends
19:00 hmmmm ermm let's not get too carried away with the off-topic conversation, okay?
19:00 Calinou ok
19:00 OldCoder I may have other Europe VPS lined up
19:00 celeron55 OldCoder: you're on #minetest-dev
19:00 OldCoder celeron55, yes?
19:00 OldCoder If that is not core dev
19:00 OldCoder I was simply answering his question
19:00 celeron55 that discussion started in #minetest
19:00 OldCoder Hmm?
19:00 OldCoder I am confused; one moment
19:01 OldCoder I have lost track of things celeron55 and am needed elsewhere regardless. If the load is slow on with the show it is regrettable.
19:01 * OldCoder will return
19:02 celeron55 to put it more simply: talk about your servers on #minetest, because this is simply not meant for those, especially as there is other discussion in here tonight
19:02 OldCoder <PilzAdam> OldCoder, https://github.com/downloads/PilzAdam/minetest_game/farming.zip
19:02 OldCoder celeron55, I am very very literal
19:02 OldCoder I regret this but it is true
19:03 OldCoder If somebody addresses me I do answer
19:03 OldCoder Your own remarks are not entirely on-topic as well; but of course as the head it is your privilege
19:03 celeron55 but calinou asked you on #minetest, not here
19:03 OldCoder That quote is from right here
19:03 OldCoder One hour ago exactly
19:04 OldCoder I will add, Sir, that some of my server issues are core dev issues as they are about testing core chanegs
19:04 OldCoder *changes
19:04 celeron55 ummmmmm
19:04 OldCoder Farming is not the case for that
19:05 OldCoder But for farming I was answering here
19:05 OldCoder A question that was asked here
19:05 hmmmm what the hell
19:05 OldCoder Hmpph.
19:05 OldCoder
19:05 celeron55 i don't understand; you haven't replied anything to that line of PilzAdam
19:05 hmmmm just don't talk about it any more
19:05 OldCoder I am confused; which line?
19:05 celeron55 ah, you did, but immediately after it
19:05 celeron55 i didn't mean those when i asked you to move to #minetest
19:05 celeron55 i meant the stuff you talked about with calinou
19:06 OldCoder Looking up, that appears to be an honest mistake. I am in about 30 channels ATM.
19:06 OldCoder It is not as you characterized it. I have no intent to be argumentative.
19:06 OldCoder More than 30 it appears. I have no idea how you more experienced IRC people do this.
19:07 OldCoder celeron55, mistakes are going to be made. I feel there is no need to emphasize the issue.
19:07 PilzAdam OldCoder, just stop talking in -dev
19:07 celeron55 OldCoder: i am not trying to emphasize it, but rather i haven't yet really seen you understand what i said
19:07 OldCoder As you wish, Mr. Adam. celeron55 please ban me from this channel.
19:07 celeron55 apparently you did understand it then
19:08 OldCoder Will you do as I ask?
19:08 OldCoder Ban now, please
19:08 celeron55 wtf
19:08 OldCoder There is no need for a kick
19:08 celeron55 i have no reason to ban you
19:08 OldCoder I am exitinhg
19:08 PilzAdam cornernote?
19:08 OldCoder Hmm?
19:08 OldCoder Nothing to do with him
19:08 OldCoder Though I see something of his point of view
19:08 celeron55 this doesn't make any sense
19:08 OldCoder <PilzAdam> OldCoder, just stop talking in -dev
19:08 OldCoder Honestly, Pilz, was that necessary?
19:08 OldCoder left #minetest-dev
19:09 celeron55 http://weknowmemes.com/wp-content/uploads/2012/04/what-the-fuck-man.jpg
19:09 celeron55 i'm actually laughing here, this has become hilarious
19:10 celeron55 i'm fucking glad i have zero money or anything involved in this :------D
19:12 celeron55 oh, anyway; back to figuring whether i can whip up a quick fix for the bad bandwidth throttling
19:13 celeron55 hmmmm: i assume you are making some kind of both-hands-and-feet facepalms in there and thus not being able to comment? 8)
19:14 PilzAdam ...
19:14 hmmmm i'm actually watching an episode of the 'minecraft world tour'
19:14 * PilzAdam doesnt understand what is going on with people
19:14 hmmmm what's wrong with the bandwith throttling?  i didn't even know that there was bandwith throttling
19:15 celeron55 there has to be if you have the intention of stuffing up miscellaneous blobs of data through UDP
19:15 celeron55 as in moving media from the server to the client
19:16 celeron55 otherwise you'll just cause most of the packets to be dropped and you've basically failed networking
19:18 celeron55 in largeish servers it would make much more sense to use TCP for those, but it'll hurt small-scale hosting and testing and... ehm... well, this is an another case of "it's just not that simple"
19:19 hmmmm the original Starcraft has a udp transfer system much like this
19:19 PilzAdam would it be possible (in theory) to add a setting in config to switch UPD and IP?
19:19 hmmmm i remember transferring maps that were > 500KB being horribly slow
19:19 hmmmm pilzadam, sure... if you feel like rewriting the socket class
19:20 hmmmm which isn't actually too bad
19:27 celeron55 the correct name for what i talked about appears to be congestion control
19:27 PilzAdam so we have a name for the topic, now code it ;)
19:28 celeron55 it's really a full-blown research field
19:28 hmmmm of course
19:28 celeron55 which means i'll just whip up something from the top of my head!
19:29 hmmmm and if you want congestion control, TCP is where it's at
19:29 hmmmm seriously - the OS already has all sorts of great algorithms for congestion control and they're really good
19:29 hmmmm the reason to use UDP would be low latency
19:29 celeron55 oh well; we could use udp and tcp on the same port
19:29 hmmmm which i can see latency being really bad for FPSes and and racing games or whatever
19:30 hmmmm but this game... not as much
19:30 hmmmm right, and like you and pilzadam said, you can easily have both.  i suggest that UDP be used for the regular game commands and a TCP connection is made for bulk transfers
19:31 hmmmm i think a lot of games do that as well
19:31 PilzAdam so you have to tell all the n00bs that they have to forward both, TCP and UDP
19:31 PilzAdam *port forward
19:32 celeron55 i find it somewhat useful, because there are some things that are updated very often and that are not that important to reliably go through (positions of entities and players, or whatever), and if you do that over tcp, you can get stupid hiccups because they didn't get through and tcp ends up re-sending them
19:33 celeron55 packet loss is a real thing on the internet, in any case
19:34 hmmmm unrelated but
19:34 hmmmm what's up with the naming scheme for things that are in gamedef?
19:35 celeron55 how so?
19:35 hmmmm what do you mean by "SomethingDef"
19:35 hmmmm 'definition'?
19:35 celeron55 yes
19:36 celeron55 it's a very common abbreviation almost everywhere in the source
19:37 hmmmm ahh yes, because whatever derived class that uses that interface is "defined" by that interface
19:37 hmmmm ?
19:37 celeron55 well... GameDef basically defines what the game is
19:38 celeron55 or, well, everything apart from the mechanisms that the engine does
19:38 celeron55 then there are some odd-but-per-game things like the sound and event thingies on the client
19:39 celeron55 because the pointers are so conveniently transferred in it
19:39 PilzAdam has anyone anything against this? https://github.com/celeron55/minetest_game/pull/26
19:40 hmmmm nah, it's fine
19:40 PilzAdam (except that the commit is gramaticaly nonsense)
19:40 hmmmm consistency is better than grammar i say
19:40 PilzAdam (there is a missing "of")
19:40 PilzAdam k
19:42 celeron55 there are two things that PilzAdam could have meant with "gramaticaly nonsense" 8)
19:43 celeron55 and i think hmmmm understood it the other way than PilzAdam meant
19:43 hmmmm right, bucket being capitalized in that context, and the commit message
19:43 hmmmm i realized what he ment after i pressed the enter key
19:43 hmmmm doesn't matter though
19:43 PilzAdam well, actualy i mean there has to be an "of" in front of bucket (in the commit message)
19:46 celeron55 i think i'll try how much of effort it is to make minetest set up a TCP connection in addition to the UDP one (well, technically it isn't a connection at UDP level, but minetest makes it be)
19:47 celeron55 this has to be made transparent to the upper layers, because i am lazy
19:47 PilzAdam in my farming mod I use textures were I cant remember were i got them from; but they are WTFPL iirc
19:47 celeron55 happily there is already enough abstraction to do it transparently :-D
19:47 hmmmm make a base ISocket class, have UDPSocket a derived class from that, then make another derived class for TCP that's literally just a wrapper for the standard TCP functions
19:47 PilzAdam can I use them if i want it to be upstream?
19:47 hmmmm should take like an hour tops
19:47 celeron55 ehm
19:48 celeron55 hmmmm: there is no benefit from making a common interface to them though
19:49 celeron55 they are both handled specially
19:49 hmmmm yeah i guess you're right
19:49 celeron55 and because minetest is built to use UDP, there is no thing called "connection" at the socket level; it is at the upper level from it
19:50 celeron55 but whatever; it'll turn out somehow
19:50 hmmmm oh ew, i need to add epoll() and kqueue() for WaitData
19:51 hmmmm select is ancient technology from the 1970s
19:51 celeron55 you need to make it work on windows in addition to posixy things
19:52 hmmmm simple, fall back to select where no alternative is available
19:53 celeron55 oh god this Connection class had these funny naming things...
19:54 celeron55 i don't want to touch this :D
19:56 celeron55 there's two generations of interfaces put in one class, and the naming of some public thread-safe things as compared to some internal things differ only in capitalization of first letter, and the public interface has the different convention than minetest mostly has...
20:00 hmmmm hmmmmmm...?  http://codepad.org/GUbhC4mI   <--- is this not really needed any longer?
20:01 hmmmm (well, i don't intend on removing it, just wondering if in theory that wouldn't be necessary)
20:02 celeron55 i don't know; i suspect the problem still exists
20:03 hmmmm if that still exists but there are no static objects being added, i think that'd classify as map corruption
20:06 hmmmm hrmm, how am i going to poll to see if the block is created or not in deactivateFarObjects, exactly?
20:06 hmmmm i am _not_ blocking in the main server thread - hell no.
20:08 hmmmm looking at what calls it, i guess it's alright to block in ~ServerEnvironment() since it's shutting down, but in ServerEnvironment::step, i think i can just return with no ill consequences
20:09 hmmmm i would rather let the caller know if i had actually completed deactivating far objects though so i'll have it return true or false if it did
20:09 hmmmm and of course if force_delete = true, it'll always succeed (return true)
20:11 hmmmm it seems like i'm going to have to make that "emerge blank block" function now
20:13 hmmmm okay nevermind any of that crap
20:15 hmmmm here's what i'm going to do:  change emergeThread to:  get from memory, load from disk, and if not existing, create a blank MapBlock with a "needs generating" flag set
20:16 hmmmm then if the emergeThread loads a mapblock from disk with "needs generating" set, it'll send it to the mapgen
20:48 celeron55 gotta hate these stupid header dependencies
20:48 celeron55 modifying connection.h causes like everything to be rebuilt
20:50 celeron55 well, 17 files out of almost 100... i guess that's reasonable
20:54 hmmmm speaking of modifying the map format... what do you say to me adding a noiseparams field along with a seed and other metadata
20:54 hmmmm or would you like me to include those things in the same text file where the seed is
20:57 celeron55 noiseparams field... to what?
20:57 hmmmm the map database itself
20:57 hmmmm instead of the map database containing only blocks, why can't it contain metadata as well?
20:58 hmmmm oh that's what you're asking... noiseparams fields of the terrain, biomes, humidity, temperature, etc.
20:58 celeron55 because it's there to only hold blocks; there is for example the leveldb implementation being developed somewhere
20:58 hmmmm if this mapgen is going to be modifiable i need to store it so that it stays consistent between people changing those parameters
20:59 hmmmm if someone modifies their mapgen parameters, that is
21:00 celeron55 (i wonder how hell of a job integrating this https://github.com/minetest/minetest/commits/db_backends to your stuff might be)
21:01 hmmmm that?  not a problem at all
21:02 hmmmm so it's settled, i'll store the metadata in map_meta.txt
21:05 hmmmm and for the mapblock thing, i don't even need to add a flag, i can just use a so-called 'dummy' block
21:12 Bad_Command joined #minetest-dev
21:12 Bad_Command joined #minetest-dev
21:13 hmmmm well... THERE was a bug waiting to happen.  if you tried to serialize a dummy block, it's segfault
21:14 hmmmm MapBlock::serialize, it tries to copy over the mapnodes without checking if data == NULL first
21:14 hmmmm so i'm going to add something like   if (isDummy()) flags |= 0x10;  after all
21:51 nyuszika7h joined #minetest-dev
22:34 sstrandberg joined #minetest-dev
23:07 celeron55 lol i should sleep but i can't go now
23:07 celeron55 SOCKETS, SOCKETS EVERYWHERE
23:08 celeron55 lol minetest serves HTTP now :-----D

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