Time |
Nick |
Message |
00:02 |
|
milkt joined #minetest |
00:15 |
|
ronoaldo joined #minetest |
00:40 |
|
garywhite1 joined #minetest |
01:14 |
|
Fixer_ joined #minetest |
01:24 |
|
gry joined #minetest |
01:33 |
|
Seirdy joined #minetest |
01:48 |
Gustavo6046 |
People still use Pipeworks? |
01:49 |
Gustavo6046 |
Is it compatible with Tubelib? |
01:50 |
Gustavo6046 |
How do the two compare? |
01:50 |
Gustavo6046 |
And what is the state of the art for automatic items transport? |
01:57 |
Conradish006 |
Pipeworks is the best |
01:58 |
Gustavo6046 |
mhm |
01:58 |
Conradish006 |
Especially the lua controlled tubes |
02:49 |
|
TechDude joined #minetest |
02:52 |
SwissalpS |
If possible, I prefer a combo of Lua Controller with Digiline Detector tubes over Lua Sorting Tubes. The Lua Tubes have a weird way of reversing output events and sometimes simply fail. It seems they can't load Lua part as fast as the items in tubes load. |
03:05 |
|
Hawk777 joined #minetest |
03:11 |
MTDiscord |
<exe_virus> apparently it is possible to force disable the "enable damage" setting, does anyone know how to do so? |
04:26 |
|
xor joined #minetest |
04:41 |
|
Boingo joined #minetest |
04:53 |
|
Boingo joined #minetest |
04:58 |
|
Boingo joined #minetest |
05:00 |
|
MTDiscord joined #minetest |
05:08 |
|
Seirdy joined #minetest |
05:31 |
|
Seirdy joined #minetest |
05:40 |
|
galex-713 joined #minetest |
06:40 |
|
gry joined #minetest |
06:56 |
MTDiscord |
<JoSto> It may see that a bit biased, but: - pipeworks has the better visual animation which helps when looking for errors in the construction - tubelib is more server friendly because "lean and efficient" was the first design goal |
07:45 |
|
TomTom joined #minetest |
08:00 |
|
ShadowNinja joined #minetest |
08:11 |
|
Ruud joined #minetest |
08:23 |
|
Elouin joined #minetest |
08:56 |
|
Zetta1Reid0 joined #minetest |
08:58 |
Zetta1Reid0 |
Wanna ask . Why doesn't minetest support C++ modding |
09:04 |
anuke[m] |
1. malware because why would a player check the source code before downloading a fishy library |
09:04 |
anuke[m] |
2. having to compile for many platforms |
09:07 |
|
FeXoR joined #minetest |
09:09 |
Zetta1Reid0 |
You can get malware from lua code too . Dont forget you can use non minetest code too in lua script. Also user wont check code either way |
09:17 |
|
calcul0n__ joined #minetest |
09:54 |
anuke[m] |
yeah but youd have to disable sandboxing for that mod |
09:54 |
anuke[m] |
if you do that without reading the code you pretty much deserve to get rm -rf /*'d or whatever |
09:55 |
* Scarecrow |
is not going to compile mods for musl-arm |
09:56 |
Scarecrow |
anything that requires engine-level abuse should be exposed in a general way to the environment mods run in anyway |
10:00 |
|
troller joined #minetest |
10:01 |
blaise |
lol |
10:12 |
|
Lunatrius joined #minetest |
10:20 |
|
Conradish006 joined #minetest |
10:26 |
Zetta1Reid0 |
Even if regular users do read the code , do you think they will understand anything . Except if programmer didnt put a big comment "here starts driver erase" :D |
10:30 |
Zetta1Reid0 |
Anyways from Security point it is unsecure for sure . But c++ gives you access to all code . Not just 1 developer exports to lua |
10:48 |
rubenwardy |
Lua mods are sandboxed |
10:48 |
rubenwardy |
the main reasons are needing to compile for many problems, unstable C++ ABIs, and a preference for Lua |
11:04 |
|
mazes_81 joined #minetest |
11:10 |
|
alex-resist joined #minetest |
11:12 |
Gustavo6046 |
:o |
11:12 |
Gustavo6046 |
my changes were merged |
11:29 |
|
duckie joined #minetest |
11:33 |
MTDiscord |
<exe_virus> Zeta: the lua is sandboxed for sure, the only endpoints that could currently allow issues are c++ functions we have exposed to lua |
11:33 |
MTDiscord |
<exe_virus> Lua is used professionally like this all the time, even luaJIT |
11:55 |
|
Fixer joined #minetest |
11:57 |
rubenwardy |
"But c++ gives you access to all code" How's is reflection in C++? I'm not sure this is true |
12:00 |
MTDiscord |
<appguru> You can already mod in C++ |
12:00 |
MTDiscord |
<appguru> All you got to do is fork the engine :] |
12:02 |
MTDiscord |
<exe_virus> C++ has no built in reflection |
12:02 |
MTDiscord |
<exe_virus> C++ doesn't really "mod" well |
12:02 |
rubenwardy |
I didn't think so |
12:03 |
MTDiscord |
<exe_virus> You can "patch" executables |
12:03 |
rubenwardy |
one area that C++ mods would be good at would be with mapgen |
12:03 |
rubenwardy |
as they're mostly self contained and need good performance |
12:03 |
rubenwardy |
you'd expose a C API for good ABI |
12:03 |
MTDiscord |
<exe_virus> We could do a better job of exposing the mapgen to lua |
12:03 |
sfan5 |
the sane way to do native mods is to expose a clearly specified API in C just like with Lua |
12:03 |
sfan5 |
no mucking around with engine internals |
12:04 |
rubenwardy |
in which case, it doesn't allow you to do more |
12:04 |
sfan5 |
yeah, not more just better |
12:04 |
rubenwardy |
for a truly powerful C++ API, you'd need a more modular and datadriven structure. And perhaps compiled in mods |
12:04 |
rubenwardy |
that's not going to happen |
12:04 |
MTDiscord |
<exe_virus> It can't, basically |
12:05 |
MTDiscord |
<exe_virus> Without being completely insecure |
12:05 |
rubenwardy |
well yeah, that's implied |
12:05 |
rubenwardy |
we don't even allow Lua bytecode |
12:05 |
MTDiscord |
<exe_virus> For good reasons |
12:05 |
MTDiscord |
<exe_virus> That's the most** insecure |
12:06 |
MTDiscord |
<exe_virus> What if we exposed mapgens to shaders ... |
12:07 |
rubenwardy |
interesting idea to use compute shaders for that |
12:07 |
rubenwardy |
I suggest trying it |
12:07 |
rubenwardy |
not in MT ofc |
12:07 |
MTDiscord |
<exe_virus> Why not in mt? |
12:07 |
rubenwardy |
because overhead |
12:07 |
MTDiscord |
<exe_virus> I guess cause vps don't have a gpu typically |
12:07 |
rubenwardy |
better to do a proof of concept first |
12:08 |
rubenwardy |
well, that to |
12:08 |
rubenwardy |
*too |
12:08 |
sfan5 |
it also doesn't work on embedded GPUs (phones) |
12:08 |
sfan5 |
well, doesn't = very unlikely to be supported |
12:08 |
rubenwardy |
yeah, this is interesting but not very portable |
12:08 |
MTDiscord |
<exe_virus> Right |
12:11 |
MTDiscord |
<exe_virus> Either way, I suspect we can get better mapgen integration with lua than we currently do |
12:15 |
sfan5 |
https://github.com/minetest/minetest/issues/10800 |
12:19 |
|
erlehmann joined #minetest |
12:25 |
|
FeXoR joined #minetest |
12:47 |
Zetta1Reid0 |
"How's is reflection in C++?" : Didn't get that . Also when you have to compile the whole engine it is not a mod anymore . |
12:52 |
|
qj joined #minetest |
12:52 |
|
qj joined #minetest |
13:01 |
Zetta1Reid0 |
A simple way to load mods would be dynamic loading like done in gmodule load from glibc |
13:14 |
rubenwardy |
Reflection is the ability to find out information about objects and functions at runtime, and modify them |
13:15 |
rubenwardy |
It looks like C++ mods would not allow access to all code anymore than Lua mods do |
13:17 |
rubenwardy |
Perhaps you'd have access to all public functions and classes, but you wouldn't be able to hook into any where that isn't exposed |
13:28 |
|
awell joined #minetest |
13:29 |
|
erlehmann joined #minetest |
13:29 |
Zetta1Reid0 |
Unless you subclass the classes |
13:30 |
rubenwardy |
that requires virtual methods and you need a way to inject the subclasses |
13:30 |
rubenwardy |
this is possible if you designed the code in a certain way from the beginning, but: |
13:30 |
rubenwardy |
<rubenwardy> for a truly powerful C++ API, you'd need a more modular and datadriven structure. |
13:30 |
rubenwardy |
<rubenwardy> that's not going to happen |
13:35 |
Zetta1Reid0 |
Why ? |
13:38 |
rubenwardy |
because a massive rewrite is not justified |
13:45 |
|
fleeky_ joined #minetest |
13:47 |
|
Zetta1Reid0 joined #minetest |
13:53 |
|
nly joined #minetest |
13:53 |
nly |
require() is disabled |
13:53 |
|
erlehmann joined #minetest |
13:54 |
nly |
can i disable mod security for just mymod? |
13:55 |
|
erlehmann joined #minetest |
14:01 |
MTDiscord |
<exe_virus> You can, but only on your machine |
14:01 |
rubenwardy |
nly: secure.trusted_mods |
14:01 |
MTDiscord |
<exe_virus> Add it to trusted nods and request an insecure environment |
14:02 |
rubenwardy |
then ie = minetest.request_insecure_environment() and ie.require |
14:02 |
rubenwardy |
secure.trusted_mods is a .conf setting |
14:03 |
|
Flabb joined #minetest |
14:12 |
|
TechDude joined #minetest |
14:14 |
nly |
mod.conf -> secure.trusted_mods = mymod |
14:14 |
nly |
init.lua -> minetest.request_insecure_environment() |
14:15 |
rubenwardy |
minetest.conf not mod.conf |
14:15 |
rubenwardy |
it's a user setting |
14:15 |
nly |
ah yes, minetest.conf |
14:15 |
rubenwardy |
it wouldn't be very secure if a mod could just go "yes, you can trust me" |
14:16 |
|
macc24 joined #minetest |
14:16 |
nly |
dint work |
14:16 |
rubenwardy |
are you requiring lua code? |
14:16 |
rubenwardy |
have you made sure ie.package.path is as expected? |
14:17 |
|
submariner joined #minetest |
14:20 |
|
submariner joined #minetest |
14:24 |
nly |
ie = mintest.request_insecure_environment() |
14:24 |
nly |
local socket = ie.require("socket") |
14:25 |
nly |
attempt to index global 'ie' (a nil value) line 38 |
14:25 |
sfan5 |
evidently it did not return an insecure environment, did you check the output? warnings? errors? |
14:26 |
nly |
maybe socket is not present in my libs |
14:27 |
|
submariner joined #minetest |
14:27 |
|
Zetta1Reid0 joined #minetest |
14:29 |
rubenwardy |
> attempt to index global 'ie' (a nil value) line 38 |
14:29 |
rubenwardy |
means you didn't edit trusted mods |
14:29 |
rubenwardy |
also, local |
14:29 |
rubenwardy |
local ie = |
14:30 |
|
erlehmann_ joined #minetest |
14:37 |
|
numzero joined #minetest |
14:41 |
|
Boingo joined #minetest |
14:53 |
|
absurb joined #minetest |
15:00 |
|
kamdard joined #minetest |
15:08 |
|
rubenwardy joined #minetest |
15:16 |
|
submariner joined #minetest |
15:18 |
daiNoZord |
with after_place_node, I (try to) make sure "player" has a value - so local player = placer:get_player_name(), but then any attempt to call player:get_meta() crashes as get_meta() is a nil value. Did I miss a step? |
15:20 |
sfan5 |
post the relevant excerpt from your code |
15:21 |
Krock |
we're supposed to guess it |
15:23 |
daiNoZord |
no it's basically that with all the comments and other things removed - sorry was tidying it up https://pastebin.pl/view/b2112426 |
15:23 |
daiNoZord |
to make it readable |
15:23 |
Krock |
{} -> postr |
15:23 |
Krock |
set_string expects a string |
15:24 |
Krock |
and placer != player |
15:24 |
sfan5 |
"placer" is the player object, what you did was set "player" to the name of the player |
15:24 |
sfan5 |
get_meta is a method that operates on a player object |
15:25 |
daiNoZord |
if i change placer to player then player becomes a nil value |
15:27 |
daiNoZord |
and I thought set_string required both a key and a value? |
15:29 |
daiNoZord |
and if i remove the line player:get_player_name() then player is also nil |
15:30 |
sfan5 |
you need to call placer:set_meta |
15:32 |
daiNoZord |
ah.. fancy that! it doesn't crash now on placing the node.. thanks! :) |
15:32 |
MTDiscord |
<IhrFussel> Or you change 'placer' to 'player' inside the (...,...,...) |
15:46 |
|
olliy joined #minetest |
16:09 |
|
troller joined #minetest |
16:11 |
|
nlyy joined #minetest |
16:13 |
nlyy |
attempt to index local 'ie' (a nil value) |
16:13 |
nlyy |
but i got secure.trusted_mods = opmod in ~/.minetest/minetest.conf |
16:13 |
rubenwardy |
did you close and reopen MT? |
16:14 |
nlyy |
so many times.. |
16:14 |
nlyy |
i deleted my world. rip |
16:20 |
rubenwardy |
what's the code? |
16:20 |
rubenwardy |
is the mod name different `opmod` |
16:24 |
nly |
this https://git.sr.ht/~op/opmod/tree/master/item/init.lua |
16:25 |
rubenwardy |
ah |
16:25 |
rubenwardy |
needs to be in the root of the init.lua |
16:25 |
rubenwardy |
like, not in a function |
16:30 |
|
kamdard joined #minetest |
16:40 |
nlyy |
thanks |
16:43 |
|
nly left #minetest |
16:47 |
daiNoZord |
sorry to keep asking - but when I try to retrieve that string on_punch.. i get a nil value. please excuse the commented-out bits, they show other approaches: https://pastebin.pl/view/32ad9531 |
16:48 |
|
calcul0n_ joined #minetest |
16:49 |
|
Verticen joined #minetest |
16:49 |
MTDiscord |
<Jonathon> did you set the string anywhere? |
16:50 |
daiNoZord |
ah yes - after_place in another node |
16:50 |
MTDiscord |
<Jonathon> did you place that node before punching this one? |
16:51 |
daiNoZord |
yes its placed |
16:52 |
daiNoZord |
i get: Invalid position coordinate 'x' (expected number got nil) |
16:53 |
MTDiscord |
<Jonathon> from which line? |
16:53 |
daiNoZord |
set_pos |
16:54 |
MTDiscord |
<Jonathon> where does postr come from? |
16:54 |
daiNoZord |
https://pastebin.pl/view/cfbc4d98 |
16:55 |
MTDiscord |
<Jonathon> local spos = minetest.string_to_pos(postr) should be local spos = minetest.string_to_pos(rmeta) |
16:55 |
MTDiscord |
<Jonathon> i think is what you want |
16:56 |
daiNoZord |
ah i get the same error |
16:57 |
MTDiscord |
<Jonathon> since it looks like your putting postr(in after_place_node) in player meta to save it, then you should get back from there |
17:02 |
|
milkt joined #minetest |
17:05 |
daiNoZord |
darn curly braces! Thanks Jonathon, it works :) |
17:07 |
|
Verticen_ joined #minetest |
17:12 |
|
craigger joined #minetest |
17:31 |
LoneWolfHT |
Was this ever considered as an engine replacement? They just had a 2.0 release 9 days ago https://github.com/horde3d/Horde3D |
17:32 |
|
Wuzzy joined #minetest |
17:34 |
rubenwardy |
never heard of it |
17:35 |
LoneWolfHT |
Maybe I'm thinking of Ogre3d |
17:37 |
|
Mahjong joined #minetest |
17:41 |
|
Talkless joined #minetest |
17:50 |
|
Mahjong joined #minetest |
17:52 |
|
ShadowBot joined #minetest |
17:53 |
|
galex-713 joined #minetest |
18:01 |
|
Mahjong left #minetest |
18:10 |
|
Taoki joined #minetest |
18:31 |
|
proller joined #minetest |
18:34 |
|
Hawk777 joined #minetest |
18:48 |
daiNoZord |
is arena_lib a thing to use to reset an environment - an arena - ie chest inventories, node positions (including falling nodes) etc? |
18:49 |
rubenwardy |
I believe that mod is more about having multiple minigames at once on a server, their worlds tend to be readonly to avoid the unpredictable server freezers |
18:49 |
rubenwardy |
Zughy[m]1: can answer that |
18:50 |
daiNoZord |
ah ok thanks. I can possibly achieve a reset of certain things with node timers? |
18:51 |
rubenwardy |
on CTF, the world is saved as a schematic. It's then placed when a new world starts |
18:51 |
rubenwardy |
this allows each map to be git versioned in a folder |
18:51 |
rubenwardy |
however, on a server with multiple minigames at once this isn't viable |
18:51 |
rubenwardy |
you could use readonly backup databases and delete area |
18:51 |
rubenwardy |
Minetest supports having two .sqlite file |
18:52 |
rubenwardy |
one contains changes, one is readonly. Minetest reads from the changes before reading from readonly |
18:52 |
rubenwardy |
this means you can put things in readonly, play a game, and then delete the area to read from readonly again |
18:52 |
rubenwardy |
you could also do clever stuff with LVMs and storing which nodes have changed |
18:52 |
|
Mahjong joined #minetest |
18:52 |
rubenwardy |
but it's not always possible to keep track of changes, callbacks tend to be partially unreliabl |
18:53 |
rubenwardy |
for example: LVMs don't call callbacks |
18:54 |
Krock |
if there's lvm support, when will there be lvm2?! |
18:54 |
daiNoZord |
ah.. ok.. but if a game ends.. manually loading a schem (like with worldedit) would work wouldn't it? so (sorry if im simplifying it..) but shouldn't it be possible to automate that? |
18:55 |
MinetestBot |
[git] rubenwardy -> minetest/minetest: Fix short_description fallback order (#10943) a8f6bef https://git.io/JtM7n (2021-02-17T18:53:44Z) |
18:57 |
rubenwardy |
daiNoZord: yes, if you only have one game at a time you can use schematics |
18:57 |
rubenwardy |
that's what CTF does |
18:57 |
rubenwardy |
it takes about 8 seconds to place IIRC |
18:57 |
rubenwardy |
most of that is light calcs |
18:58 |
rubenwardy |
https://github.com/MT-CTF/capturetheflag/blob/master/mods/ctf/ctf_map/ctf_map_core/schem_map.lua#L332 |
18:59 |
daiNoZord |
But you can place schems in game using WE. There must be a way of resetting various areas depending on a "condition" being met |
18:59 |
daiNoZord |
ie by placing schems |
18:59 |
rubenwardy |
...? |
18:59 |
rubenwardy |
I don't get what you mean |
18:59 |
rubenwardy |
When a new match starts in CTF, it places a schematic for the new map |
19:00 |
rubenwardy |
if this were done on the same location it would reset the map |
19:01 |
daiNoZord |
u say schems can only be used to reset one minigame, but surely a number of different areas can be reset in the same way? I can place buildings etc all day long... there must be a way to reset individual areas depending on when a specific condition is met |
19:02 |
rubenwardy |
I still don't get the question |
19:02 |
rubenwardy |
what do you mean by reset? |
19:02 |
rubenwardy |
To mapgen? |
19:02 |
rubenwardy |
To some predefined state? |
19:03 |
rubenwardy |
I don't get the question because I never said that it's not possible to reset other types of area |
19:03 |
rubenwardy |
you can use the same technique on any position of the map |
19:03 |
daiNoZord |
ok so a game ends and all players (objects_inside_radius) are teleported away - then when a new player hits a block and is teleported into the "lobby", then maybe objects_inside radius could be used to set a aschem |
19:04 |
daiNoZord |
oh sorry i misunderstood |
19:04 |
daiNoZord |
*a schem |
19:04 |
daiNoZord |
and this could be done in multiple locations? |
19:05 |
|
submariner joined #minetest |
19:08 |
|
delta23 joined #minetest |
19:08 |
daiNoZord |
ah you said the world is saved as a schematic - I would only be saving small areas |
19:09 |
rubenwardy |
the world in CTF is only 200x100x200 |
19:09 |
rubenwardy |
I also said "map" |
19:09 |
rubenwardy |
<daiNoZord> and this could be done in multiple locations? |
19:09 |
rubenwardy |
Yes, you can place a schematic wherever you like |
19:10 |
daiNoZord |
rubenwardy: on CTF, the world is saved as a schematic. It's then placed when a new world starts |
19:10 |
daiNoZord |
ok thanks ill look into that |
19:10 |
rubenwardy |
oops |
19:11 |
daiNoZord |
if that's a suitable way of returning an area to a "default" state then that's the method i'll try to employ :) |
19:16 |
Zughy[m]1 |
daiNoZord: the arena reset won't be available till 7.0 (meaning not soon, we're on 4.6) => https://gitlab.com/zughy-friends-minetest/arena_lib/-/milestones/32 |
19:16 |
Zughy[m]1 |
so you have to do it manually, like Skywars does (you can find it on CDB) |
19:17 |
daiNoZord |
ah ok thanks Zughy[m]1 - i'll go look at that now :) |
19:20 |
|
homthack joined #minetest |
19:29 |
daiNoZord |
haha.. skywars seems to be missing the islands.. |
19:33 |
|
FeXoR joined #minetest |
19:51 |
MinetestBot |
[git] rubenwardy -> minetest/minetest: Add nametag background setting and object property (#10937) f85e9ab https://git.io/JtMdD (2021-02-17T19:51:28Z) |
19:58 |
|
bulldozer joined #minetest |
20:11 |
|
Verticen_ joined #minetest |
20:11 |
|
bulldozer joined #minetest |
20:21 |
|
galex-713 joined #minetest |
20:55 |
|
ShadowNinja joined #minetest |
20:57 |
Sven_vB |
hi :) |
21:19 |
Sven_vB |
how can I start my singleplayer world directly? with "minetest --name singleplayer --world worlds/test --go" I get "ERROR[Main]: Access denied. Reason: Player name not allowed.", but without --name, I start with a wrong name and thus empty inventory. |
21:19 |
Sven_vB |
using MT 5.3.0 on Ubuntu focal |
21:30 |
LoneWolfHT |
Does it work without the --name? |
21:40 |
sfan5 |
yes you need to omit that |
22:05 |
|
jess joined #minetest |
22:09 |
|
submariner joined #minetest |
22:11 |
|
submariner joined #minetest |
22:17 |
|
submariner joined #minetest |
22:18 |
|
qj joined #minetest |
22:20 |
|
deltaepsilon23 joined #minetest |
22:21 |
|
Fixer_ joined #minetest |
22:26 |
|
submariner joined #minetest |
22:34 |
|
submariner joined #minetest |
22:42 |
|
Jhalman joined #minetest |
23:05 |
|
olliy joined #minetest |
23:06 |
|
olliy_ joined #minetest |
23:07 |
|
qj joined #minetest |
23:32 |
|
search_social joined #minetest |
23:57 |
|
fluxflux joined #minetest |