Time |
Nick |
Message |
00:22 |
|
Fuchs_ joined #minetest |
00:26 |
|
MDude joined #minetest |
00:33 |
Gustavo6046 |
Is it just me or are caves spawning on every power of 2 depth? |
00:33 |
Gustavo6046 |
Hawk777: unless we abstract the scripting API in a glue-code-agnostic way. |
00:33 |
Gustavo6046 |
Although that will be difficult, given Lua's idiosyncrasies. |
00:33 |
Gustavo6046 |
We could also target a more "common" format, like WebAssembly, and let the developer choose the language. |
00:39 |
|
Cork joined #minetest |
00:46 |
Hawk777 |
That sounds nice TBH. But it would still require maintaining two scripting connections (unless Lua has a WASM backend?) in order to not break everything that ever existed, and I’d personally still rather the core devs spent their time on other choices from the pile of open tickets. |
00:48 |
Hawk777 |
Abstracting things doesn’t help the matter because the MT devs would still have to maintain the abstraction and its two implementations. |
00:49 |
Hawk777 |
I’d say it’s also beneficial that, with only a single language option, modders can all read each other’s code. |
01:02 |
Gustavo6046 |
Hawk777: it is not necessary, if we can create the Lua backend as mere glue code for a universal scripting API |
01:02 |
Gustavo6046 |
I THINK it would be easier to have the legacy API untouched |
01:02 |
Gustavo6046 |
but Lua-only |
01:02 |
Hawk777 |
You keep saying “mere glue code” as if mere glue code doesn’t need maintenance :) |
01:02 |
Gustavo6046 |
and have the universal API have all these goodies |
01:02 |
Gustavo6046 |
Hawk777: it doesn't |
01:03 |
Gustavo6046 |
The moving parts it glues do. |
01:03 |
Gustavo6046 |
And we don't maintain Lua, do we? |
01:03 |
Hawk777 |
Well, I guess we disagree then. |
01:03 |
Gustavo6046 |
The Lua glue code would allow access for both the universal API and the legacy API. Sounds convoluted, but it's for a reason -- it makes it only one part that needs to be maintained with respect to changing Lua versions. |
01:04 |
Hawk777 |
Changing Lua versions? I thought the core devs had already decided they would never go beyond Lua 5.1 because of compat breaks in the Lua stdlib. |
01:04 |
Gustavo6046 |
Lua is very, very awful when it comes to backward compatibility, which is just yet another reason I would gradually phase it out, or at least give it less attention or something, in favour of JavaScript. |
01:04 |
Hawk777 |
I.e. stuff which has nothing to do with Minetest being taken away and breaking mods/games. |
01:05 |
Gustavo6046 |
Welp |
01:05 |
Gustavo6046 |
I already stated |
01:05 |
Gustavo6046 |
The legacy API will be left untouched |
01:05 |
Gustavo6046 |
so existing mods and games will work perfectly |
01:05 |
Gustavo6046 |
PLUS, this also guarantees they will never break! |
01:05 |
Gustavo6046 |
In the universal API we can emphasize on long-term forawrd/backward compatibility |
01:06 |
Gustavo6046 |
by making certain features behave differently depending on the API version |
01:06 |
Hawk777 |
And… now you have a translation layer, which implements the legacy API in terms of the new API. And every time you rework the new API, you have to update the translation layer to match. |
01:08 |
Gustavo6046 |
Hawk777: nono |
01:08 |
Gustavo6046 |
the legacy API does not need to be implemented in terms of the new API |
01:08 |
Gustavo6046 |
Both are interfaces to the game's mechanics |
01:08 |
Hawk777 |
OK… so now every time you want to refactor game engine internals, you have to update both consumers instead of just one? |
01:09 |
Gustavo6046 |
psst |
01:09 |
Gustavo6046 |
glue code :PP |
01:09 |
Gustavo6046 |
lol |
01:09 |
Gustavo6046 |
I think I'm starting to get your point. |
01:09 |
Gustavo6046 |
Being modular is good |
01:10 |
Gustavo6046 |
Instead of updating the consumers, just have them access the game's interface? So the game mechanics will themselves be responsible to maintain backwards compatibility, to not break either. |
01:10 |
Gustavo6046 |
We can still deprecate features, but if we remove any we must reflect that in both API codes. |
01:11 |
Gustavo6046 |
I think "glue code" is a bit misleading, C++ does it for you in the form of classes -- templating, abstract classes, the numerous ways to perform dynamic dispatching... you get the point. |
01:11 |
Hawk777 |
Sure. You can only make that if you can predict the shapes of things well enough to make it future-proof. |
01:12 |
MTDiscord |
<exe_virus> Also we're stuck at 5.1 lua anyways, because the just in time compiler is at 5.1 |
01:12 |
Gustavo6046 |
Hawk777: it's easier if the game internals are separated from the details exposed to the scripting engine. So, say, if in the future "mapblocks" are internally reinvented as "chunks" or whatever, the scripts can still refer to the new ones as they have ever done to the old ones. To the modder, they're still as mappy and blocky as they've ever been. |
01:13 |
Gustavo6046 |
Yeah, LuaJIT's main contributor has retired from the project |
01:13 |
MTDiscord |
<exe_virus> And JIT lua is only 30% slower than straight up C code. And no, he came back early this year |
01:13 |
Gustavo6046 |
So don't expect much updates to come from that |
01:13 |
Gustavo6046 |
oh? |
01:13 |
MTDiscord |
<exe_virus> Yeah he's working on the garbage collector |
01:13 |
Gustavo6046 |
JS has a more active scene and community. That and other reasons is why I think it would be far more modder-friendly. If you ask me, anyway. |
01:14 |
MTDiscord |
<exe_virus> JS is the most moving target in the universe |
01:14 |
Gustavo6046 |
But including it without breaking existing mods nor doubling the required effort will be complicated. We'll need a battle plan. |
01:14 |
Gustavo6046 |
exe_virus: yes it is |
01:14 |
Gustavo6046 |
but we don't need to support the new ESes |
01:14 |
Gustavo6046 |
We can use an embedded interpreter, like QuickJS |
01:14 |
MTDiscord |
<exe_virus> Then why leave lua, we don't need to support 5.2+ |
01:14 |
Gustavo6046 |
It's not just about that |
01:14 |
MTDiscord |
<exe_virus> QuickJS will be slower |
01:14 |
Gustavo6046 |
JavaScript is more programmer-friendly |
01:14 |
Gustavo6046 |
Yes, but not by a significant amount |
01:14 |
Hawk777 |
No. |
01:15 |
MTDiscord |
<exe_virus> Lua is pretty damn friendly |
01:15 |
Gustavo6046 |
Lua is not programmer-friendly, at all. |
01:15 |
Hawk777 |
I’m a programmer, and I like Javascript less than Lua, ergo you are wrong. |
01:15 |
blaise |
javascript is shit. |
01:15 |
Gustavo6046 |
Many Lua programmers have departed for JavaScript. |
01:15 |
Hawk777 |
See how this is all personal opinions? |
01:15 |
Gustavo6046 |
Hawk777: hm |
01:15 |
Gustavo6046 |
that is a point |
01:15 |
Gustavo6046 |
People will inevitably have different opinions |
01:15 |
Hawk777 |
“Which language is better?” is always a personal opinion thing. |
01:15 |
Gustavo6046 |
Yeah |
01:15 |
MTDiscord |
<exe_virus> I have done both, and C, and java, and so on. Lua is perfect for mods, and javascript is made for web, simply put |
01:16 |
Gustavo6046 |
exe_virus: JavaScript was made to be an embeddable scripting language, in this case for web browsers. |
01:16 |
Gustavo6046 |
Legends say it would be more Lua-like, if Netscape hadn't demanded it be "more Java-like". |
01:16 |
MTDiscord |
<exe_virus> Fair but it's made with the assumption of multithreaded |
01:16 |
blaise |
nah, ANSI C (C#) is miles better than turbo pascal, or basic, or many others |
01:16 |
Gustavo6046 |
Hence the name |
01:16 |
MTDiscord |
<exe_virus> Everything in games is basically single threaded |
01:16 |
blaise |
that isn't an opinion. |
01:16 |
Gustavo6046 |
Isn't JavaScript single-thread-only? (and async) |
01:16 |
Gustavo6046 |
Kinda like Python's GIL |
01:16 |
Gustavo6046 |
blaise: C# != C |
01:16 |
Gustavo6046 |
C# is kinda bad |
01:17 |
Gustavo6046 |
exe_virus: JS is single-threaded |
01:17 |
specing |
someone been badmouthing lua? |
01:17 |
blaise |
it's a standard that all other implementations of C are expected to conform to |
01:17 |
Gustavo6046 |
It uses an event loop to make more use of that CPU usage |
01:17 |
Hawk777 |
WTF? “C# is kinda bad”? I’m not the biggest fan of it, but at least it’s statically typed, which JS isn’t. |
01:17 |
Gustavo6046 |
I think it supports more threads, though |
01:17 |
MTDiscord |
<exe_virus> Ah, that makes sense |
01:17 |
Gustavo6046 |
Hawk777: good point |
01:17 |
Hawk777 |
Um no, C# and C are totally different languages. |
01:18 |
MTDiscord |
<exe_virus> Truth |
01:18 |
Gustavo6046 |
blaise: C# is a Java-like language designed by Microsoft |
01:18 |
Gustavo6046 |
I think you're thinking of C++. |
01:18 |
Gustavo6046 |
C and C++ are both standardized. |
01:18 |
MTDiscord |
<exe_virus> Java ~= javascript |
01:18 |
Gustavo6046 |
I couldn't care the least about regulatory bodies like ANSI. |
01:18 |
blaise |
borland C is completely different from C... |
01:18 |
MTDiscord |
<oneplustwo> C# just has four plusses instead of two |
01:18 |
MTDiscord |
<exe_virus> C++ is still, to this day, a cluster though |
01:18 |
Gustavo6046 |
They can shove their shiny language standards and revisions up their own Firewire ports for all I care. |
01:18 |
MTDiscord |
<exe_virus> Like I would expect all the implementations to be standardized by now, but nope. |
01:18 |
Gustavo6046 |
exe_virus: true |
01:19 |
Gustavo6046 |
Different C++ standard libraries have wildly different ranges of support |
01:19 |
blaise |
it's kind of insane.. |
01:19 |
Gustavo6046 |
It does happen a bit with things like JavaScript too, though |
01:19 |
MTDiscord |
<exe_virus> And I'm a fan of C++, but like dang, why can't it be simple yet |
01:19 |
Gustavo6046 |
I imagine not with Lua since it has an ACTUAL reference implementation. |
01:19 |
Gustavo6046 |
exe_virus: C++ is complicated by definition. Literally. It's a LOT more complicated to parse and compile than C. |
01:19 |
Gustavo6046 |
I'm fine with it, but I think C++ is not superior to C, because it has tradebacks. |
01:20 |
Gustavo6046 |
Especially when it comes to size. C++ is a behemoth, which is usually not a Very Good Thing(TM). |
01:20 |
blaise |
indeed |
01:20 |
MTDiscord |
<exe_virus> True, though I mean chromium is the best example of what c++ can be |
01:20 |
blaise |
but everything has it's use case.. |
01:20 |
Hawk777 |
Personally when I tried writing some code in C after working in C++ for a long time, I was just so sad about how much boilerplate I had to write. |
01:20 |
Hawk777 |
Really? No RAII? |
01:20 |
Hawk777 |
Sadness. |
01:20 |
MTDiscord |
<exe_virus> Its like 10MB of total power |
01:20 |
Gustavo6046 |
blaise: that is true |
01:20 |
Gustavo6046 |
Hawk777: that is true |
01:20 |
Gustavo6046 |
quite a bit of boilerplate in C |
01:21 |
Gustavo6046 |
I'm not a fan of boilerplate either |
01:21 |
Gustavo6046 |
But I think you're supposed to do the boilerplate only in some parts of the code (main-level or something) |
01:21 |
Gustavo6046 |
and then you write the meat and potatoes of the program in a lower level, without classes or whatnot. |
01:21 |
blaise |
Gustavo6046: you could always go pure assembly? XD |
01:21 |
Gustavo6046 |
blaise: true |
01:21 |
Gustavo6046 |
but C is basically a prettified assembly |
01:22 |
Gustavo6046 |
there's little point in using assembly rather than C |
01:22 |
Hawk777 |
No no, it’s things like resource management. With C you have to remember to manually release resources (free memory, close file handles, whatever) in both the success and failure paths. In C++ both are handled by RAII. |
01:22 |
Gustavo6046 |
especially today with C compilers often optimizing the code more than a manual assembly programmer could ever do on their own |
01:22 |
Gustavo6046 |
Hawk777: only for heap-allocated objects |
01:23 |
Gustavo6046 |
local variables are automatically handled by scope |
01:23 |
blaise |
yeah, well.. C wouldn't have gotten to where it's at without people that know how to code in ASM |
01:23 |
Gustavo6046 |
you'd be surprised how much stuff can be moved to the stack. |
01:23 |
Gustavo6046 |
(and faster than heap) |
01:23 |
Hawk777 |
File handles can’t be “moved to the stack”. |
01:23 |
Hawk777 |
Nor can dynamically sized containers. |
01:23 |
Gustavo6046 |
Hawk777: true and true |
01:23 |
Gustavo6046 |
those do get a bit boilerplatey |
01:24 |
Gustavo6046 |
I think std::vector was one of the first things C++ had? |
01:24 |
Gustavo6046 |
specifically because of that |
01:24 |
Gustavo6046 |
Whoa |
01:25 |
Gustavo6046 |
this lua API is beautiful |
01:25 |
Gustavo6046 |
I don't know what i was expecting |
01:25 |
MTDiscord |
<oneplustwo> define 'beauty' |
01:25 |
MTDiscord |
<oneplustwo> personally, i hate lua |
01:25 |
Gustavo6046 |
it looks extraordinarily clean |
01:25 |
Gustavo6046 |
I mean, compared to ordinary Lua code |
01:25 |
Gustavo6046 |
it almost doesn't look lie Lua |
01:25 |
Gustavo6046 |
like* |
01:26 |
MTDiscord |
<oneplustwo> so by inheritance, i hate the lua api |
01:26 |
Gustavo6046 |
oneplustwo: you were smiling in chat up to this point, weren't you. |
01:26 |
Gustavo6046 |
There's no such thing |
01:26 |
MTDiscord |
<oneplustwo> smiling? |
01:26 |
MTDiscord |
<oneplustwo> at what? |
01:26 |
Gustavo6046 |
at me trash talking Lua |
01:26 |
Gustavo6046 |
I don't like Lua |
01:26 |
Gustavo6046 |
but this API is a pretty good |
01:26 |
Gustavo6046 |
design |
01:26 |
MTDiscord |
<oneplustwo> why would i smile? |
01:26 |
Gustavo6046 |
happiness? |
01:26 |
Gustavo6046 |
approval? |
01:26 |
MTDiscord |
<srinivas> lol |
01:27 |
MTDiscord |
<IhrFussel> IMO Lua has the simplest syntax out of every scripting language I ever learned or tried |
01:27 |
MTDiscord |
<oneplustwo> the only thing i smile at is when i delete the print statements and stack overflow tabs after i finish debugging |
01:28 |
MTDiscord |
<oneplustwo> i dont understand why they have to use "end" to end a function |
01:28 |
Gustavo6046 |
too simple |
01:28 |
Gustavo6046 |
oneplustwo: yeah I like that feeling too |
01:28 |
Gustavo6046 |
like "ahh, finally I figured out this bloody bugger" |
01:28 |
Gustavo6046 |
Helenah: do I sound british enough? :P |
01:29 |
Gustavo6046 |
(I'm not) |
01:29 |
MTDiscord |
<IhrFussel> Bash uses 'fi' which makes even less sense (yeah I know if backwards but no actual word) |
01:29 |
MTDiscord |
<oneplustwo> if you want to sound british, you either need to emulate the upper-class or the coal miners, no in-between |
01:30 |
Gustavo6046 |
lol |
01:30 |
Gustavo6046 |
oneplustwo: you mean the distinction lies at y=-1024? |
01:32 |
Gustavo6046 |
So |
01:33 |
Gustavo6046 |
how do I assign a timeout to a farming:soil? |
01:33 |
Gustavo6046 |
Is the param2 vacant? |
01:33 |
Gustavo6046 |
or something? |
01:33 |
MTDiscord |
<srinivas> nodeetimers? |
01:33 |
MTDiscord |
<srinivas> *nodetimers |
01:33 |
Gustavo6046 |
I probably want to learn how to get a block's parameter with the api first |
01:34 |
Gustavo6046 |
Well, I wanted it to be a parameter of the block |
01:34 |
Gustavo6046 |
If it has air above, it decrements till it reaches 0, then I can do stuff on the block. |
01:34 |
Gustavo6046 |
above it* |
01:34 |
Gustavo6046 |
If it doesn't, the timer is reset to a N |
01:34 |
MTDiscord |
<srinivas> https://minetest.gitlab.io/minetest/ |
01:34 |
Gustavo6046 |
? |
01:34 |
MTDiscord |
<srinivas> a nice prettified api reference |
01:34 |
Gustavo6046 |
Ah |
01:34 |
MTDiscord |
<srinivas> may be useful for you |
01:36 |
Gustavo6046 |
thanks! |
01:37 |
MTDiscord |
<IhrFussel> Node parameters cannot be changed during runtime...to have additional dynamic data use nodemeta |
01:39 |
|
MDude joined #minetest |
01:39 |
blaise |
I do like GO |
01:39 |
blaise |
it's nifty.. :) |
01:40 |
Gustavo6046 |
Golang? |
01:40 |
Gustavo6046 |
Mehh. |
01:40 |
Gustavo6046 |
It's fine. |
01:41 |
blaise |
grinch |
01:42 |
MTDiscord |
<srinivas> while we are at new api fantasies, i would like to start a shitstorm by suggesting python |
01:42 |
MTDiscord |
<srinivas> forces clean indentation |
01:42 |
MTDiscord |
<IhrFussel> But I code using nano |
01:43 |
MTDiscord |
<srinivas> tata nano? |
01:43 |
MTDiscord |
<srinivas> pardon me |
01:43 |
blaise |
hahahaha |
01:43 |
blaise |
nano... what a crying shame |
01:43 |
MTDiscord |
<srinivas> but what is it? |
01:44 |
MTDiscord |
<srinivas> oof |
01:44 |
MTDiscord |
<IhrFussel> GNU nano only allows a few tabs per screen |
01:44 |
MTDiscord |
<srinivas> rip |
01:44 |
blaise |
it's the text entry program from the pine MTA |
01:44 |
MTDiscord |
<srinivas> ah |
01:44 |
MTDiscord |
<srinivas> thanks |
01:44 |
MTDiscord |
<srinivas> brain fart there |
01:44 |
MTDiscord |
<srinivas> sorry |
01:44 |
blaise |
they seperated it when alpine became a thing |
01:45 |
Gustavo6046 |
So like this? |
01:45 |
Gustavo6046 |
https://termbin.com/2apr |
01:45 |
blaise |
most people only used it when dialed into a bbs via modem or terminal node controler/packet access |
01:45 |
Gustavo6046 |
although |
01:45 |
Gustavo6046 |
I modified existing cocde |
01:45 |
Gustavo6046 |
https://github.com/PilzAdam/farming_plus/blob/master/weed.lua is the original |
01:46 |
blaise |
these days we have much better tools to work with.. vim or emacs being amongst the most popular |
01:47 |
Gustavo6046 |
I use micro |
01:47 |
Gustavo6046 |
not vim or emacs or nano |
01:47 |
Gustavo6046 |
but vim is fine I guess |
01:47 |
MTDiscord |
<srinivas> i use gedit |
01:47 |
MTDiscord |
<srinivas> light and fast |
01:47 |
MTDiscord |
<srinivas> with awesome synctex |
01:47 |
Gustavo6046 |
when it comes to GUI tools I either use mousepad (for writing simple text files or tiny projects) or VS Code (the OSS fork) |
01:47 |
MTDiscord |
<srinivas> with awesome synctex |
01:47 |
Gustavo6046 |
discord has s/// syntax, doesn't it? |
01:48 |
blaise |
Gustavo6046: micro? |
01:48 |
Gustavo6046 |
it should let you double-check your edits, and support editing messages other than the last |
01:48 |
Gustavo6046 |
blaise: yeah |
01:48 |
Gustavo6046 |
it's written in go I think |
01:48 |
blaise |
url? |
01:48 |
blaise |
I prefer vim |
01:48 |
Gustavo6046 |
https://micro-editor.github.io/ |
01:48 |
Gustavo6046 |
eh I prefer micro |
01:48 |
Gustavo6046 |
it's simpler to use, but not necesasrily stripped down like nano |
01:48 |
Gustavo6046 |
and has a plugin interface, kinda like Vim does |
01:48 |
MTDiscord |
<IhrFussel> nano is my choice cause it is very barebones while still supporting the most needed features (search by term/line, replace, syntax highlighting) |
01:49 |
blaise |
interesting |
01:49 |
Gustavo6046 |
but anyways |
01:49 |
Hawk777 |
Are we just having all the holy wars at the same time in this channel now? We’ve done programming languages, now we’re on text editors, I suppose tabs-vs-spaces will show up next. |
01:49 |
Gustavo6046 |
Hawk777: xD |
01:49 |
Gustavo6046 |
I like 4 spaces |
01:49 |
Hawk777 |
I like tabs. |
01:49 |
Gustavo6046 |
I think spaces have already won a long time ago-- |
01:49 |
Hawk777 |
But rendered as four spaces. |
01:49 |
Gustavo6046 |
oh. |
01:49 |
blaise |
CRLF vs CR |
01:49 |
Gustavo6046 |
Exactly |
01:50 |
Hawk777 |
Oh no, another one! |
01:50 |
MTDiscord |
<IhrFussel> I like newlines |
01:50 |
Gustavo6046 |
I like tabs but CONVERTED to four spaces. |
01:50 |
blaise |
heh |
01:50 |
Gustavo6046 |
IhrFussel: I like BEL |
01:50 |
Gustavo6046 |
fite me |
01:50 |
Gustavo6046 |
fite me and my typewriter with a literal physical bell! |
01:50 |
Gustavo6046 |
dingdingding |
01:50 |
blaise |
:D |
01:50 |
blaise |
how about irc clients? |
01:50 |
Hawk777 |
I don’t like the converted. I feel that storing as TAB means I’m being nice to people reading my code, because depending on their eyesight, the nature of their brain, the size of their monitor, font size, font selection, etc. etc. etc. they can choose whatever indentation level per scope they find makes the code easiest to read, without modifying the physical file. |
01:51 |
Gustavo6046 |
I think there's a right way to store indentation |
01:51 |
Gustavo6046 |
screw individualism /s |
01:51 |
Gustavo6046 |
just kidding |
01:51 |
Gustavo6046 |
I just don't like there being a separate character specifically to store indentation |
01:51 |
* blaise |
uses kvirc for GUI, but in CLI will use EPIC with amnesiac script |
01:51 |
Gustavo6046 |
or generalizing indentation as tabulation at all |
01:51 |
Gustavo6046 |
I use weechat for IRC |
01:52 |
Gustavo6046 |
I also use Manjaro Linux, don't murder me over it |
01:52 |
blaise |
heh |
01:52 |
* blaise |
uses gentoo |
01:52 |
MTDiscord |
<IhrFussel> I use...discord for IRC |
01:52 |
Hawk777 |
Gentoo FTW. |
01:53 |
Gustavo6046 |
Also |
01:53 |
Gustavo6046 |
tabs can screw up code if it's posted online |
01:53 |
Gustavo6046 |
like in a pastebin or something |
01:53 |
Gustavo6046 |
or in forums |
01:53 |
Gustavo6046 |
I'd rather expand directly in the file than do it every single time to share it online |
01:53 |
blaise |
depends on the service and tool |
01:53 |
blaise |
hastebin actually does pretty good with it |
01:53 |
Gustavo6046 |
ah |
01:53 |
Gustavo6046 |
yeah but hastebin is good |
01:53 |
Hawk777 |
So can spaces if you’re using a shitty web service (i.e. one that doesn’t have support for preformatted code so all multiple spaces turn into a single space per HTML rules). And if you use a nonshitty one, tabs are fine. |
01:54 |
Gustavo6046 |
too bad it's kind of down often but still |
01:54 |
blaise |
wgetpaste and dpaste tends to muck it up pretty bad |
01:54 |
Gustavo6046 |
good services |
01:54 |
Gustavo6046 |
Hawk777: nah |
01:54 |
Gustavo6046 |
most of them don't allow configuring tabs |
01:54 |
Gustavo6046 |
(which is why you prefer tabs to begin with, isn't it? user configurability) |
01:54 |
Gustavo6046 |
in fact, I'd say MOST programs and places in general don't allow configuring tabs, except for text editors and some programming-specific places (like GitHub) |
01:54 |
Gustavo6046 |
It's just not a very common concern. |
01:55 |
blaise |
Gustavo6046: you can set up your own hastebin server.. |
01:55 |
Gustavo6046 |
blaise: I'm referring to the main service, but yeah I forgot about that detail |
01:55 |
blaise |
:) |
01:55 |
Hawk777 |
Just because one specific tool that might be used for viewing a file doesn’t allow configuring tab width, doesn’t mean I should avoid catering to the other 99% of tools that do (i.e. just because web services don’t, doesn’t mean I should harm people using text editors, which are by far the more common way to look at source code files) |
01:55 |
Gustavo6046 |
:D |
01:55 |
Gustavo6046 |
Hawk777: except, it's not tooling |
01:55 |
Gustavo6046 |
it's everything else |
01:55 |
Gustavo6046 |
tabs are not very popular nowadays |
01:55 |
Gustavo6046 |
ASCII control characters are overrated |
01:55 |
blaise |
as far as coding, there was a tool I liked using in X considerably more than working from CLI |
01:56 |
Gustavo6046 |
they're a fad, a relic from a distant past |
01:56 |
blaise |
can't remember what it was called but it supported pretty much everything |
01:56 |
Gustavo6046 |
I'm glad Unicode does not include extra tabulation. |
01:56 |
Gustavo6046 |
(I think it doesn't) |
01:56 |
Gustavo6046 |
Horizontal tabulation, thati |
01:56 |
Gustavo6046 |
s |
01:56 |
Hawk777 |
It’s a freaking text file. There’s the language interpreter, which doesn’t care one way or the other, and there are text editors and viewers, which by and large allow configuring tab size. |
01:56 |
Gustavo6046 |
Hawk777: no they don't |
01:57 |
Gustavo6046 |
most don't |
01:57 |
Gustavo6046 |
or do |
01:57 |
Gustavo6046 |
I guess most text editors do |
01:57 |
Hawk777 |
Let’s see. vim does. emacs does. notepad++ does. Visual Studio Code does. |
01:57 |
Gustavo6046 |
micro does too |
01:57 |
Gustavo6046 |
but the thing is |
01:57 |
blaise |
maybe it was visual studio code? |
01:57 |
Gustavo6046 |
you don't want your code to only be readable in the text editor |
01:57 |
Gustavo6046 |
what if you have to email patches to a mailing list and have it be reviewed? |
01:57 |
Gustavo6046 |
what if you want it to put in any of the hundred pastebin services available online to show others? |
01:58 |
Gustavo6046 |
"[pastebin link] look at how big my wiener is!" "lol what" "oh wait... it's kind of... deflated. ew. what." |
01:58 |
blaise |
Gustavo6046: most people expect diff format |
01:58 |
blaise |
seriously |
01:58 |
Gustavo6046 |
? |
01:58 |
blaise |
anything other than that is insulting |
01:58 |
Gustavo6046 |
what does that have to do with tabs or spacers |
01:58 |
Hawk777 |
If I want to show other people my files, I’ll push them to a Git repo and they can clone it thank you very much. |
01:58 |
Gustavo6046 |
Hawk777: just use github gist |
01:58 |
blaise |
"what if you have to email patches to a mailing list and have it be reviewed? |
01:58 |
blaise |
" |
01:58 |
Gustavo6046 |
or termbin |
01:58 |
Gustavo6046 |
I am in a haste |
01:59 |
|
MDude joined #minetest |
01:59 |
Gustavo6046 |
don't have time to open up A BROWSER just to put code up in the webz |
01:59 |
Gustavo6046 |
blaise: yes |
01:59 |
Gustavo6046 |
talking about email clients |
01:59 |
blaise |
ah... |
01:59 |
Gustavo6046 |
which there are hundreds upon hundreds of that are used by lots of people |
01:59 |
blaise |
I run postfix and sendmail manually from the cli |
01:59 |
blaise |
XD |
01:59 |
Gustavo6046 |
including community managers and project maintainers and reviewers and whatnot |
01:59 |
Hawk777 |
Besides, if I put it on the web with four spaces, anyone who finds four spaces suboptimal to read is still s*** out of luck. |
01:59 |
Gustavo6046 |
oh yest |
01:59 |
Gustavo6046 |
the CLI |
02:00 |
Gustavo6046 |
the biggest felonies you can have in tab land. |
02:00 |
Hawk777 |
Except now anyone who finds it suboptimal to read is *still* out of luck even if they read from a text editor. |
02:00 |
blaise |
just kidding, I use claws |
02:00 |
Hawk777 |
blaise: Are you sure you’re not my clone? |
02:00 |
Gustavo6046 |
somehow they are all born in the very crib that tabs vs spaces was born at to begin with. |
02:00 |
Hawk777 |
Gentoo *and* claws? |
02:00 |
Gustavo6046 |
the good old teletypewriter. |
02:00 |
blaise |
lol |
02:00 |
Gustavo6046 |
geez that's pointy, put those claws away from me |
02:01 |
Gustavo6046 |
lol |
02:01 |
blaise |
it's the only email client I can find that properly supports proper certificate checking and gpg |
02:01 |
Gustavo6046 |
micro has tabstospaces (which I just set to false) but no spacestotabs |
02:01 |
Gustavo6046 |
Hawk777: Noh!~ I would feel defeated if I were to succumb to tabulation devices this easily! Me of all people! |
02:02 |
Gustavo6046 |
blaise: I use mutt and exim |
02:02 |
Gustavo6046 |
using Gmail as a router so I don't have to mess with ISP level stuff |
02:03 |
Gustavo6046 |
by the way send some random stuff to contactgustavo6046.cf just to make sure it still works, I transitioned the DNS handling from Freenom to FreeDNS lately |
02:03 |
Gustavo6046 |
(the domain still is Freenom though, and it's a temporary one) |
02:03 |
Gustavo6046 |
(except it's until I get a source of income, so "temporary" is a bit optimistic) |
02:03 |
blaise |
I host my own postfix/dovcot kitbash |
02:04 |
Hawk777 |
Exim+Dovecot for me. |
02:04 |
Hawk777 |
I have run Postfix, but found Exim a little easier. |
02:04 |
blaise |
I need to renew my certificates, actually |
02:05 |
Hawk777 |
No automation with LetsEncrypt for you? |
02:06 |
Gustavo6046 |
I host local exim |
02:06 |
Gustavo6046 |
I don't like going knee deep in stuff I don't know |
02:06 |
Gustavo6046 |
I like experimenting a little at a time |
02:06 |
blaise |
I didn't know about exim, I'll check it out |
02:06 |
Gustavo6046 |
I also don't like too traditional/oldschool methods, like the very mature GNU/BSD stuff |
02:06 |
Gustavo6046 |
blaise: I probably didn't need it |
02:07 |
Gustavo6046 |
it's more powerful and extremely flexible, but not as simple, so it's more suitable if you need more flexibility than postfix can offer, I've heard |
02:07 |
blaise |
mostly I just need to be able to whitelist, and report attempted abuse to spamassasin.. XD |
02:08 |
Gustavo6046 |
I still don't know how to commit and how often. Is it every little change, or everytime I implement something fully? Is it okay to implement a feature when I didn't test it, with a description like "Feature feature", and maybe commit fixes later with a description like "Fixed feature featured", "Fixed feature feature again", ...? |
02:08 |
Gustavo6046 |
blaise: do you use fail2ban? |
02:08 |
blaise |
yeah, of course.. |
02:08 |
* Gustavo6046 |
bonks his head against the keyhole of blaise's mail server |
02:08 |
Gustavo6046 |
ow |
02:09 |
blaise |
you don't even know my hostname.. XD |
02:09 |
Gustavo6046 |
I know lol |
02:09 |
Gustavo6046 |
I'm just kidding you |
02:09 |
Gustavo6046 |
I wonder how important security is if nobody knows your IP, especially if you're behind a CGNAT like me. |
02:09 |
blaise |
for the longest time I was getting pings from china.. |
02:09 |
Gustavo6046 |
(I am a sad potato) |
02:09 |
Gustavo6046 |
Is this the right way to implement what I want? https://github.com/Gustavo6046/farming_plus/commit/d3387b29ac1d6aeddbd8c3fefd58cca42fbf1884 |
02:09 |
Gustavo6046 |
blaise: lol |
02:10 |
Hawk777 |
Lua uses elseif, not else if. |
02:10 |
blaise |
my server is sitting pretty on a pretty fat fiber connection out in the wilds.. |
02:10 |
blaise |
so I kinda have to use good protection.. |
02:11 |
Hawk777 |
(technically “else if” is valid code, but you need more ends for it) |
02:11 |
blaise |
yay, clang-11 is done |
02:12 |
Hawk777 |
I’m not sure if it’s good practice to modify node metadata so frequently either. |
02:12 |
Hawk777 |
But that part I’m not sure about. |
02:14 |
Gustavo6046 |
ah |
02:14 |
Gustavo6046 |
I see |
02:14 |
Gustavo6046 |
Hawk777: probably not? |
02:15 |
Gustavo6046 |
it's supposed to be kind of static I guess |
02:15 |
blaise |
so, I've been flying an Adder for a long time now |
02:15 |
blaise |
I've got a few billion credits... |
02:15 |
|
Conradis_ joined #minetest |
02:16 |
blaise |
should I move up to the python, or go directly to the Anaconda ? |
02:16 |
Gustavo6046 |
What about settings, like the timeout values at the top of the file, Hawk777? |
02:17 |
Gustavo6046 |
blaise: I'd say don't be too all in at once |
02:17 |
Gustavo6046 |
This is the kind of thing that really feels like it has a catch |
02:18 |
Hawk777 |
Gustavo6046: I’d make those local, but seems fine to put them there. |
02:18 |
Gustavo6046 |
I never watched Family Guy (that's an American show, I don't think people watch it here in Brazil), but if I recall correctly it has an episode where the guy gets very rich and spends it all at once. |
02:18 |
Gustavo6046 |
And... bad stuff happens. I think. I don't remember lol |
02:18 |
Gustavo6046 |
Hawk777: ah |
02:18 |
Gustavo6046 |
Is there no way to expose them to the player, sort of? |
02:19 |
blaise |
it's Elite Dangerous... I would never sell my Adder.. |
02:20 |
Hawk777 |
Do you mean expose the numbers? Are you saying you want them to be settings or something? Because just making them non-local in the file will not let the player edit them through any kind of UI. |
02:20 |
Hawk777 |
You’d have to use the settings API for that. |
02:21 |
Gustavo6046 |
ah |
02:21 |
Gustavo6046 |
blaise: I thought you meant like those wierd US airlines where you get "credit" for flying, for some reason lol |
02:21 |
Gustavo6046 |
and you could get comfier seats or whatever if you endured the crappy ones for your lifetime |
02:21 |
Gustavo6046 |
Hawk777: yeah |
02:21 |
Gustavo6046 |
that's what I mean |
02:22 |
Gustavo6046 |
I don't really like making them hardcoded |
02:22 |
Gustavo6046 |
At least putting them at the top makes it easier for anyone who wants to edit it to do so, right? |
02:22 |
* VanessaE |
sighs... why, just why? https://imgur.com/U5ESefq.png |
02:22 |
Hawk777 |
Sure, or you could use settings for them. |
02:22 |
Gustavo6046 |
o.o |
02:22 |
blaise |
VanessaE: :o |
02:22 |
Gustavo6046 |
what happened, VanessaE? |
02:22 |
Gustavo6046 |
Hawk777: yeah |
02:22 |
VanessaE |
fuck if I know. some wxgtk bug I guess |
02:25 |
Gustavo6046 |
VanessaE: yes but what is the context |
02:26 |
Gustavo6046 |
it does look very buggy |
02:26 |
Gustavo6046 |
but that's wxWidgets for you |
02:26 |
VanessaE |
Gustavo6046: that's Prusaslicer, normally it doesn't look like that. |
02:26 |
Gustavo6046 |
a what? |
02:27 |
VanessaE |
... |
02:27 |
VanessaE |
oh fuck |
02:27 |
VanessaE |
I'm on the wrong channel |
02:27 |
Gustavo6046 |
:P |
02:27 |
Gustavo6046 |
It happens |
02:27 |
Gustavo6046 |
Don't be too roused about it, it's fine. |
02:28 |
VanessaE |
heh oh well |
02:28 |
Gustavo6046 |
hm? |
02:28 |
Gustavo6046 |
is there anything you're trying to say or? |
02:28 |
* VanessaE |
takes her gripe over to the correct channel :P |
02:28 |
Gustavo6046 |
Ah :P |
02:31 |
Gustavo6046 |
weird, Minetest Game disappeared from the content list |
02:32 |
Gustavo6046 |
I had Minetest Extended, which I deleted since I think it overrode Minetest Game for some reason. Not cool. :/ |
02:33 |
Gustavo6046 |
I wish it were in ContentDB, even if it were to be distributed with the game or alongside it. |
02:33 |
Hawk777 |
https://content.minetest.net/threads/233/ ← I brought up yesterday that it’s not actually shipped with distro packages in all cases, but is now also not available from contentDB, but nobody replied before I had to leave. |
02:34 |
Gustavo6046 |
How do I redownload it? |
02:34 |
Gustavo6046 |
Ah |
02:34 |
Hawk777 |
But that thread is why it’s not in contentdb. |
02:34 |
Hawk777 |
You can still grab it from Github. |
02:34 |
Gustavo6046 |
>_> |
02:34 |
Gustavo6046 |
I want to download it, rubenwardy |
02:34 |
Hawk777 |
https://github.com/minetest/minetest_game |
02:34 |
Gustavo6046 |
Ah |
02:34 |
Gustavo6046 |
At least I still can get that |
02:34 |
Gustavo6046 |
I'm not barred from THAT. |
02:34 |
Gustavo6046 |
Next step: make the game proprietary |
02:35 |
Hawk777 |
If it *were* shipped with the engine in all cases, I would not see a lot of point also having it on ContentDB, since that seems like a recipe for users ending up with two copies of it (one in a system location made by package installation, and the other in their home directory made by contentdb installation). But it’s not in all cases shipped with, so having it not in CDB is a little annoying. |
02:36 |
Gustavo6046 |
yeah |
02:36 |
Gustavo6046 |
I had to git clone it |
02:36 |
Gustavo6046 |
Hawk777: why put it in a system location at all |
02:36 |
Hawk777 |
Uh, because that’s where it would end up if it ships with the engine and you install via e.g. a distro package manager. |
02:37 |
Gustavo6046 |
Ah, screw that |
02:37 |
Gustavo6046 |
Distros, distros. |
02:37 |
Gustavo6046 |
There should be a standard place to put files without necessarily guarding them to root. |
02:37 |
Gustavo6046 |
Like /opt maybe? |
02:38 |
Hawk777 |
Sorry, but I currently have over a thousand distro packages installed on my computer. I am not interested in going to each one’s website and checking whether a newer version is available. Package managers are good. |
02:38 |
Gustavo6046 |
I know |
02:38 |
Gustavo6046 |
yes they are |
02:38 |
Gustavo6046 |
but also very non-standardized |
02:38 |
Gustavo6046 |
which results in issues like this |
02:39 |
Gustavo6046 |
this kind of confusion is not easy to avoid |
02:39 |
Hawk777 |
Um, no, fundamentally you either install something system-wide (thus available for everyone, but should not be writeable by anyone because then user X can break stuff for user Y), or you install stuff per-user (thus available for only that user and nobody else). |
02:39 |
Hawk777 |
The problem only shows up if you try to install the same thing both ways at the same time. |
02:40 |
Gustavo6046 |
yes |
02:40 |
Gustavo6046 |
Maybe duplicate resolution is easier |
02:40 |
Gustavo6046 |
So per-user stuff overrides system wide |
02:40 |
Gustavo6046 |
That's how I'd do it |
02:41 |
Hawk777 |
I mean, *ideally* the result would be that everything gets installed system-wide. That has other advantages; disk space is relatively cheap, but it’s still nice to keep software out of backups (there’s no point backing up that which can be re-downloaded and reinstalled), and the easiest backup is one which just grabs your whole home directory. Fortunately Minetest games and mods are pretty tiny so they don’t really contribut |
02:41 |
Hawk777 |
h, but larger software which insists on installing itself in a user home directory is annoying for that reason even if not on a multi-user machine. |
02:42 |
Hawk777 |
Sure, I can handle a hundred gigs of Steam games on my hard drive. I don’t want to upload a hundred gigs of steam games to my backup storage every time I do a full backup. |
02:43 |
Hawk777 |
Ergo, keeping user data and programs separate = good. |
02:44 |
specing |
Sounds proprietary |
02:44 |
specing |
Anyway, backup tools should have exclude/include lists |
02:44 |
Hawk777 |
Well of course they do, but it’s annoying to add a dozen different directories to an exclude list. |
02:45 |
Hawk777 |
Much better if programs (and their assets, i.e. stuff that comes back at the press of a button) live in one place, and user data lives in another. |
02:46 |
Hawk777 |
As I said, I don’t really care much about Minetest in this case, because Minetest mods and games are tiny. |
02:48 |
specing |
Things should respect the XDG standards |
02:49 |
specing |
I suppose games off $proprietary service would install into ~/.cache , which you can exclude altogether |
02:50 |
Hawk777 |
Well, that would be acceptable I suppose. Ideally software would be installed into /opt (if giant-blob-that-insists-on-living-in-one-directory) or /usr (if sane normal software). |
02:51 |
Hawk777 |
In practice Steam lets you pick the install directory; I wasn’t attacking it, just giving it as an example of really big software that I don’t want in ~. |
03:01 |
specing |
All the out-of-package-manager software I used so far did install to /opt by default |
03:01 |
specing |
one of them installs to ~/opt/ by default... a rather strange choice I suppose :) |
03:02 |
Hawk777 |
:O |
03:02 |
Hawk777 |
Yeah that’s weird. |
03:03 |
Hawk777 |
Yes /opt seems to be pretty common, except for the case of things that expect to be run as a regular user but also act as their own package manager, like Steam and Minetest. |
03:03 |
specing |
it's a foss package too (the one that installed to ~/opt) |
03:07 |
Gustavo6046 |
How can I tell the meta value of my block? |
03:08 |
Gustavo6046 |
If there is one set, anyway? |
03:08 |
Gustavo6046 |
Maybe color the outline? |
03:13 |
Gustavo6046 |
Can I use a = as an expression in Lua? |
03:14 |
Gustavo6046 |
Oh nevermind |
03:14 |
Gustavo6046 |
I don't need to lol |
03:21 |
Gustavo6046 |
The auto-generated docs are condescending. They assume that if you don't understand them, it must be that you don't understand Lua. |
03:22 |
Gustavo6046 |
I don't want the concepts, I get them well enough already; I just want the damn method names! The actual reference! |
03:22 |
specing |
Gustavo6046: doc/lua_api.txt? |
03:22 |
specing |
Gustavo6046: doc/client_lua_api.txt? |
03:22 |
Gustavo6046 |
Oh, thanks |
03:22 |
Gustavo6046 |
I was looking for that |
03:23 |
Gustavo6046 |
Something that doesn't have outdated warnings slathered all over it lol |
03:23 |
specing |
hmm |
03:23 |
specing |
I wonder if you see the API if you do dump(_G) |
03:23 |
Gustavo6046 |
I want to set a node's texture, like, I want to overlay cracks on it. |
03:23 |
Gustavo6046 |
Transparent cracks |
03:25 |
Gustavo6046 |
There should be a way to define a new node as a variant of another one, so using API functions on the original node type would also give the new one. |
03:25 |
Gustavo6046 |
Node type aliases, I'd call them |
03:25 |
Gustavo6046 |
Like slightly grassier versions of the tiled soil texture. |
03:25 |
Gustavo6046 |
I just want to do that. |
03:25 |
specing |
you can do that |
03:25 |
specing |
see how dirt with grass is done |
03:26 |
Gustavo6046 |
ah |
03:26 |
Gustavo6046 |
specing: yes, I get that |
03:26 |
Gustavo6046 |
But I want to change the actual farming soil types |
03:26 |
Gustavo6046 |
Not add new ones |
03:26 |
specing |
you could pull it out of registered nodes and modify it? |
03:30 |
Gustavo6046 |
oh? |
03:30 |
Gustavo6046 |
I could? |
03:31 |
Gustavo6046 |
specing: but for specific nodes |
03:31 |
Gustavo6046 |
depending on the value of a meta int |
03:31 |
Gustavo6046 |
I could make an air-like node with a slightly grassy "floor" |
03:31 |
Gustavo6046 |
but that sounds like it could cause problems |
03:36 |
|
systwi_ joined #minetest |
03:36 |
Gustavo6046 |
specing: anything im mind? |
03:41 |
specing |
air-like? you mean like a 1/8 slab? |
03:52 |
Gustavo6046 |
specing: hm? |
03:52 |
Gustavo6046 |
no, like a node that otherwise behaves like Air |
03:55 |
specing |
But is fully textured like dirt-with-grass? |
03:56 |
Gustavo6046 |
specing: no, just the bottom, from the inside |
03:56 |
Gustavo6046 |
so the bottom face is a transparent grass texture |
03:56 |
specing |
ok, so maybe a slab with no hitbox? |
03:56 |
Gustavo6046 |
maybe |
03:56 |
Gustavo6046 |
a tiny one |
03:56 |
specing |
I'm trying to think of an example like you said |
03:56 |
specing |
of a node* |
03:57 |
Gustavo6046 |
specing: I imagine my use case is an example on its own right? lol |
03:57 |
Gustavo6046 |
I have a tilled farm node |
03:57 |
Gustavo6046 |
it has a timeout |
03:57 |
specing |
Oh, I know of an example |
03:57 |
Gustavo6046 |
I modified weed.lua from farming_plus, so that it has a timeout, and once it decrements to 1 it can spawn weed above |
03:57 |
Gustavo6046 |
(not 0, because 0 means "no meta" and I use that to reset to the initial value) |
03:57 |
specing |
seeds / early stage plants from any farming mod |
03:57 |
Gustavo6046 |
no |
03:57 |
specing |
a timeout? |
03:57 |
Gustavo6046 |
I want the timeout to display on the top surface of the block itself |
03:58 |
specing |
what |
03:58 |
Gustavo6046 |
yeah |
03:58 |
Gustavo6046 |
it's just a value |
03:58 |
specing |
What |
03:58 |
Gustavo6046 |
a counter |
03:58 |
Gustavo6046 |
I set it in meta |
03:58 |
Gustavo6046 |
sorry, I'm stupid |
03:58 |
Gustavo6046 |
let me post the link |
03:58 |
specing |
hmmmmm |
03:58 |
specing |
Perhaps |
03:58 |
specing |
I think that technic battery boxes do something similar |
03:58 |
specing |
they show charge level on their side |
03:58 |
Gustavo6046 |
https://github.com/Gustavo6046/farming_plus/blob/master/weed.lua#L31-L57 |
03:59 |
Gustavo6046 |
yes, kind of like that |
03:59 |
|
olliy joined #minetest |
04:02 |
Gustavo6046 |
specing: but I don't want to make new node types |
04:02 |
Gustavo6046 |
it's fine if I have to make new textures, I guess |
04:03 |
specing |
I dont think you can do new textures without new node types |
04:03 |
specing |
How does technic do it? Several node types per battery box? |
04:05 |
Gustavo6046 |
oh lol |
04:14 |
Gustavo6046 |
specing: I found the source |
04:14 |
Gustavo6046 |
for Technic |
04:22 |
Gustavo6046 |
I'm usually not a fan of mixing faux-declarative and imperative, but it seems that in Lua mixing the two is the best way. |
04:22 |
Gustavo6046 |
Everything else looks egregious lol |
04:23 |
Gustavo6046 |
Like, the register calls are faux-declarative, as it groups what would otherwise be multiple calls (like init_node_type, set_node_type_thingthing, etc) and uses a single call with a table argument (or whatever Lua calls them). |
04:28 |
Gustavo6046 |
But still |
04:28 |
Gustavo6046 |
let me try to find the thing |
04:28 |
Gustavo6046 |
specing: https://github.com/minetest-mods/technic/blob/master/technic/machines/MV/battery_box.lua |
04:29 |
Gustavo6046 |
clever dude abstracted away common stuff |
04:31 |
Gustavo6046 |
specing: https://github.com/minetest-mods/technic/blob/a8daa417c485ee20716ec050d4c676b5c91af773/technic/machines/register/battery_box.lua#L159-L393 |
04:31 |
Gustavo6046 |
found the function |
04:42 |
Gustavo6046 |
Yep, it seems to |
04:43 |
Gustavo6046 |
local front_tex = "technic_"..ltier.."_battery_box_front.png^technic_power_meter"..i..".png" |
04:43 |
Gustavo6046 |
notice the i? |
05:00 |
|
MTDiscord joined #minetest |
05:00 |
|
mdk joined #minetest |
05:05 |
Gustavo6046 |
I just want a way to visualize this timeout in general. |
05:05 |
Gustavo6046 |
Without having to replace the node type |
05:05 |
Gustavo6046 |
Ooh wait |
05:51 |
|
Flabb joined #minetest |
06:19 |
* iamweasel |
waits stoically |
06:21 |
specing |
Gustavo6046: I'd use infotext |
06:21 |
specing |
or CSM :DDD |
06:21 |
specing |
maybe your use case is a great example for what SSCSMs could be useful for |
06:21 |
Gustavo6046 |
Ah |
06:21 |
Gustavo6046 |
I see |
06:21 |
Gustavo6046 |
Thanks! I'll use infotext |
06:22 |
specing |
Gustavo6046: e.g. terumet thermoboxes use infotext to show how much heat they contain |
06:22 |
Gustavo6046 |
Ah |
06:23 |
Gustavo6046 |
Why are meta methods accessed with a colon? |
06:23 |
Gustavo6046 |
Oh, that's Lua |
06:23 |
Gustavo6046 |
nevermind |
06:24 |
specing |
yep |
06:25 |
specing |
obj:fun(a,b) = fun(obj,a,b) |
06:25 |
specing |
syntax sugar |
06:25 |
Gustavo6046 |
I see |
06:26 |
iamweasel |
oh that's neat specing :) |
06:27 |
specing |
Lua is a neat little language that is easy to use, up until you want to do inheritance |
06:33 |
|
milkt joined #minetest |
06:34 |
|
bwarden joined #minetest |
06:56 |
|
aheinecke joined #minetest |
07:08 |
|
YuGiOhJCJ joined #minetest |
07:22 |
Gustavo6046 |
Also, crops in Helenah's server did not grow at all after a certain point. |
07:22 |
Gustavo6046 |
Helenah: does debug.txt say anything abgout it? |
07:27 |
|
Peppy joined #minetest |
07:38 |
|
TomTom joined #minetest |
07:48 |
|
Flabb joined #minetest |
08:00 |
|
ShadowNinja joined #minetest |
08:22 |
Gustavo6046 |
I DID IT |
08:22 |
Gustavo6046 |
:D |
08:22 |
Gustavo6046 |
good night! |
08:36 |
|
hecks joined #minetest |
08:43 |
|
Jhalman joined #minetest |
08:47 |
|
calcul0n joined #minetest |
09:42 |
specing |
do you minetesters in general prefer one function to work on nodes, objects and "nothing" (pointed thing) or do you prefer 3 separate functions instead? |
09:43 |
rubenwardy |
Depends on the context |
09:46 |
|
proller joined #minetest |
09:47 |
specing |
core.use_item for CSMs |
09:48 |
rubenwardy |
Pointed thing makes sense in that case |
09:51 |
specing |
All cases use PointedThing. But I'm asking whether I should make core.use_item handle all cases or add use_item_on_node and use_item_on_object |
09:54 |
|
Jhalman joined #minetest |
10:03 |
|
FeXoR joined #minetest |
10:36 |
Helenah |
Is there any way to optimise the engine to work on a pi 4? |
10:37 |
Helenah |
I'm desperate to play with my gf and she has a pi. |
10:37 |
Ingar |
the client is almost usable on a pi |
10:37 |
Ingar |
last time I got 20-30 fps |
10:37 |
Helenah |
Ingar: It lags like hell on this pi. |
10:38 |
Helenah |
She could move around, but she said she wasn't comfortable with the lag. |
10:38 |
Ingar |
a pi isn;t the greatest gaming machine ofc |
10:38 |
|
rti joined #minetest |
10:38 |
Ingar |
might be better off with a NUC style machine |
10:38 |
Helenah |
Ingar: What you mean? |
10:40 |
specing |
get a PC :D |
10:40 |
Ingar |
Helenah: I mean, the Pi4 sucks at OpenGL :) |
10:40 |
sfan5 |
are you running it via the new opengl driver? |
10:40 |
Ingar |
any 5-year old mini PC would be better |
10:40 |
sfan5 |
gles2 might also give better performence |
10:41 |
|
Peppy joined #minetest |
10:42 |
Ingar |
I"m at work now though, unfortunately I odn't have my Pi4 here |
10:42 |
specing |
sometimes I wonder how the gma4500xhd in this 12 yo laptop would fare with minetest |
10:42 |
|
Splyncryth_ joined #minetest |
10:42 |
Ingar |
specing: intel GMA ? |
10:42 |
Helenah |
Ingar: How come it played Minecraft 8 better? |
10:42 |
specing |
Ingar: yes |
10:42 |
Helenah |
I thought Minetest was lighter? |
10:43 |
specing |
Ingar:VGA compatible controller: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller (rev 07) |
10:43 |
Ingar |
specing: intel video :) http://ingar.intranifty.net/pictures/Upside-Down.jpg |
10:43 |
rti |
Hi. I am new to <inetest. I am looking for a way to host Minetest worlds. My main requirement is, that I need non tech ppl to be able to spin up world easily. Is there a solution already built/available? Like a Minetest server control panel which is able to mange Minetest server instances? |
10:43 |
Ingar |
(real pic, no photosoup) |
10:43 |
specing |
Ingar: that doesen't look like minetest? |
10:43 |
Ingar |
specing: no but it's intel GMA ;) |
10:44 |
Ingar |
(older one though) |
10:44 |
Ingar |
Helenah: does minecraft even run on the pi ??? |
10:44 |
specing |
my gaming desktop has intel HD2500 igpu and it runs Minetest very well |
10:44 |
tango_ |
I suspect minetest's current performance issue are mostly related to irrlicht not being exactly modern in its opengl usage |
10:45 |
Helenah |
Ingar: yES |
10:45 |
Helenah |
Yes |
10:45 |
tango_ |
specing: I'm on a UHD Graphics 630 (intel igp for the i7-9750H) and it sucks at times |
10:46 |
tango_ |
specing: spikes where I drop below 1FPS |
10:46 |
specing |
tango_: with Minetest? |
10:46 |
tango_ |
specing: YES |
10:46 |
tango_ |
specing: sorry for the caps |
10:46 |
specing |
It only goes below 60 if I turn on unlimited view range or spawn 500 chickens around me |
10:46 |
Helenah |
I'm not saying Minecraft runs perfactly on the pi, but it doesn't lag unusably like Minetest. |
10:46 |
tango_ |
specing: much worse here. not sure why |
10:47 |
specing |
tango_: wait, is H some mobile stuff? |
10:47 |
tango_ |
specing: yah |
10:47 |
specing |
ah |
10:47 |
tango_ |
specing: ah what 8-D |
10:47 |
specing |
my cpu is 90W i5-3470, you are probably thermally limited |
10:48 |
tango_ |
specing: that's definitely a possibility, the cooling of this laptop sucks hairy balls |
10:48 |
tango_ |
specing: BUT it doesn't seem to be related to, say, runtime |
10:48 |
tango_ |
so I'm a bit skeptical at putting it only on thermal |
10:49 |
specing |
tango_: I just tell that desktop lowend igpu from 7 years ago has no trouble with minetest |
10:49 |
specing |
kinda sad that I didn't go for the HD4000, though |
10:49 |
tango_ |
go for a ryzen now if you need an upgrade |
10:50 |
tango_ |
specing: fwiw https://github.com/minetest/minetest/issues/10683 |
10:50 |
specing |
nah |
10:50 |
specing |
POWER9 |
10:51 |
specing |
^ only CPU worth buying these days |
10:51 |
Helenah |
So... irrlicht uses OpenGL in an outdated way? That's not good! o: |
10:52 |
specing |
tango_: Oh, another + for intel iGPU is that there's no working driver for radeons and that nvidias burn up |
10:53 |
Helenah |
specing: nvidia works fine for me, no trouble keeping it cool! |
10:54 |
specing |
Also, nvidias since gtx 750 have locked down firmware uploading, hence Nouvean' FOSS firmware cannot be used on them |
10:54 |
specing |
Nouveau* |
10:55 |
tango_ |
specing: what do you mean by no working driver for radeons? |
10:55 |
specing |
Lots of reason to boycott the whole lot of those bastards; intel, amd and nvidia included |
10:56 |
specing |
exactly what I said |
10:56 |
specing |
their drivers have always been nothing but trouble |
10:56 |
specing |
at least on Linux |
10:56 |
specing |
no idea about other platforms |
10:56 |
tango_ |
specing: when was the last time you checked? |
10:56 |
specing |
And these days are shims loading supermassive blobs to the cards |
10:57 |
specing |
tango_: it has been some time now, perhaps 8 years or so |
10:57 |
tango_ |
things have changed a LOT since |
10:58 |
Ingar |
AMD drivers got a lot better |
10:58 |
tango_ |
immensely |
10:58 |
Ingar |
(5700XT here) |
10:58 |
tango_ |
both on mesa and their amdgpu stuff |
10:59 |
Ingar |
on nvidia, I'm with Linus |
10:59 |
tango_ |
big middle finger |
11:00 |
specing |
Are those amdgpu drivers even open? |
11:00 |
tango_ |
amd is better but not perfect either |
11:00 |
tango_ |
specing: no, but the mesa ones are |
11:00 |
tango_ |
and they are pretty good |
11:00 |
tango_ |
much of the stack is shared actually |
11:00 |
specing |
Do those drivers work if you rm -rf /lib/firmware/{radeon,amdgpu}? |
11:01 |
tango_ |
specing: no modern gpu works without firmware |
11:01 |
specing |
You are quite possibly correct |
11:01 |
tango_ |
specing: not even your igp |
11:01 |
specing |
It is also why my last experience was 8+ years ago |
11:02 |
specing |
the igpu works without firmware |
11:02 |
tango_ |
specing: no, the firmware is just loaded by the BIOS |
11:02 |
specing |
it may have mask rom firmware, but I doubt it |
11:03 |
specing |
The GMA4500HD has none, it is not loaded by the BIOS because there is no BIOS |
11:03 |
specing |
The gaming pc one might have it, but if it does, it is loaded by the BIOS |
11:04 |
tango_ |
specing: what do you mean there is no bios |
11:04 |
specing |
I still doubt it. The firmware loading was included in Skylake, mine is ivy bridge |
11:05 |
specing |
There is no BIOS, it was replaced by Libreboot (Coreboot+GRUB) |
11:05 |
tango_ |
specing: are you bypassing the IME? |
11:05 |
specing |
Libreboot turns it off on gm45 |
11:06 |
tango_ |
oh, interesting |
11:07 |
|
Fusl joined #minetest |
11:08 |
specing |
This laptop also has some radeon GPU, which does not work as there is no FOSS VBIOS replacement |
11:08 |
specing |
as such, it cannot be initialised with free software code |
11:09 |
specing |
Which is also why I claim that there is no such thing as a free software radeon driver, they all depends on blobs of various sizes |
11:09 |
specing |
some of them in /lib/firmware are very large |
11:13 |
specing |
I think it still draws power, need to figure out which components to depopulate off the motherboard to completely disable it |
11:16 |
|
Jhalman joined #minetest |
11:39 |
|
aheinecke joined #minetest |
11:58 |
|
Fusl joined #minetest |
12:14 |
|
jluc joined #minetest |
12:18 |
|
SwissalpS joined #minetest |
12:18 |
|
erlehmann joined #minetest |
12:21 |
|
Fusl joined #minetest |
12:21 |
|
hecks joined #minetest |
12:28 |
|
Fixer joined #minetest |
12:45 |
|
Lukwe joined #minetest |
12:49 |
hecks |
so I've been getting intermittent issues with ObjectRef:get_pos returning nil |
12:49 |
hecks |
Initially I thought it was a problem with the server yanking entities from under me, but I backported sorcerykid's on_deactivate and |
12:50 |
hecks |
get_pos actually returns nil inside that callback every time |
12:55 |
hecks |
sfan5 |
12:57 |
sfan5 |
uh well |
12:57 |
sfan5 |
objects marked for deactivation are not available to lua anymore |
12:58 |
sfan5 |
so you have to ensure that happens in the right order |
12:59 |
MTDiscord |
<srinivas> EFI ftw? |
12:59 |
MTDiscord |
<srinivas> oof |
13:02 |
|
Wuzzy joined #minetest |
13:08 |
|
turtleman joined #minetest |
13:16 |
hecks |
And when does this marking happen exactly? |
13:54 |
sfan5 |
¯\_(ツ)_/¯ |
13:55 |
sfan5 |
look into the unloading methods in serverenvironment.cpp |
13:57 |
hecks |
looks like a matter of finding all the code that touches m_pending_removal and m_pending_deactivation |
13:59 |
|
kamdard joined #minetest |
14:02 |
Helenah |
How do I debug while wheat and cotton wont grow all of a sudden? |
14:02 |
|
Jhalman joined #minetest |
14:14 |
|
olliy joined #minetest |
14:16 |
hecks |
Helenah: you can start here https://github.com/minetest/minetest_game/blob/e6aec880decf52d5e6db6ab005c04a7ef60b1156/mods/farming/api.lua#L191 |
14:26 |
|
lisac joined #minetest |
14:39 |
|
hecks joined #minetest |
14:40 |
rti |
Hi. I am looking for a way to host Minetest worlds. My main requirement is, that I need non tech ppl to be able to spin up world easily. Is there a solution already built/available? Like a Minetest server control panel which is able to mange Minetest server instances? For Minecraft there is https://gitlab.com/crafty-controller/crafty-web/-/wikis/Web-Console/Server-Management |
14:42 |
Helenah |
rti: For worlds, I don't think there is and that's... risky... |
14:42 |
Helenah |
The best approach would be to allow them to spin up their own servers |
14:42 |
Helenah |
You can use pufferpanel (free) |
14:43 |
Helenah |
Reason why I say allowing them to spin up their own worlds is risky because you'll have a single instance of the minetest engine where many people are spinning up loads of worlds, this is not good. Also, I think with the way minetest works, worlds would be stacked which also isn't good. |
14:44 |
|
I_am_6r1d joined #minetest |
14:45 |
Helenah |
rti: Your best bet would be to use pufferpanel to aid you in providing a virtual minetest hosting solution where which minetest server is on its own port, the customer can use SRV DNS records to point sub domains to their server port(s). |
14:46 |
rti |
Helenah: Thank you so much. Pufferpanel is exactly what I was looking for. I could have never guessed that name :D |
14:46 |
rti |
Thanks again! |
14:47 |
Helenah |
rti: It says it's for Minecraft server deployment, but when I've checked it out myself, it will also deploy Minetest. |
14:48 |
rti |
Helenah: Ok, as it has a plugin arch, adding minetest as a plugin should not be that hard after all either. I will look into this! |
14:51 |
Helenah |
rti: The UI allows you to choose what server you would like to deploy whether that be vanilla, bukkit/spigot/paper, forge, couldron/thermo or even some mod/plugin pack, even minetest. |
14:52 |
rti |
Perfect |
14:52 |
|
Verticen joined #minetest |
14:54 |
|
Fixer_ joined #minetest |
15:04 |
|
rti joined #minetest |
15:37 |
Helenah |
hecks: What do I do with that bit of code? |
15:38 |
Helenah |
hecks: All I know is 2 days ago wheat and cotton grew. |
15:41 |
hecks |
You can check what it needs to grow and how it's called, maybe it was some config option you've changed, maybe the server is failing to run timers for some reason |
15:42 |
|
calcul0n_ joined #minetest |
15:44 |
|
Pest|2 joined #minetest |
15:51 |
|
Lukwe joined #minetest |
16:03 |
Gustavo6046 |
Ingar: OpenGL shaders are generally slower than classic surfaces |
16:04 |
Helenah |
o.o |
16:04 |
Helenah |
Oh Gustavo6046 ! |
16:04 |
Gustavo6046 |
(I don't know how to call it, I nick it "hardware Quake" lol) |
16:04 |
|
kawaiipunk joined #minetest |
16:05 |
Gustavo6046 |
specing: if I chance the ID of a node, does minetest.register_alias allow me to maintain backwards compatibility?? |
16:05 |
Gustavo6046 |
er, one single question mark, oops |
16:06 |
Gustavo6046 |
Ah, it can |
16:07 |
sfan5 |
you mean the name? yes |
16:07 |
sfan5 |
nodes have (numeric) IDs internally but as a modder you cannot control what those are |
16:07 |
Gustavo6046 |
ah |
16:07 |
Gustavo6046 |
yeah, the name |
16:07 |
Gustavo6046 |
thanks |
16:09 |
Gustavo6046 |
also |
16:09 |
Gustavo6046 |
is it a normal thing to do pull requests on Minetest mod repos on github? |
16:09 |
sfan5 |
mod authors usually accept contributions yes |
16:09 |
hecks |
sure |
16:09 |
Gustavo6046 |
PilzAdam's original was last updated March 31st, 2019 |
16:09 |
Gustavo6046 |
https://github.com/PilzAdam/farming_plus |
16:10 |
hecks |
if a repo appears inactive, consider just forking and adopting the mod |
16:10 |
sfan5 |
!mod farming_plus |
16:10 |
MinetestBot |
sfan5: [farming_plusplus] farming_plus fork by MTDad - https://forum.minetest.net/viewtopic.php?t=10187 - https://github.com/MTDad/farming_plusplus |
16:10 |
sfan5 |
hm |
16:10 |
sfan5 |
I think most people just use farmind_redo these days |
16:10 |
sfan5 |
so not much point in looking into farming_plus |
16:13 |
Gustavo6046 |
And then there are my edits, which I don't know if they work that well with the mod. There is a quirk or two, eg. the Grassiness value infotext is mostly for debug, I will definitely remove it from a wider release (like a PR), but if I find a better way to show the timeout value on tilled soil without much nodetype magick I will do. https://github.com/Gustavo6046/farming_plus |
16:18 |
tango_ |
farming_redo so called because people had ran out of plusses |
16:38 |
|
I_am_Grid joined #minetest |
16:39 |
|
AndDT joined #minetest |
16:56 |
Helenah |
tango_: Oh, I didn't know I needed farming_redo instead. o.o |
16:56 |
|
ramirez joined #minetest |
16:56 |
Helenah |
damn |
16:56 |
Gustavo6046 |
tango_: lol |
16:56 |
Gustavo6046 |
farming++ |
16:57 |
Helenah |
How do I change the kick for inactivity time? |
17:05 |
|
illwieckz joined #minetest |
17:09 |
|
calcul0n__ joined #minetest |
17:17 |
|
illwieckz joined #minetest |
17:21 |
|
Hawk777 joined #minetest |
17:24 |
|
ramirez joined #minetest |
17:31 |
|
hecks joined #minetest |
17:43 |
|
ramirez joined #minetest |
17:47 |
|
rti joined #minetest |
17:57 |
|
MDude joined #minetest |
18:06 |
MinetestBot |
[git] Thomas--S -> minetest/minetest: Formspec: Allow to specify frame loop for model[] (#10679) d0a38f6 https://git.io/JL3Ut (2020-12-15T18:06:36Z) |
18:06 |
MinetestBot |
[git] wsor4035 -> minetest/minetest: lua_api.txt: Add mod_orgin to node def (#10697) 3ed940f https://git.io/JL3Uq (2020-12-15T18:05:55Z) |
18:16 |
MinetestBot |
[git] lhofhansl -> minetest/minetest: Allow configuring block disk and net compression. Change default disk… e638056 https://git.io/JL3kY (2020-12-15T18:15:25Z) |
18:20 |
|
Conradish006 joined #minetest |
18:33 |
|
homthack joined #minetest |
18:42 |
|
calcul0n joined #minetest |
18:47 |
|
olliy joined #minetest |
18:51 |
|
proller joined #minetest |
18:54 |
|
fluxflux joined #minetest |
19:51 |
|
FreeFull joined #minetest |
20:04 |
|
I_am_6r1d joined #minetest |
20:06 |
|
Fixer joined #minetest |
20:10 |
|
homthack joined #minetest |
20:10 |
|
GyurisDani[m] joined #minetest |
20:13 |
|
SwissalpS joined #minetest |
20:14 |
|
homthack82 joined #minetest |
20:15 |
|
olliy joined #minetest |
20:15 |
tango_ |
wtf I'm getting kicked out from an unlisted server because minetest cannot connect to its server list? |
20:16 |
tango_ |
and that's without even considering the issue of getting disconnected while underwater basically guaranteeing you'll die |
20:18 |
sfan5 |
huh? |
20:20 |
|
Peppy joined #minetest |
20:27 |
|
I_am_6r1d joined #minetest |
20:32 |
|
Fixer_ joined #minetest |
20:39 |
|
proller joined #minetest |
20:40 |
|
Fixer joined #minetest |
20:41 |
|
Wuzzy joined #minetest |
20:41 |
|
silwol joined #minetest |
20:56 |
MTDiscord |
<Abdu> Is the 5.4.0 dev input lag (sometimes can't select an item in the hotbar) android specific or across all platforms? |
21:09 |
|
alex-resist joined #minetest |
21:18 |
|
kamdard joined #minetest |
21:57 |
Helenah |
I've built a tunnel which I intend for people to pass through safely... |
21:57 |
Helenah |
Those yellow monsters from mc_mobs are spawning there... how do I stop that without using mods to disable their spawn? |
22:01 |
|
ramirez joined #minetest |
22:12 |
|
Jhalman joined #minetest |
22:13 |
|
nathanfranke[m] joined #minetest |
22:21 |
specing |
Gustavo6046: I don't know, I mainly do client side modding |
22:37 |
|
SwissalpS1 joined #minetest |
22:38 |
|
SwissalpS joined #minetest |
22:40 |
|
Jhalman joined #minetest |
23:08 |
|
Taoki joined #minetest |
23:26 |
|
Taoki joined #minetest |