Versions Compared
Key
- This line was added.
- This line was removed.
- Formatting was changed.
Excerpt |
---|
Some tricks with the include() function... |
Including a file if some other file not loaded
You can use this trick to create mods for your mods. A basic approach can be done using just the include() function and nothing else...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
if (include("path/to/mymod.custom.js") === false) { // not found include("path/to/mymod.default.js"); // load default settings } |
But, assuming you're starting to use dependencies, you might want a more robust approach...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
include("path/to/util.js"); Check.paths = ["path/to/"]; // enable autoloading if (!Check.has("mymod.custom.js")) { Check.load("mymod.default.js"); } |
The obvious problem here is that you might have dependencies that rely on "mymod.default.js", but if "mymod.custom.js" gets loaded instead those dependencies will break.
The solution to this is to provide a fake file in both "mymod.default.js" and "mymod.extend.js" and then use that for dependency checks:
Code Block | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
// use this ifThe normal provide() lets you wantcheck tolater check which settingsfile werewas loaded... Check.provide(self); // use this for general dependency checks The fake provide() lets you check that any settings were loaded... Check.provide({ file: "settings.loaded", ver : self.ver }); |
If you're particularly paranoid about having both file somehow get loaded, you can make sure "settings.loaded" isn't loaded during dependency checks at the top of those files...
Code Block | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
var dependencies = { "Util.js": Check.ANY_VERSION, "settings.loaded": Check.NOT_LOADED } // will throw error if "settings.loaded" already loaded... Check.required(dependencies, self); |
Div | ||||||
---|---|---|---|---|---|---|
| ||||||
Availability
Requires:
|
Div | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
Dependency CheckingTopics:
|