- Home /
Help with passing instances/members around
A little background about this code: I'm trying to get 4 scripts to work together to build levels in a roguelike-type setting.
Map.js - which is just a container class to store for a ton of member variables (Figure it's less trouble than trying to write an xml parser)
Level001.js - which creates an instance of Map with all the first level's parameters defined.
Interpreter.js - which gets an instance of Map from the relevant Level___.js, uses it to procedurally generate a level, and returns it as a 2D string array.
Spawner.js - which then parses the array and instantiates the level as grid of prefabs (though for testing purposes it only parses into a String with line-breaks and outputs to a GUI box right now.)
Now there are potentially a TON of questions here but I'm trying to figure them out myself one by one, only asking them if they stump me.
The question right now involves Interpreter.js, which is so far this:
#pragma strict
public var mapGrid: String[,]; //This is the ONLY thing that gets passed to the level spawner. Effectively a fully-constructed level in text form.
var mapInstance;
function Start () {
//This is basically the whole setup function. Splitting it up to make things easier to observe -- this could turn HUGE! XD
mapGrid = Initialize(MapInstance);
}
function Initialize (MapInstance: Map) { //Sets array params, then fills all cells with default tile.
var w = MapInstance.width;
...and so on.
What I'm wondering here is how do I get the spawner to create an instance of the interpreter and pass Level001 (or whichever else) to it as 'mapInstance'?
Also, are there any hangups I'm gonna have to fix in the interpreter itself to get this to run right? As is, it won't run - it's throwing "Assets/Scripts/MapGen/Interpreter.js(8,22): BCE0005: Unknown identifier: 'MapInstance'." I know it wants an instance of Map defined, but how do I tell it that instance is coming from another script?