Time |
Nick |
Message |
00:00 |
paramat |
off by default to not break old worlds |
00:01 |
paramat |
to avoid straight-edged biome borders if snowbiomes are added to an old world |
00:03 |
|
troller joined #minetest-dev |
00:10 |
Taoki |
Ah. So it needs to be off forever just for this reason? |
00:11 |
Taoki |
Or just temporarily |
00:11 |
|
VanessaE joined #minetest-dev |
00:11 |
paramat |
yes forever |
00:12 |
paramat |
mgv6 must never break old worlds |
00:22 |
|
troller joined #minetest-dev |
00:25 |
|
proller joined #minetest-dev |
00:33 |
paramat |
biomes are now slightly too small in the 8 biome system of mgv5/v7, i will try out spreads of 750 |
00:36 |
paramat |
custom biome systems like ethereal and BFD tend to have (much) more than 8 biomes so the biomes end up very small |
01:00 |
paramat |
750 is good, i'll prepare a PR |
01:01 |
|
Darcidride joined #minetest-dev |
01:14 |
paramat |
2 for review and possible push in a few hours #2703 #2706 back later |
01:14 |
ShadowBot |
https://github.com/minetest/minetest/issues/2703 -- Mapgen v5/v7: Detect sandstone, enable sandstone brick dungeons by paramat |
01:14 |
ShadowBot |
https://github.com/minetest/minetest/issues/2706 -- Biome API: Increase heat and humidity spreads to 750 by paramat |
01:14 |
|
paramat left #minetest-dev |
01:37 |
|
Wayward_Tab joined #minetest-dev |
01:56 |
|
Miner_48er joined #minetest-dev |
02:21 |
|
Adimgar joined #minetest-dev |
02:39 |
|
luizrpgluiz joined #minetest-dev |
02:40 |
luizrpgluiz |
some doubts, as I generate a tree from treedef without relying on other mods? eg only using the default |
02:40 |
luizrpgluiz |
changed tree generation system? |
02:42 |
|
paramat joined #minetest-dev |
02:49 |
luizrpgluiz |
paramat: changed treedef generation system? |
02:50 |
paramat |
best to ask on minetest channel |
02:52 |
RealBadAngel |
luizrpgluiz, what do you want exactly? |
03:14 |
|
luizrpgluiz left #minetest-dev |
03:24 |
|
OldCoder joined #minetest-dev |
03:24 |
|
chchjesus joined #minetest-dev |
03:39 |
|
paramat left #minetest-dev |
03:39 |
|
FR^3 joined #minetest-dev |
03:42 |
|
FR^3 joined #minetest-dev |
03:49 |
RealBadAngel |
anybody awake? |
03:52 |
|
FR^3 joined #minetest-dev |
04:03 |
|
FR^3 joined #minetest-dev |
04:52 |
|
Zeno` joined #minetest-dev |
05:08 |
* VanessaE |
peeks in |
05:09 |
RealBadAngel |
hi |
05:09 |
VanessaE |
RealBadAngel: what luiz wanted, I think, was some kind of simple way to determine where on the terrain to actually create a tree, and I don't think he wants to use l-system at all |
05:09 |
VanessaE |
rather, I get the impression that he wants to do it with schematics. |
05:10 |
RealBadAngel |
idk |
05:10 |
RealBadAngel |
he mentioned lsystems |
05:10 |
VanessaE |
I don't think such a feature exists within the engine's decoration system, which is what he needs if he doesn't want to rely on a third-party mod |
05:10 |
VanessaE |
but idk |
05:10 |
RealBadAngel |
anyway, a question for ya |
05:10 |
VanessaE |
hm? |
05:10 |
RealBadAngel |
<RealBadAngel> hmmm, im wondering now if minimap should work always in full bright or show terrain with current light |
05:11 |
VanessaE |
combination of both. |
05:11 |
VanessaE |
pilcrow's suggestion has merit |
05:11 |
RealBadAngel |
you mean to show things not that dark as they really are? |
05:11 |
VanessaE |
if you can match the actual in-game lighting, that's really good - but yeah there should be a lower limit |
05:11 |
VanessaE |
yes |
05:11 |
|
Hunterz joined #minetest-dev |
05:12 |
RealBadAngel |
i can fine tune light levels for that |
05:12 |
VanessaE |
because when you think about it, a fully-dark map at night won't actually have much visible if you're in newly-explored terrain |
05:12 |
VanessaE |
i.e. you won't have placed enough torches to mark your position/path/etc |
05:12 |
RealBadAngel |
you can use nightvision then :) |
05:12 |
VanessaE |
heh |
05:13 |
RealBadAngel |
radar mode works pretty much that way |
05:13 |
VanessaE |
a simple multiplier over the in-game lighting table would probably be sufficient |
05:13 |
RealBadAngel |
http://i.imgur.com/eDhCBdV.png |
05:13 |
VanessaE |
wrong link :) |
05:13 |
VanessaE |
I saw the radar mode previously |
05:14 |
RealBadAngel |
we will see if that idea could be used (playable) |
05:16 |
VanessaE |
actually not a multiplier. dark stuff would still be dark. more like log() or something would be better. |
05:19 |
Zeno` |
well, display lighting is already logarithmic curve so, yes... |
05:19 |
Zeno` |
a* |
05:21 |
VanessaE |
Zeno`: I thought the lighting table in minetest was linear? |
05:21 |
VanessaE |
(with some fudge) |
05:21 |
Zeno` |
But brightness is kind of different... you'd need to brighten and then apply gamma |
05:21 |
Zeno` |
is it? |
05:21 |
VanessaE |
when I last saw, yeah |
05:21 |
VanessaE |
mostly linear with a bit of fudging in the middle or some such |
05:22 |
Zeno` |
there is still fudging :( |
05:22 |
Zeno` |
to keep people happy |
05:22 |
Zeno` |
https://github.com/minetest/minetest/commit/3d29be24e089b1c267409f05b897ce3f03e99a07 |
05:23 |
Zeno` |
The fudging is now so that a gamma of 1.8 produces the same light table as before gamma was introduced |
05:23 |
Zeno` |
https://github.com/minetest/minetest/commit/3d29be24e089b1c267409f05b897ce3f03e99a07#diff-1bf86c5e08b07bc255ad8698c565bab6R73 <--- The fudge factors |
05:25 |
Zeno` |
But internally (the light values that RBA is using) does not use these values... they are *display* values only |
05:25 |
Zeno` |
err, well.. maybe not |
05:25 |
Zeno` |
RealBadAngel which light values are you using? |
05:25 |
Zeno` |
:) |
05:25 |
VanessaE |
They're for display ONLY. if you handle them too much, they're not gonna last. |
05:25 |
VanessaE |
wait what? :) |
05:26 |
RealBadAngel |
im using? where? |
05:27 |
RealBadAngel |
night minimaps are an idea by now, not implemented yet |
05:28 |
Zeno` |
I mean where are you getting luminosity from, when you do |
05:28 |
Zeno` |
if you handle them too much? lol |
05:29 |
* Zeno` |
grumbles something about references to movies he's never seen |
05:30 |
RealBadAngel |
i can get light for minimap node from there: https://github.com/minetest/minetest/blob/master/src/mapblock_mesh.cpp#L192 |
05:30 |
RealBadAngel |
same way as engine does for rendering |
05:31 |
Zeno` |
so decoded/display lighting with gamma applied |
05:31 |
RealBadAngel |
propably yes |
05:31 |
Zeno` |
'tis good |
05:33 |
RealBadAngel |
that wont be that much laggy because im gonna call that only for 256 faces per mapblock |
05:33 |
Zeno` |
well it's only a LUT anyway |
05:33 |
Zeno` |
so I doubt it'd be slow in any meaningful measure |
05:34 |
RealBadAngel |
mapblock mesh updates are threaded anyway |
05:34 |
Zeno` |
true |
05:36 |
RealBadAngel |
http://pastebin.com/fKqkDPTg |
05:36 |
RealBadAngel |
this is code from mapblock_mesh for scanning the whole mapblock |
05:36 |
RealBadAngel |
as you can see i can easily insert there light data |
05:38 |
Zeno` |
oh |
05:38 |
Zeno` |
I thought it'd be more complicated than that :) |
05:38 |
Zeno` |
I suppose everything seems simple once it's done/seen hehe |
05:40 |
RealBadAngel |
just when i find top non air node from in the column i call the function linked before with it and node above |
05:40 |
RealBadAngel |
thats all |
05:40 |
Zeno` |
yeah... straightforward |
05:45 |
VanessaE |
RealBadAngel: can't use the engine's heightmap code for finding non-air-top-nodes ? |
05:45 |
Zeno` |
I was waiting for someone to ask that |
06:00 |
|
jin_xi joined #minetest-dev |
06:08 |
RealBadAngel |
VanessaE, im not sure it can provide me enough data |
06:09 |
RealBadAngel |
i need also air nodes count in the column |
06:09 |
RealBadAngel |
thats for radar mode |
06:11 |
VanessaE |
oh. |
06:12 |
RealBadAngel |
wheres that heighmat code you are talkin about btw? |
06:13 |
VanessaE |
I don't remember |
06:13 |
VanessaE |
*pokes hmmmm* |
06:13 |
jin_xi |
hey RealBadAngel good to see you again |
06:14 |
RealBadAngel |
hi |
06:41 |
jin_xi |
hm so cpp is weird at times, or whatever it is that causes this: |
06:41 |
jin_xi |
im trying to call this function and get the same values everytiem https://github.com/minetest/minetest/blob/master/src/particles.cpp#L39 |
06:42 |
jin_xi |
but when it spell out exactly what the function does it works as expected |
06:43 |
|
nore joined #minetest-dev |
06:49 |
kahrl |
jin_xi how do you call it |
06:52 |
jin_xi |
tried this in a particle emitter: Particle.pos = random_v3f(minpos, maxpos); |
06:54 |
kahrl |
how did you check that is always returns the same value? |
06:54 |
kahrl |
it* |
06:56 |
jin_xi |
hm, let me try again, maybe i messed up with lua input |
06:56 |
kahrl |
I recommend printing it directly to dstream in the line after that, I wouldn't rely on the visuals as they might be affected by bugs in the physics / collision detection |
06:57 |
jin_xi |
ok will keep that in mind |
06:57 |
kahrl |
see comments on #2690 |
06:57 |
ShadowBot |
https://github.com/minetest/minetest/issues/2690 -- positions of particle_spawner output not entirely accurate |
06:57 |
jin_xi |
yes i saw that and surely enough it also happens with all of particle code replaced |
06:58 |
jin_xi |
so its probably in collision somewhere as thats the only common thing |
07:27 |
|
cib0 joined #minetest-dev |
07:30 |
|
Calinou joined #minetest-dev |
07:32 |
|
leat joined #minetest-dev |
07:35 |
jin_xi |
welp, parens... |
07:56 |
|
Krock joined #minetest-dev |
08:05 |
|
Yepoleb joined #minetest-dev |
08:11 |
|
kilbith joined #minetest-dev |
09:24 |
|
VargaD_ joined #minetest-dev |
09:32 |
|
cib0 joined #minetest-dev |
09:33 |
|
Aaron101- joined #minetest-dev |
09:36 |
|
friti joined #minetest-dev |
09:37 |
|
Aaron1011 joined #minetest-dev |
09:47 |
|
ElectronLibre joined #minetest-dev |
09:47 |
|
pozzoni joined #minetest-dev |
10:07 |
|
OldCoder joined #minetest-dev |
10:08 |
|
technomancy joined #minetest-dev |
10:11 |
|
selat joined #minetest-dev |
12:08 |
|
cib0 joined #minetest-dev |
12:25 |
|
EvergreenTree joined #minetest-dev |
13:09 |
|
jin_xi joined #minetest-dev |
13:24 |
|
Wayward_Tab joined #minetest-dev |
13:45 |
|
TheWild joined #minetest-dev |
14:28 |
|
hmmmm joined #minetest-dev |
14:30 |
|
prozacgod joined #minetest-dev |
14:30 |
|
cib0 joined #minetest-dev |
14:40 |
|
Calinou joined #minetest-dev |
14:47 |
|
RealBadAngel joined #minetest-dev |
15:03 |
|
daswort joined #minetest-dev |
15:03 |
|
technomancy joined #minetest-dev |
15:26 |
|
celeron55 joined #minetest-dev |
15:36 |
|
Wayward_Tab joined #minetest-dev |
15:59 |
|
Adimgar joined #minetest-dev |
16:04 |
Calinou |
#2707 review please? |
16:04 |
ShadowBot |
https://github.com/minetest/minetest/issues/2707 -- Modified input and output format for /time command by LeMagnesium |
16:08 |
RealBadAngel |
looks ok for me, but what us folks will say? |
16:09 |
RealBadAngel |
still we didnt have 9000 AM or 11000 PM before ;) |
16:24 |
|
cib0 joined #minetest-dev |
16:28 |
hmmmm |
https://github.com/kwolekr/minetest/commit/a6da66299659a832d11c81711dc0fd73ca1602e3 |
16:28 |
hmmmm |
PTAL |
16:30 |
Krock |
Calinou, because you ponted to this, I'll tell you to edit the "params" or /time, make it backwards compatible there aswell |
16:30 |
Krock |
*pointed |
16:30 |
|
est31 joined #minetest-dev |
16:32 |
hmmmm |
2707 LGTM, but a minor improvement would be to fix the spacing between operators |
16:33 |
hmmmm |
wait I take that back, 2707 does not look good to me. copy paste error on line 706, "elseif minutes < 0 or minutes > 23 then" |
16:34 |
est31 |
hmmmm, to the srp discussion from yesterday: the srp packets were +1ed by two people Zeno and nrz, and you said sb else should review it. |
16:34 |
hmmmm |
yeah I didn't get around to that |
16:34 |
hmmmm |
so let's continue where i left off |
16:36 |
ElectronLibre |
hmmm: What do you mean by copy paste error? |
16:36 |
est31 |
because its the same as for hours |
16:36 |
hmmmm |
means whoever wrote it copied and pasted that line of code from somewhere else, in this case two lines above, and forgot to change everything |
16:36 |
ElectronLibre |
I wrote those lines. |
16:36 |
est31 |
if hour < 0 or hour > 23 then |
16:36 |
hmmmm |
oh |
16:36 |
ElectronLibre |
Without copying them. |
16:37 |
hmmmm |
you realize there are 60 minutes in an hour then... correct..? |
16:37 |
|
est31 joined #minetest-dev |
16:37 |
ElectronLibre |
That's what I'm doing right now with all the other things said. |
16:38 |
hmmmm |
sorry, I don't know everyone's username on github |
16:38 |
hmmmm |
didn't know you were here |
16:38 |
est31 |
ElectronLibre, can you also add a space here: local hour,minutes = param:match("^(%d+):(%d+)$") |
16:38 |
ElectronLibre |
est31: Yes I will. hmmm: No problem, very often people don't recognize me. |
16:39 |
est31 |
here too, right after hmmmm's comment core.log("action",name .. " set time " .. newtime) |
16:39 |
hmmmm |
http://dev.minetest.net/Lua_code_style_guidelines |
16:39 |
est31 |
and "sets time" not "set time" |
16:40 |
hmmmm |
probably would be better to say "sets time to" |
16:40 |
hmmmm |
so that's three changes |
16:40 |
est31 |
yea |
16:41 |
ElectronLibre |
I kept the original sentence I guess, so yes, I will do it. |
16:41 |
est31 |
the old message was "sets time" but "to" sounds better |
16:42 |
hmmmm |
est31, in your documentation you have std::string to denote a serialized string |
16:42 |
hmmmm |
does this mean strings serialized in the pascal format? |
16:42 |
hmmmm |
i.e. using serializeString() |
16:42 |
est31 |
is the pascal format with \0 or with length? |
16:43 |
hmmmm |
pascal format strings have a length prefix |
16:43 |
est31 |
yes then I use that |
16:43 |
est31 |
thats what networkpacket does |
16:43 |
hmmmm |
well my point is why name it std::string |
16:43 |
est31 |
because std::string does it the same way? |
16:43 |
hmmmm |
this network protocol has nothing to do with C++ |
16:43 |
est31 |
? |
16:43 |
hmmmm |
and no, std::string has absolutely no definitive memory layout |
16:43 |
hmmmm |
it's implementation dependent |
16:44 |
est31 |
std::string doesn't care for \0s |
16:44 |
est31 |
does it |
16:44 |
hmmmm |
it doesn't, but so what? |
16:44 |
est31 |
so its precisely what we're sending here |
16:44 |
hmmmm |
we are not sending std::strings |
16:44 |
est31 |
but yes we're first serializing them |
16:44 |
hmmmm |
this is a network protocol standard |
16:45 |
est31 |
of course we dont take the binary network layout |
16:45 |
hmmmm |
we're sending sequences of octets with a length prefix |
16:45 |
est31 |
so you want me to write instead "serialized std::string" then? |
16:45 |
hmmmm |
ehh |
16:45 |
est31 |
thats loooong |
16:45 |
hmmmm |
I don't want you to do anything per se |
16:45 |
hmmmm |
dude |
16:46 |
hmmmm |
you have such a crazy aversion to "long" |
16:46 |
hmmmm |
being shorter isn't necessarily better |
16:46 |
hmmmm |
if you want short then why not use an "expressive" language like perl |
16:46 |
hmmmm |
#{@#}${@#$ |
16:46 |
est31 |
lol |
16:46 |
hmmmm |
but no |
16:46 |
est31 |
ok what is your idea :) |
16:46 |
hmmmm |
I'll change the nomenclature all at once |
16:47 |
hmmmm |
this should probably be done separately |
16:47 |
hmmmm |
in any case, there are a couple cases where you send a fixed length of data as a string |
16:47 |
hmmmm |
est, you need to be VERY careful about what you do here before enabling this |
16:48 |
hmmmm |
once you enable this new network version, there's no going back, and whatever mistake you might have made is now cemented into minetest history |
16:48 |
est31 |
when I send fixed lengths its either for flexibility, or I do explicit checks |
16:48 |
ElectronLibre |
I fixed everything and pushed it. #2707 should be ready now. |
16:48 |
hmmmm |
I'm really sorry if things seem to be going slowly but it's needed |
16:48 |
ShadowBot |
https://github.com/minetest/minetest/issues/2707 -- Modified input and output format for /time command by LeMagnesium |
16:48 |
hmmmm |
this is a huge change, and literally every time a large change was rushed, we paid for it |
16:49 |
est31 |
so then, make suggestions :) |
16:49 |
hmmmm |
i'm looking at it |
16:49 |
hmmmm |
ElectronLibre, not to nitpick, but shouldn't "invalid minutes" be "Invalid minute" |
16:49 |
hmmmm |
hour minutes, minutes is plural but hours is not |
16:50 |
hmmmm |
does it sound better to have it as "hours and minutes"? |
16:50 |
hmmmm |
or "hour and minute" |
16:50 |
hmmmm |
you're specifying an exact hour and an exact minute |
16:50 |
hmmmm |
or, an exact hour and some minutes after that hour |
16:50 |
ElectronLibre |
I would say, "hour" and "minute". |
16:50 |
hmmmm |
hmm, I think it's okay like it is now |
16:50 |
hmmmm |
I don't have any preference |
16:51 |
ElectronLibre |
"minutes" is a typo as far as I remember, I wanted it to be singular. |
16:51 |
hmmmm |
okay |
16:52 |
est31 |
std::string was nrz's idea, I only took what was there. len,char[len] has the problem that then people start inventing funny things |
16:52 |
hmmmm |
nrz is not exactly a beacon of good ideas |
16:52 |
est31 |
like "names are never longer than 20 chars, lets send char[20] over the line" |
16:53 |
hmmmm |
oh ElectronLibre, sorry about this again but the word "included" should be "inclusive" |
16:53 |
hmmmm |
i just saw that now |
16:53 |
ElectronLibre |
Ok. I'm not native english speaker so I might have done mistakes in the text. |
16:53 |
est31 |
what I want is some kind of abstraction, I dont care wheter its called std::string or serstring or omgABSTRACT. |
16:53 |
ElectronLibre |
Thanks for pointing all of these. |
16:53 |
hmmmm |
no problem |
16:54 |
hmmmm |
est31: we'll worry about naming later |
16:54 |
hmmmm |
i just want to make sure all the packet formats make sense |
16:54 |
est31 |
ok |
16:54 |
hmmmm |
I still don't 100% understand the sudo mode thing |
16:55 |
hmmmm |
why the hell is the password transmitted over the wire in base64 |
16:55 |
hmmmm |
i realize you didn't make it this way, but I just think it was a decision that never made any sense |
16:56 |
est31 |
it is |
16:56 |
est31 |
should be changed then |
16:56 |
est31 |
you mean FIRST_SRP? |
16:56 |
hmmmm |
anywhere where PASSWORD_SIZE is used |
16:57 |
est31 |
ummm PASSWORD_SIZE is for legacy clients |
16:57 |
hmmmm |
ahh |
16:57 |
est31 |
I don't touch that anymore |
16:57 |
hmmmm |
yeah, so then in FIRST_SRP |
16:57 |
est31 |
I'll review whether its base64 encoded there, and if it is, then I'll binary code it |
16:58 |
est31 |
(we have no plaintext protocol like SMTP where you base64 attachments and bloat emails size) |
17:00 |
hmmmm |
so wait a minute is the network traffic being compressed now? |
17:00 |
hmmmm |
was it ever not? |
17:00 |
est31 |
is it? |
17:01 |
est31 |
I haven't seen any compression as I looked at it with wireshark |
17:01 |
hmmmm |
look at enum NetProtoCompressionMode |
17:01 |
hmmmm |
is that simply not implemented? |
17:01 |
est31 |
I think thats for node compression |
17:02 |
est31 |
mapblock* |
17:02 |
hmmmm |
it's never used anywhere |
17:02 |
est31 |
yes, not implemented yet |
17:03 |
hmmmm |
note to self: change enum value 0 to "no compression" |
17:03 |
est31 |
nope |
17:03 |
est31 |
right now we compress with zlib, not? |
17:04 |
hmmmm |
it's not used anywhere |
17:04 |
est31 |
it should be |
17:04 |
est31 |
I'll use that |
17:04 |
hmmmm |
go search for NETPROTO_COMPRESSION_ZLIB in the project |
17:04 |
hmmmm |
don't do it right now.. |
17:04 |
est31 |
thanks for pointing |
17:04 |
hmmmm |
this is a separate commit entirely |
17:04 |
est31 |
https://github.com/est31/minetest/commit/e68e2280c884f6e136e3516fe21cfa313b68dd0d |
17:04 |
est31 |
you see the u16 compression_modes = 0; ? |
17:04 |
hmmmm |
oh |
17:05 |
est31 |
I'll change it to = NETPROTO_COMPRESSION_ZLIB |
17:05 |
hmmmm |
wow |
17:05 |
hmmmm |
it's a magic value |
17:05 |
hmmmm |
learn to use define macros, enums, or something, anything to make it less cryptic |
17:05 |
hmmmm |
I don't know WTF "0" means here unless I'm you |
17:05 |
est31 |
I didnt introduce it sorry |
17:05 |
est31 |
and its not bound to any functional code |
17:05 |
est31 |
yet |
17:05 |
hmmmm |
in any case, compression modes are a completely new thing that were just introduced |
17:05 |
hmmmm |
so then change 0 to mean "no compression" |
17:06 |
hmmmm |
and then make zlib compression 1 |
17:06 |
est31 |
sounds reasonable |
17:06 |
hmmmm |
if you tell clients you're using zlib compression but you aren't because it hasn't been implemented yet... you're lying to the clients |
17:07 |
hmmmm |
besides, i don't understand why compression would be mandatory |
17:07 |
est31 |
its mapblock compression I think |
17:07 |
est31 |
yes the enum is bad |
17:08 |
hmmmm |
mapblock compression can use either RLE or Zlib by the way |
17:08 |
hmmmm |
this is dependent upon MAPBLOCK serialization version |
17:08 |
est31 |
ok |
17:08 |
hmmmm |
NOT the net protocol serialization version |
17:08 |
hmmmm |
they are two different things |
17:08 |
est31 |
hm... |
17:08 |
hmmmm |
this clearly says, "NETPROTO_COMPRESSION" |
17:08 |
est31 |
then I have no idea why its there. |
17:09 |
hmmmm |
because nerzhul had big ideas no doubt |
17:09 |
hmmmm |
i support compression for network data. really i do. it's just that i'd prefer one of us does it so we can be reasonably sure there won't be 500 bugs |
17:09 |
est31 |
lol |
17:10 |
hmmmm |
sorry but it's the truth |
17:10 |
hmmmm |
what file is the network diagram in?? |
17:10 |
hmmmm |
connection sequence i mean |
17:10 |
est31 |
clientiface.h I think |
17:10 |
est31 |
yup |
17:10 |
hmmmm |
that is completely random |
17:11 |
est31 |
? |
17:11 |
hmmmm |
i mean the location |
17:12 |
hmmmm |
why clientiface.h |
17:12 |
est31 |
what I think the reason was that it ended up in this file is that the states are managed there |
17:12 |
hmmmm |
yeah, maybe. |
17:12 |
hmmmm |
it should really be in a different file. |
17:12 |
est31 |
but, I dont defend it, move it where you want |
17:12 |
hmmmm |
not right now |
17:12 |
hmmmm |
all these things are TODOs |
17:13 |
hmmmm |
now you have there "Authentication, depending on packet sent by client" |
17:13 |
est31 |
I didn't want to make the diagram too large |
17:13 |
hmmmm |
this means it could be any of TOSERVER_FIRST_SRP, TOSERVER_SRP, TOSERVER_LEGACY_SRP |
17:13 |
hmmmm |
well |
17:13 |
hmmmm |
here is where you should be as large as you need |
17:13 |
hmmmm |
you're describing how it works |
17:13 |
hmmmm |
trying to be compact in documentation is the very last place |
17:14 |
hmmmm |
that it would be appropriate |
17:14 |
est31 |
one line has 96 chars already our hard limit is 90 chars |
17:14 |
hmmmm |
ya... like I said, it's time to move it out into a different file |
17:14 |
hmmmm |
sudo mode isn't enabled for account creation, correct? |
17:15 |
hmmmm |
only password changing? |
17:15 |
est31 |
still people who have tight screens should be abled to see it, not a fucked up version of it |
17:15 |
est31 |
sorry to use "fucked" |
17:15 |
hmmmm |
eh it's okay |
17:15 |
hmmmm |
nobody's screen should be fucked to the point where it's less than 120 columns though |
17:15 |
est31 |
nope, sudo mode only for existing ones |
17:16 |
hmmmm |
for descriptive diagrams, i think the max column length should be increased. |
17:16 |
hmmmm |
it's very important and shouldn't be compressed horziontally because of some legacy screen size limitation |
17:16 |
hmmmm |
it shouldn't be in the code to begin with though |
17:16 |
hmmmm |
right, anyway, we'll do that later. |
17:17 |
hmmmm |
so am i correct in saying that sudo mode is only used for changing passwords??? |
17:17 |
est31 |
yes |
17:17 |
hmmmm |
why don't you just call the packets "change SRP password" |
17:18 |
hmmmm |
oh right, because that's too long |
17:18 |
est31 |
thats naming mostly |
17:18 |
hmmmm |
we had this same conversation like 3 times but i keep forgetting |
17:18 |
hmmmm |
I still think you should change "sudo" to "change password" |
17:18 |
hmmmm |
just to make completely certain, this is how it works: |
17:19 |
hmmmm |
we're already logged in |
17:19 |
hmmmm |
we want to change our password |
17:19 |
hmmmm |
so we enable sudo mode |
17:19 |
est31 |
yes |
17:19 |
hmmmm |
send a TOCLIENT_FIRST_SRP |
17:19 |
hmmmm |
do all the SRP stuff |
17:19 |
hmmmm |
and then sudo mode disengages after a successful password change?? |
17:19 |
est31 |
TOSERVER_SRP_BYTES_A to be precise |
17:19 |
hmmmm |
another thing I'd like to talk about |
17:19 |
est31 |
yes it disengages |
17:20 |
hmmmm |
though this isn't extremely important because it's just naming, not the actual protocol format |
17:20 |
hmmmm |
why expose such low-level details about SRP in the packet names? |
17:20 |
hmmmm |
shouldn't it be like AUTH_BEGIN or something? |
17:20 |
hmmmm |
shrug |
17:20 |
est31 |
I had such things in mind |
17:20 |
hmmmm |
we'll figure it out later |
17:20 |
est31 |
where I have a packet, and then have the auth related messages in there |
17:20 |
hmmmm |
in any case |
17:21 |
est31 |
so only two opcodes TOSERVER_AUTH_MSG |
17:21 |
est31 |
and TOCLIENT_AUTH_MSG |
17:21 |
hmmmm |
a lot of games i used to play worked like this |
17:21 |
hmmmm |
you connect to the server |
17:21 |
est31 |
then inside i had another opcode indicating the actual data |
17:21 |
hmmmm |
you pass around basic init messages |
17:21 |
hmmmm |
then you get to the login screen |
17:21 |
est31 |
but then I thought it would be too much abstraction |
17:21 |
hmmmm |
at the login screen, you give your username/password if you want to login |
17:21 |
hmmmm |
and get a repsonse back |
17:22 |
hmmmm |
if you fail, the session does not end, the user is simply not authenticated |
17:22 |
hmmmm |
at the login screen you also have other choices like: |
17:22 |
hmmmm |
change password |
17:22 |
hmmmm |
recover password via email |
17:22 |
hmmmm |
etc. |
17:22 |
hmmmm |
create new account |
17:22 |
hmmmm |
so I'm wondering if that model doesn't make more sense. what is your take on it? |
17:23 |
est31 |
that model is good, especially the "create account" part. supporting it in the future would however add two additional packets to the init |
17:24 |
est31 |
where only one value gets exchanged |
17:24 |
est31 |
so I thought it can be also achieved in future with a trick |
17:24 |
est31 |
being that we make this a new auth mechanism |
17:25 |
hmmmm |
alright back |
17:25 |
hmmmm |
i thought about it a bit more |
17:26 |
hmmmm |
if we activate this protocol as-is, i don't think it would add any more ill effects if we switch to a different model |
17:26 |
est31 |
gtg now, bbi one hour, have to buy as long as shops are still open |
17:26 |
hmmmm |
aside from having more legacy packets to deal with |
17:26 |
hmmmm |
but i think this is okay since our opcode field is 16 bit |
17:26 |
hmmmm |
we can afford having a crapload of packets |
17:26 |
hmmmm |
I approve of this change |
17:26 |
hmmmm |
looks good to me, activate it |
17:27 |
hmmmm |
push the button |
17:27 |
hmmmm |
all of the changes I want to make really should be separate from this |
17:27 |
est31 |
I'll have an additional look at the compression handling |
17:27 |
VanessaE |
I sure hope y'all have backware compat in mind :) |
17:27 |
est31 |
yes |
17:27 |
VanessaE |
I mean going all the way back to, say 0.4.9 :) |
17:28 |
est31 |
the only way srp breaks backward compat is when you log in with a new client and its first time or you change your password, it gets changed to a password you can't use to log in with a legacy client |
17:29 |
est31 |
people who regularly switch back should keep that in mind |
17:29 |
est31 |
and forth* |
17:29 |
est31 |
ok hmmmm I'll look at this compression mode thing, then activate srp |
17:29 |
est31 |
but not now, in an hour |
17:29 |
* est31 |
is away |
18:25 |
|
cib0 joined #minetest-dev |
18:54 |
|
MinetestForFun joined #minetest-dev |
19:07 |
hmmmm |
by the way |
19:07 |
hmmmm |
nobody said anything about https://github.com/kwolekr/minetest/commit/a6da66299659a832d11c81711dc0fd73ca1602e3 |
19:09 |
est31 |
pushing in 5 minutes https://github.com/est31/minetest/commit/c1268e32fbf30bf6bce62358f467b8157f4d42b8 |
19:10 |
est31 |
hmmmm, that commit is for the lua api, am I right? |
19:10 |
hmmmm |
yes |
19:10 |
hmmmm |
ahh |
19:10 |
est31 |
ah thats what SAPI stands for |
19:10 |
hmmmm |
Script API |
19:10 |
est31 |
should be documented |
19:10 |
hmmmm |
one thing |
19:11 |
hmmmm |
u16 compression_modes |
19:11 |
est31 |
yes? |
19:11 |
hmmmm |
why is that plural? you imply like there are more than one possible |
19:11 |
hmmmm |
it's not a bitmap like authentication_methods |
19:11 |
est31 |
is it not? |
19:11 |
hmmmm |
the compression mode you're choosing is NETPROTO_COMPRESSION_NONE |
19:12 |
hmmmm |
compression_modes makes it seem like it could be... |
19:12 |
est31 |
umm |
19:12 |
hmmmm |
NETPROTO_COMPRESSION_ZLIB | NETPROTO_COMPRESSION_SOMETHING_ELSE |
19:12 |
est31 |
yes |
19:12 |
hmmmm |
so is compression_modes supposed to be a bitfield?? |
19:12 |
est31 |
what I think should happen is that the client sends the compression modes it supports to the server, the server answers with the deployed mode |
19:13 |
est31 |
because how can a client chose a compression mode without knowing what the server supports |
19:13 |
hmmmm |
but that's in TOSERVER_INIT |
19:13 |
est31 |
yes it is supposed |
19:13 |
hmmmm |
supported_compression_modes |
19:13 |
est31 |
ok |
19:14 |
hmmmm |
and make it a static const u16 |
19:14 |
hmmmm |
we should document that it's a bitfield somewhere in the documentation |
19:14 |
est31 |
why static const? |
19:15 |
hmmmm |
it optimizes better |
19:15 |
est31 |
it could be a setting for example |
19:16 |
hmmmm |
okay nevermind it is there |
19:16 |
hmmmm |
(the documentation) |
19:17 |
hmmmm |
see, I think it was originally meant to be a single value, not a bitfield |
19:17 |
hmmmm |
when nerzhul wrote that enum, he made zlib == 0, not 1 |
19:17 |
hmmmm |
i.e. not a flag |
19:17 |
hmmmm |
your design to make it a bitfield is ultimately much more sensible |
19:18 |
est31 |
:) |
19:18 |
hmmmm |
s/design/decision/ |
19:18 |
est31 |
and about this "change password, recover password through email" thing |
19:18 |
hmmmm |
we'll do that later |
19:18 |
est31 |
it is indeed possible right now |
19:18 |
hmmmm |
I'd rather not |
19:19 |
hmmmm |
let's do all this "login screen" stuff at once |
19:19 |
est31 |
because the client sends the desired username |
19:19 |
est31 |
the server then sends a list of supported auth methods |
19:19 |
est31 |
one of them could be "reset through email" |
19:19 |
hmmmm |
not just change password and recover password, but what about create account? |
19:19 |
est31 |
so we only have to move the GUI one connection step back |
19:20 |
est31 |
yes thats already even there |
19:20 |
hmmmm |
so 4 functions |
19:20 |
est31 |
its FIRST_SRP :) |
19:20 |
hmmmm |
login to existing, create new, change password, recover password |
19:20 |
hmmmm |
anything else?? |
19:20 |
hmmmm |
if you have a better design please do tell me |
19:20 |
hmmmm |
i'm just saying what's intuitive to me personally |
19:20 |
hmmmm |
i'm sure there could be better options |
19:21 |
est31 |
my idea was |
19:21 |
est31 |
that the person enters their username |
19:21 |
est31 |
then the init comes |
19:21 |
est31 |
then the client either displays "please enter password" |
19:21 |
est31 |
or, "create account" |
19:21 |
est31 |
this can be done like with modern websites inside the GUI |
19:22 |
est31 |
or perhaps not |
19:22 |
hmmmm |
so you'd rather have the username and password screens separate |
19:22 |
hmmmm |
is what you're saying |
19:22 |
|
ElectronLibre joined #minetest-dev |
19:23 |
|
ElectronLibre joined #minetest-dev |
19:23 |
|
TeTpaAka joined #minetest-dev |
19:24 |
est31 |
we can either make a "dynamic" screen where the user only enters username, that gets sent to the server, and the client then either changes the gui to "create new account" or to "log in" |
19:25 |
est31 |
or we can make it "static" where the user has to press create account and log in buttons separately |
19:25 |
hmmmm |
what if the user fails authentication because he entered a wrong username |
19:25 |
hmmmm |
i think i like the static model better |
19:25 |
hmmmm |
no reason to fragment |
19:27 |
est31 |
either way |
19:27 |
est31 |
can I merge the patch? |
19:27 |
hmmmm |
yeah |
19:27 |
est31 |
good |
19:27 |
hmmmm |
i think that in the future, we should couple the username with the auth packets |
19:27 |
hmmmm |
keep it separate from initialization |
19:28 |
est31 |
hrmm this is what nrz favoured too |
19:28 |
est31 |
I decided against because it would have required even more packet sent back and forth |
19:28 |
est31 |
=> longer log in process |
19:28 |
hmmmm |
why??? |
19:28 |
hmmmm |
send it along with A |
19:28 |
est31 |
not possible |
19:29 |
est31 |
what if user a has only legacy password, and user b has new srp password in the database? |
19:29 |
est31 |
the server has to look up inside the database to determine which auth methods it supports for the user |
19:30 |
hmmmm |
hmm |
19:30 |
est31 |
http://lists.minetest.net/archives/minetest-dev/2015-April/000005.html |
19:30 |
hmmmm |
true |
19:30 |
est31 |
read from "we have two options now:" |
19:31 |
est31 |
or from "About the TOSERVER_AUTH package.", better |
19:40 |
hmmmm |
pushing https://github.com/kwolekr/minetest/commit/a6da66299659a832d11c81711dc0fd73ca1602e3 in 5 minutes if nobody has an objection... |
19:41 |
est31 |
where exactly is it exposed in the API? |
19:41 |
hmmmm |
any time you'd normally enter an {a=255, r=255, g=10, b=10} sort of ARGB8 quad table |
19:41 |
hmmmm |
now you have the option of specifying "red" or "purple" instead |
19:43 |
est31 |
really? |
19:43 |
est31 |
will it also work for the nametag color? |
19:43 |
hmmmm |
yep. |
19:44 |
est31 |
nice |
19:44 |
est31 |
doc/lua_api.txt should point this out though |
19:46 |
est31 |
we even accept numbers now, dont we? |
19:49 |
est31 |
see my comment hmmmm |
19:54 |
|
hmmmmm joined #minetest-dev |
20:00 |
|
hmmmmmm joined #minetest-dev |
20:05 |
|
hmmmmm joined #minetest-dev |
20:08 |
|
hmmmm joined #minetest-dev |
20:08 |
|
neoascetic joined #minetest-dev |
20:09 |
neoascetic |
Hey. Latest master is broken! https://travis-ci.org/minetest/minetest/builds/62845257 |
20:09 |
est31 |
ouch |
20:10 |
est31 |
dammit my fault |
20:10 |
est31 |
I did compile it |
20:10 |
est31 |
I did |
20:10 |
est31 |
and then I didnt look at the output |
20:10 |
est31 |
argh |
20:10 |
neoascetic |
Does travis send some angry error, doesn't it? |
20:11 |
|
hmmmmmm joined #minetest-dev |
20:11 |
neoascetic |
I noticed this from my osx builds report |
20:11 |
est31 |
its my fault |
20:12 |
neoascetic |
Travis has IRC integration, I think it would be cool to have it write here on errors on master |
20:12 |
est31 |
sfan5, ^ |
20:15 |
est31 |
neoascetic, check now |
20:31 |
|
est31 joined #minetest-dev |
20:50 |
sfan5 |
est31: if you want to have something changed in the travis settings you need to talk to c55 |
20:50 |
est31 |
o |
20:50 |
est31 |
ok |
21:41 |
|
ElectronLibre left #minetest-dev |
21:55 |
|
RealBadAngel joined #minetest-dev |
22:02 |
ShadowNinja |
.../src/noise.cpp:617:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] |
22:02 |
ShadowNinja |
hmmmmmm: Do you have -Wno-sign-compare or something? |
22:14 |
ShadowNinja |
I'll push security now. I'll leave it disabled by default at first, and then enable it in a week or so after all mods that I know of that will break from it have been patched. |
22:18 |
est31 |
which mods? |
22:19 |
ShadowNinja |
est31: WorldEdit, IRC, player_textures, and datastorage will need minor patches to work. |
22:20 |
ShadowNinja |
(I've already written patches for all of those mods) |
22:36 |
est31 |
ok |
23:29 |
|
Wayward_One joined #minetest-dev |
23:31 |
hmmmmm |
anyway if you guys don't have any qualms about a6da662 i'll push now |
23:33 |
est31 |
hmmmmm, have you seen my comment? |
23:33 |
hmmmmm |
oh i'll go look now |
23:34 |
est31 |
also it should be documented hmmmmm. |
23:34 |
est31 |
otherwise its ok# |
23:35 |
hmmmmm |
maybe i'm not understanding your comment |
23:36 |
hmmmmm |
i don't think setNametagColor can fail |
23:36 |
est31 |
read_color can |
23:36 |
hmmmmm |
ahh good catch |
23:36 |
hmmmmm |
i forgot about that |
23:53 |
|
Wayward_Tab joined #minetest-dev |
23:57 |
hmmmmm |
https://github.com/kwolekr/minetest/commit/2daf65fd71555fe31b5140a77acc64261db9260f |
23:57 |
jin_xi |
https://github.com/obneq/minetest/tree/scenenodeparticles here is moar wip for irrlicht particles |
23:59 |
jin_xi |
so, what do to get some feedback by people who actually know something? make another PR seems kinda weird and all feedback i got there was kinda useless |
23:59 |
jin_xi |
anyway if anyone has tips regarding how things _work_ im happy to hear |