Time Nick Message 00:00 celeron55 PilzAdam: by the way, is the way minetest_game is going to be handled from now on such that it will just contain many of the common mods, with basically nothing added to those? 00:01 PilzAdam I thought it just stays as is for backwards compatibility of worlds 00:01 celeron55 we'll try something like that i think 00:06 rarkenin_ Can Connection::RemovePeer be called from scriptapi.cpp? 00:07 celeron55 why would you do that 00:07 PilzAdam implement a /kick command? 00:07 celeron55 if you do it, you are going to make a method in the Server that uses it 00:08 celeron55 and use the Server method from scriptapi 00:08 rarkenin_ Yeah, I'm implementing a kick command. The method will be exposed to Lua. 00:08 PilzAdam and maybe add a optional reason 00:08 PilzAdam so the client will say "You were kicked because: blah" 00:08 rarkenin_ Sorry, I'm really not clear with the Minetest source. 00:09 rarkenin_ I'll just send a chat message to the victim, and another broadcast for all users. 00:14 rarkenin_ OK, pull request coming up... 00:15 rarkenin_ Will anyone get annoyed if it is two commits? 00:15 RealBadAngel PilzAdam, pulled 00:24 hmmmm yes 00:25 PilzAdam hmmmm, fixed: https://github.com/PilzAdam/minetest/commits/object_collision 00:25 hmmmm alright that's good i guess 00:25 PilzAdam RealBadAngel, README.txt missing 00:25 hmmmm still iffy on the dynamic_cast, should we change it to a C-style cast? 00:26 RealBadAngel readme? what for? 00:26 PilzAdam dunno, Im not good in c++ 00:26 PilzAdam RealBadAngel, License of sourcecode and textures 00:26 PilzAdam and you can add a bit description if you want 00:26 RealBadAngel tool is self instructin user how to use it 00:27 RealBadAngel and code is wtf 00:27 hmmmm alright i'm going to stop dicking around and push my code soon 00:27 PilzAdam every mod has a readme with the license, so screwdriver should have one too 00:28 RealBadAngel oke, i will make one 00:36 RealBadAngel ive added readme.txt 00:37 PilzAdam nice 00:37 PilzAdam feel free to push it 00:38 hmmmm okay this is starting to look gross 00:38 hmmmm i almost want to make a separate file for this 00:38 hmmmm what's the policy on making new files for default? 00:39 RealBadAngel but again i can see only "merge" button :) 00:39 PilzAdam have you added upstream as a remote to your local repo? 00:39 RealBadAngel PilzAdam, can you do that? 00:40 PilzAdam yea, Ill also squash the commits 00:40 RealBadAngel i think i do have it forked then cloned 00:40 RealBadAngel i need to reconfigure my git client tommorow 00:43 PilzAdam RealBadAngel, done 00:43 RealBadAngel :) 00:43 PilzAdam Ill add it to build too 00:44 RealBadAngel you will see when you start to use it. you gonna think how the heck folks were living without it? ;) 00:45 hmmmm guys, seriously, where should i put this? http://pastebin.com/2v5W3D83 00:46 PilzAdam default/mapgen.lua 00:46 RealBadAngel mapen.lua? 00:46 RealBadAngel *mapgen 00:46 hmmmm i thought so too, but it gets run too early 00:46 PilzAdam I will split default files up soon 00:46 PilzAdam do you check if the nodes exist? 00:47 VanessaE stick it at the end of default/init.lua then? 00:47 hmmmm no 00:47 hmmmm yeah i don't want to stick it in init.lua, it's already a crisis zone 00:47 VanessaE hah 00:47 rarkenin_ https://github.com/minetest/minetest/pull/566 00:47 PilzAdam what do you mean by "it gets run too early"? 00:47 hmmmm the nodes i'm using aren't registered yet 00:49 PilzAdam rarkenin_, there is an "end" missing in chatcommands.lua 00:49 PilzAdam hmmmm, why do you need the nodes to be registered? 00:49 hmmmm because i store content_ts, not the name strings 00:49 hmmmm it just makes more sense to me 00:50 rarkenin_ PilzAdam: I've already messed up the branch a little. So, can you merge it and then make the small changes needed? I don't want to kill GitHub and my client at the same time. 00:50 PilzAdam hmmmm, does anything else in the API behave like this? 00:50 PilzAdam AFAIK no 00:50 hmmmm no idea 00:50 rarkenin_ But please give me a second to make sure it builds fully first. 00:51 PilzAdam rarkenin_, and also, why the kick priv? you can simply use the ban priv for that 00:51 RealBadAngel hmmm, you want the code to be executed after everythin is loaded? 00:51 hmmmm i don't think it should matter as long as i make a disclaimer that all the nodes it references need to be registered already 00:51 hmmmm realbadangel, yeah, I am thinking of separating it into its own file like ore.lua 00:51 PilzAdam hmmmm, then move the dofile() to the end of init.lua 00:51 hmmmm and have init.lua include this toward the end 00:51 rarkenin_ Banning is more serious than kicking. The usecase that inspired this for me in the first place is 0gb.us:30000, where the moderators have very limited powers. Therefore, the kick priv. 00:51 PilzAdam but Im not very happy about it 00:52 RealBadAngel use minetest.after maybe 00:52 hmmmm mm 00:52 rarkenin_ About kicking? 00:52 hmmmm minetest.after, i'll consider that... 00:52 PilzAdam hmmmm, nothing else behaves like this in the API AFAIK 00:52 PilzAdam rarkenin_, no, not the kicking 00:52 hmmmm pilzadam, we never made any sort of guarantee though 00:52 rarkenin_ OK. 00:52 hmmmm what do other people think? 00:52 RealBadAngel minetest.after(0.01, function() 00:53 rarkenin_ Wait, don't merge. It fails to build. 00:53 PilzAdam rarkenin_, maybe add TOCLIENT_KICK so that the client can handle the kick properly 00:53 rarkenin_ Apparently, I need to include connection. 00:53 PilzAdam RealBadAngel, thats rather hacky 00:54 RealBadAngel ofc 00:54 RealBadAngel but works 00:54 hmmmm realbadangel, yuck@ that, there's no guarantee on a time bound of 0.1 for the initial script load 00:54 hmmmm which means it could fail because something else took too long 00:54 RealBadAngel it works for UI 00:54 PilzAdam hmmmm, minetest.after(0) is called after all mods are loaded 00:54 PilzAdam that is a undocumented fact 00:55 hmmmm should we document it then? 00:55 PilzAdam but we cant really rely on it 00:55 rarkenin_ OK. I closed the pull request, nobody merge it. 00:55 RealBadAngel i think cornernote started to use it 00:55 hmmmm lol, rarkenin, we would only merge it after we test it ourselves 00:55 PilzAdam the creative mod uses it 00:56 RealBadAngel so it means its long time tested already 00:56 hmmmm minetest.after(0) is what i would really like here 00:56 PilzAdam RealBadAngel, we also have hack_spaw_node() so that isnt a good argument 00:56 hmmmm putting the dofile toward the end might not work i think 00:57 PilzAdam it would work perfectly fine 00:57 hmmmm if people are going to register nodes as ores that are in other things 00:57 hmmmm other mods 00:57 RealBadAngel hack used long enough can become standard 00:57 PilzAdam it would be best to change the behaviour of register_ore() IMO 00:57 RealBadAngel so it is for hacky_swap_node() 00:57 hmmmm perhaps, from the API point of view it would be best 00:58 hmmmm from the engine point of view that'd force you to store strings for all of these and do lookups every single time ore is generated 00:58 PilzAdam maybe only allow register_ore() the first time a mod is loaded (like register_node() 00:59 PilzAdam and read the contents then 00:59 hmmmm hold on a minute, mods can be loaded twice? 00:59 rarkenin_ error: ‘Connection’ has not been declared 00:59 PilzAdam no, but dont allow it to be done in callbacks 00:59 rarkenin_ I haven't waded therough the source enough. 01:00 rarkenin_ How shall connection be obtained? A global? Some Lua registry lookup? 01:00 hmmmm rarkenin_, if you're not referencing any particular member of the Connection class, you can forward declare it 01:00 PilzAdam hmmmm, you cant call minetest.register_node() in a callback of the API, and you should do the same with register_ore() 01:01 hmmmm PilzAdam, actually i don't know if that's desirable since when you register a node, there really is one node, but here, there can be many different ore registrations for one kind of ore (for varying depths, like you saw here) 01:02 hmmmm so there's no unique ID for ores 01:02 rarkenin_ hmmm: And once declared in advance, when will it actually be defined? 01:02 hmmmm rarkenin_, when connection.h is actually included by whatever tangled web of includes it needs 01:03 PilzAdam hmmmm, a huge advantage of the API is that you can basically can do many things without depending on anything being loaded already 01:04 PilzAdam so you can define crafts for other mods before they are loaded 01:04 hmmmm yeah but who does that 01:04 hmmmm when you list dependencies, those are to be loaded before your mod is loaded, correct? 01:04 PilzAdam the default mod registers the crafts before registering the nodes 01:04 rarkenin_ I included it manually at the top in case the web breaks. 01:04 hmmmm i mean that would only make sense 01:04 hmmmm yeah.. yuck 01:05 hmmmm imo this is the right way 01:05 hmmmm because, like i said, there's a lot more stuff to be done if i were to store the node name 01:05 rarkenin_ And a forward declaration looks hacky at the top. 01:06 PilzAdam hmmmm, is it possible to cache the content or something? 01:06 PilzAdam so you need the string only the first time the ore appears 01:06 hmmmm not really 01:06 hmmmm that's what i would do 01:07 hmmmm yuck 01:07 hmmmm pilzadam, what if we do this for now, and if it causes problems, we do it the position-independent way? 01:08 PilzAdam it already causes problems in the default mod :-) 01:08 hmmmm what? how so 01:08 PilzAdam you cant simply replace the current default.generate_ore() calls with the new API calls 01:09 hmmmm well yes, but that wouldn't be a problem if you were to just do it after the nodes are registered... 01:09 PilzAdam dunno, its too late 01:09 PilzAdam I need to sleep a bit 01:10 hmmmm i'll try to gather more of a consensus 01:10 PilzAdam ok 01:10 PilzAdam bye 01:11 rarkenin_ hmmm: What am I forward-declaring: Connection::deletePeer? Or Connection itself? 01:12 hmmmm oh wait a minute... what are you doing exactly 01:13 hmmmm so you're referencing a specific member in Connection? if that's the case, you need to actually have Connection defined 01:14 rarkenin_ I'm calling Connection::deletePeer. 01:14 rarkenin_ I included connection.cpp, yet it still fails to define. IIRC I need the Connection instance used by the rest of the code. 01:15 rarkenin_ Or am I jumping into the include web at the wrong time? 01:15 hmmmm you don't include a .cpp file, you include the header.. 01:15 hmmmm can i see your code, maybe? 01:16 rarkenin_ I included both the header and the source. 01:17 rarkenin_ Hold on, let me pastebin it. 01:17 hmmmm come on man, you don't include sources... 01:17 RealBadAngel :) 01:17 rarkenin_ http://paste.ubuntu.com/5641942/ 01:18 rarkenin_ I included it after the first few failures. 01:18 rarkenin_ See lines 800-ish and the #includes at the top./ 01:18 hmmmm okay, and what is the specific error? 01:19 rarkenin_ /home/rarkenin/github/master/src/scriptapi.cpp: In function ‘int l_kick_player(lua_State*)’: /home/rarkenin/github/master/src/scriptapi.cpp:813:3: error: ‘Connection’ has not been declared 01:20 rarkenin_ Sorry, too short for pastebin, too long for IRC. 01:21 rarkenin_ Sorry, I'm a relative failure at C++ 01:21 hmmmm it's okay, you just need to get more experience 01:21 ShadowNinja what are you trying to do? 01:22 hmmmm from what i'm seeing, deletePeer() is not a static method 01:22 rarkenin_ Call Connection::deletePeer 01:22 rarkenin_ Never mind, didn;t scroll down. 01:22 rarkenin_ That;s the problem. I need an instance of Connection, and I can't find the one I need. 01:25 hmmmm from what i'm seeing, there's no way to access the server's Connection from lua 01:25 hmmmm from outside of Server, i mean 01:26 rarkenin_ I just need the Connection on the C++ side. Lua doesn't see it directly. 01:26 rarkenin_ Some sort of extern or global, maye? 01:26 rarkenin_ *maybe 02:12 hmmmm you'd have to add a getConn() method to server 02:12 hmmmm it'd return m_con 05:53 hmmmm well anyway 05:53 hmmmm https://github.com/kwolekr/minetest/commit/2e4878ee4c90ee070c58a734f0b256825215300f 05:56 VanessaE can someone test the validity of the facedir parameter as used in the add_node() call? 05:56 VanessaE (param2 that is) 05:56 hmmmm that's all RBA 05:56 hmmmm why not just wait for him to come around? 05:57 hmmmm surely you have better things to do than worry about your plants mod at 2am... 05:57 VanessaE hmmmm: I don't think this is the plants mod... 05:57 VanessaE I think the engine is misinterpreting the value given in param2 in the add_node() call. 05:58 VanessaE I checked with and without luajit, checked with a debug statement placed immediately before the call, and got kaeza looking at my code too 05:58 VanessaE I think occasionally it is being incremented by 1 over the value being given 05:59 kaeza you said you got fdir=5 05:59 kaeza or not? 06:00 VanessaE kaeza: the effect thereof, yes. In this latest test that I showed you, I confined the value to exactly 3, but I'm getting two different, adjacent orientations out of it. 06:00 VanessaE and checked via debugging output that this one value is all that's ever being plugged into the function. 06:03 kaeza hrm... just a stupid suggestion, but did you try adding parentheses to the expression in the if not x and not y and not z and ... 06:03 kaeza ? 06:04 VanessaE kaeza: not needed. That output at line 268 is all that's ever being printed. 06:04 kaeza maybe some kind of obscure bug in operator precedence or smth like that 06:04 VanessaE (so the other parts of the code aren't being reached at all) 07:40 celeron55 actually doing any registrations in minetest.after(0) or anywhere else than the initial run is unsafe 07:40 celeron55 it can cause race conditions in threads because the definition managers are designed so that they are only safe if they aren't written after they have been initially set up and are read by things 07:41 VanessaE so we figured out the issue I was having - it's just an artifact of having used the previously-undocumented facedir, not knowing it was being AND'd with 0x03 (and now isn't) 07:45 celeron55 (in practice it won't cause currently, but any future perfectly correct changes can break because of mods using it) 07:49 celeron55 to fix that, somebody could look into including this https://github.com/minetest/minetest/pull/238 07:50 celeron55 (the require() thing has to be removed from it, and then it has to be tested) 07:51 celeron55 and... well, otherwise make it behave like the other builtin stuff 07:53 celeron55 (that guy insisted on that require() stuff that simply doesn't fit with minetest 0.4's mod loading design and brings no actual benefit other than compatibility headache) 12:35 Exio +local fuck = {} 12:35 Exio nice variable names eh 12:52 rubenwardy I updated the image here: http://multa.bugs3.com/minetest/manual/game/custom.html 12:52 rubenwardy I will be adding better description / body text 15:58 hmmmm soooo 15:59 hmmmm anyway, it doesn't really matter if they're called twice, it'll just add twice as much ore 15:59 hmmmm not really a showstopping bug. besides, this will be really hard to track 15:59 hmmmm think we should just add it? 16:12 hmmmm also, a different problem... i've been thinking about how to add a lua api to get the mapgen params, but at the time you'd actually need it, it's not available 16:14 hmmmm it doesn't happen until initMapgens() is called, which happens after the mods are initially run 16:16 hmmmm to re-order this, we'd have to re-order when the Environment is created, making a big change in how mods work 16:16 VanessaE not good. 16:17 VanessaE wouldn't it be simpler to just open up a way for a mod to just directly read the world config file? 16:17 VanessaE (that is, in a predictable manner, e.g. with relative paths or something) 16:17 hmmmm absolutely not because there's 0 guarantee that the contents of those files are what the parameters are actually 16:36 hmmmm alright, so the server environment steps before the emergethreads become active 16:36 hmmmm that's good, so i can do this sort of stuff in minetest.after() 16:36 hmmmm but i want it right after. meaning i want to use after(0) 16:41 hmmmm so i'm at a loss of ways to use the api to read the mapgen configuration 16:44 hmmmm in this particular case it would be safe to register in after(0) because, like i said, the emergethreads aren't even active before the environment steps the first time 16:45 hmmmm and those are the only other threads that are unsafe 16:46 hmmmm alright so what i'll do is add the postinit thing, then add the mapgen param api, and i'll do it that way 16:59 RealBadAngel hmmm, about max (y_max - y_min + 1) then it'll crash. 17:04 VanessaE if I read this right 17:04 hmmmm vanessa, yes, i said that already however 17:04 hmmmm so anyway 17:04 hmmmm here's the problem: 17:04 VanessaE hmmmm: just trying to understand it. 17:05 hmmmm it just so happens that with the map generation chunksize = 5, we never saw this logic oversight 17:07 hmmmm so basically, right after calculating y_min and y_max, we need to check that there's enough space between the two 17:07 hmmmm because the maximum height that the ore generates at might be too close to the minimum y of the chunk that was generated or vice versa 17:08 hmmmm i better patch my ore generation because it too is succeptable to the same flaw 17:09 VanessaE I look forward to the new ore gen being merged 17:09 VanessaE you've done a lot of good work, I expect this'll be more of the same :) 17:13 hmmmm default.generate_ore() is being used by other mods, correct? 17:13 PilzAdam yes 17:13 VanessaE glooptest/ores 17:13 hmmmm we can't just remove it when the core ore thing is merged 17:13 hmmmm so we need to fix that too 17:13 VanessaE tech was using it for a couple of days too 17:13 hmmmm right after local y_max = ... add this 17:13 VanessaE (but not anymore) 17:13 PilzAdam its not documented in the API, so just make it function () end 17:13 hmmmm if chunk_size >= y_max - y_min + 1 then 17:13 hmmmm return 17:13 hmmmm end 17:13 VanessaE nooooooo 17:14 hmmmm and i'm assuming a similar problem happens in the NPC mod too, so you should check for the same logic flaw 17:15 VanessaE well npc mod doesn't generate ores :-) 17:15 hmmmm .. 17:15 VanessaE that was probably a coincidence, as it does run at mapgen time. 17:16 PilzAdam https://github.com/minetest/common/pull/9 this one? 17:16 VanessaE "4 hours ago" 17:16 VanessaE heh 17:16 hmmmm wel the way i just wrote is clearer 17:17 hmmmm this also needs to be fixed in minimal too 17:18 PilzAdam generate_ore() in minimal is still local 17:18 hmmmm so we'll just remove that one completely? 17:18 PilzAdam yea 17:18 PilzAdam also add a warning message to default.generate_ore() that its deprecated 17:19 hmmmm yes 17:19 hmmmm wait, me? 17:19 hmmmm you do that 17:19 hmmmm you're the lua guy 17:19 PilzAdam Ill do it if you push your ore gen code 17:19 PilzAdam s/if/when 17:19 hmmmm yeah hold on 17:19 hmmmm just need to amend that one thing 17:20 Exio what is the rate of "features / day" added to minetest]? 17:20 Exio i hope it will not overflow an integer 17:20 Exio but i'm not sure! :P 17:24 hmmmm pushed to upstream 17:24 hmmmm PilzAdam, let me paste the final ore definitions to add 17:24 hmmmm http://pastebin.com/2UTV1mMp 17:25 PilzAdam can you write something to lua-api.txt? 17:25 hmmmm add that after the minetest.register_alias( ...) block and before the default.generate_ore() 17:25 hmmmm yeahhh... 17:25 hmmmm i was going to do that later 17:25 hmmmm i'm bad at writing documentation 17:25 PilzAdam everyone is :-) 17:25 hmmmm there are a lot of details i'd have to figure out, like where would i add this for example 17:26 PilzAdam it doesnt matter as long as it is somewhere 17:29 hmmmm okay 17:29 hmmmm i'm putting it under "minetest.register_craft(recipe)" in "minetest namespace reference", but where do i mention what an ore is? 17:30 Rick__ Hey everyone, its my first time on here. I was looking at the Minetest source code and have an idea for some game mechanics I want to implement. 17:30 VanessaE does it *have* to be an ore? Wouldn't just any random node qualify as such? 17:30 Rick__ I'm kind of wondering if anyone has enough spare time to give me some pointers on where I would have to make changes for the most part 17:31 PilzAdam is minetest.log('error', "WARNING: default.generate_ore is deprecated") too anoying? it gets printed to the chat... 17:31 VanessaE PilzAdam: yes. 17:31 PilzAdam wich level then? 17:31 PilzAdam action? 17:31 VanessaE don't spam the chat with error messages that can't be copy&pasted 17:31 PilzAdam action gets also printed in the windows cmd AFAIK 17:32 hmmmm yeah that's fine, shouldn't it be errorstream though? 17:32 VanessaE hmmmm: here's another one for you - not related to oregen I don't think: http://pastebin.ubuntu.com/5643839/ 17:32 hmmmm actionstream implies you're doing something active 17:32 PilzAdam errorstream gets printed to the chat in Lua 17:33 hmmmm vanessae, looks like you ran out of memory 17:33 VanessaE hmmmm: I have 12GB. 17:33 hmmmm hmmmm 17:33 hmmmm 4 emergethreads going? 17:33 VanessaE yep, happens with 2 also. 17:33 hmmmm why are you using multithreading? i thought that cut your trees in half 17:34 VanessaE trees were always being chopped apart anyway before that, so I figured what the hell 17:34 VanessaE small price to pay to speed it up 17:34 hmmmm why would you need a speedup if the bottleneck is lua 17:34 hmmmm you do realize on_generate() can only be run by one thread at a time 17:35 VanessaE hrm 17:35 VanessaE well still 17:35 hmmmm but wait a minute 17:35 VanessaE http://pastebin.ubuntu.com/5643847/ 17:35 hmmmm hold up 17:35 hmmmm this isn't my error at all 17:35 VanessaE here's the player file of the person who joined that caused the crash 17:35 hmmmm see how it says ServerThread::Thread() 17:35 PilzAdam hmmmm, you cant pass the seed to register_ore() 17:35 hmmmm PilzAdam, ?? 17:36 PilzAdam to default.generate_ore() you can pass a seed 17:36 Exio random question to hmmmm, what is the "ore_type"? 17:36 hmmmm exio, i'm documenting that right now 17:36 Exio k 17:38 VanessaE hmmmm: I understand if it isn't your code causing this. 17:39 hmmmm back 17:39 hmmmm vanessa, i'll look better at it 17:39 hmmmm pilzadam, no you don't pass a seed, the mapgen passes the blockseed + a constant if you look 17:39 PilzAdam does it always pass the same constant? 17:40 hmmmm yes 17:40 PilzAdam even if new mods with register_ore() come along? 17:40 hmmmm it's identical in operation to the original 17:40 PilzAdam is that ok-ish? https://github.com/PilzAdam/common/commits/tmp 17:41 hmmmm that looks good 17:41 VanessaE wait 17:41 hmmmm PilzAdam, https://github.com/minetest/minetest/commit/57cbb8bfd8daaa1b8b1aa876723ff6355d21f7fc#L5R466 17:41 VanessaE why fail silently re: chunk size? 17:42 hmmmm because it's something that happens by chance 17:42 hmmmm you can't really do anything about it 17:42 hmmmm it's not a user error at all 17:43 VanessaE hrm. ok 17:47 VanessaE heh 17:47 * VanessaE watches "ACTION[ergeThread]: WARNING: default.generate_ore is deprecated" spam the console 17:48 hmmmm that'll grab the user's attention 17:49 VanessaE note that "[EmergeThread]" is not being printed in its entirety 17:49 VanessaE the first couple of letters of that word are being randomly dropped. Is that normal? :-) 17:52 PilzAdam hmmmm, https://github.com/minetest/common/commit/ef995230cb7558f8e69e563b3d898f5ab2ba2156#commitcomment-2869196 17:53 Exio https://github.com/minetest/minetest/commit/57cbb8bfd8daaa1b8b1aa876723ff6355d21f7fc#L1R58 18:04 hmmmm no that's not normal 18:04 hmmmm i have no idea why it does that 18:04 hmmmm i would assume that's due to a race condition of some sort 18:05 hmmmm the claylike ore isn't done yet because i just want to get something out right away that covers 95% of the usecases 18:06 hmmmm this cuts the time it takes for on_generate to execute from about 400ms to around 15-25ms, WITHOUT luajit, and with only -O1 18:06 hmmmm i'll do the rest later, but that's just the most significant part 18:07 Exio hmmmm: what about this https://github.com/minetest/minetest/commit/57cbb8bfd8daaa1b8b1aa876723ff6355d21f7fc#L5L499 ? 18:08 hmmmm many of my commits aren't exactly what is described, if there's something minor that doesn't really warrant a commit, and the fix won't really affect anything, i'd just fix it as i go along 18:09 hmmmm in that case it was combining if clauses that i didn't realize ought to be combined after i removed the noise computation for trees 18:09 Exio ah, kk 18:09 hmmmm i think i also removed a commented out field in an initializer list 18:14 PilzAdam why dont we have dungeons in mg_flags by default? 18:15 PilzAdam (and jungles) 18:15 rarkenin_ IMO mg_flags should be exposed in the world creation dialog as a set of checkboxes./ 18:16 hmmmm i think so too 18:17 hmmmm PilzAdam, because that would screw up peoples' maps who are updating from a version of minetest before mg_flags was added 18:17 hmmmm if it were up to me, i'd disable v6_biome_blend, enable dungeons and jungles 18:18 VanessaE blend? as in that smooth dithering between say desert and grass? 18:18 hmmmm yeah 18:18 hmmmm when you say smooth you're being sarcastic, right? 18:18 VanessaE oh please for the love of FSM, G*d, and whoever else, disable that. 18:19 VanessaE sarcastic? no, just chose the wrong word. 18:19 VanessaE how about "noisy" 18:20 hmmmm also green and orange are colors that don't really go well with eachother 18:20 hmmmm the whole desert and normal being next to eachother looks yuck 18:20 hmmmm but nevermind that, it's mapgen v6 18:20 hmmmm i have my sights set on the future 18:20 VanessaE yup I know 18:21 rubenwardy What needs to happen for this to get merged? https://github.com/minetest/minetest/pull/548 18:21 hmmmm a need for it 18:22 rubenwardy lol 18:22 hmmmm sapier doesn't even want that merged because he said there's no real good use for it 18:23 rubenwardy he says "I don't see any other use but mobs atm." 18:23 rubenwardy no there is no use 18:23 rubenwardy *not 18:23 rubenwardy but yeah 18:23 hmmmm well in the channel he said this 18:23 rubenwardy ok 18:29 celeron55 i think it should be added 18:30 rubenwardy hmm 18:30 celeron55 it's quite self-contained and useful for almost any AI 18:31 rubenwardy minetest could use some fast mobs, and pathfinding is great 18:31 rubenwardy ywea 18:31 rubenwardy yeah 18:31 hmmmm from what i understand, current mobs don't use pathfinding at all 18:31 celeron55 they don't because it's too slow to be practical 18:32 hmmmm wow does minecraft have us beat in the mod department or what 18:32 celeron55 and it's hard to implement 18:32 PilzAdam this is also useful for mobs: https://github.com/minetest/minetest/pull/434 18:32 hmmmm do you think it would've been better if there were only shared library mods? 18:33 PilzAdam and this: https://github.com/minetest/minetest/pull/418 18:33 celeron55 line_of_sight is included in #548 18:35 ecube hmmmm: minecraft mods require a source code edit 18:35 ecube minetest doesn't :P 18:51 rarkenin_ hmmm: I finally got around the forward declaration issus, but now it complains that deletePeer is private even if explicitly marked public. 18:52 rarkenin_ I have it as public bool deletePeer(u16 peer_id, bool timeout){blahblahblah} 19:00 hmmmm yes, i mentioned that... did you see what i said yesterday? 19:05 rarkenin Sorry, my connection died. Can you say that again? 19:05 hmmmm [03:00 PM] yes, i mentioned that... did you see what i said yesterday? 19:07 rarkenin No, I left too early. 19:07 hmmmm we have channel logs.. 19:08 rarkenin Oh, right, yes./ 19:10 rarkenin I added a getConn method to server. It returns a pointer to the con object. When I try to operate ot in by calling a method that is explicitly public, I get an error saying it is private/ 19:11 rarkenin Let's see here, I'm heading to a swim practice, I;ll be back in an hour or so. 19:13 hmmmm :\ 19:13 hmmmm the method you make is supposed to be public 19:14 hmmmm christ this isn't rocket science.... Connection *getConnection() { return m_con } 19:14 hmmmm PilzAdam, how does this look https://github.com/kwolekr/minetest/commit/a97d3e1e55f8a20fe2e5dedefb9aee8204ae8926 19:16 PilzAdam line 866: s/ore/ore_definition 19:18 hmmmm now why's that? what about register_craft(recipe) 19:18 hmmmm not to mention that the name of the class in the core is Ore, not OreDef 19:19 PilzAdam when people read "Ore" they just add in "default:stone_with_coal" 19:19 PilzAdam but when they read ore_definition they will look at the bottom what it is 19:19 hmmmm well okay 19:20 PilzAdam remember wich people read the API :-) 19:21 hmmmm https://github.com/kwolekr/minetest/commit/6767ed74f838bbb0c7786f85ef1e8f5b9fb88ef7 19:21 PilzAdam its okay now 19:28 celeron55 i don't think talking about some "default ores" is appropriate there 19:30 celeron55 also, the indentation seems screwed up in some dual ^ points 19:31 hmmmm well it's already pushed to upstream 19:31 hmmmm besides, i was following the example from other pieces of documentation 19:32 PilzAdam the indentation is screwed up everywhre in lua-api.txt 19:33 celeron55 bleh 19:33 celeron55 i'll fix it then 19:34 celeron55 apparently hmm copied the nonsense by viewing tabs of a close-by screwed up piece wrongly and writing them as tabs 19:35 celeron55 (the close-by one was perfectly fine when viewed with 4-long tabs) 19:35 hmmmm i figured that was the right way because PilzAdam is usually on that shit 19:36 hmmmm and he would've fixed exising indentation problems by now 19:36 celeron55 s/writing them as tabs/writing them as spaces/ 19:38 celeron55 pushed a fix 19:38 hmmmm okay, good, you fixed everything while you were at it. that made it separate-commit-worthy 19:39 celeron55 shit, there's a bug in that commit 19:39 celeron55 force-pushed it again 8) 19:40 hmmmm anything else? i need to rebase what i just wrote against that 19:40 celeron55 it's good enough now 19:44 rarkenin hmmmm: Sorry about he crapload of troble. The problem is that I have Connection *getConnection() { return m_con } already created pretty much word for word. The problem is that once I try to do something with m_con, things start to go sour since every method, even defined explicitly as public, appears as private to the compiler. 19:44 rarkenin It could be the issue with the namespace con surrounding everything. 19:45 hmmmm umm 19:45 hmmmm can i just see your code 19:45 hmmmm i probably know what your problem is 19:45 rarkenin O, kust a sec. 19:46 rarkenin I'l just post the important lines in a paste. 19:48 rarkenin http://paste.ubuntu.com/5644319/ 19:48 celeron55 hmmmm: you mentioned getting next (or at some point) to the block transfer thing 19:48 rarkenin Fill server.h: http://paste.ubuntu.com/5644323/ 19:48 rarkenin *Full 19:49 celeron55 hmmmm: you'll be fighting against two things in there: network congestion and mesh generation speed 19:49 playzooki hi guys 19:49 rarkenin And the most important, the deletePeer: 19:49 rarkenin http://paste.ubuntu.com/5644326/ 19:51 hmmmm .. 19:51 hmmmm rarkenin, you probably have it under the private: specifier 19:52 hmmmm also just getConnection(), drop the Object 19:52 rarkenin No, there is no private specifier in the file/ 19:52 hmmmm there most definitely is in server.h 19:52 hmmmm rarkenin, would you just like me to take this over and finish it for you? 19:52 rarkenin Yeah, but the error is in the method in connection.h,m and there is no private specifier in connection.h 19:53 rarkenin Sure, feel free to. 19:53 rarkenin I'll push the last of the junk to GitHub. Sorry for the trouble,/ 19:53 hmmmm no problem 19:53 celeron55 what is the point here? is this still the kicking of players? 19:53 hmmmm yep 19:54 celeron55 ...with getConnection() exposed to the scripting API? oh god 19:54 hmmmm if I were doing this, what I would do is add an option to kick only in the ban manager 19:54 Jordach you can now play russian roulette with rouge mods 19:54 rarkenin Yeah, my apologies. I'll head back into scripting where I belong. 19:55 hmmmm aww 19:55 hmmmm i'm sorry, i didn't mean to imply that you weren't good enough 19:55 celeron55 maybe go try C++ with something slightly less complicated? 8) 19:55 hmmmm just learn how to do C++ a bit more and try again once you're really good 19:56 hmmmm celeron, i didn't really describe how i was going to the block sending 19:56 hmmmm it's completely different from what you and that davidmikesimon guy have 19:56 rarkenin OK. Sorry for wasting your time. And it was a good learnnig experience. :) 19:56 hmmmm i've been watching a lot of minecraft videos and it seems what they do is they have a loading screen 19:57 hmmmm so during that loading screen we'll send all the blocks within some d-sized square radius, with a bit smaller of a y distance 19:57 hmmmm then, as the player moves, we send more blocks AT the boundary of that square that hasn't been sent 19:58 hmmmm hopefully the fog distance is about the same as the blocks are sent, so to the player it looks like one whole coherent world with no big gaps 19:58 PilzAdam what about teleporting? 19:58 hmmmm no need for anybody to calculate the FOV of the client 19:58 rarkenin Do you still want me to push those changes to github? 19:58 hmmmm rarkenin, sure 19:59 rarkenin Git is hating me today. A push hangs incenssantly 19:59 hmmmm for teleporting, all the blocks in that radius would be not sent, so you'd expect quite a surge of blocks 19:59 hmmmm rarkenin, github was being ddosed yesterday, that might have something to do with it 20:00 rarkenin No, this problem is local. Not even an outbound connection yet. 20:00 hmmmm that sucks 20:01 rarkenin I'll just pastebin the patch if anyone wants it. 20:04 rarkenin It's a bit mangled, but it's the best Git will give me. 20:07 rarkenin http://paste.ubuntu.com/5644386/ 20:11 Jordach oh, by the way, the strange shadows bug still exists: http://i.imgur.com/Bd9GA6g.png 20:12 hmmmm we're aware of it... that's pretty unavoidable 20:12 PilzAdam isnt that caused by cave air? 20:12 hmmmm yes 20:12 Jordach but that's the only instance for several months now 20:13 hmmmm they didn't decrease in frequency or anything 20:13 Jordach xyz's fix has worked, but, there are some still generating 20:13 hmmmm huh? fix? 20:13 hmmmm what did he do 20:13 Jordach there was one a while ago that fixed it, thexyz has a patch for this which i think went master iirc 20:14 hmmmm i would've been aware of this.. 20:19 PilzAdam hmmmm, should we remove the underground springs from minimal? they are in common/default 20:19 PilzAdam *arent 20:19 hmmmm yeah 20:21 PilzAdam hmmmm, done 20:21 hmmmm cool 20:22 hmmmm wow that's a really miserable mapgen.lua. 20:22 hmmmm look at how minimal it is 20:23 PilzAdam it is fast 20:23 PilzAdam and not bloated 20:23 hmmmm hmm 20:24 hmmmm what i want to do is the moreores now and then mark this as 0.4.6 and do another release, we have a lot of changes and it's very release-worthy 20:25 hmmmm but i don't want to do the code freeze, especially since i'm on spring break and i can do a lot of stuff 20:25 hmmmm what do you say we do that, mark it as 0.4.6, then release it as beta, then after a week if there are no problems, mark it as an official release 20:25 hmmmm while we continue committing stuff to upstream the whole while for the next version 20:26 PilzAdam we had 0.4.2-rc1, after a month or so 0.4.3 was released; 0.4.2 was never released officially 20:27 PilzAdam people just got confused about the rc1 20:27 hmmmm we'll be sure to do an official release 20:27 PilzAdam because they took it as an official release 20:27 hmmmm if we mark it as -beta it should be okay 20:27 hmmmm really all we need to do is make sure we follow up on things 20:28 PilzAdam we currently have a good push flow 20:33 PilzAdam about the ores: we need to think about nice uses for them 20:35 hmmmm well for diamond, i want diamond picks and all that stuff 20:36 PilzAdam we have mese 20:36 hmmmm yeah but that's mese... 20:36 hmmmm diamond should be much rarer than mese even, but last a lot longer 20:37 Jordach mese is our redstone, but with more use 20:48 VanessaE well we could always merge mesecons into engine....... ;-) 20:50 Exio i'm with hmmmm about diamond, if not "diamond itself" just a more rarer ore what has "better tools" 20:52 Exio mese is very very common 20:56 VanessaE diamond should be at least as rare as mese blocks are, and only found fairly deep 20:57 PilzAdam has someone diamond textures? 20:57 VanessaE use the ones in the diamonds mod? 20:57 Exio there is a diamond mod 20:58 VanessaE we've got over 30 km of map depth, let's USE it for a change 20:58 PilzAdam this one? http://forum.minetest.net/viewtopic.php?id=2724 20:59 Exio i don't like the very-height based ore generation, it is, "0 ores", "get the correct layer", "1000 stacks" 20:59 VanessaE PilzAdam: yeah I believe so 20:59 VanessaE that one is on my server, anyway 20:59 Exio that is the only i have used 20:59 PilzAdam the block doesnt look good 21:00 VanessaE not really, no, but the ore and tools seem okay 21:00 VanessaE maybe they need less saturation though 21:04 Exio the only thing what i'd change in diamond's block texture is making it more "light-blue", but i'm weird with that stuff :P 21:06 VanessaE imho the block should look like it's composed of multiple pieces 21:10 VanessaE into which component will diamonds be placed? 21:11 PilzAdam commons/default 21:11 VanessaE ok 21:14 PilzAdam isnt diamond a bit boring like this? 21:14 hmmmm shouldn't diamond be a bit darker and more turquoise-ish than it is in those textures? 21:14 hmmmm we won't be able to tell the difference between diamond ore and the myriad of other light-blue ores 21:14 PilzAdam (I mean the uses= 21:14 PilzAdam *) 21:14 hmmmm (silver, tin, etc.) 21:15 hmmmm PilzAdam, i think it's pretty good, we can invent more uses later on 21:15 VanessaE PilzAdam: let the modders figure out how to use it 21:15 hmmmm alright so everybody, let's agree on which ores make it in: 21:15 hmmmm silver, gold, diamond (for sure) 21:15 VanessaE hmmmm: gold, silver, tin, copper, mithril, diamond. 21:15 hmmmm what do you guys feel about copper, tin, and the others? 21:16 hmmmm what are the others, actually? 21:16 VanessaE I think those are more than enough for a "default set". 21:16 hmmmm mithril can be used as fuel for an enchanting setup later on :D 21:16 hmmmm maybe you also use mithril to power stargates and whatever 21:16 VanessaE that sounds fair 21:16 hmmmm tin, copper, silver, gold, mithril diamond 21:16 hmmmm great 21:16 hmmmm let's do it 21:17 VanessaE as of now it's a rare but not heavily-used materia 21:17 VanessaE l 21:17 hmmmm yeah 21:17 PilzAdam Ill do gold and diamonds 21:17 hmmmm and as for lapis lazuli and emerald, we won't bother 21:17 hmmmm pilzadam, why not all of them at once? 21:17 PilzAdam *Im currently doing gold and diamonds 21:18 VanessaE agreed, why do we need lapis if we have mithril? :-) 21:18 VanessaE emerald, I am on the fence about that one 21:18 hmmmm meh 21:18 hmmmm there could be a gemstone mod 21:18 VanessaE there already is 21:18 hmmmm ruby saphire emerald anthemyst and so on 21:19 VanessaE several actually I think 21:19 hmmmm you use them to make different color lazers 21:19 VanessaE birthstones, gems, gemstones to name three 21:19 hmmmm badumtss 21:19 hmmmm tried to connect to your server to look at something real quick and it crashed 21:19 hmmmm fan tastic 21:20 VanessaE lesse, node names are... moreores:mineral_copper, mineral_tin, mineral_silver, mineral_gold, mineral_mithril 21:20 VanessaE for the ores 21:21 hmmmm alright, and for all the things we're adding, we want the associated blocks 21:21 hmmmm and as for tools, we'll just have diamond tools for now 21:21 hmmmm and make diamond last much longer than mese 21:21 VanessaE lumps,ingots I guess are moreores:xxxx_lump and moreores:xxxx_ingot 21:21 hmmmm good 21:21 VanessaE blocks are moreores:xxxx_block it looks like 21:21 VanessaE calinou's code is hard to read 21:21 hmmmm didn't crash this time 21:21 hmmmm grr 21:22 Exio VanessaE: is he using BF in lua? >:D 21:22 VanessaE Exio: not quite, but there's a fair amount of pasta in his programming 21:22 Exio :P 21:23 VanessaE hmmmm: ok, confirmed the node names, as above. 21:23 VanessaE (thank G*d for the crafting guide in UI) 21:29 VanessaE server went blooey again... http://pastebin.ubuntu.com/5644594/ 21:29 hmmmm yeah it did 21:29 hmmmm wow that's a helpful stack backtrace .... 21:29 VanessaE one thread this time, as you saw 21:30 VanessaE should I compile it for debug? 21:30 hmmmm i don't think it'll help 21:30 VanessaE k 21:35 PilzAdam https://github.com/PilzAdam/common/commits/gold and https://github.com/PilzAdam/minetest_game/commits/gold 21:37 Exio in the game minetest_game a mod called minetest_game? 21:37 Exio that seems confusing, imo 21:37 PilzAdam every game should have a main mod with the game name 21:37 Exio it should have a name like "external_legacy" or so, i just think 21:37 Exio what about a mod called "main"? 21:38 PilzAdam VanessaE, what do you think about the gold? 21:38 VanessaE I think Exio is right about the way the tree is laid out, but otherwise it looks okay to me. 21:39 VanessaE (or github is just being obscure) 21:39 VanessaE we should have a mod called "imported" 21:39 VanessaE it should contain these things 21:39 VanessaE (in lieu of a mod called "minetest_game" I mean) 21:44 PilzAdam "external_legacy" would be nice 21:44 VanessaE yeah\ 21:44 VanessaE that might be best 21:44 Exio +1! :P 21:48 PilzAdam updated 21:48 PilzAdam hmmmm, what do you think? 21:49 hmmmm should definitely be more rare! 21:49 hmmmm what do you think about just one definition for gold, and use the 3d noise scattering? 21:50 PilzAdam umm... how does that work? 21:50 hmmmm you define a noise threshhold and a noiseparams 21:53 hmmmm i think a decent noise_params would be like {offset=0, scale=1, spread={x=100, y=100, z=100}, seed=46, octaves=2, persist=.60} and the noise_threshhold should be like 1.20 21:53 PilzAdam do I need clust_scarcity, clust_num_ores and clust_size? 21:53 hmmmm yep 21:53 hmmmm make the scarcity i'd say, hmm... 11*11*11? 21:53 hmmmm and perhaps clust_size=3, clust_num_ores=8 21:54 hmmmm test it above ground first 21:54 hmmmm (make height_max something like 100 and make wherein="air") 21:59 PilzAdam scale=1 and threshold 1.2? 21:59 hmmmm yes, that makes it quite rare 21:59 hmmmm but not impossible 21:59 hmmmm the maximum value of that is 1.6 22:00 PilzAdam I cant find any gold in the air with this... 22:00 hmmmm keep going around 22:04 PilzAdam it is definetly too rare 22:05 hmmmm hmm 22:05 PilzAdam I have set drawtype = "airlike" and light_source = 15 to see it underground 22:05 PilzAdam and I had to fly arround for 5 minutes to find 8 ores 22:05 hmmmm oh 22:05 hmmmm i guess try a threshhold of 0.9 22:06 proller maybe make something like farscale for ores? deeper -> more ? 22:06 proller smoothly 22:06 hmmmm yeah i was going to add that 22:06 hmmmm probably still should 22:06 proller and abs(height) for float lands and high mountains 22:08 PilzAdam hmmmm, now I found a bunch of 7 clusters or so after flying arround for 2 minutes 22:08 PilzAdam thats definetly not good 22:08 hmmmm heh uh 22:08 hmmmm 1.05? 22:09 hmmmm maybe i'll come up with the different values 22:09 PilzAdam they only appear in very small spots 22:09 hmmmm i'll experiment 22:13 PilzAdam this is how it looks like with 12, 10 and 48 (^3): http://www.zimg.eu/i/3497533792 22:14 hmmmm crazy 22:14 PilzAdam and maybe thats good 22:14 hmmmm that's gold!? 22:14 PilzAdam yep 22:15 hmmmm dunno, we'll try it out, i have a feeling it might need to be more rare though 22:15 PilzAdam tweaked the scarcity of the 3 register_ores() i have in the branch 22:15 PilzAdam "^ This value should be *MUCH* higher than your intuition might tell you!" (lua-api.txt) 22:16 PilzAdam I think we should make mese more rare 22:17 PilzAdam currently its 16, 9 and 16; maby make it 24, 12 and 48? 22:17 Exio nah 22:17 PilzAdam (everything ^3) 22:20 VanessaE one thing I'd like to see is where mese blocks currently spawn, perhaps they should only ever be one or two, and surrounded by the mese ore, as if the block formed a compressed "core" of mese. 22:21 VanessaE (also, I talk good english ;-) ) 22:54 hmmmm mmm that would be more difficult, vanessa 22:55 hmmmm i suppose it can be done, but meh 22:56 hmmmm pilzadam, you don't like typing out all those duplicate ores, right? what if i made a ramp for ore distribution and the user gets to choose how it's interpolated 22:56 hmmmm linear/quadratic/cubic/logarithmic 22:56 PilzAdam what? 22:57 hmmmm in other words, the deeper you get, the more ore there is 22:57 PilzAdam that would be nice 22:58 hmmmm but the ore will be able to increase in relation to the height different rates 22:58 hmmmm you could have it even, say, for every 2 blocks you go downward, the density will increase by 2 22:58 hmmmm or you could have it double every 2 blocks you go down 22:58 PilzAdam also use abs(height) (for prollers high mountains and floatlands) 22:58 hmmmm or any variation thereof 23:00 PilzAdam can you also create a minetest.registered_ores table with {[name]=ore_def,...}? 23:01 PilzAdam so mods can disable ore defs of other mods 23:02 hmmmm that's asking a bit too much 23:02 hmmmm there's no unique identifier for ores first off 23:04 PilzAdam well, maybe dont add it 23:23 VanessaE [03-24 19:19] technic includes unified_inventory is incompatible with creative is required by minetest 23:23 VanessaE this needs fixed. 23:23 VanessaE (creative being somehow "required") 23:35 khonkhortisan Deleting creative make the error message "ModError: Required common mods "creative" could not be found.", mkdir creative; cd creative; touch depends.txt; touch init.lua makes it stop complaining 23:35 VanessaE it must be because I run a custom "game" 23:35 VanessaE everything's in one folder (except that individual modpacks are still kept together) 23:46 RealBadAngel hmmmm, any examples how to use sheet type? 23:46 khonkhortisan RealBadAngel, did you make one of these yet? http://pastebin.com/3VcPWXK7