Minetest logo

IRC log for #minetest-dev, 2013-04-06

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

All times shown according to UTC.

Time Nick Message
00:40 sapier left #minetest-dev
01:07 Exio hmmmm: ROFL WAT are u saing
01:07 Exio hmmmm: i dun understnd dat
01:38 Exio i really think the spawn "place" should be based on the seed-in-some-way if not static_spawnpoint is set and you "being able" to get it from lua
01:38 Exio (so some seed == always some place, maybe that is how it actually works, no idea really)
01:38 Exio i should check and try to implement that :P
01:38 dexter0 joined #minetest-dev
01:39 Exio oh, this isn't #mt
01:39 salamanderrake joined #minetest-dev
01:40 salamanderrake joined #minetest-dev
01:53 VanessaE aw shit
01:54 VanessaE hmmmm: are you here?  we've got a mapgen glitch.
01:54 VanessaE http://digitalaudioconcepts.com/vanessa/hobbies/minetest/images/VanessaE_World_Map.png
01:54 VanessaE north end of the map.  notice the hard edges between chunks.
01:54 VanessaE map_meta.txt has never been edited on this world.
01:56 VanessaE north end of the 'main' mass of the map I mean, not the outlying stuff.  Around x=-448, z=2384 in the world.
02:00 17WABD1LB joined #minetest-dev
02:00 mrtux joined #minetest-dev
02:00 celeron55 joined #minetest-dev
02:00 vidplace7 joined #minetest-dev
02:00 thexyz joined #minetest-dev
02:00 IceCraft|Away joined #minetest-dev
02:00 sfan5 joined #minetest-dev
02:00 toabi joined #minetest-dev
02:00 dzho joined #minetest-dev
02:01 VanessaE don't mind the chunk that looks like stone with exposed minerals, that's not related.  I refer to the other chunks to the right of it that clearly don't belong to this map.
02:10 nyuszika7h_ joined #minetest-dev
02:33 hmmmm vanessae, i really can't help you there
02:33 hmmmm i don't have enough information to go on at all, and i completely doubt it's a "mapgen bug"
02:34 hmmmm there's just no reason for the mapgen to "bug out"
02:34 hmmmm what might've happened is that map_meta.txt became unreadable for some external reason and it tried to use a different seed
02:34 VanessaE I don't see what else it could be, but consider:  someone else was reporting the same thing, and I saw just this same thing again on someone else's map just a week or two ago.  I dismissed both as local glitches, but since this is the third time it's happened to me, I'm a little suspect now.
02:36 hmmmm adding a /deleteblock command is definitely on my to-do list
02:37 VanessaE indeed, it looks like the seed has been changed
02:37 hmmmm right now, you're able to do it manually from the sqlite3 shell
02:37 VanessaE I'm comparing my current map_meta.txt against my backup from March 1.
02:37 hmmmm mmm
02:37 hmmmm i noticed you disabled v6_biome_blend
02:38 VanessaE I didn't disable anything.
02:38 VanessaE this is how it came out of the box.
02:38 VanessaE I don't ever edit that file.
02:38 VanessaE I also notice that my current map_meta.txt has that flag, along with trees and caves, but on march 1 those flags were not present.
02:39 VanessaE nor were mgv6_np_apple_trees and mgv6_np_humidity
02:39 VanessaE I believe mauvebic said that he notice the same thing - if those flags were missing, the whole file got rewritten
02:40 VanessaE noticed*
02:41 hmmmm joined #minetest-dev
02:42 VanessaE the change happened some time between March 6 and March 22
02:42 VanessaE (going from what's in my backups, sorry I don't have better granularity than that)
02:42 VanessaE er march 16 to march 22.
02:43 hmmmm i recall you had some kind of read-only filesystem problem
02:43 hmmmm could've caused it
02:43 VanessaE me?  not that I recall?
02:43 hmmmm mmmm.. must be thinking of someone else then
02:43 VanessaE but wait a sec.
02:44 VanessaE even if the that were the case, how could it rewrite the map_meta.txt if the fs is read-only? :)
02:45 VanessaE my march 22 backup matches the current running copy, btw.
02:46 VanessaE March 16:  http://pastebin.ubuntu.com/5681707/
02:46 VanessaE March 22 and current:  http://pastebin.ubuntu.com/5681708/
02:47 VanessaE mauvebic said he found that if he simply deleted those couple of flags from map_meta.txt, the whole file gets rewritten - as if MT considers the file to be corrupt.
02:47 hmmmm maybe it is corrupt
02:47 VanessaE look at those pastes.
02:48 VanessaE he restored from backups and then modified the restored copy to test it
02:48 hmmmm hm
02:48 hmmmm i'll check it out
02:48 hmmmm ahhhhhh
02:48 hmmmm shooooooot
02:49 hmmmm i know what the problem was
02:49 hmmmm it had to do with the update for jungles and apple trees
02:49 VanessaE [04-05 02:29] <mauvebic> lemme try something, ill copy the apple_trees and humidty lines over to the map, THEN copy it to new minetest and start that up, see what happens
02:49 VanessaE [04-05 02:35] <mauvebic> thats it
02:49 VanessaE [04-05 02:35] <mauvebic> the file got overwritten because of the missing lines
02:49 VanessaE ok
02:49 hmmmm well, i promise it won't happen again
02:49 VanessaE sorry I didn't catch it sooner.
02:49 hmmmm you can change your lfags to whatever you'd like
02:50 hmmmm i should think of a better way to handle missing parameters, i guess
02:50 VanessaE can you look at that map image and tell me how to nuke the bad data from the file?
02:51 hmmmm find the coordinates of those blocks that are bad, divide the coordinates by 16, then use the blockpos-to-integer formula to come up with the ID in the database
02:51 * VanessaE changes the seed back to the correct one.
02:52 hmmmm then go into sqlite3 and DELETE FROM blcoks WHERE id=<theidhere>;
02:52 hmmmm blocks*
02:52 VanessaE ehm...
03:07 VanessaE I'm also noticing this:
03:07 VanessaE http://digitalaudioconcepts.com/vanessa/hobbies/minetest/screenshots/screenshot_3713013400.png
03:08 VanessaE the water surface.  Why it is two different shades?
03:08 VanessaE (the time was already daylight for several minutes, so it's not a day/night transition)
03:08 VanessaE why it is??  *sigh*
03:08 VanessaE why is it*
03:10 hmmmm i don't know...
03:13 VanessaE oh this is interesting
03:13 VanessaE if I scoop up a bucket of water from the darker region, it is replaced by the infinite water code - and that one new node is light in color like the lighter regions.
03:16 VanessaE and if I spill a bucket of water of either shade onto the lighter shade, that one spot turns dark to match the darker stuff
03:17 VanessaE but both the light and dark regions are being regenerated when I scoop up a bucketful, so both are infinite.
03:18 VanessaE http://digitalaudioconcepts.com/vanessa/hobbies/minetest/screenshots/screenshot_3713627216.png
03:31 VanessaE ok, confirmed that plugging my old seed works (flew around the bad area and let it generate several new chunks, which match the old map data)
03:31 VanessaE so now I have a T-shaped section of weird data :)
03:31 VanessaE or more like lower-case 'r' shape.
03:32 mrtux joined #minetest-dev
03:48 RealBadAngel https://github.com/minetest/minetest/pull/605
03:48 RealBadAngel looks like better try on luajit
03:50 VanessaE oh hell, this actually bundles luajit doesn'it it?
03:50 VanessaE -i
03:50 VanessaE er
03:50 RealBadAngel quick look says so
03:51 RealBadAngel with compile option
03:51 VanessaE this goes against what the luajit team suggests.
03:52 RealBadAngel well, we used to have bundled lua too ;)
03:52 RealBadAngel if it will work i have nothing against it
03:53 VanessaE I'd prefer to use a separate luajit repository honestly.
03:53 VanessaE unless we can always be sure that the bundled one is kept up-to-date.
03:53 RealBadAngel that should be easy
03:54 RealBadAngel when new version will be out, just update our files, thats all
03:55 VanessaE mmmh
03:55 VanessaE I guess
03:55 VanessaE as long as it works properly, I suppose it doesn't matter if it's up-to-date
03:55 VanessaE as long as it doesn't fall far enough behind to break stuff at the next update.
03:56 RealBadAngel from what i can see this solution keeps old lua
03:56 RealBadAngel thats good
03:57 hmmmm yeah, vanessa, no idea.
03:57 hmmmm so what's up with slamming me with all these minor issues?
03:57 RealBadAngel hmmmm, was worrying that luajit is not workin on ALL platforms, so users could just use regular lua there
03:58 VanessaE hmmmm: because you're convenient? ;)
03:58 VanessaE (seriosuly, because you're the mapgen expert)
03:58 hmmmm realbadangel, yeah, it was intended to be that way in the first place
03:58 hmmmm i really want to get luajit in
03:58 VanessaE RealBadAngel: have you tested that patch?
03:58 hmmmm do i use BlindBanana's pull request?
03:58 hmmmm is there a problem with that one?  is there somebody else who has a better patch?
03:59 RealBadAngel about water, i think its an issue with flowing/still water, flowing is displayed incorrectly
03:59 VanessaE hmmmm: I think use that other one, by AngelCry
03:59 VanessaE (#605)
03:59 RealBadAngel hmmmm, check out latest one
03:59 hmmmm also speaking of lua
03:59 hmmmm i really need some opinions here
03:59 RealBadAngel havent tested it yet, just woke up and saw it
03:59 hmmmm mapgen.lua was designed for a time when there was a single map generator
03:59 hmmmm what if there were several of them
04:00 hmmmm a mapgen.lua on initialize could "subscribe" itself to a list of mapgens
04:00 hmmmm so the current mapgen.lua would register itself to be called for v6 and indev
04:00 hmmmm but not on singlenode, since that's quite silly
04:00 VanessaE hmmmm: rewrite mapgen.lua to be specific to mapgen v6 (and v5?), rename it accordingly, and make a new one with a new name for v7
04:00 hmmmm and v7 would have something else too
04:01 hmmmm what do you guys think, yes?
04:01 hmmmm it's ultimately necessary, since DecorationDef is going to screw up everything
04:01 RealBadAngel its quite easy
04:02 RealBadAngel depending on setting open different file
04:02 hmmmm also PilzAdam, i need ice and dirt_with_snow blocks in minetest_game
04:02 VanessaE since I don't poke around with the map generator, and since the only real overrides in Lua are by redefining a few functions et.al (rather than directly modifying mapgen.lua), I don't see a problem with rewriting it.
04:02 VanessaE hmmmm: use the nodes, definitions, and textures from the snow biomes mod
04:02 hmmmm don't tell me to use it
04:02 hmmmm i don't bother with the lua side of things at all
04:02 VanessaE nonono, not "the mod"
04:02 VanessaE the pieces thereof.
04:02 hmmmm i know, but i'm not bothering with that at all
04:02 VanessaE ok
04:02 hmmmm that's totally pilzadam's territory
04:03 hmmmm for a couple reasons
04:03 VanessaE I wonder if I should try to duplicate its functionality using plants_lib.
04:03 hmmmm mostly i just want to limit my scope so my obligations aren't sneakily growing
04:03 VanessaE I understand
04:03 hmmmm but also minetest_game is a minefield
04:03 hmmmm and i'm not very interested in doing minetest_game related things in the first place
04:03 VanessaE let's rename it :-)   minefield_game ;)
04:04 hmmmm so why are desert sand blocks so orange
04:04 VanessaE random.
04:04 hmmmm i think i brought this up before, but i feel like i'm on mars
04:04 VanessaE I wondered the same thing
04:04 VanessaE and I think it's ugly
04:04 hmmmm for real
04:04 VanessaE desert sand should look like regular sand does now, and regular sand should be lighter, less saturated.
04:04 hmmmm honestly
04:04 hmmmm YES
04:05 hmmmm that is exactly what i was going to say
04:05 hmmmm well, i was going to say "sand should look like it used to"
04:05 VanessaE lemme see what I can throw together in gimp
04:05 hmmmm also, what do you feel about the new dirt and dirt_with_grass textures... i always thought they were too saturated
04:06 VanessaE I think those are fine
04:06 hmmmm when i play on my own, i like to swap them with the original ones
04:07 jojoa1997|Tablet joined #minetest-dev
04:09 VanessaE http://digitalaudioconcepts.com/vanessa/hobbies/minetest/images/Screenshot%20-%2004062013%20-%2012:09:07%20AM.png
04:09 VanessaE hmmmm:  ^^^^
04:10 hmmmm yes that's pretty nice
04:10 hmmmm how does it look in the actual game?
04:10 hmmmm not too washed out i hope
04:10 VanessaE Haven't tried yet, lemme save them out and see.
04:11 VanessaE oh NOT BAD.
04:12 hmmmm what should we do with desert stone now, you think?
04:12 VanessaE http://digitalaudioconcepts.com/vanessa/hobbies/minetest/screenshots/screenshot_3716898895.png
04:13 VanessaE desert stone?  I'm not sure at all about it.
04:13 hmmmm hrmm
04:13 VanessaE with this change to default sand, default sandstone will need to be lightened a little to follow.
04:13 hmmmm i guess we'll just leave the stone as-is
04:13 hmmmm this is nice though, i really like it
04:14 jojoa1997|Tablet we should alias desert stone to be sand stone
04:14 jojoa1997|Tablet jk the stone is good
04:14 VanessaE http://digitalaudioconcepts.com/vanessa/hobbies/minetest/images/default_desert_sand.png
04:14 VanessaE http://digitalaudioconcepts.com/vanessa/hobbies/minetest/images/default_sand.png
04:17 VanessaE now with this lighter sand, we badly need a "dirty sand" node to aid the transition on seabeds between sand and dirt.
04:18 VanessaE (on land, a "dirty, grassy sand" node is needed)
04:18 hmmmm i'll get something done quick for people to play around with
04:18 jojoa1997|Tablet red sand
04:18 jojoa1997|Tablet i seen some nice deserts
04:19 jojoa1997|Tablet hmmmm what you making?
04:19 hmmmm the mapgen
04:19 jojoa1997|Tablet oh
04:20 jojoa1997|Tablet has anyone made an official to be added entity spawning or flower spawning to minetest
04:23 jojoa1997|Tablet how do i kick someone from my name
04:23 VanessaE hmmmm: more texture file links coming, for your consideration.
04:23 jojoa1997|Tablet it is registered but i am not usinbg that one name
04:25 VanessaE http://digitalaudioconcepts.com/vanessa/hobbies/minetest/images/default_sand_dirty.png
04:25 VanessaE http://digitalaudioconcepts.com/vanessa/hobbies/minetest/images/default_sand_grassy.png
04:25 VanessaE http://digitalaudioconcepts.com/vanessa/hobbies/minetest/images/default_desert_sand_grassy.png
04:25 hmmmm too many different kinds of sand, seriously....
04:25 hmmmm maybe a mod for smooth transitions
04:26 VanessaE maybe.
04:26 hmmmm and you can insert all of those "edge" biomes on your own
04:26 VanessaE I figured these would be used in-world, but would just drop plain sand or desert sand.
04:27 VanessaE e.g. mapgen-only nodes (except if you wanna screw around with them in creative or so)
04:27 Jojoa1997 joined #minetest-dev
04:27 VanessaE that way the user only ever sees one kind of grass and two kinds of sand, like always.
04:28 VanessaE shall I try a lightened sandstone also?
04:28 VanessaE (to match the lighter sand color)
04:28 hmmmm the sandstone was made to match the original sand
04:28 VanessaE right
04:28 hmmmm it'd be nice if there was sandstone that was actually sand stone though
04:29 hmmmm like blocks of sand chizeled into bricks, it's used in desert temples in minecraft
04:29 VanessaE hm, looking at the default texture though, the color is fine, but yeah let's see if we can make this into rough blocks.
04:31 Jojoa1997 what about a block that is a chisler like a furnace cooks
04:36 jojoa1997|Tablet join the regular channel i have imposters there
04:36 VanessaE ooooooooo
04:36 VanessaE hmmmm: you're gonna LOVE this
04:37 VanessaE hmmmm: http://digitalaudioconcepts.com/vanessa/hobbies/minetest/screenshots/screenshot_3718414448.png
04:38 VanessaE brick-like sandstone.
04:38 jojoa1997|Tablet i like it
04:39 VanessaE http://digitalaudioconcepts.com/vanessa/hobbies/minetest/images/default_sandstone.png
04:39 VanessaE the actual texture file.
04:43 hmmmm nice
04:44 hmmmm was kinda hoping for larger bricks, though
04:44 jojoa1997|Tablet show do you add names to accounts
04:44 hmmmm these are really bricky bricks
04:44 VanessaE I thought about that, but I figured larger bricks might look wrong
04:44 hmmmm jojoa, no idea, but it's not a #minetest-dev question
04:44 hmmmm try to stay on topic please
04:45 VanessaE lemme see how it looks with a 1x2 pattern.
04:45 jojoa1997|Tablet sorry wrong channel thought was in #freenode
04:45 hmmmm hrmm
04:45 hmmmm in minecraft, biomes do more than what you probably think
04:45 hmmmm they also select the sky color and grass color
04:46 hmmmm i want to be able to do the sameish thing
04:46 jojoa1997|Tablet in minecraft the grass is tinted
04:46 hmmmm perhaps this will be possible with my colorlike node type in the future
04:46 Jojoa11997 left #minetest-dev
04:48 jojoa1997|Tablet joined #minetest-dev
04:49 VanessaE hmmmm: http://digitalaudioconcepts.com/vanessa/hobbies/minetest/screenshots/screenshot_3719113997.png
04:49 VanessaE 1x2 pattern like most other bricks
04:49 hmmmm that does look nice
04:50 jojoa1997|Tablet yeah
04:50 hmmmm so what do we call it, chiseled sandstone?
04:50 VanessaE yeah!
04:50 VanessaE or, sandstone brick for the large one
04:50 jojoa1997|Tablet you knpow with the chisel you could make different types of stone
04:50 VanessaE chiseled sandstone for the smaller bricks
04:50 VanessaE but that's too many types of sandstone.
04:50 jojoa1997|Tablet no
04:51 jojoa1997|Tablet Not if you use a machine to convert to all types
04:52 VanessaE Abe's opinion is that the smaller bricks look better, at least in the screenshot
04:52 jojoa1997|Tablet i like smaller bricks
04:53 VanessaE http://digitalaudioconcepts.com/vanessa/hobbies/minetest/images/default_sandstone2.png
04:53 VanessaE here's the larger bricks one.
04:53 jojoa1997|Tablet show us some single block pics?
04:53 jojoa1997|Tablet like how it would look in the world
04:53 VanessaE jojoa1997|Tablet: see above for the screenshot of the larger bricks in-world.
04:53 jojoa1997|Tablet saw
04:54 VanessaE that house is the only sandstone structure I have handy.
04:54 jojoa1997|Tablet i meant how it would look when you could see all three sides
04:54 VanessaE lemme get a shot of the interior.
04:54 jojoa1997|Tablet haha you modeled your house to be made of sand
04:56 VanessaE http://digitalaudioconcepts.com/vanessa/hobbies/minetest/screenshots/screenshot_3719518141.png
04:56 VanessaE best I can do without making a new structure for the sake the texture test.
04:57 jojoa1997|Tablet on the inside it looks too...
04:57 jojoa1997|Tablet simpl
04:57 jojoa1997|Tablet the inside should look detailed(small bricks)
04:58 VanessaE http://digitalaudioconcepts.com/vanessa/hobbies/minetest/screenshots/screenshot_3719634314.png
04:58 VanessaE the same room, rendered with the 1x4 pattern.
04:58 VanessaE having smaller bricks on one side versus the other would not work in practice.
04:58 jojoa1997|Tablet yeah i like the smaller one better
04:59 jojoa1997|Tablet looks more like stacking sand
04:59 jojoa1997|Tablet also it would add a difference between bricks of stone and clay
04:59 VanessaE hmmmm: opinions?
05:00 hmmmm gosh i dunno
05:00 hmmmm i like both of them
05:00 VanessaE haha
05:00 jojoa1997|Tablet i like both and if we could get a way to make them different ways that would be best
05:00 jojoa1997|Tablet get a chisler and problem solved
05:00 jojoa1997|Tablet one sec
05:00 VanessaE hmmmm: well then there's just one choice:  make one of them default sandstone and make the other some kind of chiseled sandstone.
05:00 hmmmm i guess the 1x2 pattern is more like what you'd see used in the pyramids and what not
05:01 hmmmm definitely not... come on... leave sandstone the way it is
05:01 VanessaE (small/1x4 bricks = default, large/1x2 = chiseled)
05:01 VanessaE awwww
05:01 VanessaE spoil my fun :)
05:01 VanessaE ok, pick one as a 'chiseled' variant, the other...I dunno what to do with it
05:02 jojoa1997|Tablet http://www.minecraftwiki.net/wiki/Stonecutter
05:02 jojoa1997|Tablet that would work but call it a chisler
05:03 VanessaE ew, no
05:03 VanessaE this should require only a hand tool to cut
05:03 jojoa1997|Tablet or
05:03 jojoa1997|Tablet we could have a forge block that you have to put a tool in to use
05:03 jojoa1997|Tablet chisel for chiseling and hammer for enchancing tools
05:03 jojoa1997|Tablet there 2 birds with one stone
05:04 VanessaE naw.  place a sandstone block, and hit it with a chisel tool to turn it into a chiseled brick block.
05:04 VanessaE that makes the most sense considering the general theme of minetest
05:04 jojoa1997|Tablet hit it again
05:04 jojoa1997|Tablet then what
05:04 jojoa1997|Tablet what if we want to convert back
05:04 VanessaE hit it again, nothing happens, or it becomes a 4x1 brick block, but I don't know if there's a reason to have both kinds of sandstone bricks.
05:05 jojoa1997|Tablet use the forge idea that also allows people to have their "enchanted" enhanced tools
05:05 VanessaE meh
05:05 VanessaE save that forge idea for one of the other games.
05:06 VanessaE I'm focused on 'common'.
05:06 jojoa1997|Tablet wht other games
05:06 jojoa1997|Tablet oh
05:06 jojoa1997|Tablet i was thinking the tool that goes into forge slot (type) is what happens
05:06 VanessaE naw, that's overkill for this.
05:07 VanessaE maybe in the 'build' game it might make sense, but this isn't for that, this is for default.
05:07 VanessaE we don't need a bunch of special machines in default.
05:07 jojoa1997|Tablet eh i ambored
05:07 jojoa1997|Tablet so i get crazy ideas
05:10 jojoa1997|Tablet what i think would be a good feature is a guidbook or something we get at the begining of the world. that way we know all the recipes
05:10 VanessaE that's better suited to a wiki.
05:10 jojoa1997|Tablet but not when someone doesnt knpow where the wiki is
05:10 jojoa1997|Tablet it also would help with other mods aka technic
05:11 jojoa1997|Tablet or pipeworks
05:11 jojoa1997|Tablet left #minetest-dev
05:13 jojoa1997|Tablet joined #minetest-dev
05:13 VanessaE stay on topic, jojoa
05:14 jojoa1997|Tablet going to bed way too tired
05:14 VanessaE good n9ight.
05:14 VanessaE -9
05:15 jojoa1997|Tablet night
05:15 jojoa1997|Tablet left #minetest-dev
05:20 VanessaE hmmmm: well anyway, use whichever of those various images you feel are right.  WTFPL, etc.
05:35 hmmmm well
05:35 hmmmm i just realized it's basically impossible to do the biome LUT idea
05:36 hmmmm this means that the more biomes you add, the slower the mapgen will get
05:36 VanessaE ew
05:37 hmmmm this leaves it as an open problem for someone to optimize it
05:37 hmmmm which will never happen
05:38 hmmmm from a simpler time when minecraft didn't take height into account at all, it was possible and very easy to do that
05:38 hmmmm i am looking at minecraft's source right now and it seems they have a biome cache, so they don't need to recompute values, but it doesn't _precompute_ values like i wanted to
05:43 hmmmm see, this is hard, minecraft isn't multithreaded but minetest is
05:43 hmmmm so i'd need to lock the cache whenever something requests values from it
05:44 hmmmm which would probably end up taking more time to acquire than it would've to just recompute the point value from scratch
05:47 BackupCoder joined #minetest-dev
05:54 hmmmm moreover, minecraft's solution to handling the third dimension (height) is very ugly; from what i understand, each biome has its own height class, which calculates its own voroni mapping
05:55 hmmmm doing things in a case-by-case basis like that is unacceptable for us
05:55 hmmmm i really wish it turned out to be as easy as looking at the modulating noise parameters, i really do.. would've saved all this trouble and biome calculations would be an O(1) lookup
05:58 hmmmm i guess this will warrant more investigation if it turns out to be an actual problem later on when people add about 80 biomes and complain about how the mapgen is slower than it originally was
05:59 VanessaE fwiw, moretrees gets by with about 13 biome definitions and seems to do ok if not for the slowness of the tree lighting updates.
05:59 VanessaE so maybe it won't be as bad as you fear
05:59 hmmmm right now it's fantastic, on average 29ms at -O1, but this is without caves or trees spawning
05:59 hmmmm 29ms before lighting and liquid transform i should say
06:00 hmmmm compared to v6's ~45-60ms
06:00 hmmmm it's funny, i'm using 3d noise too, which is pretty heavyweight.
06:22 VanessaE I'm out.  Night.
08:35 Zeg9 joined #minetest-dev
09:00 ImQ009 joined #minetest-dev
09:26 Calinou joined #minetest-dev
09:27 EduardeCalibal joined #minetest-dev
09:46 serengeor joined #minetest-dev
09:47 Jordach joined #minetest-dev
09:47 Jordach joined #minetest-dev
10:19 Deivan joined #minetest-dev
11:24 Taoki Why aren't naturally spawning flowers in by default yet? I thought they were and was surprised to see nothing about flowers in common yet o.o
11:25 Taoki Also, BRB
11:40 iqualfragile joined #minetest-dev
11:54 rarkenin joined #minetest-dev
12:17 jojoa1997|Tablet joined #minetest-dev
12:23 jojoa1997_Tablet joined #minetest-dev
12:45 Guest95525 joined #minetest-dev
12:52 Zeg9 joined #minetest-dev
13:16 PilzAdam joined #minetest-dev
13:30 PilzAdam celeron55, the launchpad builds work fine, but for some reason survival and build are missing in the stable ppa
13:30 Exio PilzAdam: https://github.com/minetest/minetest/commits
13:31 Exio check the order
13:31 PilzAdam oh
14:12 hmmmm joined #minetest-dev
14:19 sapier joined #minetest-dev
14:21 sapier sometimes I wonder how it was possible to find really any single possibility to leak a texture ;-)
14:23 Exio here sapier - hmmmm
14:23 Exio there was something about the scriptapi what i don't recall :P
14:23 PilzAdam sapier, do you keep your scriptapi split up to date with the new additions to the API?
14:24 sapier I've only found a single place where an occassion to loose a texture wasn't taken
14:24 sapier partly
14:25 sapier if I do merge master to that patch I'll update it but I won't include unmerged pull requests
14:26 sapier noone ever thought about how to delete textures again either I need to use very dirty hacks to keep track or reorganize half of mintest :-(
14:28 hmmmm hmm yes
14:28 hmmmm we need to merge some of those pull requests now
14:29 hmmmm https://github.com/minetest/minetest/commit/1586cdac53935cd4735162ad8337c269f0dfa718
14:29 sapier so your merge order decides how much work is generated additionaly
14:29 hmmmm could nobody fix the title of the commit before they pushed
14:29 hmmmm ;;
14:29 hmmmm sapier, yes, basically
14:30 hmmmm it's much easier to have the one guy who's already converted all the other lua functions to what you have now than it is the opposite
14:31 PilzAdam hmmmm, that is a wonderful commit message
14:31 sapier ok give me a list of wich pull requests you want to add so I add them to my changeset that's much easier than selecting those changes back from master
14:31 hmmmm what's your opinion on minetest.get_player.ip()
14:32 hmmmm sapier, we'll merge them first
14:32 Zeg9 hmmmm, 5 minutes ago I was just thinking that a way to get IP of a player should be added...
14:33 sapier sometimes I think you hate me ... can I at least suggest not mixing api and other changesets?
14:33 hmmmm first of all, not sure if that is desirable for a mod to know IPs
14:33 hmmmm it could report them back to some central server
14:33 sapier I'm against this
14:33 Zeg9 Well, at least, there should be a way for admins to know it...
14:33 Zeg9 And people can read the mod's source
14:33 hmmmm you don't know what mods a server is using
14:33 hmmmm as a client
14:33 Zeg9 Right.
14:34 sapier ok zeg9 once you've read and understood mobfs source code we're talking about this point again ;-)
14:34 hmmmm and i wasn't aware that peer_id is the ip address
14:34 Zeg9 I was taling more about something like: grep get_player_ip $(find -name *.lua)
14:34 Zeg9 :D
14:34 hmmmm i thought it was an increasing number that started at 1
14:35 hmmmm oh, getPeerAddress
14:35 hmmmm didn't see that.
14:35 sapier I assume I'll finde a way to get this done without using the word "get_player_ip" if I do only half an hour of investigation
14:35 hmmmm what's the purpose of calling get_env(L)->getPlayer(name) again?  you already did it on line 831
14:35 hmmmm golden rule of programming, don't repeat yourself
14:36 hmmmm not that it has a horrible effect, it's just unprofessional
14:36 hmmmm since sapier has to change that anyway, i'll merge it as-is
14:36 sapier and it's slow
14:37 hmmmm but there's still the question if the mods should really be able to know the IP addresses in the first place
14:37 sapier ok I'll have a look at it when merging
14:37 hmmmm I sure as hell don't want them to know
14:37 hmmmm sapier, i thought you had to change that line anyway, since you're replacing get_server(L) and get_env(L) calls?
14:37 sapier true
14:38 hmmmm should have more of a consensus
14:38 hmmmm i vote 'no' for get_player_ip
14:38 sapier I vote no too (for privacy reasons)
14:38 Zeg9 I vote no for it but yes for adding it in the server log.
14:38 Exio i don't like it either if you can't disable it
14:39 hmmmm the client would need to have the option
14:39 Exio (as player_ip = 127.0.0.1 in the .conf => it always return that value)
14:39 sapier maybe we can delay it until security settings are ready?
14:39 Exio or yes, that is better
14:39 hmmmm that would require a new network packet field
14:39 hmmmm or at least adding a flag
14:40 hmmmm yeah, get_player_ip won't be merged as-is, at least..
14:41 sapier I strongly suggest adding this one: https://github.com/minetest/minetest/pull/587
14:41 * hmmmm rolls eyes
14:42 hmmmm there's already a conflict
14:42 hmmmm why not do that after the scriptapi
14:42 sapier not quite surprising
14:42 hmmmm yes, you see, this is what happens when you have a huge pull request
14:42 sapier this shouldn't be much of collision to scriptapi while it'll improve stability by some factors :-)
14:43 hmmmm i couldn't help but feel like this didn't need to be done all at once
14:43 hmmmm whatever, i'm cherry picking from it anyway
14:43 sapier this had to be done all at once because you didn't see any bug while having that much in place
14:44 sapier you can do but you'll waste lots of hours of investigation as you need to do this again with the cerry picked version
14:44 sapier and delete order of members is important to avoid crashes
14:44 hmmmm mmmmmmm..
14:44 hmmmm i'll... figure it out
14:44 hmmmm alright minetest.get_version()
14:44 sapier ok :-) best wishes ;-)
14:44 hmmmm what do you guys think?
14:46 PilzAdam <hmmmm> alright minetest.get_version() <- no
14:46 Exio i can't say anything, because it for checking features doesn't seem the "best way" for it, but it can be useful for mods doing other things
14:46 Exio as i'm not sure :P
14:46 hmmmm i'm not sure about get_version
14:46 hmmmm you can make a case for either way
14:47 sapier I don't see any benefit either ... unless you want to create a showstats mod
14:47 PilzAdam it useful, but not in the way sfan5 intended it
14:47 PilzAdam +is
14:47 hmmmm sure, you can check if some functions exist or not, but... you're falling down the slippery slope once you start doing that
14:47 sapier if this was added it'll be used to ensure mods running on specific minetest versions .. no matter if this was intended or not
14:48 hmmmm eventually, it'll be "correct" to check that every function exists before you use it
14:48 ecube joined #minetest-dev
14:48 hmmmm with get_version, you'll get some version number and with a quick comparison, you can know exactly what functions you're guaranteed to have and what you aren't
14:48 PilzAdam or you say "requires latest minetest version" in the topic
14:49 sapier define "latest"? ;-)
14:49 hmmmm i'd say latest released
14:49 Exio i'd say the git commit, but :P
14:49 sapier so if you don't update for 2 versions your mod most likely won't work anymore
14:50 sapier I think it's worth adding not because it's clean style but because it's usefull
14:50 hmmmm hmm
14:50 hmmmm alright, first we'll merge pathfinding
14:50 sapier you could point a user to some older version for example
14:51 hmmmm the code style is a bit off, but i don't really think that matters as much since it's sapier's stuff
14:51 hmmmm just like how i don't complain about proller's stuff in mapgen_indev.cpp
14:51 hmmmm it's the mixing together of things or un-doing what others have that pisses me off
14:51 sapier You could've told me some days ago I would've fixed it already
14:52 hmmmm nevermind that
14:52 hmmmm you can fix it some other time if you'd like
14:52 sapier ok ... if I do have spare time ;-)
14:53 hmmmm by the way did you see the updated coding guidelines page on the wiki
14:53 sapier no didn't have a look at them
14:54 hmmmm http://dev.minetest.net/Code_style_guidelines#Miscellaneous
14:54 hmmmm :D
14:55 sapier I assume I have to fix this ... beeing part of standard doesn't mean anything if standard defines "is implementation specific" ;-)
14:55 sapier but no need to start again :)
14:56 sapier you don't lile m_?
14:56 hmmmm hungarian disaster
14:56 hmmmm if your method is too big to see that your variable wasn't declared anywhere in that scope, you have a size problem
14:57 sapier sorry but I'll ignore this one ... class members have to be m_ to be distinguishable from function local variables
14:57 sapier sometimes you have local variables very similar to members it's way to easy to take the wrong one for mistake
14:58 hmmmm http://www.joelonsoftware.com/articles/Wrong.html
14:58 jojoa1997|Tablet has anyone thought of tinting stuff like grass
14:58 hmmmm joel agrees with me
14:59 jojoa1997|Tablet and greas_*
14:59 jojoa1997|Tablet also tinted glass would be nice
15:00 sapier I don't even know who joel is ;-P
15:00 hmmmm omg
15:01 hmmmm oh, also, if your IDE has autocomplete (i know you use eclipse) it'll give you the member in a nice little pop-up listbox
15:01 hmmmm if the variable you're typing isn't in there, then it's not a member!
15:01 sapier unless you show a better way to get an obvious difference between function local and member variables I wont stop using m_ prefix ;-) ... as I believe globals are bad style in any way this isn't of any problem
15:01 sfan5 about the get_version thing: what if a function changes like e.g. minetest.get_inventorycube takes an array instead of three arguments, you can't check for that with lua
15:01 sapier autocomplete in eclipse is always disabled as it crashes way to often
15:02 hmmmm no no, globals still have g_
15:02 sapier no problem as I don't use globals ;-)
15:02 sapier If you require to use a global variable your design is most likely to be broken
15:03 hmmmm as someone whose primary language is C, i find that offensive
15:03 * Jordach isnt taking sides as Jordach uses both C and Python
15:03 sapier it's not offensive globals are common source of error if you do multithreaded applications
15:05 Exio for me, there are things what used wrong lead to "that"
15:05 hmmmm you just need to exercise caution when using globals
15:05 Exio read that as, goto, globals, etc
15:05 hmmmm like we already do with any other shared data structures
15:05 Exio (in C)
15:05 sapier yes and any lock breaks parallel execution as it adds implicit synchronisation
15:06 hmmmm well, we can't exactly help it
15:06 sapier the less synchronisation is required the more you can gain from parallel execution thus avoiding globals is a very good way to improve performance for mutlithreaded applications
15:07 hmmmm s/globals/shared data structures/
15:07 hmmmm again, see Map, that's not global but look, it has the same problem
15:07 sapier yes
15:07 hmmmm it's not like globals are evil
15:07 hmmmm it's just that when you have one of one thing, and many of others, there will always be that problem
15:07 hmmmm it's just the way life is
15:08 sapier sometimes "shared" is same  as global ;-)
15:08 hmmmm i need my coffee
15:08 sapier every thread has a pointer to map so it's almost global
15:08 hmmmm and then i'll merge pathfinder
15:10 jin_xi joined #minetest-dev
15:13 kaeza1 joined #minetest-dev
15:15 hmmmm this mouse is pissing me off
15:16 hmmmm it's like i need to fight with the computer to do something simple like unminimize a window
15:16 hmmmm dragging and dropping is nearly impossible
15:16 hmmmm and of course the scroll wheel's broken too
15:16 hmmmm i feel like i need to kill something
15:17 sapier <<away
15:17 sapier left #minetest-dev
15:23 rarkenin joined #minetest-dev
15:23 jojoa1997|Tablet left #minetest-dev
15:26 Guest36009 joined #minetest-dev
15:31 Calinou joined #minetest-dev
15:32 hmmmm you know, i just checked for the hell of it, and i was right about adding the underneath border blocks to the area where light is to be calculated
15:33 hmmmm alright, fine, i'll fix the cave shadows.
15:33 hmmmm you know, it's funny, we have solutions to all these long-time problems but never did anything about them
15:33 hmmmm probably because we've already accepted this as a quirk
15:34 Calinou id software approves of this quote
15:34 hmmmm in my opinion, though, Mapgen V7 shouldn't have to suffer from Mapgen V6's decision to have caves above ground.. i'm going to make a clean solution for this
15:42 Guest85550 joined #minetest-dev
15:45 hmmmm PilzAdam, you didn't like this pull request for some reason?  https://github.com/minetest/minetest/pull/583
15:45 hmmmm if you'd like, he can add the server enabling/disabling later
15:45 PilzAdam I thinks its hacky
15:45 hmmmm how would you do it that isn't hacky
15:46 PilzAdam make it a server setting
15:46 hmmmm [11:45 AM] <hmmmm> if you'd like, he can add the server enabling/disabling later
15:46 hmmmm which would require another protocol version bump...... weeeeeeeeeee
15:48 Calinou and?
15:48 Calinou this is incredibly useful
15:52 PilzAdam just zooming without any tool is too unrealistic
15:52 * VanessaE peeks in
15:53 VanessaE So have the client make sure the player has binoculars in their inventory somewhere.  Problem solved.
15:53 proller hmmmm, sky water fix - https://github.com/proller/minetest/commit/97a91aa2ee7fa71d1d5a745ed4974df3af2ce2ef
15:53 VanessaE (it's not like a person can't just hack the client to zoom anyway, whether the server wants it to or not)
15:53 proller simple version, it works
15:54 PilzAdam proller, what about not finite liquids?
15:54 Exio VanessaE: /set fov 15
15:54 Exio without any mod
15:54 Exio suddenly, zoom
15:54 VanessaE Exio: right, so not even a hack.
15:54 PilzAdam Exio, nope
15:54 PilzAdam that sets the server setting
15:54 kaeza ^
15:54 proller PilzAdam, they have no big problem with it
15:54 VanessaE regarding showing a player's IP, I vote no except that it (continue to) be shown in the logs.
15:54 Exio it doesn't work in multiplayer?
15:54 hmmmm proller they definitely do
15:54 kaeza Exio, no
15:54 jojoa1997|Tablet joined #minetest-dev
15:55 hmmmm i noticed the problem when i was making my minecraft classic map converter
15:55 kaeza (I tried
15:55 kaeza )
15:55 Exio ehm, ah
15:55 kaeza but as I discussed with someone the other day, rendering is client-side
15:56 PilzAdam hmmmm, there was a pull request for adding liquids that hit ignore to the queue again
15:56 kaeza so these kinds of things are nearly impossible to avoid
15:56 hmmmm pilzadam, ??
15:56 hmmmm isn't that what we don't want to happen?
15:57 Exio wait wait
15:57 Exio is the FOV-setting.. server-side?
15:57 Exio i don't get it
15:57 PilzAdam if they arent added than they will fly even if the block under them gets loaded
15:57 Exio why the client needs to use the *fov* of the server in that terms?
15:57 PilzAdam Exio, /set sets server settings, not client settings
15:58 Exio let me try something
15:59 VanessaE that begs the question, why does the server even HAVE a fov setting?
15:59 PilzAdam VanessaE, that question doesnt make sense at all
15:59 VanessaE PilzAdam: nevermind
16:00 VanessaE just rambling - I'm not awake yet
16:02 salamanderrake joined #minetest-dev
16:02 proller hmmmm, commit fix?
16:03 hmmmm what branch is that on?
16:03 hmmmm oh nevermind
16:03 hmmmm stupid question
16:03 proller https://github.com/proller/minetest/tree/oreup
16:03 proller there is temporary springs fix
16:04 PilzAdam proller, you shouldnt merge upstream into your development branches
16:04 PilzAdam that makes it unable to rebase
16:04 PilzAdam better rebase against upstream/master
16:04 hmmmm it doesn't matter
16:04 hmmmm i just cherry pick
16:06 proller PilzAdam, no problem to rebase after merge
16:07 hmmmm hrmmm
16:07 hmmmm the big texture leak patch
16:07 hmmmm this is going to be harder..
16:07 PilzAdam hmmmm, why havent you fixed the commit message?
16:08 hmmmm nothing even matters anymore
16:08 hmmmm whatever, from now on we'll fix commit messages if they need fixing
16:08 VanessaE (insert Metallica song here)
16:08 hmmmm it's an official policy
16:08 PilzAdam what does the "upper springs" commit do?
16:08 hmmmm ah
16:09 hmmmm yeah that's vague enough to need fixing i guess
16:09 hmmmm i'll do that
16:13 hmmmm and this was already done by the pathfinding patch, right?  https://github.com/minetest/minetest/pull/434
16:13 hmmmm so it can be closed
16:13 PilzAdam yes
16:14 Exio what about this https://github.com/minetest/minetest/pull/604 ?
16:15 hmmmm i'm not sure... does it change the way we've always done things?
16:15 Exio what things?
16:15 Exio if you do cmake . it will be the same as always
16:15 hmmmm well alright
16:16 hmmmm sapier, i don't understand this https://github.com/sapier/minetest/commit/e0b861b0d46fe50b2ce88d7c825df8acc185c092
16:16 hmmmm why are you doing that again?
16:17 PilzAdam hmmmm, the skript updatepo.sh to create the translation files searches for wgettext(string) in the sourcecode
16:17 hmmmm oh :/
16:17 ds-2k joined #minetest-dev
16:18 hmmmm i guess he changed it before, and this became broken?
16:19 ds-2k Exio, setting the fov in minetest.conf on a client works when connecting to a server
16:19 ds-2k so clients can already change fov without modifying the source code
16:19 PilzAdam yes, the strings werent in the .po files for some time, then I added gettext() to it to fix it
16:19 hmmmm see, a lot of these things i have to take special consideration of... i can't merge the "cleanup very huge texture leak" commit as-is because then that'd break my extensive biome.cpp modifications
16:20 Exio ds-2k: ah
16:21 hmmmm and he made a good point of deleting items that are already in threads' queues when they're shutting down
16:21 hmmmm sapier does this with MeshUpdateThread but not EmergeThread
16:21 kaeza hmmmm, #604 does not affect users using the old way of building
16:21 hmmmm see, that's another thing i need to fix
16:21 hmmmm and seriously what's with the (*iter)-> crap, STOP IT!
16:21 ds-2k Exio: and in singleplayer /set sets client & server settings (same minetest.conf)
16:21 hmmmm [i] is plenty predictable
16:21 hmmmm stop with the unnecessary iterators
16:21 kaeza it always outputs the exe to <bindir>/bin
16:22 kaeza (which in in-source-dir builds is just the same as <srcdir>/bin
16:22 Exio i'll wait for the big-commits/and/stuff for implement what i really want for the zoom-thing
16:22 kaeza )
16:23 hmmmm yeah
16:23 hmmmm PilzAdam, any opinions on https://github.com/minetest/minetest/pull/604 before I merge
16:23 hmmmm ?
16:24 PilzAdam I dunno about such things
16:24 PilzAdam it would save some disk space for my win builds
16:25 dexter0 joined #minetest-dev
16:33 sfan5 PilzAdam: how would that save disk space?
16:33 sfan5 ...
16:33 PilzAdam there is always a minetest.exe created in minetest/bin
16:33 * sfan5 needs to think first, then write
16:34 PilzAdam it would save 8 MiB
16:35 kaeza sfan5, suppose you (like me) do severaal builds off the same source tree
16:35 sfan5 or if you build a debug build 40 - 50 mb ;)
16:36 kaeza with minetest you can't
16:36 kaeza because the exe gets overwritten at each build
16:37 kaeza the only way would be to have several copies of the source tree; with this, you can bild for several platforms/versions/whatever from a single tree
16:39 VanessaE hmmmm: regarding handling of missing map_meta.txt parameters,
16:39 VanessaE [04-06 12:38] <mauvebic> simplest solution is to parse the file into an array, add the missing keys and reprint
16:39 VanessaE "reprint" I presume means re-save.
16:40 PilzAdam re-save I presume means rewrite :-)
16:40 VanessaE heh
16:43 hmmmm vanessae, thanks, i think i know how to fix it on my own
16:43 PilzAdam isnt this a rather critical bug since it changes existing maps
16:44 PilzAdam +?
16:44 hmmmm it's already too late
16:45 VanessaE hmmmm: fix it anyway, it's only too late for those who have already upgraded - which is not most people.
16:45 PilzAdam then post a warning in the forum or so
16:45 Exio a 0.4.6.1? :P
16:46 VanessaE this needs a hotfix imho.
16:46 VanessaE I got lucky and fixed it before it did major damage.  dante123's map got botched almost right away
16:47 hmmmm you guys say damage like it's the most horrible thing ever
16:47 Jordach hmmm? what just got botched?
16:47 hmmmm before i came around, map fuckups were the norm
16:47 Jordach hmmmm, yeah, sectors2sqlite is evil
16:47 VanessaE Jordach: remember those huge square cliffs?  that's why.
16:47 Jordach VanessaE, explains it
16:47 Exio well
16:48 Exio i never saw those problems..
16:48 Exio ..because my minetest already does thatr
16:48 Exio s/r//
16:48 PilzAdam s/"s/r//"/"-r"
16:48 Exio er, regex fail but w/e
16:48 Exio wut
16:48 VanessaE hmmmm: map screwups may be the norm, but they shouldn't be - it's not acceptable to normal users.  "This game sucks!  my map is fucked up!  Screw this piece of shit"
16:48 VanessaE and so on like that.
16:48 PilzAdam -r instead of s/r//
16:49 hmmmm minetest doesn't like them
16:49 Exio ah
16:50 Exio PilzAdam: btw, "" doesn't work in that way, you need to use | or \ ;P
16:50 VanessaE PilzAdam: when you match a slash with sed, use colons instead of slashes for the delimiter.  s:/home:/usr:
16:50 hmmmm hey vanessa, can you show me those pastebin links of your map_meta.txts again?
16:50 VanessaE sure, lemme track 'em down
16:50 PilzAdam I just wanted to produce something unreadable :-p
16:51 Exio learn perl
16:51 VanessaE hmmmm: Until March 16:  http://pastebin.ubuntu.com/5681707/
16:51 VanessaE hmmmm: March 22 to current:  http://pastebin.ubuntu.com/5681708/
16:52 hmmmm alright nevermind then
16:52 hmmmm hrmm, let me think about this deeper
16:52 Jordach PilzAdam, if you want unreadable, use brainfuck
16:53 VanessaE Jordach: you mean L-systems? ;()
16:53 VanessaE ;)
16:54 Jordach VanessaE, no, BF is worse: http://en.wikipedia.org/wiki/Brainfuck
16:54 hmmmm tries to get the initial settings from the config along with the default values, tries to load map meta, catches settingnotfoundexception and filenotgoodexception, anything else causes it to initialize a new map
16:54 PilzAdam VanessaE, look, this wonderful tree: [&&&FFFFF&&FFFF][&&&++++FFFFF&&FFFF][&&&----FFFFF&&FFFF]
16:54 hmmmm loadmapmeta thrrows filenotgoodexception if it couldn't open the file
16:55 hmmmm throws a serialization error if [end_of_params] isn't found
16:55 hmmmm mmmmmmmmm..
16:55 Jordach ^ needs h prefix
16:55 VanessaE hmmmm: btw, why are you looking for a tag instead of eof?
16:55 hmmmm because i'm not the one doing it
16:56 hmmmm at this point we have the random seed
16:56 kaeza1 joined #minetest-dev
16:56 hmmmm if it fails to get all the parameters from map_meta.txt, it'll see if at least seed is there
16:56 hmmmm if seed is there, it sets the mgparams seed equal to that at least
16:57 hmmmm this is for backwards compatibility with older versions to not screw their map seeds up when a setting isn't found
16:57 hmmmm so i already thought about this
16:58 VanessaE hmmmm: remember when I reported that big mapgen glitch, and you signed on to look at it.  I think the same thing happened then, as well, as it was at that point that all that mgv6_* stuff got added to my map_meta.txt.
16:59 * VanessaE plugs in a missing question mark.
17:00 hmmmm wow my dungeons are awesome looking
17:02 hmmmm 879106, 7590035
17:02 hmmmm well that's not right
17:03 mrtux_ joined #minetest-dev
17:03 PilzAdam hmmmm, what about a fallback for map_meta.txt that sets dungeons to false if no map_meta.txt setting is found, so we can set it to true in minetest.conf
17:04 hmmmm you guys completely misunderstand how the map_meta.txt settings work
17:04 hmmmm i take all of that into account
17:04 hmmmm this is much, much smarter than i think you give it credit for
17:08 RealBadAngel tried to compile luajit commit on linux, failed
17:08 RealBadAngel great, we have one commit that works on linux but not on windows, and one that works on windows but not on linux
17:08 Zeg9 Yeah. Great.
17:08 PilzAdam git merge?
17:09 hmmmm unacceptable
17:09 hmmmm why can't anybody do luajit right
17:10 RealBadAngel maybe this guy will know, i just reported then in comments
17:10 RealBadAngel *that
17:11 hmmmm ugh
17:12 hmmmm my map_meta.txt code didn't work as planned because of exceptions
17:12 hmmmm i really wish exceptions didn't exist
17:12 hmmmm i didn't even know about an error
17:12 hmmmm and it disrupted the normal flow of my code
17:13 hmmmm this wasn't my fault at all
17:13 hmmmm this was celeron's intended way of handling parameters that weren't found
17:13 hmmmm he sat there and thought, "hrmm, i know, if we can't find a single setting in map_meta.txt, we should just nuke the entire file and the seed"
17:14 RealBadAngel heheh
17:18 hmmmm the thing is, this all happens at a level above my own code
17:18 hmmmm for simplicity's sake, i'm just going to add a catch-and-fail clause in loadMapMeta()
17:23 celeron55 i've had quite changing opinions about exceptions during the time of development of minetest
17:24 hmmmm i'm really mad because i specifically tested this too
17:24 celeron55 these days i don't use them for almost anything, and definitely would not use for Settings
17:24 hmmmm when i originally did the whole mapgenparams thing
17:30 jojoa1997|Tablet joined #minetest-dev
17:37 hmmmm whatever.  https://github.com/minetest/minetest/commit/453d79e3a201a4186dae386d0bce209f75be742c
17:38 hmmmm if you guys think it's critical enough, i guess you can make an 0.4.6.1
17:44 hmmmm i'm going to crank out mgv7 in its current state soon, because i'm sure you guys will love the terrain it generates, and i don't want problems later on when we add sapier's things
17:48 jojoa1997|Tablet what spaier's thing will you add
18:00 ShadowNinja hmmmm: I responded to your comments on my pull requests
18:00 hmmmm erm.. thanks?
18:02 ShadowNinja hmmmm: you fixed this? https://github.com/minetest/minetest/issues/602
18:03 PilzAdam yes
18:03 hmmmm i guess
18:04 ShadowNinja well then close it
18:04 PilzAdam done
18:05 Exio i liked the old interface more
18:09 mrtux_ joined #minetest-dev
18:10 mrtux_ joined #minetest-dev
18:10 ds-2k Pilzadam: Didn't you already commit this: https://github.com/minetest/minetest/pull/604 (forgot to close?)
18:11 PilzAdam hmmmm commited it
18:12 PilzAdam hmmmm, havent you told me to close the pull request after merge :-p
18:23 Deivan joined #minetest-dev
18:37 sapier joined #minetest-dev
18:47 rubenwardy joined #minetest-dev
18:50 sapier can someone tell me where "u32" is from?
18:50 kaeza grep
18:50 PilzAdam its defined in Irrlicht IIRC
18:50 sapier argh ... I should have known things that ugly are from irrlicht :-)
18:52 serengeor sapier, you'd prefer 'unsigned_int_32_bit_typedef' ? :)
18:52 sapier no but the standard uint32_t
18:53 sapier but it's way to much work to replace so I'm gonna live with u32 ;-)
18:53 serengeor sapier, I don't think it was standard back in the days when they started developing irrlicht
18:54 sapier don't know how old irrlicht is but yes uint32_t has become widly spread only recently
18:54 ds-2k sapier, maybe because windows uses something else: https://github.com/minetest/minetest/blob/master/src/irrlichttypes.h (at least for uint64_t)
18:54 serengeor sapier, "Niko founded the Irrlicht Engine project in 2002"
18:56 sapier hmmm uint_t types are defined in <stdint.h> I thought this was available within windows too ... but I'm not sure
18:59 ds-2k Maybe it only doesn't work on the msvc compiler (#if _MSC_VER , not #if _WIN32 in that file)?
19:10 proller hmmmm, https://github.com/proller/minetest/commit/7d178020677223660bf5c6aea6860c091a55e57b - its better for falling in water bubble
19:12 sapier can someone plz rename "string.h" this is a system include!!
19:14 VanessaE bbl
19:16 ShadowNinja hmmmm: Any progress on minetest.kick_player()?
19:16 sapier lol player kicking by mod?
19:17 ShadowNinja yes, Usefull for a mod I am writing, as well as just kicking
19:17 ShadowNinja ban/unban is hacky, and has some issues
19:17 sapier and how to check rights?
19:18 ShadowNinja privs={kick=true}
19:18 sapier for whom?
19:18 ShadowNinja for the person running /kick
19:18 sapier there may not be a person
19:18 ShadowNinja but I want it for annother reason
19:19 ShadowNinja you mean a mod running it? you don't have to check that
19:20 ShadowNinja if the mod runs it it has to ensure security, the core can't do that
19:20 sapier so every mod can call kick to kick  a player?
19:21 jojoa1997|Tablet that is wrong
19:21 jojoa1997|Tablet maybe auto remove all privs but not kick
19:21 sapier ok ... considering generall denial of evil modders this is at least consequent
19:22 PilzAdam ShadowNinja, better use the same priv as ban for /kick
19:23 sapier if a kick player lua function is added this implies anyone has to ensure any mod's code on his server is very carefully reviewed
19:23 ShadowNinja huh? a mod can ban a player, crash the server and a whole bunch of other things, even with your security, it is necessary, do you think /ban should be moved to core?
19:23 ds-2k According to the lua api, mods can already ban players (minetest.ban_player())
19:23 sapier I've already created a patch to make modding more secure, only because others have done wrong this doesn't make bad things better
19:24 ShadowNinja PilzAdam: it doesn't realy matter what priv it uses, ban is fine
19:24 sapier ban/kick from mods is difficult do decide if it's a security issue or not
19:25 sapier unless there are different security levels for differen't mods there'll never be a good solution possible
19:25 ShadowNinja sapier: so you say this is ban bacause a player can be kicked from the server now? how is that insecure? it is a feature
19:25 ShadowNinja If a mod bans/kicks everyone from your server remove it and clear the banlist
19:25 rarkenin It does seem kind of fallacious to have banning by mods, kicking only by code.
19:26 sapier shadowninja jumping in your car pressing a button to start it without having any key with you is a feature too ... as you can't forget a key .. still noone would ever build a car like that
19:26 ShadowNinja You can already kick players, but only by baning and unbaning, and that is hacky
19:26 rarkenin saiper: There is a difference in trust.
19:27 ShadowNinja sapier: that is irrelevant
19:27 sapier no it isn't I doublt more than 1% of those running mods do understand what those mods do
19:27 rarkenin Yet they can already ban, execute arbitrary commands, delete files, install keyloggers, etc.
19:28 sapier still if we wanted to be consistent either ban is removed too or we can add kick too
19:28 rarkenin Kicking off a player is nothing compared to what they do.
19:28 ShadowNinja If you consider a mod baning/kicking a player a security issue you have gone too far
19:28 rarkenin Ban should NOT be removed. That defeats part of the purpose of an OPEN modding API.
19:28 sapier I won't discuss minetests insecure modding again I've already fixed that
19:29 rarkenin Have you given mods an abstracted persistent data storage system?
19:29 ShadowNinja what is so bad if a mod can kick a player?
19:29 sapier yes
19:29 sapier everything done
19:29 rarkenin "what is so bad" is not a yes or no question.
19:30 sapier there's not even slightest change in api left except you can't access files you shouldn't be able to access
19:30 sapier and of course you can't execute arbitrary commands anymore
19:30 rarkenin I'd hope not.
19:30 hmmmm guys, stop being ridiculous
19:30 sapier it's been answer to your question rarkenin not shadowninjas
19:30 rarkenin Oh, OK.
19:31 hmmmm kicks will be equivalent in functionality to bans, with unbanning right after
19:32 sapier I was just pointing to the fact that having ban and kick available from lua opens issues in priv handling
19:32 ShadowNinja I am surprised that so much debate started over kicking
19:32 ds-2k sapier: didn't your recent commit to your security pull request give builtin a sort of whitelist? Maybe this could be used for "trusted" mods and disable ban/kick api after builtin/trusted is loaded?
19:32 ShadowNinja NO, this makes it unusable to other mods
19:33 ShadowNinja for example a custom banning mod
19:33 sapier as long as you can't decide wich mod is doing what this is difficult ... but as told In long term having something like per mod security levels would be best
19:33 ShadowNinja that would be nice
19:34 sapier I already tought about a "quick" solution as I'm unhappy with priv handling within same lua stack as mods too
19:34 sapier a quick solution would be to create a separate lua stack doing the priv handling, as far as I understood this is only done in lua to be flexible
19:35 sapier therefore you could define mods that require priv handling have to implement e.g. privs.lua additional to init.lua
19:36 sapier and it would be easy to have a list of mods who's privs.lua is loaded into priv lua stack
19:36 rarkenin Mods are meant to extend Minetest. While they should not be allowed to go rampant across the server, they should have access to Minetest's data itself, such as privs, auth, etc. We start with blocking this, then someone down the road disallows mods to interact with nodes so they don't dump lava everywhere, chat due to risk of spam, etc, etc.
19:36 ShadowNinja I don't like that idea, andI don't knowhow it would even work
19:36 PilzAdam hmmmm, have you done a fallback yet if stairs:stair_cobble isnt defined in dungeon gen?
19:36 rarkenin I also think it is overkill.
19:36 sapier I don't want to block it I just want to reduce work for server hosters
19:37 rarkenin But you aren't really reducing work.
19:37 hmmmm no
19:37 rarkenin You're simply making modders jump through hoops without making it easier for server owners.
19:37 sapier so you think it's no work to check mods for evil things?
19:37 ShadowNinja Then the mods have to be integrated in core, do you want core to have three /ban commands?
19:37 Jordach minetest.kick_player() should check if the activator or player who started the kick has the ban priv
19:38 sapier @jordach that can't be done
19:38 ShadowNinja the command checks it, not the function
19:38 rarkenin Then a server owner goes looking for the privs.lua file instead. Same work, but more files.
19:38 kaeza Jordach, and how are you supposed to find that?
19:38 sapier more files? you only have to check privs files for those mod you allowed priv access?
19:39 ShadowNinja annother argument, mods would just pass minetest.setting_get("name") to it
19:39 sapier mobf has about 50 files all loaded by init.lua ... I doubt anyone ever reviewed all of them
19:39 rarkenin Yes, but you need to navigate into each mod's mod directory to look for a privs.lua.
19:39 ShadowNinja but that is unnescecary, the checks can be done in Lua
19:40 kaeza sapier, if someone complained your mod had malicious code, you'd be prolly banned from the forums don't you think?
19:40 sapier who can checks be done in lua?
19:41 ShadowNinja privs={ban=true} or minetest.check_player_privs(name, {ban=true})
19:41 sapier I think if I wanted to do evil things I could hide them good enough to cause a lots of trouble until someone detects it
19:41 rarkenin Why is letting mods access player authentication stuff a security problem in the first place? It's file access that is.
19:41 sapier you may not have a player
19:41 rarkenin Let mods access the world they're running on(including auth stuff), at least.
19:41 sapier it's not a security problem at same level as execute thats true
19:42 rarkenin It's not a problem that requires this much red tape.
19:42 ShadowNinja it returns true, false, or nil if the player does not exist
19:42 sapier and I'm not against adding kick I just want to stress that this function can be used to override priv handling
19:42 rarkenin OK, so I made a mod, kicked off all the players. Jumped through hoops, kicked off all the players by way of your convoluted commands.
19:42 kaeza sapier, has anyone overriden /ban yet?
19:42 rarkenin I could just kick all the players by giving syntaxical nonsense and crashing the server.
19:43 PilzAdam I suggest to not listen to sapier when it comes to security because he just want to remove everything from the API because its too insecure and mods can abuse it
19:43 sapier has anyone detonated a nuclear weapon in manhattan?
19:44 kaeza err...and what does that have to do with this?
19:44 rarkenin Has anyone detonated a nuke near spawn on a server yet? Yes. What do your secutiry features do about it? Nothing.
19:44 hmmmm seriously guys
19:44 hmmmm it's just a game
19:44 sapier that means it's not best thing you can do to wait until something happens once
19:45 sapier still guys calm down if you are aware of the priv problem with this function I don't have any problem with it
19:45 ShadowNinja anyway, back to the topic. have you made any progress on the kick function hmmmm?
19:45 rarkenin Think about it this way. How much lost time will modders have due to this red tape? A lot. How much time does it take to remove a mod? The time it takes to type rm -rf games/blah/mods/thisisabadmod, with tab completion.
19:46 kaeza sapier, if it's foudn that the mod is problematic, then it's uninstalled from server
19:46 kaeza in general, I don't trust code made by random newbies
19:46 sapier I think everyone is aware of the priv problem now so no need to continue this discussion ;-)
19:47 kaeza fair enough
19:47 hmmmm shadowninja, no i have not
19:47 PilzAdam echo "minetest.register_on_joinplayer(function(player) minetest.kick_player(player:get_player_name()) end)" > init.lua
19:47 hmmmm if someone else does it well, that's good too
19:47 kaeza PilzAdam, lol
19:47 PilzAdam why should mods do this?
19:47 hmmmm to add kicking the right way, here's what you need to do:
19:47 rarkenin I'm made aware that there's a hypothetical problem someone's panicking about. However, it's not worth the effort to even come up wiht a solution to it at the moment.
19:48 hmmmm add a boolean parameter to BanManager::add for 'kick"
19:48 sapier pilzadam your comments was absolutely useless if you don't care about security plz post your account data and password I gladly distribute them
19:48 PilzAdam hmmmm, I would suggest to add a reason for kick, that is displayed in the client
19:48 hmmmm now, after isModified is called, if that player has been added with the kick flag
19:49 PilzAdam sapier, there are different levels of security, and you always want the highest
19:49 hmmmm remove that name and set m_modified to false
19:49 rarkenin No, there's a HUGE difference in security risk between kick and account data.
19:49 ShadowNinja hmmmm: wouldn't it be better to just call a peer disconnect function?
19:49 PilzAdam sapier, wich is nonsense in a game
19:49 hmmmm that's messy
19:49 ShadowNinja why so?
19:49 hmmmm because that's the way someone else tried to do it already
19:49 rarkenin This is Minetest, not the international voxel-sandbox competition of 2019.
19:49 ShadowNinja it seems a lot cleaner than using the ban manager
19:50 hmmmm you need to expose some private parts of Server
19:50 kaeza Knoxtest?
19:50 rarkenin I was that idiot that tried to do that, it turned out to be a giant tangle of exposure and class access from miles away.
19:50 ShadowNinja I thought you were all for using private and protected less
19:50 hmmmm i am, but i try not to modify existing things too much
19:51 sapier no pilzadam I just want to ensure everyone is aware of the security implications before a decision is made ... and as far as I see noone else is interested in security so I'm always the bad guy ;-P
19:51 hmmmm i don't know, shadowninja, i'll do it later.
19:51 rarkenin No, we're concerned with security. We just know what level it should be at.
19:51 PilzAdam sapier, you could fork minetest to securetest or something :-p
19:52 hmmmm secure as OpenBSD
19:52 PilzAdam it would be basically a anti-virus scanner :-)
19:52 ShadowNinja ok, well, as long as it is done, having a kick message show up would be good
19:52 hmmmm now with 50 new encryption protocols
19:52 hmmmm encrypting the stream of data from lua to the core
19:52 hmmmm lua stack protector
19:52 kaeza ^ lol
19:52 rarkenin No, it would be a system that detects any attempts at vandalism, and immediately disconnects the server from the internet, sounding a klaxon.
19:52 rarkenin That doesn't seem that far-fetched with sapier.
19:53 sapier don't make me angry or I may show you what can be done within lua ;-P
19:53 proller hmmmm, can i commit water fix?
19:53 hmmmm proller, what water fix?
19:53 hmmmm i thought i already did that
19:53 proller hmmmm, https://github.com/proller/minetest/commit/7d178020677223660bf5c6aea6860c091a55e57b - its better for falling in water bubble
19:53 hmmmm sure
19:53 proller fix of fix
19:53 hmmmm just be sure to fix the commit message
19:54 proller ok
19:54 hmmmm like, Adjust water removal above unloaded blocks
19:54 hmmmm that sounds better^
19:54 PilzAdam proller, cant you just do the correct fix in the first place?
19:54 sapier but for one thing you're right ... adding lua security to an application with that many memory leaks and possible buffer overruns as minetest may be adding improvements at wrong place ;-)
19:55 hmmmm what possible buffer overflows are there
19:55 proller PilzAdam, both fix correct, but second is better
19:55 kaeza sapier, want security? run the server in a chmod jail. period
19:55 kaeza chroot*
19:56 sapier kaeza that's not an excuse for bad code
19:56 hmmmm no i'm serious
19:56 PilzAdam sapier, its probably better to throw your computer away, its too insecure
19:56 hmmmm what are the possible buffer overflows, those have a pretty high priority of being fixed
19:57 sapier I think some of the texture pointers are used wrong way but I'm not sure about that hmmmm
19:58 hmmmm be sure about it
19:58 hmmmm this is important
19:59 hmmmm just as well, someone can come up with a new buffer overflow in libpng or something (more likely) and pwn minetest that way :(
19:59 sapier I don't intend to check whole irrlicht code ;-) maybe running minetest within efence may help but last time I used a memory checker (valgrind)  I had to fix hundreds of errors in order to find the interesting once
20:00 hmmmm well, that's because nobody's really been able to run valgrind on this
20:01 sapier PilzAdam I don't wish you any bad but if your computer gets skrewd by a mod I'll ne loughing ;-)
20:01 hmmmm it's not because people just don't care, if you think that
20:01 PilzAdam sapier, I generally dont install mods of others
20:01 PilzAdam I dont even run most of my own mods
20:01 hmmmm i don't use mods at all
20:02 sapier yes I know you rewrite anything ;-)
20:02 sapier pilzadam was meant
20:03 sapier hmmmm running valgrind on minetest isn't a big deal ... you can't play minetest within valgrind but starting connecting to server opening inventory switching through menus is no problem at all
20:03 celeron55 lol what the fuck
20:03 Deivan joined #minetest-dev
20:03 celeron55 kick privileges for mods? i am stunned
20:03 celeron55 i'm hoping this is some kind of odd trolling
20:03 hmmmm it's not, they're really that psychopathic
20:04 celeron55 i am OK with restricting what files mods can access
20:04 celeron55 but in-game features? oh god come on
20:05 hmmmm oh celeron, what's your opinion on letting mods see peoples' IP addresses
20:05 sapier yes but why do we have a privilege system then?
20:05 celeron55 hmmmm: well why the fuck not
20:05 hmmmm because it's a privacy concern..?
20:05 celeron55 but i don't know how that is useful
20:05 hmmmm some guys want to make an MCBans-like mod
20:05 hmmmm where they have a global banlist
20:05 PilzAdam celeron55, the client doesnt know wich mods the server use and mods can give the IP to 3rd party
20:06 hmmmm which is precisely the aim of that mod
20:06 sapier but ip banning isn't quite a good way nowadays
20:06 sapier if you ban a nated ip you may ban hundreds of ppl
20:06 celeron55 well i think, if somebody is doing something "like MCBans", we should research if mcbans has resulted in something that we would like to have
20:06 hmmmm right, and then people who really want to get around it can (LandMine)
20:06 sapier most cellular internet services are natted in germany
20:07 sapier still if someone wants to have this in ...
20:07 RealBadAngel sapier, just compilin, noticed warning: unused variable old_cost
20:08 hmmmm who cares, we'll get all the compiler warnings we can help at once
20:08 sapier yes I've seen it too ... is relict of some development state
20:08 sapier I do care
20:08 celeron55 okay, i think we don't have a real reason to give IPs to mods
20:08 hmmmm just don't spam up the commit log with "whoop, removed an unused variable here"
20:09 sapier didn't intend to do I'll add the fix to scriptapi separation
20:09 kaeza /home/diego/src/minetest/src/emerge.cpp:357:33: warning: 'flags' may be used uninitialized in this function [-Wuninitialized]
20:09 kaeza hmmmm, ^
20:09 hmmmm a moronic warning
20:09 sapier I suggest -Werror
20:09 sapier :-) just kidding
20:10 celeron55 i think that warning is reasonable
20:10 hmmmm the compiler should know that it's not read in that function
20:11 hmmmm ahh... not all control paths write something to flags
20:11 hmmmm makes more sense
20:11 celeron55 hmmmm: you know what's a ridiculous warning?
20:11 hmmmm no newline at the end of files?
20:11 celeron55 the warning that the _CRT_SECURE_NO_DEPRECATE suppresses in src/CMakeLists.txt for MSVC
20:12 hmmmm i agree
20:12 hmmmm i have a list of like 3 or 4 warnings i disable for MSVC for my own projects
20:12 celeron55 it's the most ridiculous i have ever seen
20:12 sapier what does this doß
20:12 sapier ?
20:12 hmmmm ah i guess only two
20:12 celeron55 MSVC says some C standard library functions are deprecated by default
20:12 hmmmm that and int->char truncation
20:13 celeron55 and wants the user to use some MS's own _s variants
20:13 sapier you mean stcpy or memcpy for example?
20:13 celeron55 it's something like that
20:13 hmmmm of course
20:13 sapier at least for functions of that type imho warnings are perfectly reasonable
20:14 hmmmm nonsense, people who are using strcpy() have a valid reason to do so
20:14 celeron55 lol
20:14 sapier tell me one reason to use strcpy
20:14 celeron55 it's standard
20:14 hmmmm to copy a string to a buffer you just allocated?
20:14 sapier reason not excuse
20:14 hmmmm something like strdup?
20:14 sapier strncpy()
20:14 kaeza also: /home/diego/src/minetest/src/scriptapi.cpp:701:27: warning: unused variable 'ndef' [-Wunused-variable]
20:14 hmmmm senseless
20:15 sapier you know size of buffer if you don't know you can use sizeof(buffer)
20:15 hmmmm unnecessary check when you know you have the space
20:15 hmmmm i use strcpy() for copying around external strings in my programs, since they've already been length-sanitized with strlcpy() or similar
20:16 celeron55 lol and how exactly does using MS's strcpy_s help with that?
20:16 hmmmm internal strings rather
20:16 hmmmm i just don't care for redundancy in code
20:16 sapier ok I give up you beat me I'm the only one doing mistakes on coding
20:17 celeron55 and minetest does not use strcpy; those warnings were surpressed because of memcpy making same warnings too
20:17 celeron55 and memcpy making warnings is totally ridiculous
20:17 sapier minetest does use strcpy
20:17 hmmmm nevermind any of that
20:17 hmmmm it also deprecates fopen() in favor of fopen_s()
20:18 hmmmm yeah.. apparently fopen() is a dangerous function now.
20:18 sapier just had a look for it :-) ... ok more precise code distributed with minetest does use strcpy
20:18 celeron55 strcpy(argv_data[0], "/bin/rm");
20:18 celeron55 strcpy(argv_data[1], "-rf");
20:18 celeron55 lol
20:18 celeron55 that's SO INSECURE
20:18 celeron55 actually wtf, that's not for windows
20:18 sapier I didn't tell there's no situation where strcpy is NOT an error ;-)
20:19 celeron55 sapier: these aren't even built on windows, your argument is completely invalid
20:19 sapier json isn't built on windows?
20:19 celeron55 libjsoncpp isn't minetest
20:20 sapier I already corrected me
20:20 sapier but I don't want to start the next discussion about a thing I don't really care about if you wanna use those functions do it
20:21 sapier where I work functions like that are a no go because they are common source of errors
20:21 celeron55 of course you don't generally use them, it's obvious
20:22 sapier if we really had to care about a single length check in minetest we had other problems ;-)
20:22 celeron55 but it is not a reason to disallow using them in proven pieces of code that have been around for long and tested
20:23 celeron55 when i code string stuff in C by myself, i just use snprintf everywhere; it doesn't give any actual benefit to not do so
20:23 sapier I didn't intend to change any of that, those are 3rd party librarys I don't touch something like that
20:23 hmmmm indeed, this sort of "code santation" is more of a feel-good measure, it doesn't actually benefit us at all
20:24 hmmmm so, if you feel that strongly about it, perhaps you *should* fork minetest and rename it to SecureTest
20:24 sapier not giving additional features doesn't mean not giving benefit
20:25 hmmmm exploits prevented by not copying a string of the same length without checks of a buffer you just allocated:  400    - this is a huge benefit
20:25 hmmmm s/of/to/
20:26 sapier hmmmm if you think that improving code quality is bad for minetest maybe I should do that, for the time being imho improving minetest within minetest is better way to do ... btw some months ago I've been already asked if I would participate in a fork and did deny because of that reason
20:26 hmmmm changing strcpy() to strncpy() isn't improving code quality
20:27 sapier plz stop about that damn strcpy
20:27 sapier I never suggested REPLACING something
20:27 VanessaE joined #minetest-dev
20:27 hmmmm okay; not replacing things then
20:28 hmmmm i'll hold you to your word
20:28 sapier I just don't use functions like that and suggest not using them at all it's on your own if my oppinion is of any interest to you ;-)
20:29 hmmmm anyway you never explained why operator[] is "bad" for vectors
20:29 sapier I've got a personal dislike to [] because of having to much trouble with different compilers on using those to access arrays
20:29 Exio well, wait
20:30 sapier most likely that's not true to gcc anymore still I try to avoid them
20:30 hmmmm which compilers have you had trouble with [] on?
20:30 sapier different embedded compilers
20:30 hmmmm all of our tier-1 supported platforms seem to have no problem
20:30 sapier not within minetest
20:30 hmmmm different embedded compilers that aren't actually C++, right?
20:31 hmmmm but some sort of pseudo-C++ with a subset of features and some wacky rules
20:31 sapier most likely not ... as I said it's a personal dislike
20:31 Exio sapier: what about a "file" of what privs are needed by a mod?
20:32 hmmmm i like [].  it's certainly less wordy and comes more natural when speaking of an array
20:32 sapier I don't take part on that discussion anymore exio ... in future I'll stick to complain if a feature does harm to anything else than minetest
20:32 hmmmm that's what std::vector is.  it's an array where i don't need to worry about length
20:32 Exio ah sapier
20:33 sapier hmmmm I see ... checking end of vector by != seams dangerous to me as someone may have done i++ within function
20:34 hmmmm yes, but in order for that to matter, you'd need to pass i as a reference to something
20:34 sapier sometimes this is used to break a loop from a loop within this loop
20:34 hmmmm if you avoid references like you should in the first place you should be fine
20:34 hmmmm oh wait.. VoxelArea::add_*
20:34 sapier no that's not exactly what I was pointing at
20:34 sapier wait
20:34 hmmmm hate that crap
20:34 hmmmm but that's an index, not something we compare to
20:35 hmmmm all of that verbosity, v3s16 em = vm->m_area.getExte... ah fuckit, i've fallen asleep by then
20:36 iqualfragile1 joined #minetest-dev
20:36 Exio random thing, what about https://github.com/minetest/minetest/pull/306 ?
20:36 PilzAdam thats old and needs to be rebased
20:36 hmmmm you can see i tried to skirt around that problem with the 'stride length' members in classes that have a lot of matrix manipulation
20:36 sapier if you want to do something like that http://pastebin.com/VXuM1mYH
20:37 hmmmm sapier, i don't think i've ever written any code like that, ever
20:38 sapier I needed to do things like that sometimes as you can't break outer loop from inner loop
20:38 hmmmm if i were put in that situation, i'd have the outer loop check have a && !loop_quit condition
20:38 hmmmm where loop_quit is a bool or something
20:38 sapier yes would be another option
20:38 celeron55 EH
20:38 celeron55 eh*
20:38 hmmmm more readable that way
20:38 celeron55 goto, man
20:39 hmmmm celeron, no, he clearly wants the inner loop to complete.
20:39 sapier I don't use goto ;-)
20:39 celeron55 hmmmm: well then, yes; that may be reasonable
20:39 sapier you could move around code so goto would work
20:39 celeron55 but anyway, goto is made for jumping out of loops
20:39 celeron55 use it for that and it will save your ass
20:40 sapier I don't discuss about goto and point at stroustrup
20:41 hmmmm you really have a hardon for stroustrup, don't you...
20:42 hmmmm don't you know?  he created C++ for job security
20:42 sapier plz read strongswan source code you'll know instantly what c++ is good for
20:42 sapier :-)
20:43 hmmmm that's the macro-d out C code, right?
20:43 hmmmm i haven't seen it myself but it sounds atrocious
20:43 hmmmm GTK, on the other hand, is OO C done right
20:44 sapier I think there may be a reason why even gcc is written in c++ now ;-) still I don't want to discuss about programming language every one has their benefits and caveats
20:44 sapier I've seen very bad but perfectly oo'ed code too
20:45 sapier took me 2 weeks to understand what this code was doing ... discovering it was very impressive ... still maintenance of code like that is a nightmare
20:46 hmmmm what, you mean strongswan?
20:47 sapier no
20:47 sapier code one of my coworkers did ... a c++ template fan
20:47 hmmmm yeah, there's a reason why i have "avoid templates unless really helpful" in the coding guidelines
20:47 sapier quite impressive what can be done with c++ if you're using full standard possibilitys
20:48 celeron55 like avoiding []? 8D
20:48 sapier :-)
20:48 hmmmm hah
20:48 sapier I doub't you don't have any bad habits celeron ;-P
20:49 hmmmm kinda reminds me of #java people, they say arrays are depreciated
20:49 celeron55 no i don't, obviously
20:49 sapier lol
20:49 hmmmm "should always be using arraylists"
20:49 celeron55 wat
20:49 PilzAdam hmmmm, java.util.vector FTW!
20:49 sapier like writing a whole game without freeing a single texture on restart but loading each one again ;-)
20:50 celeron55 well, i'm the wrong guy to laugh at java specifics though; i know nothing about that language
20:51 sapier I assume hmmmm had a look at pathfinder code and knows about what extent of c++ standard I commonly use
20:51 celeron55 anyhow, i got interested of the strongswan thing sapier mentioned
20:51 celeron55 i'm currently looking at the source
20:52 celeron55 this looks basic good C code
20:52 sapier it's quite impressive they managed to create classes scopes exceptions and all those things in c using macros
20:52 celeron55 i don't see any such macros here
20:53 sapier true :-) you don't see them but they are there
20:53 hmmmm http://git.strongswan.org/?p=strongswan.git;a=blob;f=src/starter/invokecharon.c;h=d981f6c17ca5ff93aab2260b502175263cbc4eb9;hb=HEAD#l141
20:53 sapier have a look at the function headers
20:53 hmmmm :|
20:54 hmmmm not acceptable in C if you desire C89 compatibility
20:54 sapier what do you mean?
20:55 hmmmm braces with no control specifier are invalid
20:55 celeron55 C89 compatibility is pretty useless most of the time
20:55 hmmmm that's why you'll often see #define FOO() do { \ ... } while (0)
20:56 sapier this file isn't quite representative for strongswan coding style
20:56 celeron55 sapier: i checked multiple files, never found anything you mentioned
20:56 celeron55 also, yes, that file isn't like most others
20:56 hmmmm i believe him though... look at the name of the project itself, it's camelCase
20:56 hmmmm if that tells you anything :p
20:57 sapier I'll have look for a file where you can see it
20:59 sapier1 joined #minetest-dev
20:59 celeron55 there's just basic interfaces/objects made with structs containing function pointers
20:59 sapier1 http://git.strongswan.org/?p=strongswan.git;a=blob;f=src/libcharon/sa/ike_sa_manager.c;h=4fbc4da8e758b696c0f549e50dda6df996202162;hb=HEAD
21:00 sapier1 METHOD ;-)
21:00 sapier1 "privat" structs contain private methods as well as private function pointers
21:01 sapier1 METHOD macro ensures similar behaviour as c++ class functions
21:03 celeron55 this really isn't too special and there are like 1 or 2 macros related to this
21:04 sapier yes did you have a look what those macros do?
21:06 celeron55 hmm, METHOD is quite funky
21:07 sapier that's what I meant
21:08 celeron55 what the hell, i have no idea how this actually even works
21:08 sapier It's creating a class in pure c++ with private and public methods as well as constructor destructor ...
21:09 sapier pure c of course
21:09 celeron55 but, like, it declares a function with some odd union parameter
21:09 celeron55 and then defines it with something else
21:10 sapier yes only public things are visible to others but still memory is allocated for private ones to
21:11 celeron55 but really, this is still probably going to make more sane debugger errors than C++ in case of memory corruption for example
21:11 sapier I haven't experienced anything like that ... c++ is just much more easy to read
21:12 sapier but if you're only interested in features the strongswan way has almost same as c++
21:13 celeron55 i wouldn't probably use anything like that in any normal situation though
21:14 sapier me too :-) I just had to add some features to strongswan in order to get it suitable to what I needed to do
21:14 Exio i don't see the point for a "whole" OO in C
21:14 celeron55 it's perfectly reasonable that they went for C when doing low level stuff like strongswan, but it seems odd that they went for such complicated structure in it
21:15 sapier I assume this is a result of strongswan beeing developed by a university :-)
21:16 celeron55 otoh, at work there is an extended ipsec thing that is coded in C++
21:16 sapier celeron even gcc is written in c++ ... so the only thing I don't know of being written in c++ is a kernel ... wait isn't windows kernel c++?
21:16 celeron55 it's not very nice in my opinion
21:16 celeron55 it for example uses exceptions, which are a PITA in such low level thing
21:17 sapier I'm with you I don't like strongswan code either
21:17 Exio You can't compare C++ with C for some stuff
21:17 sapier what do you mean exio?
21:18 celeron55 C++ without exceptions and without inheritance and without the standard library is kind of a good low-level language
21:18 Exio sapier: not all people love OOP
21:18 celeron55 and without templates
21:18 Exio celeron55: and the point of using that is...
21:18 Exio ... nothing
21:19 sapier without those things basicaly not much more than c is left :-)
21:19 celeron55 the point of using that is that it allows class-based abstractions that make code more readable
21:19 hmmmm if you don't like multiple inheritance, polymorphism, and templates, you're afraid of OOP and you don't understand it
21:19 hmmmm </presti>
21:19 sapier ok and of course you can use private to enforce clean interfaces (at least a bit)
21:20 Exio well, in some way that may be useful, but i see C as a "nice to read and portable ASM"
21:20 celeron55 also you can automate memory management in constructors and destructors
21:20 sapier I don't like templates too but I admit hmmm is right i don't use them because I'm not used to it
21:20 celeron55 and yes, it's a big deal
21:21 hmmmm sapier, i'm being sarcastic
21:21 Exio sapier: hmmmm was being sarcastic about the stuff
21:21 sapier I like inheritance I't a quite good way to get type safty
21:22 sapier yes it's on cost of performance ... but don't we all have at least 4 cores?
21:22 celeron55 well, fully virtual interfaces are fine
21:22 celeron55 it's like a typed bunch of function pointers; not a big deal
21:23 sapier rtti is a very good feature :-)
21:24 celeron55 not really
21:24 sapier if you do some sort of message passing between threads ... and you do need to do things like that in multithreaded environment you can use rtti to ensure you got right message
21:24 sapier yes you can add a type field too ... but why not make compiler do work?
21:25 celeron55 RTTI is a direct source of clumsy library APIs
21:26 sapier you can abuse any good feature for bad things
21:26 celeron55 the library gives you some object with a crippled interface and a crippled interface and then does bloatloads of magic when you feed it back to the library
21:26 Exio sapier: goto, globals
21:26 celeron55 implementation* (the second interface)
21:26 Exio are the same, they are good features if used "wisely"
21:27 sapier bad example as those can be replaced without adding code or loosing features
21:27 celeron55 globals can be replaced without adding code? lol
21:27 celeron55 i don't know of any language that would be able to do that
21:27 Exio and goto can be more read-able than writing a bunch of conditionales for stuff
21:27 sapier globals are a desing issue
21:28 Exio if you say that..
21:28 celeron55 globals are a very powerful shortcut in limiting code size
21:28 sapier if your design depends on globals of course you can't replace them
21:28 sapier but don't expect any design using globals to behave well in parallel environment
21:28 celeron55 but you need to design so that you either use them or not really
21:28 Exio what do you suggest for the settings?
21:28 Exio for example
21:29 Exio g_settings() stuff, is "like" a global (no?)
21:29 sapier first of all you need to know who need's to know about settings and when this one needs to know it
21:29 sapier does emerge thread for example need to know full set of settings?
21:29 Exio so, for example, let me understand
21:30 Exio it is like a tradeoff
21:30 Exio "add a lot of code for this, or use a global making it WAY more clear and smaller, and doing the same thing"
21:30 sapier there never is exact black or white
21:30 sapier for every rule theres an exception
21:31 hmmmm [05:29 PM] <sapier> does emerge thread for example need to know full set of settings?    the emerge thread?  no, the emerge manager?  sure
21:31 hmmmm [05:30 PM] <sapier> there never is exact black or white
21:31 hmmmm someone's a democrat
21:31 sapier ok next question when does emerge manager need to know settings? on startup or does it honor settings changes while game too?
21:32 hmmmm nobody will ever change mapgen params
21:32 hmmmm while the game is in session
21:32 celeron55 that question actually goes deeper
21:32 sapier and does emerge manager need to know about shader settings? I said full set of settings
21:32 Exio sapier: that adds complexity
21:32 hmmmm i think vanessa wanted to be able to modify mapgenparams in lua.... no way
21:32 celeron55 because a mod might want to set the parameters when the mod is initialized, and that may happen after the emerge thing is initialized
21:32 Exio or do you see 1000 files with different stuff?
21:32 VanessaE hmmmm: er, no not really.
21:32 hmmmm oh, you're talking about g_settings()?
21:32 celeron55 and so on
21:32 VanessaE I have no need for such a thing
21:33 sapier yes and no, it adds complexity as you have to think before you start coding and no because you don't have that many side effects and cross class accesses
21:33 VanessaE however, *reading* them from Lua is important
21:33 hmmmm yes, emerge manager does need ot know about the shader settings
21:33 VanessaE and being able to turn off trees from Lua would be incredibly useful
21:33 VanessaE but that's about it
21:33 hmmmm because if i ever need the shader settings for some odd reason, i don't want to have to move a skyscraper around to do that
21:33 hmmmm there is no benefit to hiding the shader settings either
21:33 Exio ^ that too
21:34 sapier vanessae is right lua for example needs access to full set of settings as it can change it
21:34 sapier shader is even a very good example as current shader design is wrong by limitation of irrlicht noone realized
21:34 hmmmm vanessae, the same way as with registered nodes, you'll be able to get registered decorations
21:35 VanessaE hmmmm: good
21:35 Taoki celeron55: About the lighting discussion last night. I know I'm a horrible person for suggesting others what to code, but I had an idea you might want to try: Can you code a hardware light to spawn in Irrlicht (for starters it can be at origin 0 0 0) and give it stencil shadows? I'm really curious if that just might do the trick in limiting where it's cast.
21:35 sapier hmmm "if ever" for that reason you could make everything a global variable
21:36 Exio sapier: and no, that is a extreme
21:36 Exio an*
21:36 sapier I know :-) but obviously everyone uses extreme positions to show his point ;-)
21:36 Exio it *can* lead in the things you are saying
21:36 Exio as goto can, as most of language contructs can
21:36 Exio and they are for something
21:36 hmmmm it's just a social construct.
21:37 Exio making code simpler
21:37 hmmmm it's all relative.
21:37 Exio exactly
21:37 hmmmm i'm just being ironic.
21:37 sapier have a look at minetest code ... lua stack for example is accessed by fetching it from player back to environment back to server
21:37 hmmmm totally postmodern.
21:37 Exio hmmmm: ruby is way better because that
21:38 sapier and if someone says this is necessary he's wrong this isn't necessary at all
21:38 Exio meh
21:39 sapier there's only one place where I haven't been able to remove it because I would've changed whole minetest architecture ... wich would have reduced already low chances those changeset is merged to zero
21:39 celeron55 Taoki: 1) i'm not going to try anything, 2) no, you can't just "give a thing stencil shadows" in irrlicht
21:39 Taoki ok :(
21:40 Exio sapier: code in the way you like, i see using globals and goto ok for some things
21:40 Exio and yes, kill me for that!
21:42 sapier I won't kill anyone for anything ;-) I accept ppl having different opinions I even appreciate this. Sometimes I'm wrong too, and I'm not to proud to admit it.
21:42 hmmmm *cough* NULL
21:43 sapier "implementation detail" ;-)
21:43 hmmmm implementation dependent detail
21:43 sapier so not fixed
21:44 hmmmm it's part of the standard meaning it can be used in the manner which the standard says so, but how it actually works underneath is implementation-dependent
21:44 sapier we already had this discussion ;-)
21:45 sapier another question are there any additional commits to be merged the next minutes? if not I'm gonna push merged scriptapi separation
21:45 hmmmm memcpy() is implementation defined... that means on some platforms it might accomplish what it does by performing a satanic ritual
21:45 hmmmm but what it does is set in stone
21:46 sapier no comment on this discussion anymore ;-)
21:47 sapier ok so no additional commits :-)
21:48 sapier didn's someone dislike polymorphic classes? why does noise not even have destrctor?
21:49 sapier wait NoiseIndev
21:50 hmmmm NoiseIndev is proller's thing.. not mine
21:50 hmmmm I told him to extend it rather than re-implement it
21:50 sapier it's spaming build with warnings :-)
21:50 hmmmm not my problem :)
21:53 proller because nothing to delete here?
21:54 sapier you should add an empty one in this case to tell compiler what to use
21:54 sapier compiler is dump it doesn't know there's nothing to do
21:57 proller ok
21:58 sapier same for missing "virtual" if inherited compiler gets in trouble about what destructor to use
21:58 celeron55 http://ompldr.org/vaTBobA/compiler_is_dump.jpg
21:58 sapier :-)
22:01 proller https://github.com/proller/minetest/commit/03191ea6db98ec09c755c255fed712c238583ddf ?
22:09 jojoa1997|Tablet joined #minetest-dev
22:15 ds-2k left #minetest-dev
22:37 sapier ok scriptapi separation merge to master is quite weired :-) but result seams to be as expected :-)
22:45 hmmmm hmmmmmmm
22:45 Exio ^ that is weird
22:45 Exio "hmmm saying hmmmmmm"
22:45 hmmmm hey exio
22:46 hmmmm let's say you have a mountain and a ridge
22:46 hmmmm what's the ground height?
22:46 hmmmm the ridge, or the land underneath the ridge
22:47 hmmmm (or to put it more clearly; where would you like to spawn)
22:47 jojoa1997|Tablet the land underneath of course
22:47 Exio i would say "depends of the mountain", it is not the same if you have a very-tilted, "down", if it is "nearly plain", the top
22:47 jojoa1997|Tablet i would like to spawn on the mountain though
22:48 hmmmm ya, exio, i can't figure out what the mountain depends on
22:49 Exio i don't know really a "better" way, but if there is only one of both, i would still say depends a lot, if the ridge is very high (y:water_level+50? or similar? no idea how are the mountains), in the land, if not in the mountain
22:50 hmmmm for an idea http://dev.minetest.net/Mapgen_V7
22:51 sapier you're talking about something like that on the right upper end?
22:51 hmmmm yeah
22:51 sapier Id prefere to spawn below  in this case
22:51 Exio i'd say the same
22:52 sapier but I'm not even sure if this isn't a floating mountain :-)
22:52 Exio they look awesome
22:53 Exio and that is what i prefer over a bored terrain :P
22:53 hmmmm i still need to put the caves and the trees in

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