Minetest logo

IRC log for #minetest, 2016-08-06

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

All times shown according to UTC.

Time Nick Message
00:00 Jellonator joined #minetest
00:01 rubenwardy I'm excited to see how this turns out agrecascino, shamoanjac
00:01 rubenwardy When I started writing CTF I wanted to make a city vs city factions mod, where countries fight over territory etc
00:02 shamoanjac we'll do our best ;P
00:02 agrecascino rubenwardy, did you ever figure out the issues witht the firearms mod?
00:02 rubenwardy firearms suck
00:02 rubenwardy shooter is so much better
00:02 agrecascino it's completely broken at this point
00:02 rubenwardy !mod shooter
00:02 MinetestBot rubenwardy: Simple Shooter [shooter] by stu - https://forum.minetest.net/viewtopic.php?t=7846
00:03 agrecascino flans mod for minetest when?
00:03 rubenwardy flans?
00:04 rubenwardy isn't that a body part?
00:04 agrecascino http://flansmod.com/
00:04 rubenwardy I'm thinking of glans, nevermind
00:05 agrecascino lewd
00:05 shamoanjac my experience with everything fast in /Mine[a-z]+t/ is that the multiplayer experience gets... bad
00:06 agrecascino http://www.walkaboutcrafts.com/freegifts/alphabetimages/a.gif
00:06 agrecascino http://www.walkaboutcrafts.com/freegifts/alphabetimages/u.gif
00:06 agrecascino http://www.walkaboutcrafts.com/freegifts/alphabetimages/t.gif
00:06 shamoanjac :(
00:06 agrecascino http://www.walkaboutcrafts.com/freegifts/alphabetimages/i.gif
00:06 KaadmY sm?
00:06 agrecascino http://www.walkaboutcrafts.com/freegifts/alphabetimages/s.gif
00:06 KaadmY yep
00:07 agrecascino http://www.walkaboutcrafts.com/freegifts/alphabetimages/m.gif
00:07 shamoanjac a classic
00:12 agrecascino also
00:12 agrecascino i came up with another idea for clientside scripting
00:12 agrecascino have scripts on the clientside be distributed by the serve, and then have those scripts communicate to the server via WAMP
00:12 Void7 WAMP?
00:13 agrecascino newagey pub sub rpc protocol
00:13 agrecascino http://wamp-proto.org/
00:14 agrecascino basically, integrate a wamp client lib into minetest's lua implementation
00:14 agrecascino and have a router run on another thread
00:16 agrecascino i guess the best thing about it is that nothing would need to change, minus running scripts on the client
00:17 Nosrick Wouldn't that be open to abuse, potentially?
00:17 theTroy joined #minetest
00:18 agrecascino Nosrick, as in?
00:18 rubenwardy overkill
00:19 rubenwardy Don't see how that helps
00:19 rubenwardy to get scripts from server to client, you can just use the standard way to transfer media
00:20 agrecascino that's not what i meant
00:20 agrecascino i meant, for client-server communication, WAMP would be used
00:20 Hijiri Nosrick: yes, 50 armor means 50% damage
00:20 rubenwardy why can't you just use UDP packets?
00:20 rubenwardy TCP is not good for games
00:20 Nosrick Couldn't clients execute their own scripts, potentially allowing for unsolicited mods?
00:20 Nosrick Such as wall hacks, etc.
00:21 rubenwardy already possible, Nosrick
00:21 rubenwardy it's already possible to modify the client to walk through walls or fly
00:21 Nosrick Ah, fair enough.
00:22 agrecascino rubenwardy, you could possibly just add a UDP connector to autobahn
00:22 shamoanjac https://forum.minetest.net/viewtopic.php?f=9&t=15305
00:22 shamoanjac :D
00:23 T4im you example flags do look a lot better than what i was able to click together :D
00:24 shamoanjac yeah it was most likely confusing
00:24 shamoanjac now I've added a small color square
00:24 shamoanjac so that you can see which color you've chosen
00:25 T4im you did go very realistical with the patterns; have you considered doing it a bit more "artificial"? like allowing to put a cobble block on it? ;)
00:26 T4im something more minetesty
00:26 shamoanjac yes, I've considered it
00:26 shamoanjac it shouldn't be very hard to do
00:27 shamoanjac though, first, I'd need to find a way to display more flags
00:28 shamoanjac with navigation arrows
00:30 shamoanjac woah I've just seen my posts from 2013
00:30 shamoanjac I was like in 11th grade
00:30 shamoanjac dem memories
00:32 T4im heh
00:32 T4im hmm, maybe instead of sickle and hammer a minetest pickaxe and shovel? :D
00:33 * T4im still ponders what could be done with other political connotated symbols
00:34 shamoanjac the pickaxe and shovel could actually be great
00:36 T4im btw, how many content_id's are you registerin all together?
00:37 T4im ah wait, you use entities
00:37 T4im right
00:38 shamoanjac yeah, banners are pretty much signs
00:39 agrecascino T4im, i'm offended by that
00:40 T4im by what?
00:40 agrecascino you insulting my commie flag
00:41 T4im i did not :o
00:41 T4im I'm just trying to get the political symbols out, generally; it's just that that was the easiest to "minetest"-ize
00:41 T4im stylize to fit better into the game, without targeting any specific symbol
00:42 shamoanjac agrecascino, https://forum.minetest.net/viewtopic.php?f=9&t=14203
00:43 agrecascino ?
00:43 shamoanjac about political symbols, I personally do not wish to take them out, I like historical recreations. I encourage people who do not want them on their server to just disable them
00:43 shamoanjac didn't you want a flan agrecascino
00:44 agrecascino shamoanjac, i was talking about the modding api
00:44 shamoanjac oh
00:45 shamoanjac also check this out
00:45 shamoanjac https://forum.minetest.net/viewtopic.php?f=9&t=14494
00:45 shamoanjac people complained in the thread about a lack of underground diversity
00:49 agrecascino shamoanjac, this reminds me of the underground jungles in terraria
00:50 agrecascino IMO. terraria is a better "game", and minecraft is a better sandbox
00:50 shamoanjac never played terraria
01:03 nolsen left #minetest
01:18 DonBatman nm0i you there?
01:18 nm0i yup
01:19 DonBatman Didn't mean to upset you
01:19 DonBatman I was just wondering about the weather mod
01:20 nm0i DonBatman: it's just play with timers, that's all
01:20 nm0i DonBatman: http://me0w.net/pit/1470446418 de-git'ed weather (tar.gz)
01:20 DonBatman Thanks
01:23 nm0i transition&forecasts are done as separate mod and suck atm.
01:25 DonBatman fyi env: is depreciated
01:26 DonBatman set_sky is something that I need to do but haven't yet
01:27 DonBatman Been busy with another project
01:27 nm0i .env?
01:27 nm0i ah hm
01:27 DonBatman It use to be that you needed env: but not anymore
01:27 nm0i not sure how it got there
01:28 nm0i Or may be its old version
01:28 nm0i *old mod
01:39 DonBatman nm0i I noticed you are using my doors
01:39 DonBatman What do you think of them?
01:39 nm0i DonBatman: uh uh
01:41 DonBatman nm0i?
01:41 nm0i DonBatman: is_protected everything please
01:43 DonBatman Good point
01:43 DonBatman Anything else?
01:43 DonBatman The forum does not give much feedback
01:43 nm0i DonBatman: aside of darage-door-griefing problem I had before its ok. On previvous servers I just stole textures though.
01:44 DonBatman Never hear or that issue before
01:49 nm0i You can place garage door in protected areas, that's all.
01:51 torgdor joined #minetest
02:01 DonBatman I will go through it and see what needs protected
02:02 DonBatman I think the future doors need the same
02:04 hisforever joined #minetest
02:04 nm0i Japanese doors, and some others
02:06 hisforever nm0i, Did you search mods in google?
02:07 nm0i hisforever: eh?
02:07 nm0i Can you provide context for your question please.
02:08 hisforever search for door mod on hoogle
02:08 hisforever you asked for Japanese doore so I said search google for mod
02:09 nm0i Sorry, I don't see joins/parts/quits on freenode. I'm telling D*nBatman which of his doors have no is_protected in on_place
02:10 hisforever ok
02:10 nm0i There are japanese doors in xdecor
02:10 nm0i js
02:10 hisforever I know I have that mod
02:15 Tmanyo joined #minetest
02:21 TGminer joined #minetest
02:24 STHGOM joined #minetest
02:33 Yst joined #minetest
02:38 Jellonator joined #minetest
03:01 swift110-phone joined #minetest
03:41 XtremeHacker joined #minetest
03:41 TGminer joined #minetest
04:02 Miner_48er joined #minetest
04:15 swift110-phone joined #minetest
04:19 roboman2444 joined #minetest
05:02 lumidify joined #minetest
05:10 DMackey- joined #minetest
05:19 GunshipPenguin joined #minetest
06:21 Freejack joined #minetest
06:27 CWz joined #minetest
06:36 YannB64 joined #minetest
06:58 Krock joined #minetest
07:37 nm0i Soooo
07:37 nm0i SadieXXXX adapted
07:39 nm0i Now they are RandomnameXXXX
07:59 Volkj joined #minetest
08:04 Yst joined #minetest
08:10 hmmmm joined #minetest
08:18 Krock nm0i, they're evolving
08:19 Szkodnix joined #minetest
08:19 Volkj joined #minetest
08:43 YannB64 joined #minetest
08:52 Markow joined #minetest
08:56 shamoanjac who's that person?
09:09 Trustable joined #minetest
09:15 Telesight joined #minetest
09:49 Szkodnix joined #minetest
09:51 davisonio joined #minetest
09:57 YannB64 joined #minetest
09:57 SylvieLorxu joined #minetest
10:36 SylvieLorxu joined #minetest
10:36 dabbill joined #minetest
10:37 dabbill Hi, after the latest update i am getting this error Item "doors:door_wood_t_2" not defined
10:39 sonicpp joined #minetest
10:39 Fixer joined #minetest
10:40 Krock dabbill, what version did you have before?
10:43 dabbill Krock: pretty sure is was 0.4.12 but not 100% sure
10:44 dabbill Krock: might have been 0.4.13
10:49 Krock open minetest_game/mods/doors/init.lua and add ' minetest.register_alias("doors:door_wood_t_2", "doors:hidden") ' on the very bottom of the file
10:49 Krock I hope this works :3
10:49 Krock other doors might be affected by this too
10:50 dabbill hurm, ~/.minetest/mods/doors does not exist
10:51 dabbill wonder if the folder got deleted somehow
10:52 Krock egem
10:52 Krock it's the games/minetest_game/ directory
10:54 Krock either it's in ~/.minetest/games/ or the other directory path that I can't remember
10:54 dabbill all my mods are in ~/.minetest/mods
10:54 dabbill but no doors directory there
10:55 Krock I'm not talking about the mods in your /mods/ directory
10:55 Krock minetest_game is a subgame - a collectino of basic mods
10:55 Krock *collection
10:55 dabbill ah
10:56 Krock that's why you can use the doors, beds and creative stuff without having the mod in your mods directory
10:57 dabbill found it
10:57 dabbill /usr/share/minetest/games/minetest_game/mods/doors
10:57 Krock bingo
11:01 Tux[Qyou] joined #minetest
11:05 dabbill lol now i am getting Item "doors:door_wood_t_1" not defined and Item "doors:door_wood_b_1" not defined
11:05 dabbill guess i just need delete those items and recreate them
11:08 est31 joined #minetest
11:16 Krock ehm.. but that's an unfixed bug in the minetest_game code
11:16 dabbill i might of had a mod that defined those doors, and no longer have that mod
11:17 dabbill I havnt been on minetest in almost 6 months heh
11:17 Krock no, these are the default doors
11:17 dabbill ah
11:17 Krock but the API and the names of them changed
11:17 Krock (slightly)
11:17 dabbill ah
11:21 T4im joined #minetest
11:27 linus-mobile joined #minetest
11:27 Arcelmi joined #minetest
11:30 remi left #minetest
11:33 Arcelmi left #minetest
11:33 Arcelmi joined #minetest
11:37 davisonio joined #minetest
11:54 Volkj joined #minetest
12:18 Krock 42 processed meshes with two players.. that's kinda much IMO
12:18 Krock (peak value of the profiler)
12:18 AnotherBrick joined #minetest
12:22 davisonio joined #minetest
12:39 crazyMiner joined #minetest
12:40 basxto joined #minetest
12:40 Fixer Krock: probably liquid moving
12:41 Krock hmm.. there are no liquids around
12:41 Krock but bees! Maybe they're the reason for that
12:43 T4im aren't they particles?
12:45 T4im (which shouldn't be as much meshes as some complex meshnode)
12:46 T4im eh nvm, braincobble
12:53 Krock lol
12:54 rubenwardy joined #minetest
12:59 T4im hey ruben
12:59 rubenwardy hi T4im
12:59 T4im btw, i think you lost the linter-warning fixes on that rebase correction
13:03 rubenwardy ok, i see
13:03 rubenwardy btw, dump() is a valid global variable
13:03 rubenwardy mods/sfinv/api.lua:77:56: accessing undefined variable dump
13:03 T4im yea, that just didn't appear before
13:03 T4im the luacheckrc is filled on demand, not with everything possible
13:04 T4im but I'll add it to the pr
13:04 linushsao joined #minetest
13:06 rubenwardy T4im, https://github.com/minetest/minetest_game/pull/1179/commits/01fe3ccf0767aaf132ff33466139de7e726be0d5
13:07 rubenwardy lol, the capture the flag subgame has 169 warnings
13:08 aix how am i meant o use global exchange?
13:08 T4im wouldn't renaming the other variable be less invasive? "owner" as in inventory-owner or something?
13:08 T4im :D
13:08 aix i can't sell things if nobody has any money
13:08 T4im but this works, thanks
13:11 linushsao It's about who currency work,aix.
13:13 linushsao I have to think about this, wnr do some experience in my game server
13:14 linushsao At the same time to prevent inflation
13:17 rubenwardy T4im, turns out I didn't install the submodule correctly - only 103 warnings
13:17 rubenwardy and not all of them are my fault
13:18 T4im well, you'll need to adapt the luacheckrc to each project, copying alone isn't really a good idea imo
13:18 rubenwardy T4im, already found a bug: https://github.com/rubenwardy/ctf_pvp_engine/blob/ae9c820e03e0b89955ad0701149d374a2ef3f906/ctf/core.lua#L122
13:19 T4im hah
13:19 T4im that's a golden one
13:20 T4im but yea, at least for so typo introduced syntax errors it's really helpful
13:20 T4im such*
13:21 rubenwardy if this was C++, I would have got 10 pages of errors complaining about that typo
13:21 rubenwardy but because it's lua, it'll only crash if it runs it
13:24 rubenwardy found another bug: https://github.com/rubenwardy/ctf_pvp_engine/blob/master/ctf_chat/init.lua#L213
13:37 tpe joined #minetest
13:39 aix linushsao: what
13:41 DraggonFantasy joined #minetest
13:41 DraggonFantasy Hello
13:44 aix can someone explain how global_exchange works?
13:44 aix everyone's money balance is empty at first right
13:44 aix and if nobody has any money it's damn pointless
13:45 aix it looks like there's some sort of citizen's income though
13:45 Krock btw, aix, why "UNIX geeks"? I'm a windows geek
13:47 * shamoanjac icks
13:54 Markow joined #minetest
14:02 Fixer_ joined #minetest
14:15 SylvieLorxu joined #minetest
14:20 Krock2 joined #minetest
14:32 ElectronLibre Auth file corrupted on MFF's skyblock.. Too bad, he lost the monthly bonus on the server list
14:45 theTroy joined #minetest
14:46 Void7 joined #minetest
14:52 Volkj joined #minetest
14:56 davisonio joined #minetest
15:28 TGminer joined #minetest
15:29 shamoanjac joined #minetest
15:33 davisonio joined #minetest
15:41 Krock2 joined #minetest
15:45 Weedy joined #minetest
15:52 domtron joined #minetest
15:58 rubenwardy joined #minetest
16:02 davisonio joined #minetest
16:02 IhrFussel joined #minetest
16:03 IhrFussel My game server has constant lags (eg. 2-3 chat messages appearing after a few secs at the same time) but the CPU load is LESS than 20% O.O Also RAM usage is ~ 50% ... what is causing this?
16:04 T4im probably mapgen
16:04 T4im people mining in areas not generated yet, will cause mapgen to start up
16:05 T4im or explorers :)
16:05 IhrFussel T4im, can WorldEdit be a cause for that too?
16:05 T4im if you worldedit a lot at once, yes
16:05 IhrFussel T4im, and if i WE only a small area but a lot of them?
16:06 T4im well, only for the time that you are actually editing
16:06 T4im you have lag spikes or constant high lag?
16:06 T4im you could start up the ingame profiler and take a look if any mods stand out
16:07 T4im profiler.load = true
16:08 T4im and after a while you can check /profiler print in game
16:09 IhrFussel Judging by the chat log the game seems to lag 2-3 x per minute meaning chat messages appear suddenly at the same sec
16:10 IhrFussel I will try that thanks
16:11 IhrFussel I simply add "profilder.load = true" to minetest.conf?
16:11 IhrFussel profiler*
16:12 T4im yea, or in the advanced settings dialog
16:12 T4im ah wait, server, not settings dialog
16:12 T4im yes, minetest.conf then
16:13 IhrFussel T4im, will it slow the server down a lot?
16:13 T4im no, instrumentation overhead is pretty small
16:13 T4im only 3µs here
16:13 IhrFussel Okay just making sure, else I'd have to inform my players about that xP
16:16 T4im you'll need a semi-recent git build though, that profiler isn't in there for too long
16:17 T4im added 25days ago
16:18 KaadmY joined #minetest
16:19 Void7 minetest still crashes :(
16:22 Void7 ok, commented out draw_wielded_item and it works
16:24 whitephoenix joined #minetest
16:31 IhrFussel I can't use it then...my build is 0.4.13-dev from May
16:34 Void7 aaandd.. crashed again
16:41 hmmmm joined #minetest
16:42 IhrFussel Seems like I need to find out the bad mod without the help of the profiler, oh well
16:42 Krock joined #minetest
16:47 juhdanad joined #minetest
17:04 davisonio joined #minetest
17:05 Hinsbart joined #minetest
17:05 TGminer joined #minetest
17:08 TGminer joined #minetest
17:08 TGminer joined #minetest
17:21 IhrFussel joined #minetest
17:22 IhrFussel I just read in the forums that the amount of player files can cause laggy servers...is this still true?? I have over 19,000
17:24 Arcelmi joined #minetest
17:24 jin_xi joined #minetest
17:35 Fixer joined #minetest
17:41 Krock joined #minetest
17:41 Hijiri aix: yeah, the only source of inflation is the citizen's income
17:41 aix Hijiri: I don't seem to be getting anything
17:42 Hijiri It's every 20 minutes if I remember correctly
17:42 aix I read the code, but it doesn't give any cash
17:42 aix does it exempt people with particular privileges?
17:42 Hijiri what do you mean by cash?
17:42 Hijiri the credit?
17:43 aix yes
17:43 lumidify joined #minetest
17:44 Hijiri not sure what code you are looking at, but there's a give_credits at line 33 of init.lua
17:44 aix yeah
17:44 aix i see the line
17:45 aix don't appear to be getting anything though
17:45 Hijiri you're not getting the message?
17:45 Hijiri Or you don't see your balance increasing?
17:50 Hijiri you can shorten the income interval in your configuration file if you want to be able to test more quickly
17:50 Hijiri oh wait, no you can't
17:50 Hijiri you can shorten it in the code though
17:58 Void7 joined #minetest
17:59 Yst joined #minetest
18:01 DMackey- joined #minetest
18:06 TGminer joined #minetest
18:11 agrecascino joined #minetest
18:15 aix Hirato: alright, i'll test it
18:18 agrecascino shamoanjac, you there?
18:22 rubenwardy joined #minetest
18:24 abruanese joined #minetest
18:26 KaadmY does minetest support a joystick for looking around?
18:26 * KaadmY wonders if support for a seperate head angle and crosshair is possible
18:26 thePalindrome iirc you'd need something like joy2key
18:26 Krock ther's a joystick support, yes
18:26 * thePalindrome shouldn't be listened to at this time of day :P
18:27 * KaadmY smiles at the thought of looking around while digging
18:27 Krock that head stuff can be done (with some haxx) in Lua
18:27 Void7 joined #minetest
18:27 thePalindrome It'd be better to have that in the C side, mainly because it's graphical manipulation
18:27 KaadmY lua would be slow and server-side probably
18:28 thePalindrome lua is only server side right now
18:29 KaadmY <KaadmY> lua would be slow and server-side probably
18:29 KaadmY yeah that's what i said :P
18:30 thePalindrome not probably, for sure :P
18:30 shamoanjac agrecascino, I am here
18:30 LazyJ joined #minetest
18:32 Player_2 joined #minetest
18:37 agrecascino shamoanjac, want to work on the integration with me?
18:39 Fixer joined #minetest
18:46 comradmax joined #minetest
18:46 comradmax joined #minetest
18:51 davisonio joined #minetest
19:03 Fixer_ joined #minetest
19:06 shamoanjac yes agrecascino
19:08 agrecascino shamoanjac, alright
19:09 shamoanjac I have started writing a couple node definitions for the integration
19:09 shamoanjac namely a power banner
19:09 shamoanjac made of gold
19:09 shamoanjac and silver
19:10 agrecascino should i create a function for modifying power, or should you just directly modify the value?
19:10 shamoanjac expose me a comprehensible API
19:11 shamoanjac so that I can do stuff like
19:11 shamoanjac local faction = factions.get_player_faction("playername")
19:11 shamoanjac and then
19:11 shamoanjac faction:increase_power(value)
19:12 shamoanjac (with something like faction:player_has_privilege("player", "claiming")
19:14 agrecascino shamoanjac, factions aren't objects
19:14 shamoanjac uhm
19:14 agrecascino they're just structs, with no functions
19:14 shamoanjac it'd be great if you gave them a couple methods
19:15 agrecascino oh maybe just make a function like factionsmod.change_power(name,change)
19:15 shamoanjac that could work, too
19:15 shamoanjac not my favourite, but it'd work
19:16 agrecascino shamoanjac, yeah, the mod isn't very clean anyway
19:16 agrecascino i'll get to cleaning it up eventually
19:17 thePalindrome Oh?
19:17 Hijiri If you clean it later it will take more work than cleaning it now
19:17 Hijiri because you will be building more code that needs to be cleaned since you're building on a base that needs to be cleaned
19:18 thePalindrome ^
19:18 Hijiri agrecascino: method syntax blah:stuff(...) is just syntax sugar for blah.stuff(blah, ...)
19:19 Hijiri you can put the functions directly in the faction or use a metatable
19:19 Hijiri if you are using minetest.serialize on them you will probably want to go metatables so you don't try to serialize the functions
19:20 Hijiri If a table's metatable has an "__index" key with the value of another table, that table will be used to look up things not in the original table
19:20 agrecascino Hijiri, i'm not sure if i hate myself enough to clean this up\
19:20 Hijiri if you love yourself you should clean it up
19:20 Hijiri otherwise you will be working with an unclean API until you clean it
19:21 thePalindrome Which might break
19:21 thePalindrome *break other things
19:21 shamoanjac how many loc in your file agrecascino ?
19:21 agrecascino shamoanjac, 945 for the actual factions mod
19:21 agrecascino 500 for chat  commands
19:22 agrecascino last i checked
19:23 shamoanjac woah
19:24 Taoki joined #minetest
19:26 Krock joined #minetest
19:30 thePalindrome Is anybody here working on a mod that has a "network" in it? Along the lines of technic/ic2?
19:31 hmmmm joined #minetest
19:32 T4im if you have a clever solution to the issue behind them, let us know :P
19:32 thePalindrome ?
19:33 shamoanjac agrecascino, you didn't post the factions mod on the forum, did you?
19:33 T4im well the cable network in technic for example causes a lot of forceloading and iterating through the networks, which can be quite large on a multiplayer server
19:33 shamoanjac tfw no GitHub stars on my GitHub banners repo :(
19:34 shamoanjac I only code for social reputation
19:34 agrecascino shamoanjac, no, and i wouldn't, since it's such a smess
19:34 T4im lies there is a star
19:34 agrecascino mess*
19:34 shamoanjac agrecascino, fork'd
19:36 agaran T4im: heh..
19:36 T4im i just didn't star it yet, because i still had it open in a tab!
19:36 agrecascino shamoanjac, i added the function
19:37 thePalindrome Ah darn, I was wondering if anybody had any ideas :P I'm thinking there might need to be another hook in the engine
19:37 shamoanjac factionsmod.data.factionsmod[name]
19:38 shamoanjac I personally find this way of writing stuff inconvenient :P
19:38 T4im thePalindrome: yea networks are a conundrum in minetest
19:39 agrecascino well
19:39 Trustable joined #minetest
19:39 agrecascino it was factions.data.factions
19:39 agrecascino but since mobf would try to access factions
19:39 agrecascino i had to change the baseclass name
19:40 agrecascino and find and replace doesn't care about you feeling
19:40 agaran T4im: for my cabling I am trying to make it work mostly without querying map, but it is slooow work with that code.. I don't know lua really
19:40 agrecascino feelings*
19:40 T4im shamoanjac: rawget(_G["actionsmod"]["data"].factionsmod, name) is inconvenient :P
19:40 Krock2 joined #minetest
19:40 * T4im calms down again
19:40 shamoanjac lel
19:41 thePalindrome Yeah, I'm considering taking a look at buildcraft et al. to see if there are any algorithmic changes I can make
19:41 T4im agaran: the lua is not the issue, there are plenty lua-firm people that might have an interest in such a thing, it really just needs a clever solution
19:43 agaran T4im: I gather topology at node-placing time then during running of stuff it does not need map at all.. thats my goal at least
19:43 T4im yea, but then when someone digs a node in the mid of the network, you have to split that network and inform every consumer
19:43 agaran not a problem..
19:44 T4im and eventually merge networks in another situation
19:44 thePalindrome Heck, I wrote some code to re-arrange some blocks relative to their neighbors, but the detection can take quite some time
19:44 thePalindrome Also, the Windows timer is useless
19:44 agaran because if one -digs- node,  then given block is actually loaded..
19:44 thePalindrome It has a 10 millisecond precision!
19:44 agaran thePalindrome: who said that windows has anything accurate.. ?
19:44 thePalindrome touche
19:44 thePalindrome I pity my friend :P
19:44 T4im agaran: loaded yes, but you still have to update the datastructure representing the network without being able to iterate every node
19:44 * agaran is not a windows fan
19:45 agaran T4im: yep, true, modifications are done less often than actual operation so still even if on update you have to do forceloading/anyloading, still it is more efficient imo
19:45 Szkodnix joined #minetest
19:46 T4im well, technic already caches the network for example, the issue is when you start changing it, then the cache invalidates and it has to iterate through *everthing*, that's when things get laggy, and people build one node after the other, so that happens a lot
19:46 agaran T4im: yup, I solved so far that by if you remove node belonging to net-1, only net-1 need be rescanned
19:46 agaran not -whole- all world of nets
19:47 thePalindrome Aye, I profiled my code, and the network iteration is the most intensive
19:47 T4im yea, an improvement, not quite the solution i think could be possible with some really clever datastructures :D
19:48 Fixer_ joined #minetest
19:48 T4im might need going through some graph theoretical stuff to find something that might already be around :D
19:48 agaran I wanted to avoid caching whole topology..
19:49 agaran which could give one side benefit but I am not going to simulate whole kirchof's law and conductor current overload..
19:49 T4im but for example, when you merge two medium networks, agaran, don't you have to change the nodemetadata of all the networks nodes?
19:49 T4im that might for example be even worse than just iterating them :P
19:50 agaran hmm.. for one of them only, other is intact.. I know it is not perfect but I wanted to avoid making it complex
19:50 agaran I cache list of active pieces in net (not list of wiring) because thats only important part for run-net code
19:52 agaran but true, plan was to visit every node of one of two merged networks and update metadata for them
19:52 aix Hijiri: are you 100% sure that the income system works?
19:52 aix what did you test it on?
19:52 Hijiri I ran a server with global_exchange on it for a while
19:52 Hijiri not anymore though
19:52 T4im each time you change node metadata the entire block is resend to the client iirc
19:53 Hijiri maybe something changed since them, let me review the commit log
19:53 Hijiri I pulled some cosmetic changes from someone else
19:53 Hijiri hmm, maybe it's not creating an account for you?
19:54 Hijiri This is a recent version, right?
19:54 agaran T4im: oh, thats good to know, so it pays to postpone metadata update and do it in chunks..
19:54 Hijiri it was changed at some point to automatically make accounts, let me check to see if it should work
19:55 agaran T4im: I'll test that when I get working most of code..
19:55 agaran when you test at 127.0.0.1 timing for network is non-issue
19:56 Hijiri aix: If it's an old version it will require making an account at the ATM though
19:56 Hijiri I looked and there doesn't seem to be anything wrong, let me see if it works for me
19:56 aix Hijiri: it's the latest git
19:56 aix Hijiri: would a database from an old version cause citizens to not get paid?
19:57 Hijiri I don't think so, I didn't change the schema or anything between versions
19:57 Hijiri I'm getting paid
19:57 Hijiri so are you missing both the message and the balance increase?
19:57 Krock2 joined #minetest
19:58 Hijiri aix: did it work for you at some point in the past?
19:58 agaran T4im: hmm.. I wonder if reading metadata also causes reloads but I guess not so I can cache metadata updates just query/update module memory and on last step in batch updating metadata for nodes..
19:59 shamoanjac agrecascino, what is "reputation"?
19:59 aix Hijiri: I can't recall citizens ever getting paid
20:00 thePalindrome *gasp* That's slave labor!
20:01 agaran thePalindrome: Hmm?
20:01 Hijiri aix: just to be extra sure, the atm has no registration button, right?
20:01 shamoanjac lel @ the six levels of indentation
20:01 aix no button, nope
20:02 thePalindrome aix | Hijiri: I can't recall citizens ever getting paid
20:02 aix lol
20:02 agrecascino shamoanjac, a mechanic that isn't used
20:02 Hijiri aix: alright
20:03 Hijiri I can't tell what the issue is though, since it's working on my computer
20:05 aix what minetest version are you using?
20:05 Hijiri 0.4.14
20:05 Hijiri This was written for 0.4.13 originally though
20:06 Hijiri aix: can you change line 33 "local succ" to "local succ err", and then do print(succ, err) on line 35?
20:06 Hijiri then set the income interval to something low and see if it prints anything
20:07 Hijiri line 33 and 35 of init.lua
20:09 aix niltrue
20:09 aix i think thats bad right
20:09 aix wait
20:09 Hijiri nil true and not true nil?
20:09 aix it works
20:09 aix ...
20:10 Weedy joined #minetest
20:10 aix okay the only thing i changed is the map
20:10 shamoanjac agrecascino, I've written a factions "class" for easy API
20:10 shamoanjac with permissions/groups mechanism
20:10 shamoanjac http://pastebin.com/srisz0i1
20:10 shamoanjac tell me what you think
20:10 agrecascino fuckin' magic
20:11 Hijiri is the place it wasn't working originally a server?
20:11 shamoanjac ??
20:11 agrecascino shamoanjac, sensible
20:11 shamoanjac I'm not sure what you mean by that
20:11 Hijiri actually nevermind, you said that earlier
20:11 shamoanjac the goal is to get rid of the 4 levels of members you've created
20:11 shamoanjac and instead call stuff such as
20:12 shamoanjac factionsmod.get_faction("Normandy"):decrease_power(5.)
20:12 Hijiri if possible you should try to test on the same place it wasn't working, but that might be hard if your players expect not to have a sudden reset
20:12 Hijiri maybe you can clone the server and run it separately
20:12 agrecascino shamoanjac, i like it
20:12 Hijiri see what happens if you log in as an existing user or a new user
20:12 shamoanjac of course, admins would be allowed to create their own ranks
20:12 shamoanjac ok, I'll adapt the rest of the code
20:13 aix now it doesn't work again
20:13 aix which files does this read/write?
20:14 Hijiri worldpath/global_exchange.db
20:14 Hijiri I think that is the only one, other than script files
20:15 aix would settings in the bitchange file affect it?
20:15 Hijiri I don't think so, global_exchange doesn't do anything with bitchange
20:16 Krock I can confirm that bitchange does not support global_exchange itself
20:16 shamoanjac as a tip, agrecascino, instead of returning true/false on creation functions, return the object
20:16 shamoanjac or nil
20:17 shamoanjac so that you can still use the if syntax but also you don't have to call another method to get the object
20:17 Hijiri if only lua had references so you could do output arguments :P
20:18 Krock use tables for that
20:18 Krock they have a reference
20:18 Hijiri it's not pass-by-reference though
20:18 T4im it is
20:18 Hijiri it's not
20:18 shamoanjac it is
20:18 T4im tables, even functions are
20:18 Hijiri a pointer is a value
20:19 Hijiri not a reference
20:19 shamoanjac :^(
20:19 Hijiri I mean, it's not pass by reference
20:19 Hijiri you are passing a pointer by value
20:19 shamoanjac a reference is a pointer
20:19 shamoanjac just with some syntactic sugar
20:19 Hijiri pass-by-reference means the variable itself gets passed, not a pointer
20:19 Void7 when i rename a mod, the world complains that it can't find the mod with the old name
20:19 shamoanjac and a bit more rules
20:19 Void7 but i can't disable that mod
20:19 Void7 because it's not in the configure menu
20:19 Hijiri this is what pass by reference would do:
20:19 shamoanjac no, pass-by-reference means the variable doesn't get passed
20:20 shamoanjac but rather a reference to the variable (which is usually a pointer at the low-level)
20:20 T4im "Tables, functions, threads, and (full) userdata values are objects: variables do not actually contain these values, only references to them."
20:20 T4im for the full list of references objects
20:20 Hijiri "reference" as a value is different from "pass by reference"
20:20 T4im referencable*
20:20 Hijiri yes, tables and functions, threads etc. are references
20:20 Hijiri but they are not passed by reference
20:20 Krock referen cable
20:21 T4im the references to those values are passed
20:21 Hijiri yes references are passed
20:21 Hijiri but "pass by reference" doesn't just mean "pass a reference value"
20:21 shamoanjac is a copy of the object created in the scope of the function?
20:21 shamoanjac yes -> pass by value
20:21 shamoanjac no -> pass by reference
20:21 Hijiri It is a name for a particular way of passing arguments
20:21 agaran T4im: so wrapping common code in function and calling it when needed is faster way?
20:21 Hijiri shamoanjac: Then passing tables is of course not pass by reference
20:21 Hijiri because it copies the pointer
20:21 aix Hirato: alright, cloning the world
20:21 shamoanjac the pointer is the reference
20:21 Hijiri yes
20:21 Hijiri it's a value
20:22 Hijiri it is not the table itself
20:22 shamoanjac of course not
20:22 shamoanjac that's why it's passed by reference
20:22 Krock ##c++
20:22 Hijiri it is not passed by reference, because it already *is* the reference
20:22 shamoanjac I think you should try to do some C
20:22 Hijiri C doesn't have pass-by-reference
20:22 shamoanjac you'd understand better the concept
20:22 Hijiri You should do some C++
20:22 Hijiri The difference is obvious there
20:22 Krock there are only pointers in C
20:23 shamoanjac I have done a lot of C++
20:23 Krock and Lua is C
20:23 shamoanjac no, Lua is Lua
20:23 shamoanjac the common implementation of the interpreter might be in C
20:23 Krock no, it can't reproduce itself
20:23 agaran Krock: yet ;)
20:23 Hijiri shamoanjac: then you should be able to tell the difference between a pointer argument and a reference argument (semantically, not implementation-wise)
20:24 Krock agaran, that doesn't sound good :<
20:24 shamoanjac semantically, there are next to none in C++, beside the syntactic sugar and the fact that references cannot be NULL and are constants
20:24 agaran Krock: I mean, you can write lua interpreter in lua.. will be just slow..
20:24 Hijiri syntax sugar is just an implementation detail for references
20:24 Hijiri The point is that the thing assigned to the name you pass in is changed
20:25 Krock agaran, right. it could be done in Lua.. somehow
20:25 shamoanjac not necessarily
20:25 Hijiri the same way "let" can be implemented as syntax sugar for lambdas in scheme
20:25 agaran Krock: for sure 'slowly' ;)
20:25 Krock then let's run it with LuaJIT
20:25 T4im only for those mentioned objects, strings are interned and only a reference (which is the same over all same strings) is passed, floats are being copied, i.e. they are passed by value
20:26 Hijiri If lua's tables were passed by reference, it would look like this happens: http://lpaste.net/174725
20:26 Hijiri T4im: I didn't contradict that
20:26 Hijiri I am saying "passing a reference" is not "pass-by-reference"
20:27 T4im i do
20:27 shamoanjac what it prints depends on what "==" does in Lua
20:27 T4im this is the first time i see somoene calling passing values "pass by reference" and passing references "pass by value", it seems odd to me
20:27 Hijiri https://en.wikipedia.org/wiki/Evaluation_strategy#Call_by_reference
20:28 Hijiri "Call by reference can be simulated in languages that use call by value and don't exactly support call by reference, by making use of references "
20:28 shamoanjac so, Hijiri
20:28 Hijiri "It is not a separate evaluation strategy—the language calls by value—but sometimes it is referred to as call by address (also referred to as pass by address)."
20:28 shamoanjac do you think tables are copied?
20:28 shamoanjac they're not
20:28 Hijiri shamoanjac: No, but the table reference is copied
20:28 Hijiri I said this already
20:28 Krock tables asren't copied unless you use table.copy
20:28 shamoanjac well, that'it
20:28 T4im yes, the reference is copied, but not the table itself
20:28 shamoanjac then it's pass by reference
20:28 T4im ^^
20:28 Hijiri It's passing the reference by value
20:28 Hijiri please read wikipedia
20:29 T4im yes, but the table by reference
20:29 Hijiri tables aren't values in lua
20:29 Hijiri it is meaningless to say that the table is passed at all
20:29 Hijiri only table references are values in lua
20:29 shamoanjac Hijiri, this stuff is programming languages theory 101
20:30 Hijiri shamoanjac: I guess you would fail it then
20:30 shamoanjac learned it in first year, then formally in second year
20:30 shamoanjac not at all
20:30 Hijiri Are you saying those wikipedia editors failed it?
20:30 shamoanjac the wikipedia editors agree with me
20:30 Hijiri "It is not a separate evaluation strategy—the language calls by value—but sometimes it is referred to as call by address (also referred to as pass by address)."
20:30 shamoanjac you're talking about the implementation
20:31 T4im wikipedia says "Tables are always passed by reference (See Call by sharing):"
20:31 Hijiri I'm talking about language semantics
20:31 T4im i think they are right
20:31 thePalindrome Yeah, they are
20:31 shamoanjac 3>a function receives an implicit reference to a variable used as argument, rather than a copy of its value
20:31 Hijiri T4im: on the evaluation strategy page?
20:31 thePalindrome That one bit me
20:31 T4im no, from the lua page
20:31 shamoanjac which is exactly what happens with tables
20:31 T4im :P
20:31 Hijiri shamoanjac: Tables aren't an implicit reference
20:31 shamoanjac of course, when you go at the lowest level, references don't exist
20:31 Hijiri They're an explicit reference
20:31 thePalindrome Okay, now we're nitpicking :P
20:31 Hijiri shamoanjac: I'm talking about on the language level
20:31 T4im pass by electrons!
20:31 thePalindrome tl;dr everything except tables are passed by value
20:31 Hijiri "reference to a table" is part of the language, not an implementation
20:32 * thePalindrome absconds
20:32 shamoanjac on the language level, by all means and definitions, tables are not passed by value
20:32 Hijiri Because otherwise, table variable copies wouldn't point to the same table
20:32 agaran T4im: well electrons are already reused;)
20:32 shamoanjac note that when you quote what you quoted
20:32 Hijiri shamoanjac: If by "table", you mean "reference to a table", then it is passed by value. If you mean "the thing holding the values itself", then that is not a lua value
20:32 aix Hijiri: it only works if i leave the print line
20:33 shamoanjac they clearly say
20:33 Hijiri aix: that is strange
20:33 shamoanjac 3>Languages such as C and ML use this technique [of simulating call by reference]. It is not a separate evaluation strategy [...]
20:33 Hijiri It is not an implementation detail to make this distinction, it is important to the language semantics
20:33 Hijiri yes, of simulating
20:33 Hijiri The language itself doesn't pass by reference
20:33 shamoanjac god
20:33 shamoanjac when you do a function call
20:34 shamoanjac foo(table)
20:34 Hijiri It's a workaround to get behavior similar to call-by-reference
20:34 shamoanjac what you mean, as a programmer, is that you pass "table" to foo()
20:34 shamoanjac of course you know it's actually a reference
20:34 shamoanjac but that's not how you read it
20:34 Hijiri this isn't about intuitions
20:34 Hijiri It's about language semantics
20:34 shamoanjac it's not intuitions
20:34 T4im the call by reference page seems to be correct too, when you do local sometable = {}, table.insert(sometable, "asd") the function will reiceive "an implicit reference to a variable used as argument, rather than a copy of its value.", it does not get a copy of that table, just an implicit reference to it
20:34 shamoanjac it's formal mathematics
20:35 Hijiri T4im: That's not an implicit reference
20:35 Hijiri it's an explicit reference
20:35 Hijiri That's part of the language semantics, and is required to have two things refer to "the same table"
20:35 agrecascino joined #minetest
20:35 Hijiri shamoanjac: it's formal mathematics if the language is specified formally
20:35 Hijiri I don't think Lua is, it just has a reference (ha ha) implementation
20:36 shamoanjac the reference is already a mathematic model
20:36 shamoanjac which is formal
20:36 Hijiri it's not
20:36 T4im wouldn't an explicit reference be if i gave it the address in memory?
20:36 aix okay now it doesn't work at all
20:36 Hijiri It doesn't have to be an address, it just has to semantically be a reference
20:36 shamoanjac of course it is, even a custom brainfuck interpreter would constitute a formal mathematic model
20:36 Hijiri shamoanjac: It can't unless the implementation language itself is specified formally
20:37 T4im either way, explicit or implicit doesn't make a difference that it's the reference, not the value that is passed
20:37 shamoanjac programming it is a way of specifying it formally
20:37 shamoanjac that it's readable or not is another thing
20:37 Hijiri T4im: You were just saying that the reason it is correct is because it is implicit
20:37 Hijiri That is what the call by reference page is saying, either way
20:37 T4im then strike the implicit, it was the least important part of that :p
20:38 Hijiri It is the most important part of that
20:38 T4im still not sure it's not implicit, but it doesn't matter
20:38 Hijiri it's what distinguishes it from passing pointers
20:38 Hijiri (or less dangerous pointers like table references)
20:38 Hijiri This is the behavior you would get if tables were passed by reference: http://lpaste.net/174725
20:38 T4im yea, but both is still passing by reference
20:39 Hijiri The function can modify the *variable*, not only the thing the pointer in the variable is pointing to
20:39 shamoanjac no
20:39 shamoanjac the function cannot modify the reference you give it with respect to the higher function scope
20:40 Hijiri It could if it was pass-by-reference
20:40 shamoanjac no, it couldn't
20:40 shamoanjac Java has pass-by-reference, you can't
20:40 shamoanjac C++ has pass-by-reference, you can't
20:40 Hijiri Java doesn't, that's a common misunderstanding
20:40 Hijiri you can do it in C++ though
20:40 shamoanjac how?
20:41 shamoanjac afaik foo(int& ref) cannot modify the reference
20:41 Hijiri you can have void swap(int &a, int &b) { int temp = a; a = b; b = temp; }
20:41 agrecascino java has pass-by-and-dont-use-this-language
20:41 Hijiri Maybe I am misunderstanding what you are saying
20:41 shamoanjac that switches the values
20:41 shamoanjac not the references
20:41 shamoanjac the references cannot be altered within a function
20:41 Hijiri Ok, I did misunderstand what you said, then
20:42 shamoanjac sounds like it yes
20:42 way joined #minetest
20:42 Hijiri But if you have int c = 1, int d = 2, you can call swap(c, d) and have c = 2, d = 1
20:42 Hijiri Do you agree with that, at least?
20:44 shamoanjac yes
20:45 shamoanjac that modifies the values, though
20:45 Hijiri Ok
20:45 edaq joined #minetest
20:45 Hijiri And suppose Lua passed tables by reference
20:46 agaran Hijiri: but for C you would pass c/d as &c and &d I think..
20:46 shamoanjac yes
20:46 Hijiri agaran: That wouldn't be pass by reference
20:46 T4im "the terminology is inconsistent across different sources." now, that seems to be someone i start to feel comfortable getting behind
20:46 Hijiri that would be passing the pointers by value
20:46 T4im something*
20:46 shamoanjac and the prototype would be swap(int* a, int* b);
20:47 agaran yep,
20:47 Hijiri shamoanjac: and those would be explicit references, not implicit ones
20:47 shamoanjac passing pointers by value is the same as passing objects by reference
20:47 Hijiri semantically it's not
20:47 shamoanjac it depends on whether you consider the arguments to be pointers or objects
20:48 shamoanjac or references or objects
20:48 Hijiri informally, the semantics of a referenced-passed argument should be "like" the variable passed into the functionn
20:49 Hijiri Suppose Lua passed tables by reference, and you had a similar swap function. If you had a = { "john" } and b = { "bob" }, swap(a, b) would leave you with a = { "bob" } and b = { "john" }
20:49 Hijiri With swap having a similar body to the C++ version
20:49 Nosrick How would I go about boosting the player's damage?
20:49 Hijiri Without having to wrap a and b in yet another table to do the swapping, of course
20:50 Hijiri Nosrick: across everything?
20:50 Nosrick Yeah.
20:50 shamoanjac depends on how swap is implemented
20:50 Hijiri Against players: Use custom damage calculations in register_on_punchplayer, Against entities: Make a damage frameworks that mobs hook into
20:50 Hijiri shamoanjac: I said that the body of the function would be similar to the C++ one
20:50 Hijiri so function swap(a, b) temp = a, a = b, b = a end
20:50 shamoanjac so, using the '=' operator?
20:50 Hijiri yes
20:51 shamoanjac then the references would change *in* the function
20:51 Hijiri Nosrick: There is nothing in the base API for boosting damage
20:51 shamoanjac not out of it
20:51 Nosrick Ah, damn.
20:51 Hijiri shamoanjac: yes, because Lua does not have call by reference
20:51 Hijiri that is my point
20:51 shamoanjac if you go by that, no language ever has call by reference
20:51 Hijiri C++ does
20:52 T4im the use is inconsistent, so calm down :P
20:52 shamoanjac if you have an std::vector, the same happens
20:52 Hijiri If the use is inconsistent, we can argue which definition is the most useful
20:52 T4im people mean different things when saying pass-by-value/reference
20:52 T4im depending where they come from
20:52 Hijiri shamoanjac: I omitted the & in Lua, because it doesn't have anything to mark an argument as a reference
20:52 shamoanjac well not because references are immutable
20:52 T4im had to check up on that claim, but it indeed seems to be just inconsistently used
20:52 Hijiri In C++ you would still have it
20:53 Yst joined #minetest
20:53 Hijiri T4im: It's more useful to use "pass-by-reference" in the sense I am using, because otherwise there isn't another way to call that evaluation strategy
20:53 Hijiri passing pointers already can be called passing pointers by value
20:55 Hijiri shamoanjac: do you mean if I had void swap(std::vector<blah> &a, std::vector<blah> &b) { /* swappy stuff like I did with ints */ }
20:55 Hijiri then have a = some first vector, b = some second vector, swap(a,b), then it wouldn't turn out as b = some first vector, a = some second vector?
21:00 Hijiri T4im: the "inconsistent across different sources" is for Call by Sharing, not call by reference
21:01 Hijiri The Lua page links to Call by Sharing, which says "The semantics of call by sharing differ from call by reference in that assignments to function arguments within the function aren't visible to the caller"
21:01 shamoanjac yes that's what I mean if I understand correctly
21:02 Nosrick I am not sure how to go about creating a framework for boosting damage.
21:02 Hijiri Nosrick: You can recreate the default damage mechanics, but add in a damage multiplier
21:02 Hijiri you could use a monoid as an API for the damage multiplier
21:02 T4im Hijiri: i think the confusion extends way behind that
21:03 shamoanjac agrecascino, do you remember your 6-levels-of-indent function to check whether a player can build or not?
21:03 shamoanjac look at this
21:03 Hijiri T4im: rereading, I guess so, since some of the inconsistency it mentions is calling "call by sharing" "call by reference"
21:03 shamoanjac http://pastebin.com/8vdnDU5w
21:03 agrecascino remove pos.y >
21:03 Nosrick Hijiri: Would I look for the code for that in minetest or minetest_game?
21:03 T4im i guess in the end it's much more important, that we know what happens, even if everyone calls it differently x)
21:03 shamoanjac no vertical limitation for claiming?
21:03 agrecascino yes
21:04 shamoanjac ok
21:04 agrecascino imagine someone goin 512 up
21:04 Hijiri Nosrick: It's either in builtin or in the engine, I think
21:04 Hijiri so in minetest
21:04 agrecascino and building a bae above theirs
21:04 Laster joined #minetest
21:04 agrecascino just to jump into their base
21:06 shamoanjac I'd assume they'd die upon falling
21:06 shamoanjac you can use whatever you want as a table key in Lua, right?
21:06 T4im i think nil doesn't work
21:06 T4im as key :)
21:06 shamoanjac I'm not foolish enough to do table[nil]
21:07 T4im heh
21:07 shamoanjac imagine I'd open an interdimensional portal or something
21:07 T4im but yes, you can use other tables or even functions as keys
21:07 shamoanjac that's cool
21:07 Nosrick I'm not even sure where to begin with this...
21:10 agrecascino shamoanjac, pouring water from the base above?
21:12 shamoanjac ah yeah
21:13 Fixer_ joined #minetest
21:15 shamoanjac factionsmod.takeover() changes the faction's owner, right?
21:15 agrecascino does that function exist?
21:15 agrecascino i didn't implement that feature yet
21:15 shamoanjac yes
21:15 agrecascino oh wait
21:15 agrecascino no
21:15 agrecascino takeover takes a cynk
21:15 shamoanjac just below the member_add documenation lel
21:15 agrecascino chunk*
21:15 theTroy joined #minetest
21:16 agrecascino takeover takes a a single chunk claim, and claims it for your faction
21:16 agrecascino taking the land over
21:16 shamoanjac okay
21:16 agrecascino that _IS_ implemented
21:17 Nosrick How would I write a function to intercept/hook into the vanilla on_punch method?
21:20 shamoanjac the vanilla function is minetest.on_punch, I believe
21:20 shamoanjac you could do
21:21 shamoanjac on_punch = function(whatever)
21:21 shamoanjac my_function()
21:21 shamoanjac minetest.on_punch(whatever)
21:21 shamoanjac end
21:21 shamoanjac I think
21:21 PilzAdam joined #minetest
21:21 Nosrick Ah, thank you!
21:22 Nosrick Hey PilzAdam!
21:22 shamoanjac does Lua shit itself if I do table.remove(myTable, value) and value isn't in table?
21:22 shamoanjac or can I call it safely without checks?
21:22 Hijiri I don't see any minetest.on_punch (or core.on_punch)
21:23 Hijiri with grep
21:23 T4im table.remove doesn't take a value there, but a position
21:23 T4im it's just for lists
21:23 Volkj joined #minetest
21:23 shamoanjac ah right
21:23 T4im you want to set a value to nil
21:23 T4im eh an entry
21:24 * T4im will avoid the term value all day
21:24 T4im :D
21:24 Nosrick Damn, so I can't override any on_punch stuff?
21:24 T4im hm?
21:24 shamoanjac so, if I have a list, I have to first check the position of the element in the list, and then call table.remove()?
21:24 agaran Nosrick: well I am sure you can
21:24 shamoanjac you can override, that's for sure
21:25 Nosrick How would I do that?
21:25 shamoanjac just set on_punch = function [...] in your entity/node definition
21:25 agaran Nosrick: fetch like dirt node (default:dirt), get registered_nodes['default:dirt'].on_punch, save in var inside your module.. use as generic on punch?
21:25 shamoanjac I thought you wanted to extend the existing on_punch
21:25 agaran that is if you want to run default one aside of your code
21:25 Nosrick No, I think I need to replace the original.
21:26 shamoanjac if you want to replace it completely, you're fine with just setting on_punch
21:26 shamoanjac and then writing the function you want
21:26 Nosrick So how would I make the player take less damage from certain enemies? Override their on_punch?
21:27 T4im you can call the default with minetest.nodedef_default.on_punch for example, which usually should be minetest..node_punch, well at least for nodes; what are you punching ?
21:27 T4im ah entities
21:28 agaran T4im: another thing I did not know about, minetest.nodedef_default  :)
21:28 Void7 joined #minetest
21:28 T4im there's also such a table for other types of definitions
21:30 agaran somehow I feel that when I eventually publish my cables code I'll get a lot of comments that I did it wrong...
21:30 * T4im wonders if there is even a default on_punch for entities
21:30 Hijiri It might be worth having a separate damage framework that mobs can hook into
21:30 Nosrick Should I perhaps hook into on_hpchange?
21:30 Hijiri since entities in general are not mobs
21:30 shamoanjac I wouldn't go to on_hpchange
21:30 Hijiri on_hpchange doesn't tell you what caused the damage, like poison
21:31 shamoanjac since I assume that callback is called after dealing damage
21:31 Nosrick Ah, it's just the raw damage.
21:31 shamoanjac also that
21:31 Hijiri only problem is people would have to actually use the framework
21:32 Nosrick I've never written a framework before.
21:32 Hijiri shamoanjac: Here's some code that contradicts what you said (if I communicated what I meant to say well earlier): http://lpaste.net/174730
21:32 Nosrick So that'd be a challenge.
21:32 Hijiri I have to eat but I'll be back in a bit
21:33 Hijiri Nosrick: It helps to come up with the API before writing the code
21:33 Hijiri it can be comfy, sort of like theorycrafting
21:33 shamoanjac use pen and paper
21:33 Nosrick I'm terrible at theorycrafting.
21:34 Hijiri I need to eat but I'll be back
21:34 Nosrick See you in a bit.
21:35 agrecascino can minetest decode videos?
21:36 Calinou agrecascino: no
21:36 agrecascino that's disappointing
21:36 agrecascino i'd like to see https://a.pomf.cat/cwvxhp.webm play when you turn on a computer in-game
21:37 shamoanjac 9>anime background
21:37 shamoanjac 9>anime intro song
21:37 Nosrick >this does greentext
21:37 shamoanjac but yeah I'd like to see it
21:37 Nosrick Hoooo dayyum
21:37 shamoanjac hehe Nosrick I have the sikrit power
21:38 T4im you can do animated textures though
21:38 agrecascino and stream music separately?
21:38 Calinou music streaming is not possible
21:38 shamoanjac you can play an ogg
21:38 agrecascino shamoanjac, good enough
21:38 agrecascino also
21:38 agrecascino sauce was https://www.youtube.com/watch?v=aI0KmPebU2g
21:38 shamoanjac pls add weeb computer
21:40 shamoanjac agrecascino, what is "get_factionsmod(object)"?
21:40 agaran I am glad it can't open stream as texture/sound.. it would require lot more bandwidth to play then..
21:40 shamoanjac only if you download it on the fly
21:40 Nosrick I'm looking at the punch method in ObjectRef. Is there a way to globally override that?
21:41 agrecascino shamoanjac, gets a list of factions a player is in
21:41 shamoanjac a Quake-like system for mods would be goat
21:41 agaran shamoanjac: or you would need nearly infinite cache.. you know how it ends.. ppl start to stream things off youtube.. etc
21:41 shamoanjac so a player can be in several factions?
21:41 shamoanjac okay
21:41 agrecascino shamoanjac, no
21:41 agrecascino shamoanjac, nononononono
21:42 shamoanjac ?
21:42 agrecascino it used to be that way, but i changed it
21:42 agrecascino since that makes no sense
21:42 shamoanjac I'm quite confused by the function
21:42 shamoanjac it's a get_*, yet it calls table.insert()
21:42 shamoanjac oh right
21:43 shamoanjac it builds a table
21:43 shamoanjac a table of... objects?
21:43 shamoanjac what kind of objects?
21:45 shamoanjac btw factionsmod.lua now has 419 loc
21:45 shamoanjac and will get less when I rewrite save() and load()
21:45 shamoanjac a lot saner! :^)
21:45 agrecascino shamoanjac, is factionsmod.lua done yet?
21:45 agrecascino shamoanjac, oh shit
21:45 agrecascino we have to make a converter, for the old factionsmod.conf
21:46 shamoanjac I have also removed without looking at them all the reputation stuff
21:46 agrecascino shamoanjac, good
21:47 agrecascino also
21:47 agrecascino might do an ally system
21:47 shamoanjac yes
21:47 shamoanjac fields allies and enemies in factions
21:47 agrecascino i was thinking you could ally whole factions
21:47 shamoanjac allies["faction"] = true
21:48 shamoanjac allies["faction"] = nil
21:48 agrecascino yeah
21:48 shamoanjac same for enemies
21:48 shamoanjac it's also the system I've used for invites
21:50 xunto joined #minetest
21:52 SylvieLorxu joined #minetest
21:55 agrecascino agrecascino, how are we going to convert factionsmod.conf to the new and improved factionsmod.conf
21:56 shamoanjac I suppose you meant to highlight me
21:56 shamoanjac first of all we don't call it .conf
21:56 shamoanjac secondly, I guess a Lua function would do the trick
21:57 shamoanjac though I'd rather scrap the old way
21:57 agrecascino shamoanjac, i mean, like a function to take the old conf
21:57 agrecascino and write the new one
21:58 shamoanjac yeah I understood
21:58 shamoanjac I personally wouldn't bother with it since nobody is using the mod atm
21:58 jojoa1997 joined #minetest
21:58 shamoanjac and the only faction created on the server is Finland with three people
22:00 agrecascino what
22:01 agrecascino shamoanjac, you're sort of wrong
22:01 agrecascino actually
22:02 Laster joined #minetest
22:02 agrecascino let me rephrase that to describe the extent to which you are wrong
22:02 agrecascino "what"
22:02 Laster Hi everyone
22:03 shamoanjac hi Laster
22:03 Laster I'm writing an article on wikipedia about minetest
22:03 agrecascino https://pastebin.com/yBg1CuaZ
22:03 agrecascino shamoanjac, there's a lot of people using it
22:03 shamoanjac alright
22:03 Laster so i am looking for some sources, for example about the history and popularity of minetest
22:03 shamoanjac well we'll write one
22:04 shamoanjac 3>xXWeedGoku420Xx
22:04 shamoanjac pls ban
22:04 agrecascino it's popular with /v/irgins
22:04 agrecascino and people that have way to much time on their hands
22:04 Laster Maybe somebody does know some sources?
22:05 shamoanjac I suppose minetest.net is a good way to start :P
22:05 Nosrick GUYS
22:05 Nosrick I THINK I GOT IT
22:05 agrecascino ?
22:05 agrecascino what
22:05 Void7 joined #minetest
22:05 Nosrick Wait... it might not work on entities.
22:05 Nosrick I overrode core.nodedef_default.on_punch
22:06 agrecascino erm
22:06 agrecascino couldn't you just register a callback
22:06 Tmanyo joined #minetest
22:06 domtron joined #minetest
22:06 Nosrick Can I register my own custom callbacks?
22:06 shamoanjac of course
22:06 Laster @shamoanjac are you sure there is some historical information one minetest.net?
22:07 agrecascino use magic and archive.org
22:07 Nosrick So, will that allow me to override what happens when someone gets punched?
22:07 agrecascino yes
22:07 shamoanjac but only for the entity whose callback you are setting
22:08 Nosrick Damn it.
22:08 shamoanjac agrecascino,
22:08 shamoanjac factionsmod.dbg_lvl3 = function() end
22:09 shamoanjac ¿¿¿
22:11 shamoanjac btw, I'm not sure what the "dynamic data" was supposed to be
22:11 shamoanjac I've restructured the mod to use three tables
22:12 Nosrick Looks like there's a register_on_punchplayer.
22:12 shamoanjac a players table (factions.players[player] = "factionname")
22:12 shamoanjac a chunks table (same as above)
22:12 shamoanjac and a factions table (factionsmod.factions["faction_name"] = faction)
22:12 shamoanjac I think these three ought to be saved
22:13 shamoanjac well, the players function can be reconstructed easily
22:13 shamoanjac s/function/table
22:13 shamoanjac and now that I think about it, the chunks table too
22:13 shamoanjac so I guess it'd be enough with saving factionsmod.factions
22:24 shamoanjac ok I think I'm done rewriting factionsmod.lua
22:26 shamoanjac from 940 loc to 320
22:27 Hijiri backj
22:28 edaq joined #minetest
22:29 agrecascino shamoanjac, i feel like every time i write something, someone rewrites it better
22:29 agrecascino to be fair, this was mostly sapier's code though
22:30 shamoanjac someone could come and rewrite my code even better
22:31 shamoanjac especially for the banners mod
22:31 * shamoanjac has an ick at the thought of his init.lua
22:31 * agrecascino becomes an hero thinking about his game engine
22:33 shamoanjac lel
22:34 agrecascino https://youtu.be/VdiAUSbOR1g
22:34 agrecascino oops
22:35 agrecascino meant https://youtu.be/VdiAUSbOR1g?t=7m29s
22:36 LazyJ joined #minetest
22:36 misprint joined #minetest
22:38 Nosrick Looks like I'm just going to have to write my own damn framework.
22:38 agrecascino Nosrick, why
22:39 Nosrick So I can have various damage types, as well as damage boosts.
22:40 agrecascino Nosrick, pretty much anything damage related in minetest is completely fucked
22:40 Nosrick Yeah, so I've seen.
22:43 Hijiri Nosrick: a damage type framework exists in armor_monoid
22:43 Hijiri no damage boosts though
22:43 Nosrick Ah, I need damage boosts.
22:44 Hijiri Also you should be aware that if you use register_on_punchplayer and cancel normal damage things, I think that also cancels other puncplayer callbacks
22:44 Hijiri so you may want to provide your own global callback registrations for the new damage system
22:44 Nosrick Yeah, it also doesn't work on entities/mobs.
22:44 Nosrick Only on players, as far as I can tell.
22:44 Hijiri people would have to write their mobs to use the damage framework
22:44 Hijiri and you would have to write it in a way that it's easy to hook into
22:45 Nosrick I'm going to write my own on_punch method, that can be hooked in to.
22:45 Hijiri method for what?
22:45 Nosrick To handle damage and such.
22:45 Hijiri method as in something you call with blah:method()?
22:46 Nosrick Yeah.
22:46 Hijiri what is the blah?
22:46 Nosrick momtest.
22:46 Hijiri why do you need a method for that, as opposed to just a function?
22:46 Nosrick Eh, guess I could do that.
22:47 Hijiri : is just syntax sugar for call using normal indexing, I think it just wastes arguments
22:47 Hijiri it also makes it harder to do local blah = momtest.blah
22:47 Nosrick Ah, I see.
22:47 Nosrick Wait.
22:48 Nosrick I might be using a global function table.
22:48 Hijiri Nosrick: You shouldn't just have a global momtest.on_punch that people overwrite, because then people have to do the boilerplate of local old_on_punch = momtest.on_punch, momtest.on_punch = ...
22:48 Nosrick I think I am.
22:48 Nosrick Ah, shit.
22:48 Hijiri you can eliminate the boilerplate by providing something similar to the current on_punchplayer callbacks
22:48 Hijiri just using your damage system
22:49 Hijiri it could support both entities and players, though
22:49 Nosrick So how would I write a callback?
22:49 Hijiri momtest.on_punch_callbacks = {}, function momtest.register_on_punch(func) ... end
22:50 agrecascino what should the hostname for my sparc64 machine be
22:50 Hijiri momtest.on_punch_callbacks = {}, function momtest.register_on_punch(func) table.insert(momtest.on_punch_callbacks, func) end
22:50 Hijiri and then in your punching function you call all the callbacks like you would have called on_punch
22:50 Hijiri the main problem I think is getting other people to adopt your framework
22:51 Hijiri if you don't need that then you can write custom code without a framework
22:51 Nosrick I'm not too fussed about it, to be honest.
22:51 Nosrick I mostly want it to work with my mod(s)
22:51 Hijiri alright
22:51 Hijiri but for it to work with mobs they will need to be modified to use it
22:51 Hijiri or you can write your own mobs
22:52 Hijiri there's no override_entity but you can modify the definition in the minetest.registered_entities table
22:52 Nosrick Beat me to it :)
22:52 Nosrick That's exactly what I was going to do.
22:52 Hijiri ok, good luck
22:53 agrecascino shamoanjac, what should the hostname for my sparc64 machine be
22:53 Hijiri Nosrick: though if you are using multiple mods you will probably want a nice API for yourself anyway
22:53 Nosrick Yeah, I think I will.
22:53 shamoanjac uhm
22:53 Hijiri just not focused on compatibility
22:54 shamoanjac intels-nightmare
22:55 thePalindrome Passion maybe?
22:56 * thePalindrome continues making really bad puns
22:56 Calinou fluttershy
22:57 Calinou because every decent developer gives pony names to their machines, that's known
22:57 Nosrick Decent pone
22:57 Nosrick At least not worst pone
22:57 agrecascino where <username> is an        â”‚
22:57 agrecascino │ username, like 'imurdock' or 'rms'
22:57 agrecascino rip imurdock
22:57 thePalindrome Hey
22:57 thePalindrome I resent that statement
22:58 thePalindrome I'd have to count again, but I think I have some 7 pony machines
22:58 Calinou :]
22:58 thePalindrome Okay 8
22:58 * thePalindrome can count
22:58 Calinou unlike PHP developers!
22:58 Yst joined #minetest
22:59 thePalindrome No wait 10
22:59 * thePalindrome is proud as he digs a deeper hole
22:59 Calinou Minetest runs so much smoother on Linux than on Windows :|
22:59 Calinou with the same hardware
23:00 shamoanjac agrecascino, what's the "leave" function supposed to do?
23:00 shamoanjac I see it can take several arguments
23:00 agrecascino ?
23:00 Fixer_ Calinou: better threading? videocard drivers?
23:00 agrecascino give me the entire definition?
23:00 Calinou Fixer_: drivers are the same (NVIDIA proprietary)
23:00 shamoanjac apparently I can do
23:00 thePalindrome Calinou: Well duh, Windows does everything worse
23:00 Nosrick Calinou: where do I know you from?
23:00 Calinou other games on Windows give me same performance
23:00 shamoanjac /functionsmod leave param1 param2
23:00 thePalindrome I can run Skyrim better on linux than windows
23:00 Calinou Nosrick: no idea
23:01 shamoanjac oh I see
23:01 shamoanjac it can be used to kick
23:01 agrecascino it makes a user leave a faction
23:01 Fixer_ Calinou: do you have drawtime jitter in singleplayer when map is generated?
23:01 shamoanjac I'll split it into "leave" and "kick"
23:02 Calinou Fixer_: yes
23:02 Calinou but I also have stuttering on multiplayer
23:02 Fixer_ i mean stuttering, yes
23:02 Fixer_ it is both in sp and mp
23:02 Fixer_ but more in sp
23:03 Nosrick Calinou: Have I seen you kicking around the Godot forums/issue tracker?
23:04 Calinou oh, yes
23:04 Calinou I'm a Godot contributor
23:04 Calinou and I maintain Godot builds
23:04 Nosrick Ah-ha!
23:05 Nosrick That's where I know you from.
23:21 swift110 joined #minetest
23:21 swift110 joined #minetest
23:23 Nosrick Okay, so I'm stepping through the table of callbacks. Do I just go local func = tableValue, then do func(parameters)?
23:24 agrecascino i find it sort of sad that debian has less support for sparc64 than hppa
23:26 Hijiri Nosrick: what does the surrounding code look like?
23:26 Hijiri what is tableValue?
23:29 betterthanyou710 joined #minetest
23:36 shamoanjac are there table slices in Lua?
23:42 Hijiri no
23:43 Hijiri well, no special syntax for them
23:43 Hijiri you could write a function that did slices hypothetically
23:43 shamoanjac :(
23:43 shamoanjac sometimes this language feel barebones when you come from Python as a scripting language
23:44 shamoanjac at least it's not Haskell
23:44 Void7 joined #minetest
23:48 xSmurf joined #minetest
23:54 agrecascino shamoanjac, puuuuuuureeeeeeee
23:59 shamoanjac wat
23:59 agrecascino haskell is pure

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