ID:265077
 
I'm considering the upload of a very simple library designed for people to make easily expandable wall/underbrush/water/bushes/mountains/etc. systems.

It's full of comments, and is designed for people to learn from it and either change it or deisgn their own system like it.


Does anyone think that people would use it?
What do you mean, exactly?
In response to Spuzzum
It's ready for upload, but I don't know if it would be of any use to BYOND.
In response to Lord of Water
I'm kinda curious. What's in the library, exactly? What features, etc.?

Since I haven't seen anything similar on the Libraries page, I'd venture a guess that this code would work pretty well up there. As I'm still learning BYOND, the more code, the merrier.

Lummox JR
In response to Lord of Water
Er, you still haven't told me what it is. The term "walls" can mean anything.

There's a song named Walls. I'm staring past my monitor at two Walls as it is.



If you mean an autojoining walls library, where walls and stuff with join together with other walls, check out this address:

http://www.pmikell.freeserve.co.uk/byond/examples/ autojoin.html
In response to Spuzzum
Nope.

It's different...

It's simply a more expandable version of this:

instead of

density = 1

you use

iswall = 1



This is infinately more expandable, and I'll always use it.
In response to Lord of Water
Lord of Water wrote:
Nope.

It's different...

It's simply a more expandable version of this:

instead of

density = 1

you use

iswall = 1



This is infinately more expandable, and I'll always use it.

...That's still not a particularly useful definition of what exactly it is your library does. Are you saying it defines levels of obstruction?
In response to Leftley
Yes. There are walls, and there is water and such code, too:

isdelayed = 1 will make things delayed.

turfdelaytime = ? determines the turf's base delay.

playerdelaytime = ? determines the player's extra slowdown in a terrain. This could be nice: a regular player moves through mountains and forests slowly, a horse or other vehicle moves more quickly. Cool?
In response to Lord of Water
I use density to determine if you can pass through the object, then just use istype(variable, /turf/wall) to see if something is a wall. If I want to have multiple types of walls, I just define them as children of the basic wall. They all return true for the istype() above.

turf
wall
density = 1
icon = 'wall.dmi'

brick
icon = 'brickwall.dmi'

breakable
icon = 'breakablewall.dmi'
var
damage = 0
maxdamage = 50

and so on...

Using an iswall variable, you still have to set density or overide the Move() proc to keep things from moving through walls.
In response to Lord of Water
Turf delays are cool :)

You could dump the isdelayed variable though. If a turf has no delay, then just set turfdelay = 0. Clear a few extra bytes from your programs ;)
In response to Lord of Water
Lord of Water wrote:
Yes. There are walls, and there is water and such code, too:

isdelayed = 1 will make things delayed.

turfdelaytime = ? determines the turf's base delay.

playerdelaytime = ? determines the player's extra slowdown in a terrain. This could be nice: a regular player moves through mountains and forests slowly, a horse or other vehicle moves more quickly. Cool?

Your claims of being "infinitely more expandable" seem rather unbased, then... in fact, your system is in fact finitely expandable, and with a lower limit than the standard movement engine--you've already expanded the standard movement engine out to where it is, and since there is a finite limit to how far you could expand it, that's that much less expansion to do.

But I digress. While a readily usable system for advanced obstruction is an intriguing idea for a library, flat variables usually aren't a particularly efficient method for doing things.
In response to Shadowdarke
Shadowdarke wrote:
I use density to determine if you can pass through the object, then just use istype(variable, /turf/wall) to see if something is a wall. If I want to have multiple types of walls, I just define them as children of the basic wall. They all return true for the istype() above.

turf
wall
density = 1
icon = 'wall.dmi'

brick
icon = 'brickwall.dmi'

breakable
icon = 'breakablewall.dmi'
var
damage = 0
maxdamage = 50

and so on...

Using an iswall variable, you still have to set density or overide the Move() proc to keep things from moving through walls.

I do the same, there isnt really a need for the iswall thing. Just extra work for something that can be done with the same (or less? not exactly sure how yours is set up, and how short I could make it) amount of code

Alathon
It's full of comments, and is designed for people to learn from it and either change it or deisgn their own system like it.

Does anyone think that people would use it?

It sounds like a fine idea to me. Some of the technical comments in this thread might bear considering before the public release, but by all means, share your creations with the BYOND community.

Hmm, here's another thought: in some games, movement can be initiated by the player or by outside forces (e.g., a vacuum). In the latter case, you might want to include an option to override the standard movement rate with a custom value.