Is there a way to ensure that a turf that has a turf on top of it will still execute code under New()?
I have my location indicators as turfs in Sekia and they are invisible, but go over the visible turfs. The issue is that the grass, sand, etc. doesn't get to execute it's code under New() because of the top turf. Is there a way to force it to, even though there's a turf above it?
Nov 29 2013, 2:06 am
Best response
|
|
The only way to do that would be to make the location indicator and area or an object, that way you can still execute New(). The reason it does that is because it makes it an overlay at run time, rather than actually creating a new turf.
|
I gotcha...well I guess I'll just have to make them objs instead :/ Thanks for the help!
|
Thanks a lot! My host is down right now, but when his server's back up, feel free to check it out and play around a bit :)
|
In response to Mask of Illusion
|
|
Mask of Illusion wrote:
The reason it does that is because it makes it an overlay at run time, rather than actually creating a new turf. Hmmm...but if you place a turf on-top of another in the map editor by ctrl+clicking, there are actually two separate turfs, correct? |
In response to Magicsofa
|
|
Magicsofa wrote:
Mask of Illusion wrote: Yeah, there are... |
They are two separate turfs in the map editor, however anything on top of the first turf becomes an overlay at runtime.
|
Ok, that makes sense... I had noticed that changing the icon state of a turf will also affect any other turfs on the same tile, but I didn't realize they were actually combining.
However, it also seems that the most recent turf or the top turf is the one whose properties are preserved. What I mean is, if I put a non-dense turf with some special Entered() behavior, on top of a regular old floor turf, the Entered() proc still works. So it kinda seems like the floor is actually becoming the overlay (or underlay whatever) |