Minetest logo

IRC log for #minetest-dev, 2016-07-12

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

All times shown according to UTC.

Time Nick Message
00:03 Ritchie joined #minetest-dev
02:14 rocky1138 joined #minetest-dev
02:27 ssieb joined #minetest-dev
02:42 Void7 joined #minetest-dev
02:59 rubenwardy joined #minetest-dev
03:21 Miner_48er joined #minetest-dev
03:24 DI3HARD139 joined #minetest-dev
04:50 SloanOnLinux joined #minetest-dev
05:09 Hunterz joined #minetest-dev
05:29 burli joined #minetest-dev
06:45 rdococ joined #minetest-dev
07:06 Darcidride joined #minetest-dev
07:16 davisonio joined #minetest-dev
07:20 Calinou joined #minetest-dev
07:35 Calinou joined #minetest-dev
07:44 Hunterz joined #minetest-dev
08:00 nrzkt joined #minetest-dev
08:00 davisonio joined #minetest-dev
08:04 Gael-de-Sailly joined #minetest-dev
08:11 Niebieski joined #minetest-dev
08:12 Niebieski Hey guys, I just tried to comment out the collision detection code and go climb anything. It worked.
08:13 Niebieski My account going to be banned again I guess. xD
08:19 Calinou joined #minetest-dev
08:21 Krock joined #minetest-dev
08:53 lisac joined #minetest-dev
09:21 Megaf joined #minetest-dev
09:21 edgrey joined #minetest-dev
09:21 Megaf Hello folks, so, anyone has any idea on how to fix my linking problem and if it's a bug here on in minetest itself?
09:28 Megaf #4306
09:28 ShadowBot https://github.com/minetest/minetest/issues/4306 -- Minetest failing to compile (link CXX executable) on Debian Stretch
09:52 Megaf I'm recompiling it here this time with ENABLE_SYSTEM_JSONCPP=0
09:55 xunto joined #minetest-dev
09:56 Megaf #4306
09:56 ShadowBot https://github.com/minetest/minetest/issues/4306 -- Minetest fails to link JSONCPP on Debian 9.x if -DENABLE_SYSTEM_JSONCPP=1
10:10 Krock joined #minetest-dev
10:58 proller joined #minetest-dev
11:05 Fixer joined #minetest-dev
11:40 SloanOnLinux joined #minetest-dev
11:43 SloanOnLinux joined #minetest-dev
11:56 Lunatrius` joined #minetest-dev
12:04 Lunatrius` joined #minetest-dev
12:05 Zeno` joined #minetest-dev
12:19 proller joined #minetest-dev
12:20 Grandolf joined #minetest-dev
12:45 rubenwardy joined #minetest-dev
12:51 paramat joined #minetest-dev
12:57 Darcidride_ joined #minetest-dev
13:06 Calinou joined #minetest-dev
13:16 VanessaE Bug report from one of my admins, "saplings are broken, they place on any node and ignore protection, [...]"   Is this still the case in current minetest_game?
13:16 VanessaE (these have to be mt_game as the server it was reported on doesn't run any mods that add trees)
13:51 paramat weird
13:52 rubenwardy Is it the sapling being placed or the tree growing?
13:53 VanessaE I assume the real problem is the tree growth
13:53 VanessaE because that person mentioned the trees were griefing protected structures.
13:53 paramat ah
13:53 VanessaE but preventing placing a sapling in a protected area is also surely needed.
13:53 paramat that should be fixed for months now
13:54 paramat (tree growth griefing)
13:54 paramat i fixed that on demand
13:54 VanessaE I'd have thought so; my minetest_game is from May 8, so not too old.
13:54 rubenwardy default.grow_sapling: https://github.com/minetest/minetest_gam​e/blob/master/mods/default/trees.lua#L39     default.grow_tree: https://github.com/minetest/minetest_game​/blob/master/mods/default/trees.lua#L162
13:54 paramat 2 types of tree schematics, the sapling version doesn't force=place
13:54 rubenwardy can't see any is_protected calls
13:56 paramat saplings are like any other node, they should not be able to be placed in protected areas
13:56 paramat think you need clarification from your reporter
13:56 rubenwardy what if they get placed just under the protection, then the tree grows into the protection?
13:56 paramat yeah that#s possible
13:56 paramat (')
13:57 paramat but a minor problem
13:57 nore paramat: why minor?
13:57 paramat and they won't replace any nodes
13:57 VanessaE I think that's what's happening, rubenwardy
13:58 VanessaE no node should ever be placed by sapling growth in a protected zone
13:58 paramat minor because they're not force-placed
13:58 rubenwardy the tree trunks would block the protected area, causing an annoyance for the owner
13:59 VanessaE paramat: it's not minor.  think tree growth into a house.   the structure is still there but now the houseis filled with leaves/trunks
13:59 VanessaE house is*
13:59 paramat ok
13:59 paramat just protect down to ground level then
14:00 paramat anyway, we could add protection checks to the edges of the tree volume, before adding schematic
14:01 paramat like say, at 5 points: +y, +-x, +-z
14:02 paramat still think you need clarification from your reporter
14:02 nore paramat: if we add checks, we still want people to be able to plant trees in their own house
14:02 nore so saplings need to get an owner
14:04 VanessaE paramat: the volume idea seems fair, so long as nore's concern is addressed of course
14:04 paramat oh man of course
14:05 paramat this is getting messy now
14:05 VanessaE tree growth always has been :P
14:06 paramat i don't think it's worth the complexity, if people protect properly down to ground level they'll be ok
14:06 VanessaE people will never protect "properly".
14:06 nore paramat: this is important
14:06 VanessaE and anyway you're still forgetting that a big tree will fill someone's house with one or two saplings.
14:06 nore paramat: also, depending on the protection mods, protection can be expensive
14:07 VanessaE you're basically asking people to add a large clearance around their buildings
14:07 VanessaE when they protect.
14:07 VanessaE which does NOT work in a real environment
14:07 paramat ok
14:08 paramat so sapling owner in metadata
14:08 VanessaE um, no...
14:09 VanessaE just check the area on place and as each node is spawned during growth - I mean just how much real "cost" would there be?
14:09 nore VanessaE: problem is, area can be protected or unprotected after
14:09 VanessaE (or volume check ahead of time, either way)
14:09 paramat because protection needs to know an owner
14:09 nore so I'd say owner in metadata is needed
14:09 VanessaE nore: sure, but the focus here needs to be what is/isn't protected when the tree grows
14:09 nore VanessaE: yes
14:09 VanessaE paramat: no, it doesn't.
14:10 nore and the owner is needed
14:10 paramat to allow protected area owner to grow sapligs
14:10 VanessaE well, it's needed I guess during growth but not when placing.
14:10 nore we want people to be able to grow trees in their own protected areas
14:10 VanessaE but the sapling shouldn't be "owned" in the same sense as a steel door
14:10 nore so owner needs to be saved in node metadata
14:10 nore VanessaE: no, only owned as in "that player placed the sapling"
14:11 VanessaE nore: ok.  then that I'm not too worried about
14:11 nore any player can tamper with it, but it will change the "owner"
14:12 VanessaE point is, a solution needs to be transparent enough that no one except a griefer will notice the change :)
14:12 paramat yeah 'last placer'
14:15 nore VanessaE: there will be a problem with placed ungrown saplings though
14:15 nore (in protected areas)
14:15 nore they will have to be placed again
14:15 VanessaE nore: why not an LBM that finds the closest area owner and assigns him/her to the sapling?
14:15 nore VanessaE: hmmm
14:15 nore is_protected is not designed to do that
14:15 VanessaE I know.
14:15 VanessaE that's the problem.
14:15 VanessaE well, why not just handle existing saplings as they are now, and limit the fix to newly-placed saplings.
14:15 sofar_ joined #minetest-dev
14:15 nore another I would have liked would have been an is_area_protected that says if any node in an area is protected
14:15 VanessaE OR
14:15 ElectronLibre_ joined #minetest-dev
14:15 VanessaE look up the ownership of the spot the sapling stands on, and use that for the ownership check for the growth
14:16 nore well, anyway, is_protected needs a redesign
14:16 nore VanessaE: not possible
14:16 VanessaE why not?
14:16 cat5e joined #minetest-dev
14:16 nore there's no function that gives the owner of a position...
14:16 VanessaE huh.
14:17 nore told you is_protected is not designed to do this
14:17 rubenwardy is_protected returns the owner of a node
14:17 rubenwardy or nil if not owned
14:17 rubenwardy or if the digger is allowed to dig there
14:17 nore rubenwardy: hmmm
14:17 rubenwardy /interact
14:17 nore I thought it was the third
14:18 nore is_protected(pos, player)
14:18 rubenwardy * or nil if the digger is allowed to dig there
14:18 nore oh, it returns the owner if not allowed
14:18 nore hmmmm
14:19 nore well, it's a bit better than I previously thought then
14:19 KaadmY joined #minetest-dev
14:20 VanessaE um, lua API says it only returns true, false, or nil.
14:22 VanessaE in any case you never answered my question - what would be the real cost of just calling that function (in some faster, internal way) for every node placed by the growth code?
14:22 VanessaE "I don't care what anything was 'designed' to do, I care what it CAN do!" :)
14:22 rubenwardy the message was added after the initial is_protected feature: https://github.com/minetest/minetest/commi​t/a890c66bc035918d7478fc1742241eadfd9a5bae
14:23 nore VanessaE: ehm
14:23 nore pretty expensive, if doing it for each node
14:23 VanessaE or as paramat said, just at five or six cardinal points
14:23 nore that would be better
14:23 paramat it can't be done for every node
14:24 VanessaE paramat: you mean it would be too expensive.  not "it can't be done".
14:24 paramat correct
14:24 rubenwardy oh, I seem to be mistaken :'(
14:24 whitephoenix joined #minetest-dev
14:24 rubenwardy in anycase, you can still give the placer's name to is_protected
14:25 VanessaE ok so if it's not designed for the task, then time to design something that WILL work.
14:26 paramat don't worry about pre-existing saplings without an owner, if they have no owner just disable growng into any protected area
14:27 VanessaE or,
14:27 VanessaE if they have no owner, give them to the server admin.
14:27 VanessaE (via an LBM)
14:27 VanessaE then they'll behave exactly as before
14:28 VanessaE I mean, you always have the owner/admin's name available, regardless of what is_protected() can or can't return
14:28 paramat no thanks, let's avoid LBMs if possible
14:28 VanessaE ok just *treat* it as owned-by-the-admin then when the growth ABM fires.
14:30 paramat not even that, any sapling with no 'placer' just doesn't grow into any protected volume. this is simple, saplings with no 'placer' are only briefly temporary
14:30 VanessaE that'll be a problem I think.
14:30 VanessaE they're not as temporary as you think.
14:31 paramat not a problem, a player can just re-plant it
14:31 VanessaE hah!
14:31 VanessaE you're funny :)
14:32 Zeno` I think we as devs need to listen to server operators objectively without letting our personal ideas of what's good/bad or right/wrong in the way
14:32 nore Zeno`: +1
14:33 VanessaE but no really.  people aren't just gonna wander around replanting saplings.  instead they'll complain that the saplings aren't growing.
14:34 paramat nah, that would be denying our experience and knowledge
14:34 paramat they will grow
14:34 VanessaE paramat: think tree farm.
14:34 VanessaE these are rather common for new builds.
14:34 Zeno` paramat, I don't run a server anymore. I am not a regular player anymore. These people are our source of FEEDBACK
14:35 Zeno` half the crap that worked when I ran a server and was a regular player is probably not valid anymore
14:35 Zeno` we have to listen more carefully IMO
14:35 paramat yeah that's fine, i'm listening and considering and value vanessas server experience
14:35 paramat but i won't stop myself pointing out a bad idea
14:36 Zeno` I don't see the points you said as to *why* it's a bad idea
14:36 VanessaE what's so bad about treating non-owned saplings as server-owner-owned for the purpose of the growth ABM?
14:36 paramat well ok that may be ok
14:37 VanessaE good. :)
14:37 Zeno` paramat, I'm not having a go at you personally. I fall into the same trap as well.
14:37 paramat is it simple to fetch admin name
14:37 paramat ?
14:37 VanessaE I think sop
14:37 VanessaE so*
14:37 T4im joined #minetest-dev
14:37 VanessaE somewhere there is an admin specified in the config.
14:38 VanessaE maybe it's just the name= field in mt.conf
14:38 VanessaE (I don't see it in any of the world files)
14:39 VanessaE which for any server out there will be that server's official admin anyway
14:39 VanessaE or you could read auth.txt and find any username in there with suitable privileges.
14:40 VanessaE (maybe "basic_privs" if something like "areas" isn't defined)
14:40 paramat surely admin ownership makes no difference: these pre-existing saplings will still not grow in most players own protected areas?
14:41 VanessaE tree farms.
14:41 VanessaE large plots of land that have been replanted.
14:41 VanessaE I'm sure there are other large-scale examples where the trees *must* be allowed to grow.
14:41 raingloom joined #minetest-dev
14:41 VanessaE both of these are quite common in a busy server.
14:41 T4im can't you just do the protection check on placement, and then simply not start the node timer?
14:41 paramat so you mean admins tend to have large protected areas of saplings?
14:42 VanessaE paramat: no, but regular users do.  the idea is to make sure the not-owned sapling sitting inside that large (as in 300-400 meters on a side) plot of land still grows.
14:42 Void7 joined #minetest-dev
14:43 paramat they still won't grow if they are in a regular player's protected area
14:43 VanessaE they will if the admin owns then at the moment of growth
14:44 VanessaE sorry if I'm not being clear
14:44 paramat are we talking about the behaviour of saplings planted before this proposed change comes into effect?
14:44 VanessaE I just don't want my users to notice any significant change, especially one that requires them to dig up and replant a thousand[*] saplings.
14:44 VanessaE [*] exaggeration, of course.
14:44 VanessaE yes.
14:44 paramat ok
14:45 paramat ok well as you understand this this would be fine
14:46 VanessaE sapling has no owner?  grow it with admin ownership so that protect areas are ignored.  otherwise use the owner it will have been given at planting time
14:46 VanessaE protection areas(
14:47 VanessaE should be a matter of one line in the ABM, plus whatever form the check-for-volume code takes.
14:47 Zeno` hang on
14:47 Zeno` what happens to saplings right now that are not "owned"?
14:47 VanessaE they should grow normally regardless of protection.
14:48 est31 joined #minetest-dev
14:48 Zeno` but what do they currently do?
14:48 VanessaE that.
14:48 VanessaE paramat's initial proposal was to not let them grow at all if they're in a protected area (otherwise grow normally if outside)
14:48 Zeno` well that's silly
14:49 Zeno` paramat, if that becomes a PR I'll oppose it
14:49 Zeno` it doesn't make much (if any) sense
14:49 VanessaE I think he's already changed his mind :)
14:49 Zeno` ok *phew*
14:49 rubenwardy How about let currently placed sapling grow like normal, but check for protection on sapling place
14:49 paramat oh yeah i see that's not good now
14:50 paramat i misunderstood
14:50 Zeno` rubenwardy, I don't think you can place a sapling in a protected area already (if you can, then /that's/ something that I'd agree should be fixed)
14:50 rdococ joined #minetest-dev
14:50 rubenwardy they can get placed just under the protection, then the tree grows into the protection
14:50 Zeno` rubenwardy, ahh ok
14:51 paramat yes best check on place then not start node timer
14:51 paramat bbl
14:51 paramat left #minetest-dev
14:51 Zeno` how can they grow into the protection if the sapling owner and the protected area owner are different?
14:52 Zeno` the code doesn't check?
14:52 VanessaE in the existing code, no.
14:52 VanessaE user Foo places a sapling right next to Bar's property, it will grow into Bar's property because Bar doesn't own the cube on which it was placed.
14:53 VanessaE so Foo can grief Bar's house with enough saplings
14:53 Zeno` and the side effects are that leaves (and possibly wood) replace air in the protected area?
14:53 VanessaE yep.
14:53 VanessaE leaves and trunks
14:53 VanessaE (depending on the type of tree)
14:53 Zeno` so... we check first
14:54 Zeno` it's a single 'if'
14:54 Zeno` that's not going to impact performance at all
14:55 Zeno` (and I really mean 0% difference in performance)
14:56 VanessaE well
14:56 VanessaE six checks (owner + volume)
14:56 Zeno` modern CPUs with branch prediction and pipelining... adding a conditional in something as small as that will make no performance difference as all (seriously)
14:56 VanessaE ŭt yeah, it won't have any effect.
14:57 Zeno` nah you let them plant them sapling but then just don't let protected air nodes be changed
14:57 VanessaE that would be too expensive.
14:57 Zeno` really?
14:57 VanessaE apparently so
14:57 VanessaE that's what the volume check would be for
14:57 VanessaE don't allow placement at all then
14:58 VanessaE that way the user has some warning that the sapling will never grow
14:58 T4im aren't trees schematics? that's already a place/no-place decision by api then
14:58 Zeno` maybe. There are several different approaches
14:58 VanessaE T4im: that's for overriding structural nodes. not air.
14:59 VanessaE but your point stands.
15:00 Zeno` ok, at any rate the issue needs to be looked at
15:00 T4im I mean the sapling grow function needs to make such a decision, because the api just allows full growth or no growth for it, no protection checks, no checks for replacement (except the full or air thing you mentioned)
15:02 VanessaE so just to summarize....  I guess the best is to check for ownership of the target location and if anything inside the tree's predicted volume is owned, and deny placement right there and then (with an error message).  for anything that was already placed, check at growth time if it's not owned, and if that's the case, just grow it anyway regardless of protection.
15:03 VanessaE otherwise take overlap of predicted volume and owned areas into account and deny growth.
15:03 VanessaE maybe even drop the sapling out as an item.
15:03 VanessaE you want SOME visual indication that a sapling will eventually grow where it stands.
15:04 T4im what do you mean with taking overlap into account?
15:04 VanessaE (right now the mere presence of the sapling is indication enough, but it won't be if conditions to prevent its growth are put into place)
15:04 VanessaE overlap of the tree's predicted volume with whatever areas are owned next to it
15:06 Void7 joined #minetest-dev
15:16 STHGOM joined #minetest-dev
15:16 Fixer VanessaE: is not areas mod excludes this kind of griefing?
15:16 VanessaE Fixer: nope.
15:16 VanessaE it can't stop a tree from growing.
15:16 Fixer VanessaE: is not it protects everything from top to buttom?
15:16 VanessaE no.
15:17 VanessaE it protects only within the area the user requested.
15:20 Fixer i've seen such kind of grief somewhere, but very rarely
15:22 VanessaE apparently one of my users' larger structures was damaged by it just recently.
15:22 VanessaE (the structure was some sort of giant tree)
15:23 T4im so cleaning up with a chainsaw is out of the question, too, great
15:23 nore VanessaE: I'd still say check on grow
15:23 nore if someone places a sapling
15:23 nore and then the area above is protected
15:24 VanessaE nore: I'm not against that
15:24 Fixer VanessaE: maybe "areas" and "protector redo" mod makers should add some workaround for this?
15:24 VanessaE Fixer: this is best fixed in the engine/game.
15:24 VanessaE nore: btw, something similar will surely be needed for the spawn_tree() call
15:25 nore VanessaE: no, spawn_tree is engine, isn't it?
15:25 nore if you want to check protection, you do before calling it
15:25 VanessaE yes but it also ignores protection
15:25 VanessaE I mean for the volume check
15:26 nore VanessaE: yes, it does
15:26 nore so if you want to place something
15:26 VanessaE seems to me that the engine should determine the volume when it tries to grow the tree, and pass that info back to Lua
15:26 nore but check for protection
15:26 nore then, you have to check before calling spawn_tree
15:26 VanessaE nono
15:26 nore and don't call it if it is protected
15:26 nore VanessaE: why ?
15:26 VanessaE that's for the ground node yeah
15:26 VanessaE but I mean for the volume check
15:27 VanessaE spawn_tree() should do whatever it does now, but return the min/max X/Y/Z coords if the tree failed protection checks.
15:27 VanessaE or something.
15:27 everamzah liquid source nodes placed outside of protection spill into protected areas, too, just as an aside
15:27 T4im you can probably get the volume from the mts file
15:27 VanessaE yes
15:27 nore VanessaE: no, you do the volume check before calling
15:28 VanessaE T4im: not for spawn_tree(), that's L-system
15:28 T4im oh
15:28 VanessaE nore: but how?
15:28 VanessaE nore: are you proposing a new engine APi call to do that?
15:28 nore VanessaE: check the corners
15:28 nore or, a new engine API could be good
15:29 VanessaE I mean, it's impossible really to know the volume of an L-system tree until it's been spawned, so something that iterates through the tree def to determine its volume would be needed.  but one would hope that same code could be used to cache a copy of the tree that can then be placed with some other call.
15:29 nore VanessaE: hm, there are L-system trees indeed
15:29 nore :/
15:30 VanessaE i.e. it "grows" the tree in an internal vmanip buffer or something, and only places that buffer on-demand
15:30 everamzah trying to play with a test and it's taking forever to grow them.  i have meselamps... they do take a while sometimes, eh
15:30 nore everamzah: I think if you wai 5-10 minutes they should all be grown
15:31 nore (with the nodetimer tree)
15:31 nore +s
15:31 everamzah k, thx
15:31 T4im nah, the new nodetimers have higher growtimes iirc
15:31 nore T4im: ah?
15:31 nore hm, don't remember what the time it
15:33 T4im 40-80minutes initially, and then maybe delay
15:35 everamzah good grief
15:35 T4im lbm started ones a bit earlier though
15:36 T4im (delay only if it cannot grow, it's then try every 2-10 minutes again)
15:41 everamzah kinda an obvious issue once you think about it.  someone places a sapling and a meselamp under your build.  then you get the privilege of removing a bunch of tree and leaves, but at least there's apples
15:41 everamzah sometimes
15:43 ABJ joined #minetest-dev
15:52 xunto joined #minetest-dev
15:56 paramat joined #minetest-dev
15:57 paramat it's no problem, for each sapling we know what volume the resulting tree will be, so check protection at a few points on the edges of that volume. for example jungletrees are 5x5x(up to 16)
15:58 edgrey joined #minetest-dev
15:58 VanessaE paramat: that's fine for schematic-based trees, yeah
15:58 paramat now what about rubenwardy's idea that doesn't need 'placer metadata': do all the checks 'on place sapling' and just don't start the timer if not allowed
15:59 VanessaE but not for L-system trees.  those aren't what my admin was reporting on, but they'll need addressed just the same.
15:59 paramat yeah
15:59 paramat well those aren't part of mtgame so deal with those seperately
16:00 est31 "so check protection at a few points on the edges of that volume"
16:00 est31 thats not really perfect
16:00 paramat it can't be perfect
16:00 est31 better is to add a volume based protection api check :)
16:00 paramat jungletree has 400 nodes
16:01 paramat ok perhaps
16:01 est31 minetest.is_protected_somewhere(player, minpos, maxpos)
16:01 est31 something like that
16:01 paramat if it's lightweight
16:02 est31 it depends on the implementation, but most protection mods should handle it just as well
16:02 Krock s/somewhere/area/
16:02 Hunterz joined #minetest-dev
16:02 est31 yeah, the actually chosen name is not as important
16:03 paramat checking points on the edges of the volume is just as effective
16:03 Krock but for big areas it may be insecure
16:03 est31 its less effective in fact
16:03 est31 and insecure
16:03 paramat protected areas are larger than 3x3
16:03 est31 the api nowhere says that
16:04 paramat yes, i mean such small areas are unlikely
16:04 est31 still they are possible
16:04 est31 and even if you checked multiple nodes at the edge, its less efficient
16:05 est31 e.g. think of tenplus1's protector mod
16:05 paramat anyway a protection-in-volume API would be best, if ths has to check every node
16:05 est31 how does that mod implement minetest.is_protected?
16:05 paramat (this)
16:05 Krock the protecor mods searchs for protector nodes bearby
16:05 rdococ_ joined #minetest-dev
16:05 Krock *nearby
16:05 est31 it does a minetest.find_nodes_in_area call
16:06 est31 around the checked position
16:06 est31 so if you call minetest.is_protected for some points at the edge of the area, it will spawn one such call for every point
16:07 est31 what the call does is nothing else than iterating over the whole area and checking for the node, in c++
16:07 est31 but, most times the areas will overlap, which means some nodes are checked multiple times
16:08 est31 a minetest.is_protected_area call can be implemented with a minetest.find_nodes_in_area call as well
16:08 est31 here however you only need a single call, which means that each node gets checked only one time
16:09 est31 AND its secure
16:09 paramat ok so yes i agree with checking every node, not just edges
16:10 est31 that can be used as fallback
16:10 est31 e.g. standard implementation of minetest.is_protected_area is doing minetest.is_protected on every node of the area
16:11 est31 but protection mods are encouraged to override it
16:11 est31 hrmm probably it should default to false if there is no protection mod at all
16:11 est31 so something like:
16:12 est31 function minetest.is_protected_area(player, minpos, maxpos)
16:12 est31 if is_protected_orig == minetest.is_protected then return false end
16:12 est31 for nodes in area inside minpos maxpos
16:12 T4im so do I understand correctly, the idea is to test both area-corner nodes of the requested area to be in any protected area directly? seems more efficient, yea
16:12 est31 if minetest.is_protected(bla) return true end
16:13 est31 end end
16:13 T4im two tests instead of multiple
16:13 est31 two tests are not enough
16:13 est31 it wont be secure
16:13 paramat all nodes of the volume
16:13 est31 thats the only really secure way to do it
16:14 T4im why not? 2 nodes span the entire requested area, if one of those two points is in *any* protected area, there is an overlap, done
16:14 est31 but protection mods should be allowed to give a more efficient solution
16:14 est31 T4im, not really, what if a protected area is completely inside the requested area, not touching those nodes?
16:14 T4im ah
16:14 T4im sneaky
16:15 est31 or if the area only overlaps with the requested area, but only crosses it from an edge you didnt check
16:15 paramat indeed
16:16 paramat anyway, all htis can be done inside a sapling's 'on construct', no 'sapling placer' metadata needed
16:16 paramat (this)
16:16 paramat just don't start the timer if it's not allowed to grow
16:17 est31 thats bad for the users
16:17 est31 they dont know why their trees dont grow
16:17 est31 prevent placing completely
16:17 paramat well yeah somesort of feedback
16:18 paramat yes prevent placing, just like protection
16:18 est31 also it might create the expectation that if the player asks the other player to remove the area, the sapling will start to grow
16:19 nore est31: if we add is_protected_area
16:20 nore it should be done differently than right now
16:20 nore i.e. like all other code that does registrations
16:20 nore because overriding the function causes a lot of problems
16:21 est31 yeah
16:21 T4im the problem is, that the iterations are expensive htough
16:21 nore T4im: iterating through the callbacks?
16:22 T4im the overriding and passing along is ideally even getting some tail-call optimization on the way
16:22 T4im nore yes
16:22 nore it's not more expensive than the function getting nested
16:22 nore and, remember it's a JIT compiler
16:22 nore so, it will probably completely inline that and there will be no difference at all
16:23 T4im unfolding you mean, yea, maybe, but it'll not compete with tail-call optimization
16:26 nore T4im: it will.
16:26 twoelk joined #minetest-dev
16:26 nore it a *loop*
16:26 nore instead of *nested* recusive calls
16:29 SloanOnLinux joined #minetest-dev
16:30 T4im there are no recursive nor nested calls, that's the idea, if every mod behaves (and yes, that could be where it breaks) then is_protected can be a single large function in bytecode
16:49 Warr1024_ joined #minetest-dev
16:50 hmmmm joined #minetest-dev
16:56 T4im one could argue, that there aren't enough protection mods for it to really, so the premature optimization argument might be risen on the tail-calling :D
16:57 T4im to matter*
17:01 Tesseract est31: FIX THE EFFING WEBLATE MERGE FAILURES ALREADY! ... please? :-)
17:02 est31 Tesseract, see the issue
17:03 est31 https://github.com/minetest/minetest/issues/4301
17:03 est31 I am waiting for feedback from c55 right now
17:03 est31 whether he has removed the weblate hook or not
17:03 Tesseract BTW devs, for those who don't know, when you force push weblate gets the first push and spams us via email until it's fixed.
17:04 est31 the solution is not to not force push :)
17:06 Tesseract est31: Of course, just so they know the consequences.
17:06 est31 I'll sit down later today and fix it for now again
17:06 est31 but i prefer a long term fix, where weblate doesnt update automatically
17:06 est31 but requires manual updates
17:07 est31 thats the proper way :)
17:08 Tesseract Great, 'cause I was just about to set up an auto-delete filter in my mail server.
17:22 Warr1024 joined #minetest-dev
17:24 nrzkt joined #minetest-dev
17:31 ptv joined #minetest-dev
17:34 Calinou joined #minetest-dev
17:40 Fixer Tesseract: what is the future of https://github.com/minetest/minetest/pull/3810 ?
17:47 Taoki[mobile] joined #minetest-dev
17:59 paramat needs more testing, i really should ..
18:04 est31 Tesseract, but note that it will probably break again in the future
18:04 est31 as long as the long term fix isnt applied
18:05 Calinou joined #minetest-dev
18:11 Niebieski joined #minetest-dev
18:12 davisonio joined #minetest-dev
18:50 Void7 joined #minetest-dev
18:58 raingloom joined #minetest-dev
18:59 DI3HARD139 joined #minetest-dev
19:13 paramat i'll merge #4308 #4309 in a moment
19:13 ShadowBot https://github.com/minetest/minetest/issues/4308 -- Treegen: Improve use of signed vs. unsigned integers by paramat
19:13 ShadowBot https://github.com/minetest/minetest/issues/4309 -- Correct description of node drop behavior per issue #4283 by duane-r
19:15 Fixer VanessaE: this also looks like grief by tree
19:15 TheReaperKing joined #minetest-dev
19:16 Fixer VanessaE: https://i.imgur.com/8H8kwZA.png
19:20 paramat merging
19:21 ssieb joined #minetest-dev
19:26 est31 T4im, about #4245
19:26 ShadowBot https://github.com/minetest/minetest/issues/4245 -- Builtin/profiler: Replace builtin profiler by t4im
19:27 est31 I'll squash the commits to one, is the commit msg of the first commit okay for being the one of the merged commit?
19:28 T4im I can update it to be; Zeno pointed out thought, that it would make bisecting harder if something came up
19:29 est31 well its all closely related changes
19:29 est31 and there is no commit of the form "replace all occurences of mine-test in the source code with minetest"
19:30 est31 or idk, "replace space indents with tabs"
19:34 paramat merged
19:39 Fixer after profiler merge I guess ABMs should be labeled in MTG
19:39 Fixer but what about lbms?
19:40 T4im it's possible, but not necessary; it'll use the name as fallback (but labels allow you to group them)
19:51 Darcidride joined #minetest-dev
19:51 T4im alright, thanks est31 :)
19:52 est31 thanks for doing the PR :)
19:52 T4im now I can get to the fun part and add features for a new PR :P
19:52 est31 :)
19:54 T4im but #3849 #4220 can be closed then for now, I guess
19:54 ShadowBot https://github.com/minetest/minetest/issues/3849 -- Replace mod profiler
19:54 ShadowBot https://github.com/minetest/minetest/issues/4220 -- mod_profiling - wrong function prototype for on_punch
19:59 paramat ok will do
20:02 paramat oh it's done
20:20 KaadmY joined #minetest-dev
20:32 Tmanyo joined #minetest-dev
20:34 VargaD joined #minetest-dev
20:47 est31 PTAL https://github.com/est31/minetest/commit/​6621daee504bbc6755e0240a5515e16f56199197
20:47 est31 paramat, ^
20:50 est31 (if there is no reply, gonna push in 30 minutes)
20:50 rain_gloom joined #minetest-dev
21:12 VanessaE Fixer: indeed, that's an example of what I was talking about before (btw, don't run moretrees in "plant-like leaves" mode, it is no longer necessary)
21:16 proller joined #minetest-dev
21:48 paramat joined #minetest-dev
21:49 edgrey joined #minetest-dev
22:03 Miner_48er joined #minetest-dev
22:06 Player_2 joined #minetest-dev
22:27 troller joined #minetest-dev
22:34 VanessaE um, wut?  http://pastebin.ubuntu.com/19219569/
22:38 davisonio joined #minetest-dev
23:50 whitephoenix joined #minetest-dev
23:56 paramat left #minetest-dev

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