Chocolateer wrote:The problem noted at Hastur's Workshop is fixed by changing the min/max platform heights slightly to ensure the platform resets each cycle and does not accumulate error over time. You shouldn't have to adjust the platform speed to deal with that problem.
Yeah, I was mucking about with heights and speeds and pretty much everything to try to get a sense of how the error worked. I still don't really have a handle on it, other than to say that I can make it work perfectly (i.e., no error as opposed to just resetting) for one specific set of heights/stops. What's weird is that if I just multiply all the heights by 2, it throws it off again. I think that's what started me messing with the speed, but I don't remember exactly since it was a couple weeks ago and I had only just started to experiment with Weland at all.
Using Lua to create multi-stop elevators is NOT the best implementation for most cases. The biggest limitation is that it only really works for solo maps, plus you should probably avoid using Lua where you can implement an equivalent feature without Lua.
I don't see why an embedded Lua script would only work for solo maps. I do understand why your approach to the single exit elevator would (the hub could go missing for one or more players), but I think a standard multistop via embedded Lua would work just fine in co-op or a net map. I've been meaning to get back to that and try it out in fact.
On a side note, my multi-stop platform using lua example got to be a big headache from having to micro-manage the positions of the doors, and I just left things in their current state. I probably could have improved the alignment of the doors by having them move fast for 95% of the distance to travel and then slow them down for precise alignment, but it just got to be more complicated than it was worth. Having the ability to change a platform's min and max height via Lua would greatly simplify things, and if that feature were ever to be made available I would likely release an update with cleaner/simpler lua code.
I actually had a few questions for you about that script, but I'll post them in that topic when I get back to messing with elevators. Just quickly, though, are you sure you can't manipulate the min/max platform height? I haven't tried it myself, but I'm guessing that platform.ceiling_height and platform.floor_height are
not just convenience accessors for platform.polygon.ceiling.height and platform.polygon.floor.height. I'm probably wrong but I took those to be accessors for the min/max platform heights.
There was a 3rd party companion utility to Forge called Chisel that could draw ellipses. I'm surprised someone hasn't taken the initiative to write a Weland plugin to add back some of that functionality. Perhaps it is because the method described above for creating circles is so easy that it isn't really needed. Weland is an improvement over Forge, though, in that you can now set the grid scale to whatever you want (which means you can create a circle with whatever radius you want).
I'm writing that plugin now. I downloaded the mono sdk this afternoon and had a "functional" plugin within a couple hours. It's not exactly working like it should, but it is doing something. Once I realized how easy this would be, it didn't make any sense to write a plugin to import lines - I should just have the plugin draw the lines itself using Weland's own code. I'm going to post a separate topic about it once I get a basic circle draw working correctly to get some feedback about what sorts of functionality people might be interested in. I have some ideas, but I'm not entirely sure what's possible just yet. You folks may think it's easy to hand draw a couple dozen lines to make a circle, but I'd just as soon have a tool that can do it for me
much faster!