Time Nick Message 00:00 Mantar :( 00:00 alguien What's the point of client-side mods that you have to install on the server-side? 00:00 Mantar seriously? 00:00 alguien Yes 00:00 alguien Well maybe there's a point, but it's also missing the other point 00:00 alguien The client wanting to mod his own experience 00:00 Mantar okay, use-case: I can set up controls and node prediction in Exile and send it to the client so that there's no lag on input 00:01 alguien I don't understand that use case, but I'll take your word for it. I understand CSMs are for avoiding round trips 00:01 alguien *SSCSMs 00:01 Mantar as it stands any specialized control handling is done server-side, and cannot take effect until a client-server-client loop has been made 00:02 alguien But you're driving users who want to mod to cheat clients 00:02 alguien By disabling people from modding on the client side 00:02 Mantar this is especially annoying for our crouch mode, which is done by double-tapping shift -- any significant server lag makes it unreliable 00:03 Mantar I don't care what those people want to do, I'm trying to write a game here and the engine is fighting me 00:03 alguien I'm one of those people 00:03 alguien Why should I care what you're trying to do if you don't care what I'm trying to do? 00:03 alguien It's not a dichotomy 00:03 Mantar you don't have to? 00:04 Mantar but when I ask for SSCSM and you say "hopefully never" that implies you DO care and don't want me to have the thing 00:05 alguien I corrected myself, I recognize there are legitimate use-cases, I was actually thinking in terms of dichotomies, because that's how SSCSMs were presented to us: As a replacement for CSMs. They're not 00:05 Mantar well yeah, it's a very different thing 00:05 alguien I hope you get your SSCSMs, and I get my CSMs back 00:05 Mantar ^_^ b 00:10 alguien Here's my use-case: Since I'm composing textures, I want to be able to find out the texture name of something. But even the get_item_def/get_node_def that _are_ listed in client_lua_api.md return nil for me. Why? 00:17 alguien Betcha if I used the snakevenom client I'd be able to do that. But then I'd be able to do 100 other things by the click of a button 00:18 alguien cheating things, mind you 00:34 alguien Given a server and a port, how would I go about downloading only its textures? 00:34 cheapie [17:29:59] Use [texture modifiers] when necessary or useful, but don't use them as a janky image editor when you could just use a real image editor instead. 00:34 cheapie Aww, so no https://cheapiesystems.com/media/mtpaint-saveload.webm ? :P 00:35 alguien cheapie, what's that canvas mod? 00:35 cheapie https://cheapiesystems.com/git/digiscreen/ 00:36 alguien Ah, nice 00:36 cheapie I should probably convert it to use [png sometime. It predates it AFAIK. 00:36 alguien wait, it doesn't? ouch 00:37 alguien cheapie, what about the memory leak? 00:37 cheapie The memory leak is normally not particularly significant unless you *really* hammer one for a long time. 00:38 alguien Ayo cheapie, I like your digistuff, but... 00:39 alguien So this image is thousands of texture modifiers? https://content.minetest.net/uploads/V3eGHkFrYU.png 00:39 cheapie Yes, a total of 4112 things being [combine-d if my math is right. 00:40 alguien Cheapie my friend. Heal me from this cringe 00:40 cheapie With a static image like that the performance tends to be alright. If you start trying to animate it then clients start slowing down. 00:40 alguien lol 00:41 alguien on an unrelated note: are you familiar with basic_robot? 00:41 cheapie In terms of hearing nonstop complaining about it and having it break all kinds of things, yes. In terms of actually having used it, no. 00:42 alguien Too bad that's not two yes-s. 00:43 alguien I'm hoping someone will take over that wonderful but unmaintained mod 00:44 alguien By the way what's the difference between the touchscreen and the advanced touchscreen? 00:44 MTDiscord advancedness 00:48 alguien Also, which mod adds the console and help tabs to the lua controller? 00:48 alguien That one's a lot of help (no pun intended) 00:48 alguien I don't think it's digistuff though 00:48 Mantar can't beat advancedness, it's too advanced 00:58 MTDiscord cheapie: you don't say eh? 00:58 MTDiscord We need a very dangerous function in the lua api 00:59 MTDiscord delete_texture() 01:00 MTDiscord "the game crashed huh? What's your code do?" oh yeah, that'll do it 01:01 alguien MTDiscord, can't you make it a method on the owner's reference? (capability-based security) 01:01 MTDiscord That's always going to be a dangerous function, you'd need to wrapper the thing in an RC, but good luck with lua talking to it 01:01 MTDiscord That's manual memory management up and down 01:02 MTDiscord What if you want it gone now? But you want to use it later without regenerating it? It's gone 01:02 MTDiscord Or it's leaking 01:02 MTDiscord Oops 01:02 alguien well if you have a reference, it should still be there if we're talking RC 01:03 alguien if you deleted it it's your fault. have a generic texture instead 01:03 alguien or regenerate ad-hoc 01:03 alguien there are answers to these questions 01:03 MTDiscord You'd think that right? But what's referencing it? If it's Lua, it's still a memory leak, if it's nothing, it's gone 01:04 alguien can't you make the texture table a weak table? 01:04 alguien wouldn't that auto-solve all the problems? 01:05 alguien wait, i forgot the engine is C++ not Lua 01:05 alguien you brought lua up 01:05 alguien anyway, C++ has weak references too 01:05 alguien right? 01:05 MTDiscord Yeah, you're talking to a raw pointer from lua 01:06 MTDiscord Not literally, that's the super condensed version 01:06 alguien so what you're saying is that you should add lua's own reference count to c++'s? 01:07 alguien as in, hook into where Lua releases it, and decrease the count in C++ 01:07 MTDiscord You run into situations, where then a lua mod, has to safely hold a reference to a C++ smart pointer 01:07 alguien these issues have to have well-known solutions 01:08 alguien minetest isn't exactly the first game to embed lua 01:08 alguien granted, i don't know the first thing about minetest's use of lua 01:09 MTDiscord And we barely let mods do anything outside the engine, basically just talk to it, we're gonna let the mod store a reference to an engine texture's smart pointer? 01:09 alguien well it's using it 01:10 MTDiscord that IS the first thing about it 01:10 MTDiscord you mean you don't know the second thing about it 01:10 MTDiscord Are you familiar with C99? 01:10 alguien i am 01:11 MTDiscord Well there's plenty of that smashed in with the rest of the C++ irrlicht code 01:11 MTDiscord Whatever generation is in that portion 01:12 MTDiscord If you would like to rectify this, open the PR yesterday 01:13 MTDiscord It's like a ladder, to the top of the empire state building, where it was started with office chairs and they kept piling up whatever they had lying around to get up there, that's what you'll be dealing with 01:13 alguien That would mean lifetime management is manual, which is a good thing here. So just need to see how to hook into Lua's reference garbage collection 01:14 alguien The truth is, while I know C and Lua, I'm not a gamedev, and I have zero experience with embedding Lua 01:15 alguien And I don't know the second thing about minetest. My only contribution was to utils :D 01:15 MTDiscord Lifetime management is more or less completely manual in minetest, even with the gc, the gc is your friend, but you want to tell it your lifetimes by "leaking" memory, unless you get real fancy 01:16 MTDiscord Or unless you register something there's always that 01:19 alguien To change the topic away from the expectation of my contributing to the engine: Is there a way to tell which mod registered which recipe? Would be nice to do that in lua mods, rather than ordering by recipe number. How many times did you have to skip through N pages of recipes to find the most basic one. 01:19 cheapie alguien: mt-mods mesecons is the one with the terminal/help/examples tabs on the LuaC - I have no idea how it's comparing to the minetest-mods one any more, I kind of stopped paying attention. 01:20 alguien cheapie, thanks for the info 01:27 MTDiscord wouldnt recommend using mt-mods/mesecons. iirc most of the differences have been extracted to https://github.com/mt-mods/mooncontroller 05:18 KURWAMAC https://files.catbox.moe/90gqo6.mp4 05:23 MTDiscord Oh joy 05:41 KURWAMAC minecraft WOOOONT ADD INCHES TO YOUR COOOOOOOOOoooooooOOooooooooooOoooooooooooooooooOOOOOOOOOOOOOOCK 06:04 MTDiscord My eyes, someone get me some voxel water immediately 12:41 ROllerozxa wtf 13:41 MTDiscord modlib has such a system 13:41 MTDiscord but the "not cached" of ephemeral media refers to on-disk caching 13:41 MTDiscord we don't have any kind of tile image cache eviction 13:46 MTDiscord Anybody: "I wonder if it's possible to--" Warr1024: "I tried to use this in a feature for NodeCore and it doesn't actually work that way" and simultaneously Luatic: "modlib already has an API to use that and it doesn't actually work that way." 15:41 MTDiscord (Or if you dont want the bloat i have extracted into an independent system) 19:14 MinetestBot 02[git] 04cx384 -> 03minetest/minetest: Move hard coded minimap to builtin (#14071) 13adaa4cc https://github.com/minetest/minetest/commit/adaa4cc2f3c6e624b2c9ab7f40df4139b2a61c5a (152024-02-07T19:13:23Z) 22:53 germ_ not too shabby