Added Table of Contents to API Reference - Issue #104
This commit is contained in:
parent
6a73144c93
commit
2ee9dd6515
19 changed files with 503 additions and 415 deletions
45
build.xml
45
build.xml
|
@ -61,20 +61,53 @@
|
||||||
<javac includeantruntime="false" srcdir="${src}" destdir="${build}" classpath="${minecraft.dir}/craftbukkit.jar" />
|
<javac includeantruntime="false" srcdir="${src}" destdir="${build}" classpath="${minecraft.dir}/craftbukkit.jar" />
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="gendocs" depends="construct-ypgpm, init" description="Generate API documentation">
|
<target name="gendocs" depends="construct-ypgpm, construct-api-ref" description="Generate API documentation">
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="generate-api-ref-entries" depends="init">
|
||||||
<javac includeantruntime="false" srcdir="src/docs/java"/>
|
<javac includeantruntime="false" srcdir="src/docs/java"/>
|
||||||
<java classname="jscript" failonerror="true" fork="true" output="docs/API-Reference.md">
|
|
||||||
|
<java classname="jscript" failonerror="true" fork="true" output="${dist}/apiref.md">
|
||||||
<classpath>
|
<classpath>
|
||||||
<pathelement path="src/docs/java"/>
|
<pathelement path="src/docs/java"/>
|
||||||
</classpath>
|
</classpath>
|
||||||
<arg value="src/docs/javascript/generateApiDocs.js"/>
|
<arg value="src/docs/javascript/generateApiDocs.js"/>
|
||||||
<arg value="src/main/javascript"/>
|
<arg value="src/main/javascript"/>
|
||||||
</java>
|
</java>
|
||||||
|
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="gen-toc" depends="init" description="Generate Table of Contents for Young Programmers Guide">
|
<target name="construct-api-ref" depends="gen-toc-apiref,init">
|
||||||
|
|
||||||
|
<concat destfile="docs/API-Reference.md">
|
||||||
|
<header filtering="no" trimleading="yes"># ScriptCraft API Reference
|
||||||
|
|
||||||
|
Walter Higgins
|
||||||
|
|
||||||
|
[walter.higgins@gmail.com][email]
|
||||||
|
|
||||||
|
[email]: mailto:walter.higgins@gmail.com?subject=ScriptCraft_API_Reference
|
||||||
|
|
||||||
|
</header>
|
||||||
|
<fileset file="${dist}/toc-apiref.md" />
|
||||||
|
<fileset file="${dist}/apiref.md" />
|
||||||
|
</concat>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="gen-toc-apiref" depends="generate-api-ref-entries, init" description="Generate Table of Contents for API Reference">
|
||||||
<javac includeantruntime="false" srcdir="src/docs/java"/>
|
<javac includeantruntime="false" srcdir="src/docs/java"/>
|
||||||
<java classname="jscript" failonerror="true" fork="true" output="${dist}/toc.md">
|
<java classname="jscript" failonerror="true" fork="true" output="${dist}/toc-apiref.md">
|
||||||
|
<classpath>
|
||||||
|
<pathelement path="src/docs/java"/>
|
||||||
|
</classpath>
|
||||||
|
<arg value="src/docs/javascript/generateTOC.js"/>
|
||||||
|
<arg value="${dist}/apiref.md"/>
|
||||||
|
</java>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="gen-toc-ypgpm" depends="init" description="Generate Table of Contents for Young Programmers Guide">
|
||||||
|
<javac includeantruntime="false" srcdir="src/docs/java"/>
|
||||||
|
<java classname="jscript" failonerror="true" fork="true" output="${dist}/toc-ypgpm.md">
|
||||||
<classpath>
|
<classpath>
|
||||||
<pathelement path="src/docs/java"/>
|
<pathelement path="src/docs/java"/>
|
||||||
</classpath>
|
</classpath>
|
||||||
|
@ -84,12 +117,12 @@
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<!-- Piece together the Young persons' guide from template and generated table of contents -->
|
<!-- Piece together the Young persons' guide from template and generated table of contents -->
|
||||||
<target name="construct-ypgpm" depends="gen-toc,init">
|
<target name="construct-ypgpm" depends="gen-toc-ypgpm,init">
|
||||||
<concat destfile="docs/YoungPersonsGuideToProgrammingMinecraft.md">
|
<concat destfile="docs/YoungPersonsGuideToProgrammingMinecraft.md">
|
||||||
<header filtering="no" trimleading="yes"># The Young Person's Guide to Programming in Minecraft
|
<header filtering="no" trimleading="yes"># The Young Person's Guide to Programming in Minecraft
|
||||||
|
|
||||||
</header>
|
</header>
|
||||||
<fileset file="${dist}/toc.md" />
|
<fileset file="${dist}/toc-ypgpm.md" />
|
||||||
<fileset file="src/docs/templates/ypgpm.mdt" />
|
<fileset file="src/docs/templates/ypgpm.mdt" />
|
||||||
</concat>
|
</concat>
|
||||||
</target>
|
</target>
|
||||||
|
|
|
@ -6,6 +6,134 @@ Walter Higgins
|
||||||
|
|
||||||
[email]: mailto:walter.higgins@gmail.com?subject=ScriptCraft_API_Reference
|
[email]: mailto:walter.higgins@gmail.com?subject=ScriptCraft_API_Reference
|
||||||
|
|
||||||
|
## Table of Contents
|
||||||
|
* [Modules in Scriptcraft](#modules-in-scriptcraft)
|
||||||
|
* [Module Loading](#module-loading)
|
||||||
|
* [The plugins directory](#the-plugins-directory)
|
||||||
|
* [The modules directory](#the-modules-directory)
|
||||||
|
* [The lib directory](#the-lib-directory)
|
||||||
|
* [plugins sub-directories](#plugins-sub-directories)
|
||||||
|
* [Global variables](#global-variables)
|
||||||
|
* [__plugin variable](#plugin-variable)
|
||||||
|
* [server variable](#server-variable)
|
||||||
|
* [self variable](#self-variable)
|
||||||
|
* [config variable](#config-variable)
|
||||||
|
* [events variable](#events-variable)
|
||||||
|
* [Module variables](#module-variables)
|
||||||
|
* [__filename variable](#9595filename-variable)
|
||||||
|
* [__dirname variable](#9595dirname-variable)
|
||||||
|
* [Global functions](#global-functions)
|
||||||
|
* [echo function](#echo-function)
|
||||||
|
* [require() function](#require-function)
|
||||||
|
* [load() function](#load-function)
|
||||||
|
* [save() function](#save-function)
|
||||||
|
* [plugin() function](#plugin-function)
|
||||||
|
* [command() function](#command-function)
|
||||||
|
* [setTimeout() function](#settimeout-function)
|
||||||
|
* [clearTimeout() function](#cleartimeout-function)
|
||||||
|
* [setInterval() function](#setinterval-function)
|
||||||
|
* [clearInterval() function](#clearinterval-function)
|
||||||
|
* [refresh() function](#refresh-function)
|
||||||
|
* [addUnloadHandler() function](#addunloadhandler-function)
|
||||||
|
* [require - Node.js-style module loading in ScriptCraft](#require---nodejs-style-module-loading-in-scriptcraft)
|
||||||
|
* [math.js](#mathjs)
|
||||||
|
* [inc.js](#incjs)
|
||||||
|
* [program.js](#programjs)
|
||||||
|
* [Important](#important)
|
||||||
|
* [module name resolution](#module-name-resolution)
|
||||||
|
* [events Module](#events-module)
|
||||||
|
* [events.on() static method](#eventson-static-method)
|
||||||
|
* [console global variable](#console-global-variable)
|
||||||
|
* [Example](#example)
|
||||||
|
* [Using string substitutions](#using-string-substitutions)
|
||||||
|
* [Blocks Module](#blocks-module)
|
||||||
|
* [Examples](#examples)
|
||||||
|
* [Fireworks Module](#fireworks-module)
|
||||||
|
* [Examples](#examples)
|
||||||
|
* [http.request() function](#httprequest-function)
|
||||||
|
* [Parameters](#parameters)
|
||||||
|
* [Example](#example)
|
||||||
|
* [Utilities Module](#utilities-module)
|
||||||
|
* [utils.player() function](#utilsplayer-function)
|
||||||
|
* [utils.locationToJSON() function](#utilslocationtojson-function)
|
||||||
|
* [utils.locationToString() function](#utilslocationtostring-function)
|
||||||
|
* [utils.locationFromJSON() function](#utilslocationfromjson-function)
|
||||||
|
* [utils.getPlayerPos() function](#utilsgetplayerpos-function)
|
||||||
|
* [utils.getMousePos() function](#utilsgetmousepos-function)
|
||||||
|
* [utils.foreach() function](#utilsforeach-function)
|
||||||
|
* [utils.nicely() function](#utilsnicely-function)
|
||||||
|
* [utils.at() function](#utilsat-function)
|
||||||
|
* [utils.find() function](#utilsfind-function)
|
||||||
|
* [Drone Plugin](#drone-plugin)
|
||||||
|
* [TLDNR; (Just read this if you're impatient)](#tldnr-just-read-this-if-youre-impatient)
|
||||||
|
* [Constructing a Drone Object](#constructing-a-drone-object)
|
||||||
|
* [Drone.box() method](#dronebox-method)
|
||||||
|
* [Drone.box0() method](#dronebox0-method)
|
||||||
|
* [Drone.boxa() method](#droneboxa-method)
|
||||||
|
* [Drone Movement](#drone-movement)
|
||||||
|
* [Drone Positional Info](#drone-positional-info)
|
||||||
|
* [Drone Markers](#drone-markers)
|
||||||
|
* [Drone.prism() method](#droneprism-method)
|
||||||
|
* [Drone.prism0() method](#droneprism0-method)
|
||||||
|
* [Drone.cylinder() method](#dronecylinder-method)
|
||||||
|
* [Drone.cylinder0() method](#dronecylinder0-method)
|
||||||
|
* [Drone.arc() method](#dronearc-method)
|
||||||
|
* [Drone.door() method](#dronedoor-method)
|
||||||
|
* [Drone.door2() method](#dronedoor2-method)
|
||||||
|
* [Drone.sign() method](#dronesign-method)
|
||||||
|
* [Drone Trees methods](#drone-trees-methods)
|
||||||
|
* [Drone.garden() method](#dronegarden-method)
|
||||||
|
* [Drone.rand() method](#dronerand-method)
|
||||||
|
* [Copy & Paste using Drone](#copy--paste-using-drone)
|
||||||
|
* [Drone.copy() method](#dronecopy-method)
|
||||||
|
* [Drone.paste() method](#dronepaste-method)
|
||||||
|
* [Chaining](#chaining)
|
||||||
|
* [Drone Properties](#drone-properties)
|
||||||
|
* [Extending Drone](#extending-drone)
|
||||||
|
* [Drone.extend() static method](#droneextend-static-method)
|
||||||
|
* [Drone Constants](#drone-constants)
|
||||||
|
* [Drone.times() Method](#dronetimes-method)
|
||||||
|
* [Drone.blocktype() method](#droneblocktype-method)
|
||||||
|
* [Drone.rainbow() method](#dronerainbow-method)
|
||||||
|
* [Drone.sphere() method](#dronesphere-method)
|
||||||
|
* [Drone.sphere0() method](#dronesphere0-method)
|
||||||
|
* [Drone.hemisphere() method](#dronehemisphere-method)
|
||||||
|
* [Drone.hemisphere0() method](#dronehemisphere0-method)
|
||||||
|
* [Drone.spiral_stairs() method](#dronespiralstairs-method)
|
||||||
|
* [Example Plugin #1 - A simple extension to Minecraft.](#example-plugin-1---a-simple-extension-to-minecraft)
|
||||||
|
* [Usage:](#usage)
|
||||||
|
* [Example Plugin #2 - Making extensions available for all players.](#example-plugin-2---making-extensions-available-for-all-players)
|
||||||
|
* [Usage:](#usage)
|
||||||
|
* [Example Plugin #3 - Limiting use of commands to operators only.](#example-plugin-3---limiting-use-of-commands-to-operators-only)
|
||||||
|
* [Usage:](#usage)
|
||||||
|
* [Example Plugin #4 - Using parameters in commands.](#example-plugin-4---using-parameters-in-commands)
|
||||||
|
* [Usage:](#usage)
|
||||||
|
* [Example Plugin #5 - Re-use - Using your own and others modules.](#example-plugin-5---re-use---using-your-own-and-others-modules)
|
||||||
|
* [Usage:](#usage)
|
||||||
|
* [Example Plugin #6 - Re-use - Using 'utils' to get Player objects.](#example-plugin-6---re-use---using-utils-to-get-player-objects)
|
||||||
|
* [Usage:](#usage)
|
||||||
|
* [Example Plugin #7 - Listening for events, Greet players when they join the game.](#example-plugin-7---listening-for-events-greet-players-when-they-join-the-game)
|
||||||
|
* [Arrows Plugin](#arrows-plugin)
|
||||||
|
* [Usage:](#usage)
|
||||||
|
* [alias Plugin](#alias-plugin)
|
||||||
|
* [Examples](#examples)
|
||||||
|
* [Classroom Plugin](#classroom-plugin)
|
||||||
|
* [classroom.allowScripting() function](#classroomallowscripting-function)
|
||||||
|
* [Commando Plugin](#commando-plugin)
|
||||||
|
* [Description](#description)
|
||||||
|
* [Example hi-command.js](#example-hi-commandjs)
|
||||||
|
* [Example - timeofday-command.js](#example---timeofday-commandjs)
|
||||||
|
* [Caveats](#caveats)
|
||||||
|
* [homes Plugin](#homes-plugin)
|
||||||
|
* [Basic options](#basic-options)
|
||||||
|
* [Social options](#social-options)
|
||||||
|
* [Administration options](#administration-options)
|
||||||
|
* [NumberGuess mini-game:](#numberguess-mini-game)
|
||||||
|
* [Description](#description)
|
||||||
|
* [Example](#example)
|
||||||
|
* [SnowballFight mini-game](#snowballfight-mini-game)
|
||||||
|
* [Description](#description)
|
||||||
|
|
||||||
## Modules in Scriptcraft
|
## Modules in Scriptcraft
|
||||||
|
|
||||||
ScriptCraft has a simple module loading system. In ScriptCraft, files
|
ScriptCraft has a simple module loading system. In ScriptCraft, files
|
||||||
|
@ -158,10 +286,10 @@ The events object is used to add new event handlers to Minecraft.
|
||||||
## Module variables
|
## Module variables
|
||||||
The following variables are available only within the context of Modules. (not available at in-game prompt).
|
The following variables are available only within the context of Modules. (not available at in-game prompt).
|
||||||
|
|
||||||
### __filename variable
|
### __filename variable
|
||||||
The current file - this variable is only relevant from within the context of a Javascript module.
|
The current file - this variable is only relevant from within the context of a Javascript module.
|
||||||
|
|
||||||
### __dirname variable
|
### __dirname variable
|
||||||
The current directory - this variable is only relevant from within the context of a Javascript module.
|
The current directory - this variable is only relevant from within the context of a Javascript module.
|
||||||
|
|
||||||
## Global functions
|
## Global functions
|
||||||
|
@ -174,7 +302,7 @@ The `echo()` function displays a message on the in-game screen. The
|
||||||
message is displayed to the `self` player (this is usually the player
|
message is displayed to the `self` player (this is usually the player
|
||||||
who issued the `/js` or `/jsp` command).
|
who issued the `/js` or `/jsp` command).
|
||||||
|
|
||||||
### Example
|
#### Example
|
||||||
|
|
||||||
/js echo('Hello World')
|
/js echo('Hello World')
|
||||||
|
|
||||||
|
@ -182,7 +310,7 @@ For programmers familiar with Javascript web programming, an `alert`
|
||||||
function is also provided. `alert` works exactly the same as `echo`
|
function is also provided. `alert` works exactly the same as `echo`
|
||||||
e.g. `alert('Hello World')`.
|
e.g. `alert('Hello World')`.
|
||||||
|
|
||||||
### Notes
|
#### Notes
|
||||||
|
|
||||||
The `echo` and `alert` functions are provided as convenience functions
|
The `echo` and `alert` functions are provided as convenience functions
|
||||||
for beginning programmers. The use of these 2 functions is not
|
for beginning programmers. The use of these 2 functions is not
|
||||||
|
@ -190,26 +318,7 @@ recommended in event-handling code or multi-threaded code. In such
|
||||||
cases, if you want to send a message to a given player then use the
|
cases, if you want to send a message to a given player then use the
|
||||||
Bukkit API's [Player.sendMessage()][plsm] function instead.
|
Bukkit API's [Player.sendMessage()][plsm] function instead.
|
||||||
|
|
||||||
[plsm]:
|
[plsm]: http://jd.bukkit.org/dev/apidocs/org/bukkit/command/CommandSender.html#sendMessage(java.lang.String)
|
||||||
|
|
||||||
* require (modulename) - Will load modules. See [Node.js modules][njsmod]
|
|
||||||
|
|
||||||
* load (filename,warnOnFileNotFound) - loads and evaluates a
|
|
||||||
javascript file, returning the evaluated object. (Note: Prefer
|
|
||||||
`require()` to `load()`)
|
|
||||||
|
|
||||||
* save (object, filename) - saves an object to a file.
|
|
||||||
|
|
||||||
* plugin (name, interface, isPersistent) - defines a new plugin. If
|
|
||||||
isPersistent is true then the plugin doesn't have to worry about
|
|
||||||
loading and saving state - that will be done by the framework. Just
|
|
||||||
make sure that anything you want to save (and restore) is in the plugin's
|
|
||||||
'store' property - this will be created automatically if not
|
|
||||||
already defined. (its type is object {} ) . More on plugins below.
|
|
||||||
|
|
||||||
* command (name, function) - defines a command that can be used by
|
|
||||||
non-operators. The `command` function provides a way for plugin
|
|
||||||
developers to provide new commands for use by players.
|
|
||||||
|
|
||||||
### require() function
|
### require() function
|
||||||
|
|
||||||
|
@ -252,17 +361,16 @@ load() will return the result of the last statement evaluated in the file.
|
||||||
|
|
||||||
var myData = load("myData.json"); // loads a javascript file and evaluates it - eval'd contents are returned.
|
var myData = load("myData.json"); // loads a javascript file and evaluates it - eval'd contents are returned.
|
||||||
|
|
||||||
myData.json contents...
|
##### myData.json contents...
|
||||||
|
|
||||||
__data = {
|
{ players: {
|
||||||
players: {
|
walterh: {
|
||||||
walterh: {
|
h: ["jsp home {1}"],
|
||||||
h: ["jsp home {1}"],
|
sunny:["time set 0",
|
||||||
sunny:["time set 0",
|
"weather clear"]
|
||||||
"weather clear"]
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
### save() function
|
### save() function
|
||||||
|
|
||||||
|
@ -286,11 +394,12 @@ restored using the `load()` function.
|
||||||
date_of_birth: '1982/01/31' };
|
date_of_birth: '1982/01/31' };
|
||||||
save(myObject, 'johndoe.json');
|
save(myObject, 'johndoe.json');
|
||||||
|
|
||||||
johndoe.json contents...
|
##### johndoe.json contents...
|
||||||
|
|
||||||
var __data = { "name": "John Doe",
|
{ "name": "John Doe",
|
||||||
"aliases": ["John Ray", "John Mee"],
|
"aliases": ["John Ray", "John Mee"],
|
||||||
"date_of_birth": "1982/01/31" };
|
"date_of_birth": "1982/01/31"
|
||||||
|
};
|
||||||
|
|
||||||
### plugin() function
|
### plugin() function
|
||||||
|
|
||||||
|
@ -1024,8 +1133,8 @@ a given directory and recursiving trawling all sub-directories.
|
||||||
return name.match(/\.js$/);
|
return name.match(/\.js$/);
|
||||||
});
|
});
|
||||||
|
|
||||||
Drone Module
|
## Drone Plugin
|
||||||
============
|
|
||||||
The Drone is a convenience class for building. It can be used for...
|
The Drone is a convenience class for building. It can be used for...
|
||||||
|
|
||||||
1. Building
|
1. Building
|
||||||
|
@ -1037,8 +1146,8 @@ be chained together like so...
|
||||||
var theDrone = new Drone();
|
var theDrone = new Drone();
|
||||||
theDrone.up().left().box(blocks.oak).down().fwd(3).cylinder0(blocks.lava,8);
|
theDrone.up().left().box(blocks.oak).down().fwd(3).cylinder0(blocks.lava,8);
|
||||||
|
|
||||||
TLDNR; (Just read this if you're impatient)
|
### TLDNR; (Just read this if you're impatient)
|
||||||
===========================================
|
|
||||||
At the in-game command prompt type...
|
At the in-game command prompt type...
|
||||||
|
|
||||||
/js box( blocks.oak )
|
/js box( blocks.oak )
|
||||||
|
@ -1051,8 +1160,7 @@ At the in-game command prompt type...
|
||||||
wide x 9 tall x 1 long in size. If you want to see what else
|
wide x 9 tall x 1 long in size. If you want to see what else
|
||||||
ScriptCraft's Drone can do, read on...
|
ScriptCraft's Drone can do, read on...
|
||||||
|
|
||||||
Constructing a Drone Object
|
### Constructing a Drone Object
|
||||||
===========================
|
|
||||||
|
|
||||||
Drones can be created in any of the following ways...
|
Drones can be created in any of the following ways...
|
||||||
|
|
||||||
|
@ -1143,8 +1251,8 @@ Drones can be created in any of the following ways...
|
||||||
// do more stuff with the drone here...
|
// do more stuff with the drone here...
|
||||||
});
|
});
|
||||||
|
|
||||||
Parameters
|
#### Parameters
|
||||||
----------
|
|
||||||
* location (optional) : *NB* If an `org.bukkit.Location` object is provided as a parameter, then it should be the only parameter.
|
* location (optional) : *NB* If an `org.bukkit.Location` object is provided as a parameter, then it should be the only parameter.
|
||||||
* x (optional) : The x coordinate of the Drone
|
* x (optional) : The x coordinate of the Drone
|
||||||
* y (optional) : The y coordinate of the Drone
|
* y (optional) : The y coordinate of the Drone
|
||||||
|
@ -1153,12 +1261,12 @@ Parameters
|
||||||
facing. Possible values are 0 (east), 1 (south), 2 (west) or 3 (north)
|
facing. Possible values are 0 (east), 1 (south), 2 (west) or 3 (north)
|
||||||
* world (optional) : The world in which the drone is created.
|
* world (optional) : The world in which the drone is created.
|
||||||
|
|
||||||
Drone.box() method
|
### Drone.box() method
|
||||||
==================
|
|
||||||
the box() method is a convenience method for building things. (For the more performance-oriented method - see cuboid)
|
the box() method is a convenience method for building things. (For the more performance-oriented method - see cuboid)
|
||||||
|
|
||||||
parameters
|
#### parameters
|
||||||
----------
|
|
||||||
* b - the block id - e.g. 6 for an oak sapling or '6:2' for a birch sapling.
|
* b - the block id - e.g. 6 for an oak sapling or '6:2' for a birch sapling.
|
||||||
Alternatively you can use any one of the `blocks` values e.g. `blocks.sapling.birch`
|
Alternatively you can use any one of the `blocks` values e.g. `blocks.sapling.birch`
|
||||||
* w (optional - default 1) - the width of the structure
|
* w (optional - default 1) - the width of the structure
|
||||||
|
@ -1167,8 +1275,8 @@ parameters
|
||||||
not how deep underground the structure lies - this is how far
|
not how deep underground the structure lies - this is how far
|
||||||
away (depth of field) from the drone the structure will extend.
|
away (depth of field) from the drone the structure will extend.
|
||||||
|
|
||||||
Example
|
#### Example
|
||||||
-------
|
|
||||||
To create a black structure 4 blocks wide, 9 blocks tall and 1 block long...
|
To create a black structure 4 blocks wide, 9 blocks tall and 1 block long...
|
||||||
|
|
||||||
box(blocks.wool.black, 4, 9, 1);
|
box(blocks.wool.black, 4, 9, 1);
|
||||||
|
@ -1180,12 +1288,12 @@ To create a black structure 4 blocks wide, 9 blocks tall and 1 block long...
|
||||||
|
|
||||||
![box example 1](img/boxex1.png)
|
![box example 1](img/boxex1.png)
|
||||||
|
|
||||||
Drone.box0() method
|
### Drone.box0() method
|
||||||
===================
|
|
||||||
Another convenience method - this one creates 4 walls with no floor or ceiling.
|
Another convenience method - this one creates 4 walls with no floor or ceiling.
|
||||||
|
|
||||||
Parameters
|
#### Parameters
|
||||||
----------
|
|
||||||
* block - the block id - e.g. 6 for an oak sapling or '6:2' for a birch sapling.
|
* block - the block id - e.g. 6 for an oak sapling or '6:2' for a birch sapling.
|
||||||
Alternatively you can use any one of the `blocks` values e.g. `blocks.sapling.birch`
|
Alternatively you can use any one of the `blocks` values e.g. `blocks.sapling.birch`
|
||||||
* width (optional - default 1) - the width of the structure
|
* width (optional - default 1) - the width of the structure
|
||||||
|
@ -1193,28 +1301,28 @@ Parameters
|
||||||
* length (optional - default 1) - the length of the structure - how far
|
* length (optional - default 1) - the length of the structure - how far
|
||||||
away (depth of field) from the drone the structure will extend.
|
away (depth of field) from the drone the structure will extend.
|
||||||
|
|
||||||
Example
|
#### Example
|
||||||
-------
|
|
||||||
To create a stone building with the insided hollowed out 7 wide by 3 tall by 6 long...
|
To create a stone building with the insided hollowed out 7 wide by 3 tall by 6 long...
|
||||||
|
|
||||||
box0( blocks.stone, 7, 3, 6);
|
box0( blocks.stone, 7, 3, 6);
|
||||||
|
|
||||||
![example box0](img/box0ex1.png)
|
![example box0](img/box0ex1.png)
|
||||||
|
|
||||||
Drone.boxa() method
|
### Drone.boxa() method
|
||||||
===================
|
|
||||||
Construct a cuboid using an array of blocks. As the drone moves first along the width axis,
|
Construct a cuboid using an array of blocks. As the drone moves first along the width axis,
|
||||||
then the height (y axis) then the length, each block is picked from the array and placed.
|
then the height (y axis) then the length, each block is picked from the array and placed.
|
||||||
|
|
||||||
Parameters
|
#### Parameters
|
||||||
----------
|
|
||||||
* blocks - An array of blocks - each block in the array will be placed in turn.
|
* blocks - An array of blocks - each block in the array will be placed in turn.
|
||||||
* width
|
* width
|
||||||
* height
|
* height
|
||||||
* length
|
* length
|
||||||
|
|
||||||
Example
|
#### Example
|
||||||
-------
|
|
||||||
Construct a rainbow-colored road 100 blocks long...
|
Construct a rainbow-colored road 100 blocks long...
|
||||||
|
|
||||||
var rainbowColors = [blocks.wool.red, blocks.wool.orange, blocks.wool.yellow, blocks.wool.lime,
|
var rainbowColors = [blocks.wool.red, blocks.wool.orange, blocks.wool.yellow, blocks.wool.lime,
|
||||||
|
@ -1224,8 +1332,8 @@ Construct a rainbow-colored road 100 blocks long...
|
||||||
|
|
||||||
![boxa example](img/boxaex1.png)
|
![boxa example](img/boxaex1.png)
|
||||||
|
|
||||||
Drone Movement
|
### Drone Movement
|
||||||
==============
|
|
||||||
Drones can move freely in minecraft's 3-D world. You control the
|
Drones can move freely in minecraft's 3-D world. You control the
|
||||||
Drone's movement using any of the following methods..
|
Drone's movement using any of the following methods..
|
||||||
|
|
||||||
|
@ -1248,13 +1356,12 @@ drone.turn() will make the turn face east. If the drone is facing east
|
||||||
then drone.turn(2) will make the drone turn twice so that it is facing
|
then drone.turn(2) will make the drone turn twice so that it is facing
|
||||||
west.
|
west.
|
||||||
|
|
||||||
Drone Positional Info
|
### Drone Positional Info
|
||||||
=====================
|
|
||||||
|
|
||||||
* getLocation() - Returns a Bukkit Location object for the drone
|
* getLocation() - Returns a Bukkit Location object for the drone
|
||||||
|
|
||||||
Drone Markers
|
### Drone Markers
|
||||||
=============
|
|
||||||
Markers are useful when your Drone has to do a lot of work. You can
|
Markers are useful when your Drone has to do a lot of work. You can
|
||||||
set a check-point and return to the check-point using the move()
|
set a check-point and return to the check-point using the move()
|
||||||
method. If your drone is about to undertake a lot of work -
|
method. If your drone is about to undertake a lot of work -
|
||||||
|
@ -1270,12 +1377,11 @@ Markers are created and returned to using the followng two methods...
|
||||||
* move - moves the drone to a saved location. Alternatively you can provide an
|
* move - moves the drone to a saved location. Alternatively you can provide an
|
||||||
org.bukkit.Location object or x,y,z and direction parameters.
|
org.bukkit.Location object or x,y,z and direction parameters.
|
||||||
|
|
||||||
Parameters
|
#### Parameters
|
||||||
----------
|
|
||||||
* name - the name of the checkpoint to save or return to.
|
* name - the name of the checkpoint to save or return to.
|
||||||
|
|
||||||
Example
|
#### Example
|
||||||
-------
|
|
||||||
|
|
||||||
drone.chkpt('town-square');
|
drone.chkpt('town-square');
|
||||||
//
|
//
|
||||||
|
@ -1289,68 +1395,65 @@ Example
|
||||||
//
|
//
|
||||||
drone.move('town-square');
|
drone.move('town-square');
|
||||||
|
|
||||||
Drone.prism() method
|
### Drone.prism() method
|
||||||
====================
|
|
||||||
Creates a prism. This is useful for roofs on houses.
|
Creates a prism. This is useful for roofs on houses.
|
||||||
|
|
||||||
Parameters
|
#### Parameters
|
||||||
----------
|
|
||||||
|
|
||||||
* block - the block id - e.g. 6 for an oak sapling or '6:2' for a birch sapling.
|
* block - the block id - e.g. 6 for an oak sapling or '6:2' for a birch sapling.
|
||||||
Alternatively you can use any one of the `blocks` values e.g. `blocks.sapling.birch`
|
Alternatively you can use any one of the `blocks` values e.g. `blocks.sapling.birch`
|
||||||
* width - the width of the prism
|
* width - the width of the prism
|
||||||
* length - the length of the prism (will be 2 time its height)
|
* length - the length of the prism (will be 2 time its height)
|
||||||
|
|
||||||
Example
|
#### Example
|
||||||
-------
|
|
||||||
|
|
||||||
prism(blocks.oak,3,12);
|
prism(blocks.oak,3,12);
|
||||||
|
|
||||||
![prism example](img/prismex1.png)
|
![prism example](img/prismex1.png)
|
||||||
|
|
||||||
Drone.prism0() method
|
### Drone.prism0() method
|
||||||
=====================
|
|
||||||
A variation on `prism` which hollows out the inside of the prism. It uses the same parameters as `prism`.
|
A variation on `prism` which hollows out the inside of the prism. It uses the same parameters as `prism`.
|
||||||
|
|
||||||
Drone.cylinder() method
|
### Drone.cylinder() method
|
||||||
=======================
|
|
||||||
A convenience method for building cylinders. Building begins radius blocks to the right and forward.
|
A convenience method for building cylinders. Building begins radius blocks to the right and forward.
|
||||||
|
|
||||||
Parameters
|
#### Parameters
|
||||||
----------
|
|
||||||
|
|
||||||
* block - the block id - e.g. 6 for an oak sapling or '6:2' for a birch sapling.
|
* block - the block id - e.g. 6 for an oak sapling or '6:2' for a birch sapling.
|
||||||
Alternatively you can use any one of the `blocks` values e.g. `blocks.sapling.birch`
|
Alternatively you can use any one of the `blocks` values e.g. `blocks.sapling.birch`
|
||||||
* radius
|
* radius
|
||||||
* height
|
* height
|
||||||
|
|
||||||
Example
|
#### Example
|
||||||
-------
|
|
||||||
To create a cylinder of Iron 7 blocks in radius and 1 block high...
|
To create a cylinder of Iron 7 blocks in radius and 1 block high...
|
||||||
|
|
||||||
cylinder(blocks.iron, 7 , 1);
|
cylinder(blocks.iron, 7 , 1);
|
||||||
|
|
||||||
![cylinder example](img/cylinderex1.png)
|
![cylinder example](img/cylinderex1.png)
|
||||||
|
|
||||||
Drone.cylinder0() method
|
### Drone.cylinder0() method
|
||||||
========================
|
|
||||||
A version of cylinder that hollows out the middle.
|
A version of cylinder that hollows out the middle.
|
||||||
|
|
||||||
Example
|
#### Example
|
||||||
-------
|
|
||||||
To create a hollow cylinder of Iron 7 blocks in radius and 1 block high...
|
To create a hollow cylinder of Iron 7 blocks in radius and 1 block high...
|
||||||
|
|
||||||
cylinder0(blocks.iron, 7, 1);
|
cylinder0(blocks.iron, 7, 1);
|
||||||
|
|
||||||
![cylinder0 example](img/cylinder0ex1.png)
|
![cylinder0 example](img/cylinder0ex1.png)
|
||||||
|
|
||||||
Drone.arc() method
|
### Drone.arc() method
|
||||||
==================
|
|
||||||
The arc() method can be used to create 1 or more 90 degree arcs in the horizontal or vertical planes.
|
The arc() method can be used to create 1 or more 90 degree arcs in the horizontal or vertical planes.
|
||||||
This method is called by cylinder() and cylinder0() and the sphere() and sphere0() methods.
|
This method is called by cylinder() and cylinder0() and the sphere() and sphere0() methods.
|
||||||
|
|
||||||
Parameters
|
#### Parameters
|
||||||
----------
|
|
||||||
arc() takes a single parameter - an object with the following named properties...
|
arc() takes a single parameter - an object with the following named properties...
|
||||||
|
|
||||||
* radius - The radius of the arc.
|
* radius - The radius of the arc.
|
||||||
|
@ -1372,8 +1475,8 @@ arc() takes a single parameter - an object with the following named properties..
|
||||||
circle to draw. If the quadrants property is absent then all 4
|
circle to draw. If the quadrants property is absent then all 4
|
||||||
quadrants are drawn.
|
quadrants are drawn.
|
||||||
|
|
||||||
Examples
|
#### Examples
|
||||||
--------
|
|
||||||
To draw a 1/4 circle (top right quadrant only) with a radius of 10 and stroke width of 2 blocks ...
|
To draw a 1/4 circle (top right quadrant only) with a radius of 10 and stroke width of 2 blocks ...
|
||||||
|
|
||||||
arc({blockType: blocks.iron,
|
arc({blockType: blocks.iron,
|
||||||
|
@ -1391,16 +1494,16 @@ To draw a 1/4 circle (top right quadrant only) with a radius of 10 and stroke wi
|
||||||
[bres]: http://en.wikipedia.org/wiki/Midpoint_circle_algorithm
|
[bres]: http://en.wikipedia.org/wiki/Midpoint_circle_algorithm
|
||||||
[dv]: http://www.minecraftwiki.net/wiki/Data_values
|
[dv]: http://www.minecraftwiki.net/wiki/Data_values
|
||||||
|
|
||||||
Drone.door() method
|
### Drone.door() method
|
||||||
===================
|
|
||||||
create a door - if a parameter is supplied an Iron door is created otherwise a wooden door is created.
|
create a door - if a parameter is supplied an Iron door is created otherwise a wooden door is created.
|
||||||
|
|
||||||
Parameters
|
#### Parameters
|
||||||
----------
|
|
||||||
* doorType (optional - default wood) - If a parameter is provided then the door is Iron.
|
* doorType (optional - default wood) - If a parameter is provided then the door is Iron.
|
||||||
|
|
||||||
Example
|
#### Example
|
||||||
-------
|
|
||||||
To create a wooden door at the crosshairs/drone's location...
|
To create a wooden door at the crosshairs/drone's location...
|
||||||
|
|
||||||
var drone = new Drone();
|
var drone = new Drone();
|
||||||
|
@ -1412,33 +1515,33 @@ To create an iron door...
|
||||||
|
|
||||||
![iron door](img/doorex1.png)
|
![iron door](img/doorex1.png)
|
||||||
|
|
||||||
Drone.door2() method
|
### Drone.door2() method
|
||||||
====================
|
|
||||||
Create double doors (left and right side)
|
Create double doors (left and right side)
|
||||||
|
|
||||||
Parameters
|
#### Parameters
|
||||||
----------
|
|
||||||
* doorType (optional - default wood) - If a parameter is provided then the door is Iron.
|
* doorType (optional - default wood) - If a parameter is provided then the door is Iron.
|
||||||
|
|
||||||
Example
|
#### Example
|
||||||
-------
|
|
||||||
To create double-doors at the cross-hairs/drone's location...
|
To create double-doors at the cross-hairs/drone's location...
|
||||||
|
|
||||||
drone.door2();
|
drone.door2();
|
||||||
|
|
||||||
![double doors](img/door2ex1.png)
|
![double doors](img/door2ex1.png)
|
||||||
|
|
||||||
Drone.sign() method
|
### Drone.sign() method
|
||||||
===================
|
|
||||||
Signs must use block 63 (stand-alone signs) or 68 (signs on walls)
|
Signs must use block 63 (stand-alone signs) or 68 (signs on walls)
|
||||||
|
|
||||||
Parameters
|
#### Parameters
|
||||||
----------
|
|
||||||
* message - can be a string or an array of strings.
|
* message - can be a string or an array of strings.
|
||||||
* block - can be 63 or 68
|
* block - can be 63 or 68
|
||||||
|
|
||||||
Example
|
#### Example
|
||||||
-------
|
|
||||||
To create a free-standing sign...
|
To create a free-standing sign...
|
||||||
|
|
||||||
drone.sign(["Hello","World"],63);
|
drone.sign(["Hello","World"],63);
|
||||||
|
@ -1451,16 +1554,15 @@ To create a free-standing sign...
|
||||||
|
|
||||||
![wall sign](img/signex2.png)
|
![wall sign](img/signex2.png)
|
||||||
|
|
||||||
Drone Trees methods
|
### Drone Trees methods
|
||||||
===================
|
|
||||||
|
|
||||||
* oak()
|
* oak()
|
||||||
* spruce()
|
* spruce()
|
||||||
* birch()
|
* birch()
|
||||||
* jungle()
|
* jungle()
|
||||||
|
|
||||||
Example
|
#### Example
|
||||||
-------
|
|
||||||
To create 4 trees in a row, point the cross-hairs at the ground then type `/js ` and ...
|
To create 4 trees in a row, point the cross-hairs at the ground then type `/js ` and ...
|
||||||
|
|
||||||
up().oak().right(8).spruce().right(8).birch().right(8).jungle();
|
up().oak().right(8).spruce().right(8).birch().right(8).jungle();
|
||||||
|
@ -1473,35 +1575,33 @@ the `up()` method is called first).
|
||||||
|
|
||||||
![tree example](img/treeex1.png)
|
![tree example](img/treeex1.png)
|
||||||
|
|
||||||
|
|
||||||
None of the tree methods require parameters. Tree methods will only be successful
|
None of the tree methods require parameters. Tree methods will only be successful
|
||||||
if the tree is placed on grass in a setting where trees can grow.
|
if the tree is placed on grass in a setting where trees can grow.
|
||||||
|
|
||||||
Drone.garden() method
|
### Drone.garden() method
|
||||||
=====================
|
|
||||||
places random flowers and long grass (similar to the effect of placing bonemeal on grass)
|
places random flowers and long grass (similar to the effect of placing bonemeal on grass)
|
||||||
|
|
||||||
Parameters
|
#### Parameters
|
||||||
----------
|
|
||||||
|
|
||||||
* width - the width of the garden
|
* width - the width of the garden
|
||||||
* length - how far from the drone the garden extends
|
* length - how far from the drone the garden extends
|
||||||
|
|
||||||
Example
|
#### Example
|
||||||
-------
|
|
||||||
To create a garden 10 blocks wide by 5 blocks long...
|
To create a garden 10 blocks wide by 5 blocks long...
|
||||||
|
|
||||||
garden(10,5);
|
garden(10,5);
|
||||||
|
|
||||||
![garden example](img/gardenex1.png)
|
![garden example](img/gardenex1.png)
|
||||||
|
|
||||||
Drone.rand() method
|
### Drone.rand() method
|
||||||
===================
|
|
||||||
rand takes either an array (if each blockid has the same chance of occurring)
|
rand takes either an array (if each blockid has the same chance of occurring)
|
||||||
or an object where each property is a blockid and the value is it's weight (an integer)
|
or an object where each property is a blockid and the value is it's weight (an integer)
|
||||||
|
|
||||||
Example
|
#### Example
|
||||||
-------
|
|
||||||
place random blocks stone, mossy stone and cracked stone (each block has the same chance of being picked)
|
place random blocks stone, mossy stone and cracked stone (each block has the same chance of being picked)
|
||||||
|
|
||||||
rand( [blocks.brick.stone, blocks.brick.mossy, blocks.brick.cracked ],w,d,h)
|
rand( [blocks.brick.stone, blocks.brick.mossy, blocks.brick.cracked ],w,d,h)
|
||||||
|
@ -1512,34 +1612,32 @@ to place random blocks stone has a 50% chance of being picked,
|
||||||
|
|
||||||
regular stone has a 50% chance, mossy stone has a 30% chance and cracked stone has just a 20% chance of being picked.
|
regular stone has a 50% chance, mossy stone has a 30% chance and cracked stone has just a 20% chance of being picked.
|
||||||
|
|
||||||
Copy & Paste using Drone
|
### Copy & Paste using Drone
|
||||||
========================
|
|
||||||
A drone can be used to copy and paste areas of the game world.
|
A drone can be used to copy and paste areas of the game world.
|
||||||
|
|
||||||
Drone.copy() method
|
### Drone.copy() method
|
||||||
===================
|
|
||||||
Copies an area so it can be pasted elsewhere. The name can be used for
|
Copies an area so it can be pasted elsewhere. The name can be used for
|
||||||
pasting the copied area elsewhere...
|
pasting the copied area elsewhere...
|
||||||
|
|
||||||
Parameters
|
#### Parameters
|
||||||
----------
|
|
||||||
|
|
||||||
* name - the name to be given to the copied area (used by `paste`)
|
* name - the name to be given to the copied area (used by `paste`)
|
||||||
* width - the width of the area to copy
|
* width - the width of the area to copy
|
||||||
* height - the height of the area to copy
|
* height - the height of the area to copy
|
||||||
* length - the length of the area (extending away from the drone) to copy
|
* length - the length of the area (extending away from the drone) to copy
|
||||||
|
|
||||||
Example
|
#### Example
|
||||||
-------
|
|
||||||
|
|
||||||
drone.copy('somethingCool',10,5,10).right(12).paste('somethingCool');
|
drone.copy('somethingCool',10,5,10).right(12).paste('somethingCool');
|
||||||
|
|
||||||
Drone.paste() method
|
### Drone.paste() method
|
||||||
====================
|
|
||||||
Pastes a copied area to the current location.
|
Pastes a copied area to the current location.
|
||||||
|
|
||||||
Example
|
#### Example
|
||||||
-------
|
|
||||||
To copy a 10x5x10 area (using the drone's coordinates as the starting
|
To copy a 10x5x10 area (using the drone's coordinates as the starting
|
||||||
point) into memory. the copied area can be referenced using the name
|
point) into memory. the copied area can be referenced using the name
|
||||||
'somethingCool'. The drone moves 12 blocks right then pastes the copy.
|
'somethingCool'. The drone moves 12 blocks right then pastes the copy.
|
||||||
|
@ -1548,8 +1646,7 @@ point) into memory. the copied area can be referenced using the name
|
||||||
.right(12)
|
.right(12)
|
||||||
.paste('somethingCool');
|
.paste('somethingCool');
|
||||||
|
|
||||||
Chaining
|
### Chaining
|
||||||
========
|
|
||||||
|
|
||||||
All of the Drone methods return a Drone object, which means methods
|
All of the Drone methods return a Drone object, which means methods
|
||||||
can be 'chained' together so instead of writing this...
|
can be 'chained' together so instead of writing this...
|
||||||
|
@ -1580,30 +1677,28 @@ commands in a new script file and load it using /js load()
|
||||||
|
|
||||||
[fl]: http://en.wikipedia.org/wiki/Fluent_interface
|
[fl]: http://en.wikipedia.org/wiki/Fluent_interface
|
||||||
|
|
||||||
Drone Properties
|
### Drone Properties
|
||||||
================
|
|
||||||
|
|
||||||
* x - The Drone's position along the west-east axis (x increases as you move east)
|
* x - The Drone's position along the west-east axis (x increases as you move east)
|
||||||
* y - The Drone's position along the vertical axis (y increses as you move up)
|
* y - The Drone's position along the vertical axis (y increses as you move up)
|
||||||
* z - The Drone's position along the north-south axis (z increases as you move south)
|
* z - The Drone's position along the north-south axis (z increases as you move south)
|
||||||
* dir - The Drone's direction 0 is east, 1 is south , 2 is west and 3 is north.
|
* dir - The Drone's direction 0 is east, 1 is south , 2 is west and 3 is north.
|
||||||
|
|
||||||
Extending Drone
|
### Extending Drone
|
||||||
===============
|
|
||||||
The Drone object can be easily extended - new buidling recipes/blue-prints can be added and can
|
The Drone object can be easily extended - new buidling recipes/blue-prints can be added and can
|
||||||
become part of a Drone's chain using the *static* method `Drone.extend`.
|
become part of a Drone's chain using the *static* method `Drone.extend`.
|
||||||
|
|
||||||
Drone.extend() static method
|
### Drone.extend() static method
|
||||||
============================
|
|
||||||
Use this method to add new methods (which also become chainable global functions) to the Drone object.
|
Use this method to add new methods (which also become chainable global functions) to the Drone object.
|
||||||
|
|
||||||
Parameters
|
#### Parameters
|
||||||
----------
|
|
||||||
* name - The name of the new method e.g. 'pyramid'
|
* name - The name of the new method e.g. 'pyramid'
|
||||||
* function - The method body.
|
* function - The method body.
|
||||||
|
|
||||||
Example
|
#### Example
|
||||||
-------
|
|
||||||
|
|
||||||
// submitted by [edonaldson][edonaldson]
|
// submitted by [edonaldson][edonaldson]
|
||||||
Drone.extend('pyramid', function(block,height){
|
Drone.extend('pyramid', function(block,height){
|
||||||
|
@ -1625,11 +1720,10 @@ Once the method is defined (it can be defined in a new pyramid.js file) it can b
|
||||||
|
|
||||||
[edonaldson]: https://github.com/edonaldson
|
[edonaldson]: https://github.com/edonaldson
|
||||||
|
|
||||||
Drone Constants
|
### Drone Constants
|
||||||
===============
|
|
||||||
|
#### Drone.PLAYER_STAIRS_FACING
|
||||||
|
|
||||||
Drone.PLAYER_STAIRS_FACING
|
|
||||||
--------------------------
|
|
||||||
An array which can be used when constructing stairs facing in the Drone's direction...
|
An array which can be used when constructing stairs facing in the Drone's direction...
|
||||||
|
|
||||||
var d = new Drone();
|
var d = new Drone();
|
||||||
|
@ -1637,8 +1731,8 @@ An array which can be used when constructing stairs facing in the Drone's direct
|
||||||
|
|
||||||
... will construct a single oak stair block facing the drone.
|
... will construct a single oak stair block facing the drone.
|
||||||
|
|
||||||
Drone.PLAYER_SIGN_FACING
|
#### Drone.PLAYER_SIGN_FACING
|
||||||
------------------------
|
|
||||||
An array which can be used when placing signs so they face in a given direction.
|
An array which can be used when placing signs so they face in a given direction.
|
||||||
This is used internally by the Drone.sign() method. It should also be used for placing
|
This is used internally by the Drone.sign() method. It should also be used for placing
|
||||||
any of the following blocks...
|
any of the following blocks...
|
||||||
|
@ -1652,22 +1746,22 @@ To place a chest facing the Drone ...
|
||||||
|
|
||||||
drone.box( blocks.chest + ':' + Drone.PLAYER_SIGN_FACING[drone.dir]);
|
drone.box( blocks.chest + ':' + Drone.PLAYER_SIGN_FACING[drone.dir]);
|
||||||
|
|
||||||
Drone.PLAYER_TORCH_FACING
|
#### Drone.PLAYER_TORCH_FACING
|
||||||
-------------------------
|
|
||||||
Used when placing torches so that they face towards the drone.
|
Used when placing torches so that they face towards the drone.
|
||||||
|
|
||||||
drone.box( blocks.torch + ':' + Drone.PLAYER_TORCH_FACING[drone.dir]);
|
drone.box( blocks.torch + ':' + Drone.PLAYER_TORCH_FACING[drone.dir]);
|
||||||
|
|
||||||
Drone.times() Method
|
### Drone.times() Method
|
||||||
====================
|
|
||||||
The times() method makes building multiple copies of buildings easy. It's possible to create rows or grids of buildings without resorting to `for` or `while` loops.
|
The times() method makes building multiple copies of buildings easy. It's possible to create rows or grids of buildings without resorting to `for` or `while` loops.
|
||||||
|
|
||||||
Parameters
|
#### Parameters
|
||||||
----------
|
|
||||||
* numTimes (optional - default 2) : The number of times you want to repeat the preceding statements.
|
* numTimes (optional - default 2) : The number of times you want to repeat the preceding statements.
|
||||||
|
|
||||||
Example
|
#### Example
|
||||||
-------
|
|
||||||
Say you want to do the same thing over and over. You have a couple of options...
|
Say you want to do the same thing over and over. You have a couple of options...
|
||||||
|
|
||||||
* You can use a for loop...
|
* You can use a for loop...
|
||||||
|
@ -1723,17 +1817,17 @@ Another example: This statement creates a row of trees 2 by 3 ...
|
||||||
|
|
||||||
![times example 1](img/times-trees.png)
|
![times example 1](img/times-trees.png)
|
||||||
|
|
||||||
## Drone.blocktype() method
|
### Drone.blocktype() method
|
||||||
|
|
||||||
Creates the text out of blocks. Useful for large-scale in-game signs.
|
Creates the text out of blocks. Useful for large-scale in-game signs.
|
||||||
|
|
||||||
### Parameters
|
#### Parameters
|
||||||
|
|
||||||
* message - The message to create - (use `\n` for newlines)
|
* message - The message to create - (use `\n` for newlines)
|
||||||
* foregroundBlock (default: black wool) - The block to use for the foreground
|
* foregroundBlock (default: black wool) - The block to use for the foreground
|
||||||
* backgroundBlock (default: none) - The block to use for the background
|
* backgroundBlock (default: none) - The block to use for the background
|
||||||
|
|
||||||
### Example
|
#### Example
|
||||||
|
|
||||||
To create a 2-line high message using glowstone...
|
To create a 2-line high message using glowstone...
|
||||||
|
|
||||||
|
@ -1743,31 +1837,31 @@ To create a 2-line high message using glowstone...
|
||||||
|
|
||||||
[imgbt1]: img/blocktype1.png
|
[imgbt1]: img/blocktype1.png
|
||||||
|
|
||||||
## Drone.rainbow() method
|
### Drone.rainbow() method
|
||||||
|
|
||||||
Creates a Rainbow.
|
Creates a Rainbow.
|
||||||
|
|
||||||
### Parameters
|
#### Parameters
|
||||||
|
|
||||||
* radius (optional - default:18) - The radius of the rainbow
|
* radius (optional - default:18) - The radius of the rainbow
|
||||||
|
|
||||||
### Example
|
#### Example
|
||||||
|
|
||||||
var d = new Drone();
|
var d = new Drone();
|
||||||
d.rainbow(30);
|
d.rainbow(30);
|
||||||
|
|
||||||
![rainbow example](img/rainbowex1.png)
|
![rainbow example](img/rainbowex1.png)
|
||||||
|
|
||||||
## Drone.sphere() method
|
### Drone.sphere() method
|
||||||
|
|
||||||
Creates a sphere.
|
Creates a sphere.
|
||||||
|
|
||||||
### Parameters
|
#### Parameters
|
||||||
|
|
||||||
* block - The block the sphere will be made of.
|
* block - The block the sphere will be made of.
|
||||||
* radius - The radius of the sphere.
|
* radius - The radius of the sphere.
|
||||||
|
|
||||||
### Example
|
#### Example
|
||||||
|
|
||||||
To create a sphere of Iron with a radius of 10 blocks...
|
To create a sphere of Iron with a radius of 10 blocks...
|
||||||
|
|
||||||
|
@ -1778,16 +1872,16 @@ To create a sphere of Iron with a radius of 10 blocks...
|
||||||
Spheres are time-consuming to make. You *can* make large spheres (250 radius) but expect the
|
Spheres are time-consuming to make. You *can* make large spheres (250 radius) but expect the
|
||||||
server to be very busy for a couple of minutes while doing so.
|
server to be very busy for a couple of minutes while doing so.
|
||||||
|
|
||||||
## Drone.sphere0() method
|
### Drone.sphere0() method
|
||||||
|
|
||||||
Creates an empty sphere.
|
Creates an empty sphere.
|
||||||
|
|
||||||
### Parameters
|
#### Parameters
|
||||||
|
|
||||||
* block - The block the sphere will be made of.
|
* block - The block the sphere will be made of.
|
||||||
* radius - The radius of the sphere.
|
* radius - The radius of the sphere.
|
||||||
|
|
||||||
### Example
|
#### Example
|
||||||
|
|
||||||
To create a sphere of Iron with a radius of 10 blocks...
|
To create a sphere of Iron with a radius of 10 blocks...
|
||||||
|
|
||||||
|
@ -1796,17 +1890,17 @@ To create a sphere of Iron with a radius of 10 blocks...
|
||||||
Spheres are time-consuming to make. You *can* make large spheres (250 radius) but expect the
|
Spheres are time-consuming to make. You *can* make large spheres (250 radius) but expect the
|
||||||
server to be very busy for a couple of minutes while doing so.
|
server to be very busy for a couple of minutes while doing so.
|
||||||
|
|
||||||
## Drone.hemisphere() method
|
### Drone.hemisphere() method
|
||||||
|
|
||||||
Creates a hemisphere. Hemispheres can be either north or south.
|
Creates a hemisphere. Hemispheres can be either north or south.
|
||||||
|
|
||||||
### Parameters
|
#### Parameters
|
||||||
|
|
||||||
* block - the block the hemisphere will be made of.
|
* block - the block the hemisphere will be made of.
|
||||||
* radius - the radius of the hemisphere
|
* radius - the radius of the hemisphere
|
||||||
* northSouth - whether the hemisphere is 'north' or 'south'
|
* northSouth - whether the hemisphere is 'north' or 'south'
|
||||||
|
|
||||||
### Example
|
#### Example
|
||||||
|
|
||||||
To create a wood 'north' hemisphere with a radius of 7 blocks...
|
To create a wood 'north' hemisphere with a radius of 7 blocks...
|
||||||
|
|
||||||
|
@ -1814,17 +1908,17 @@ To create a wood 'north' hemisphere with a radius of 7 blocks...
|
||||||
|
|
||||||
![hemisphere example](img/hemisphereex1.png)
|
![hemisphere example](img/hemisphereex1.png)
|
||||||
|
|
||||||
## Drone.hemisphere0() method
|
### Drone.hemisphere0() method
|
||||||
|
|
||||||
Creates a hollow hemisphere. Hemispheres can be either north or south.
|
Creates a hollow hemisphere. Hemispheres can be either north or south.
|
||||||
|
|
||||||
### Parameters
|
#### Parameters
|
||||||
|
|
||||||
* block - the block the hemisphere will be made of.
|
* block - the block the hemisphere will be made of.
|
||||||
* radius - the radius of the hemisphere
|
* radius - the radius of the hemisphere
|
||||||
* northSouth - whether the hemisphere is 'north' or 'south'
|
* northSouth - whether the hemisphere is 'north' or 'south'
|
||||||
|
|
||||||
### Example
|
#### Example
|
||||||
|
|
||||||
To create a glass 'north' hemisphere with a radius of 20 blocks...
|
To create a glass 'north' hemisphere with a radius of 20 blocks...
|
||||||
|
|
||||||
|
@ -1832,11 +1926,11 @@ To create a glass 'north' hemisphere with a radius of 20 blocks...
|
||||||
|
|
||||||
![hemisphere example](img/hemisphereex2.png)
|
![hemisphere example](img/hemisphereex2.png)
|
||||||
|
|
||||||
## Drone.spiral_stairs() method
|
### Drone.spiral_stairs() method
|
||||||
|
|
||||||
Constructs a spiral staircase with slabs at each corner.
|
Constructs a spiral staircase with slabs at each corner.
|
||||||
|
|
||||||
### Parameters
|
#### Parameters
|
||||||
|
|
||||||
* stairBlock - The block to use for stairs, should be one of the following...
|
* stairBlock - The block to use for stairs, should be one of the following...
|
||||||
- 'oak'
|
- 'oak'
|
||||||
|
@ -1853,13 +1947,13 @@ Constructs a spiral staircase with slabs at each corner.
|
||||||
|
|
||||||
![Spiral Staircase](img/spiralstair1.png)
|
![Spiral Staircase](img/spiralstair1.png)
|
||||||
|
|
||||||
### Example
|
#### Example
|
||||||
|
|
||||||
To construct a spiral staircase 5 floors high made of oak...
|
To construct a spiral staircase 5 floors high made of oak...
|
||||||
|
|
||||||
spiral_stairs('oak', 5);
|
spiral_stairs('oak', 5);
|
||||||
|
|
||||||
## Example Plugin #1
|
## Example Plugin #1 - A simple extension to Minecraft.
|
||||||
|
|
||||||
A simple minecraft plugin. The most basic module.
|
A simple minecraft plugin. The most basic module.
|
||||||
|
|
||||||
|
@ -1884,7 +1978,7 @@ permission since it relies on the `/js` command to execute.
|
||||||
player.sendMessage('Hello ' + player.name);
|
player.sendMessage('Hello ' + player.name);
|
||||||
};
|
};
|
||||||
|
|
||||||
## Example Plugin #2
|
## Example Plugin #2 - Making extensions available for all players.
|
||||||
|
|
||||||
A simple minecraft plugin. Commands for other players.
|
A simple minecraft plugin. Commands for other players.
|
||||||
|
|
||||||
|
@ -1910,7 +2004,7 @@ command does not evaluate javascript code so this command is much more secure.
|
||||||
player.sendMessage('Hello ' + player.name);
|
player.sendMessage('Hello ' + player.name);
|
||||||
});
|
});
|
||||||
|
|
||||||
## Example Plugin #3
|
## Example Plugin #3 - Limiting use of commands to operators only.
|
||||||
|
|
||||||
A simple minecraft plugin. Commands for operators only.
|
A simple minecraft plugin. Commands for operators only.
|
||||||
|
|
||||||
|
@ -1939,7 +2033,8 @@ message for operators.
|
||||||
}
|
}
|
||||||
player.sendMessage('Hello ' + player.name);
|
player.sendMessage('Hello ' + player.name);
|
||||||
});
|
});
|
||||||
## Example Plugin #4
|
## Example Plugin #4 - Using parameters in commands.
|
||||||
|
|
||||||
A simple minecraft plugin. Handling parameters.
|
A simple minecraft plugin. Handling parameters.
|
||||||
|
|
||||||
### Usage:
|
### Usage:
|
||||||
|
@ -1963,7 +2058,7 @@ a fixed 'Hello ' to anything you like by passing a parameter.
|
||||||
player.sendMessage( salutation + ' ' + player.name);
|
player.sendMessage( salutation + ' ' + player.name);
|
||||||
});
|
});
|
||||||
|
|
||||||
## Example Plugin #5
|
## Example Plugin #5 - Re-use - Using your own and others modules.
|
||||||
|
|
||||||
A simple minecraft plugin. Using Modules.
|
A simple minecraft plugin. Using Modules.
|
||||||
|
|
||||||
|
@ -1997,7 +2092,7 @@ Source Code...
|
||||||
greetings.hello(player);
|
greetings.hello(player);
|
||||||
});
|
});
|
||||||
|
|
||||||
## Example Plugin #6
|
## Example Plugin #6 - Re-use - Using 'utils' to get Player objects.
|
||||||
|
|
||||||
A simple minecraft plugin. Finding players by name.
|
A simple minecraft plugin. Finding players by name.
|
||||||
|
|
||||||
|
@ -2039,7 +2134,7 @@ Source Code ...
|
||||||
sender.sendMessage('Player ' + playerName + ' not found.');
|
sender.sendMessage('Player ' + playerName + ' not found.');
|
||||||
});
|
});
|
||||||
|
|
||||||
## Example Plugin #7
|
## Example Plugin #7 - Listening for events, Greet players when they join the game.
|
||||||
|
|
||||||
A simple event-driven minecraft plugin. How to handle Events.
|
A simple event-driven minecraft plugin. How to handle Events.
|
||||||
|
|
||||||
|
@ -2125,7 +2220,7 @@ cleaner and more readable. Similarly where you see a method like
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
## Arrows Module
|
## Arrows Plugin
|
||||||
|
|
||||||
The arrows mod adds fancy arrows to the game. Arrows which...
|
The arrows mod adds fancy arrows to the game. Arrows which...
|
||||||
|
|
||||||
|
@ -2149,7 +2244,7 @@ All of the above functions can take an optional player object or name
|
||||||
as a parameter. For example: `/js arrows.explosive('player23')` makes
|
as a parameter. For example: `/js arrows.explosive('player23')` makes
|
||||||
player23's arrows explosive.
|
player23's arrows explosive.
|
||||||
|
|
||||||
## alias Module
|
## alias Plugin
|
||||||
|
|
||||||
The alias module lets players and server admins create their own
|
The alias module lets players and server admins create their own
|
||||||
per-player or global custom in-game command aliases.
|
per-player or global custom in-game command aliases.
|
||||||
|
@ -2199,7 +2294,7 @@ Aliases can be used at the in-game prompt by players or in the server
|
||||||
console. Aliases will not be able to avail of command autocompletion
|
console. Aliases will not be able to avail of command autocompletion
|
||||||
(pressing the TAB key will have no effect).
|
(pressing the TAB key will have no effect).
|
||||||
|
|
||||||
## Classroom Module
|
## Classroom Plugin
|
||||||
|
|
||||||
The `classroom` object contains a couple of utility functions for use
|
The `classroom` object contains a couple of utility functions for use
|
||||||
in a classroom setting. The goal of these functions is to make it
|
in a classroom setting. The goal of these functions is to make it
|
||||||
|
@ -2315,7 +2410,7 @@ global commands for a plugin, please let me know.
|
||||||
|
|
||||||
[pcppevt]: http://jd.bukkit.org/dev/apidocs/org/bukkit/event/player/PlayerCommandPreprocessEvent.html
|
[pcppevt]: http://jd.bukkit.org/dev/apidocs/org/bukkit/event/player/PlayerCommandPreprocessEvent.html
|
||||||
|
|
||||||
## homes Module
|
## homes Plugin
|
||||||
|
|
||||||
The homes plugin lets players set a location as home and return to the
|
The homes plugin lets players set a location as home and return to the
|
||||||
location, invite other players to their home and also visit other
|
location, invite other players to their home and also visit other
|
||||||
|
|
|
@ -1,12 +1,5 @@
|
||||||
'use strict';
|
'use strict';
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
# ScriptCraft API Reference
|
|
||||||
|
|
||||||
Walter Higgins
|
|
||||||
|
|
||||||
[walter.higgins@gmail.com][email]
|
|
||||||
|
|
||||||
[email]: mailto:walter.higgins@gmail.com?subject=ScriptCraft_API_Reference
|
|
||||||
|
|
||||||
## Modules in Scriptcraft
|
## Modules in Scriptcraft
|
||||||
|
|
||||||
|
@ -160,10 +153,10 @@ The events object is used to add new event handlers to Minecraft.
|
||||||
## Module variables
|
## Module variables
|
||||||
The following variables are available only within the context of Modules. (not available at in-game prompt).
|
The following variables are available only within the context of Modules. (not available at in-game prompt).
|
||||||
|
|
||||||
### __filename variable
|
### __filename variable
|
||||||
The current file - this variable is only relevant from within the context of a Javascript module.
|
The current file - this variable is only relevant from within the context of a Javascript module.
|
||||||
|
|
||||||
### __dirname variable
|
### __dirname variable
|
||||||
The current directory - this variable is only relevant from within the context of a Javascript module.
|
The current directory - this variable is only relevant from within the context of a Javascript module.
|
||||||
|
|
||||||
## Global functions
|
## Global functions
|
||||||
|
@ -176,7 +169,7 @@ The `echo()` function displays a message on the in-game screen. The
|
||||||
message is displayed to the `self` player (this is usually the player
|
message is displayed to the `self` player (this is usually the player
|
||||||
who issued the `/js` or `/jsp` command).
|
who issued the `/js` or `/jsp` command).
|
||||||
|
|
||||||
### Example
|
#### Example
|
||||||
|
|
||||||
/js echo('Hello World')
|
/js echo('Hello World')
|
||||||
|
|
||||||
|
@ -184,7 +177,7 @@ For programmers familiar with Javascript web programming, an `alert`
|
||||||
function is also provided. `alert` works exactly the same as `echo`
|
function is also provided. `alert` works exactly the same as `echo`
|
||||||
e.g. `alert('Hello World')`.
|
e.g. `alert('Hello World')`.
|
||||||
|
|
||||||
### Notes
|
#### Notes
|
||||||
|
|
||||||
The `echo` and `alert` functions are provided as convenience functions
|
The `echo` and `alert` functions are provided as convenience functions
|
||||||
for beginning programmers. The use of these 2 functions is not
|
for beginning programmers. The use of these 2 functions is not
|
||||||
|
@ -192,26 +185,7 @@ recommended in event-handling code or multi-threaded code. In such
|
||||||
cases, if you want to send a message to a given player then use the
|
cases, if you want to send a message to a given player then use the
|
||||||
Bukkit API's [Player.sendMessage()][plsm] function instead.
|
Bukkit API's [Player.sendMessage()][plsm] function instead.
|
||||||
|
|
||||||
[plsm]:
|
[plsm]: http://jd.bukkit.org/dev/apidocs/org/bukkit/command/CommandSender.html#sendMessage(java.lang.String)
|
||||||
|
|
||||||
* require (modulename) - Will load modules. See [Node.js modules][njsmod]
|
|
||||||
|
|
||||||
* load (filename,warnOnFileNotFound) - loads and evaluates a
|
|
||||||
javascript file, returning the evaluated object. (Note: Prefer
|
|
||||||
`require()` to `load()`)
|
|
||||||
|
|
||||||
* save (object, filename) - saves an object to a file.
|
|
||||||
|
|
||||||
* plugin (name, interface, isPersistent) - defines a new plugin. If
|
|
||||||
isPersistent is true then the plugin doesn't have to worry about
|
|
||||||
loading and saving state - that will be done by the framework. Just
|
|
||||||
make sure that anything you want to save (and restore) is in the plugin's
|
|
||||||
'store' property - this will be created automatically if not
|
|
||||||
already defined. (its type is object {} ) . More on plugins below.
|
|
||||||
|
|
||||||
* command (name, function) - defines a command that can be used by
|
|
||||||
non-operators. The `command` function provides a way for plugin
|
|
||||||
developers to provide new commands for use by players.
|
|
||||||
|
|
||||||
### require() function
|
### require() function
|
||||||
|
|
||||||
|
@ -254,17 +228,16 @@ load() will return the result of the last statement evaluated in the file.
|
||||||
|
|
||||||
var myData = load("myData.json"); // loads a javascript file and evaluates it - eval'd contents are returned.
|
var myData = load("myData.json"); // loads a javascript file and evaluates it - eval'd contents are returned.
|
||||||
|
|
||||||
myData.json contents...
|
##### myData.json contents...
|
||||||
|
|
||||||
__data = {
|
{ players: {
|
||||||
players: {
|
walterh: {
|
||||||
walterh: {
|
h: ["jsp home {1}"],
|
||||||
h: ["jsp home {1}"],
|
sunny:["time set 0",
|
||||||
sunny:["time set 0",
|
"weather clear"]
|
||||||
"weather clear"]
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
### save() function
|
### save() function
|
||||||
|
|
||||||
|
@ -288,11 +261,12 @@ restored using the `load()` function.
|
||||||
date_of_birth: '1982/01/31' };
|
date_of_birth: '1982/01/31' };
|
||||||
save(myObject, 'johndoe.json');
|
save(myObject, 'johndoe.json');
|
||||||
|
|
||||||
johndoe.json contents...
|
##### johndoe.json contents...
|
||||||
|
|
||||||
var __data = { "name": "John Doe",
|
{ "name": "John Doe",
|
||||||
"aliases": ["John Ray", "John Mee"],
|
"aliases": ["John Ray", "John Mee"],
|
||||||
"date_of_birth": "1982/01/31" };
|
"date_of_birth": "1982/01/31"
|
||||||
|
};
|
||||||
|
|
||||||
### plugin() function
|
### plugin() function
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
## alias Module
|
## alias Plugin
|
||||||
|
|
||||||
The alias module lets players and server admins create their own
|
The alias module lets players and server admins create their own
|
||||||
per-player or global custom in-game command aliases.
|
per-player or global custom in-game command aliases.
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
## Arrows Module
|
## Arrows Plugin
|
||||||
|
|
||||||
The arrows mod adds fancy arrows to the game. Arrows which...
|
The arrows mod adds fancy arrows to the game. Arrows which...
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
var utils = require('utils');
|
var utils = require('utils');
|
||||||
|
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
## Classroom Module
|
## Classroom Plugin
|
||||||
|
|
||||||
The `classroom` object contains a couple of utility functions for use
|
The `classroom` object contains a couple of utility functions for use
|
||||||
in a classroom setting. The goal of these functions is to make it
|
in a classroom setting. The goal of these functions is to make it
|
||||||
|
|
|
@ -2,17 +2,17 @@ var Drone = require('./drone').Drone;
|
||||||
var blocks = require('blocks');
|
var blocks = require('blocks');
|
||||||
|
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
## Drone.blocktype() method
|
### Drone.blocktype() method
|
||||||
|
|
||||||
Creates the text out of blocks. Useful for large-scale in-game signs.
|
Creates the text out of blocks. Useful for large-scale in-game signs.
|
||||||
|
|
||||||
### Parameters
|
#### Parameters
|
||||||
|
|
||||||
* message - The message to create - (use `\n` for newlines)
|
* message - The message to create - (use `\n` for newlines)
|
||||||
* foregroundBlock (default: black wool) - The block to use for the foreground
|
* foregroundBlock (default: black wool) - The block to use for the foreground
|
||||||
* backgroundBlock (default: none) - The block to use for the background
|
* backgroundBlock (default: none) - The block to use for the background
|
||||||
|
|
||||||
### Example
|
#### Example
|
||||||
|
|
||||||
To create a 2-line high message using glowstone...
|
To create a 2-line high message using glowstone...
|
||||||
|
|
||||||
|
|
|
@ -2,15 +2,15 @@ var Drone = require('../drone').Drone;
|
||||||
var blocks = require('blocks');
|
var blocks = require('blocks');
|
||||||
|
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
## Drone.rainbow() method
|
### Drone.rainbow() method
|
||||||
|
|
||||||
Creates a Rainbow.
|
Creates a Rainbow.
|
||||||
|
|
||||||
### Parameters
|
#### Parameters
|
||||||
|
|
||||||
* radius (optional - default:18) - The radius of the rainbow
|
* radius (optional - default:18) - The radius of the rainbow
|
||||||
|
|
||||||
### Example
|
#### Example
|
||||||
|
|
||||||
var d = new Drone();
|
var d = new Drone();
|
||||||
d.rainbow(30);
|
d.rainbow(30);
|
||||||
|
|
|
@ -2,11 +2,11 @@ var Drone = require('../drone').Drone;
|
||||||
var blocks = require('blocks');
|
var blocks = require('blocks');
|
||||||
|
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
## Drone.spiral_stairs() method
|
### Drone.spiral_stairs() method
|
||||||
|
|
||||||
Constructs a spiral staircase with slabs at each corner.
|
Constructs a spiral staircase with slabs at each corner.
|
||||||
|
|
||||||
### Parameters
|
#### Parameters
|
||||||
|
|
||||||
* stairBlock - The block to use for stairs, should be one of the following...
|
* stairBlock - The block to use for stairs, should be one of the following...
|
||||||
- 'oak'
|
- 'oak'
|
||||||
|
@ -23,7 +23,7 @@ Constructs a spiral staircase with slabs at each corner.
|
||||||
|
|
||||||
![Spiral Staircase](img/spiralstair1.png)
|
![Spiral Staircase](img/spiralstair1.png)
|
||||||
|
|
||||||
### Example
|
#### Example
|
||||||
|
|
||||||
To construct a spiral staircase 5 floors high made of oak...
|
To construct a spiral staircase 5 floors high made of oak...
|
||||||
|
|
||||||
|
|
|
@ -2,8 +2,8 @@ var utils = require('utils');
|
||||||
var blocks = require('blocks');
|
var blocks = require('blocks');
|
||||||
|
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
Drone Module
|
## Drone Plugin
|
||||||
============
|
|
||||||
The Drone is a convenience class for building. It can be used for...
|
The Drone is a convenience class for building. It can be used for...
|
||||||
|
|
||||||
1. Building
|
1. Building
|
||||||
|
@ -15,8 +15,8 @@ be chained together like so...
|
||||||
var theDrone = new Drone();
|
var theDrone = new Drone();
|
||||||
theDrone.up().left().box(blocks.oak).down().fwd(3).cylinder0(blocks.lava,8);
|
theDrone.up().left().box(blocks.oak).down().fwd(3).cylinder0(blocks.lava,8);
|
||||||
|
|
||||||
TLDNR; (Just read this if you're impatient)
|
### TLDNR; (Just read this if you're impatient)
|
||||||
===========================================
|
|
||||||
At the in-game command prompt type...
|
At the in-game command prompt type...
|
||||||
|
|
||||||
/js box( blocks.oak )
|
/js box( blocks.oak )
|
||||||
|
@ -29,8 +29,7 @@ At the in-game command prompt type...
|
||||||
wide x 9 tall x 1 long in size. If you want to see what else
|
wide x 9 tall x 1 long in size. If you want to see what else
|
||||||
ScriptCraft's Drone can do, read on...
|
ScriptCraft's Drone can do, read on...
|
||||||
|
|
||||||
Constructing a Drone Object
|
### Constructing a Drone Object
|
||||||
===========================
|
|
||||||
|
|
||||||
Drones can be created in any of the following ways...
|
Drones can be created in any of the following ways...
|
||||||
|
|
||||||
|
@ -121,8 +120,8 @@ Drones can be created in any of the following ways...
|
||||||
// do more stuff with the drone here...
|
// do more stuff with the drone here...
|
||||||
});
|
});
|
||||||
|
|
||||||
Parameters
|
#### Parameters
|
||||||
----------
|
|
||||||
* location (optional) : *NB* If an `org.bukkit.Location` object is provided as a parameter, then it should be the only parameter.
|
* location (optional) : *NB* If an `org.bukkit.Location` object is provided as a parameter, then it should be the only parameter.
|
||||||
* x (optional) : The x coordinate of the Drone
|
* x (optional) : The x coordinate of the Drone
|
||||||
* y (optional) : The y coordinate of the Drone
|
* y (optional) : The y coordinate of the Drone
|
||||||
|
@ -131,12 +130,12 @@ Parameters
|
||||||
facing. Possible values are 0 (east), 1 (south), 2 (west) or 3 (north)
|
facing. Possible values are 0 (east), 1 (south), 2 (west) or 3 (north)
|
||||||
* world (optional) : The world in which the drone is created.
|
* world (optional) : The world in which the drone is created.
|
||||||
|
|
||||||
Drone.box() method
|
### Drone.box() method
|
||||||
==================
|
|
||||||
the box() method is a convenience method for building things. (For the more performance-oriented method - see cuboid)
|
the box() method is a convenience method for building things. (For the more performance-oriented method - see cuboid)
|
||||||
|
|
||||||
parameters
|
#### parameters
|
||||||
----------
|
|
||||||
* b - the block id - e.g. 6 for an oak sapling or '6:2' for a birch sapling.
|
* b - the block id - e.g. 6 for an oak sapling or '6:2' for a birch sapling.
|
||||||
Alternatively you can use any one of the `blocks` values e.g. `blocks.sapling.birch`
|
Alternatively you can use any one of the `blocks` values e.g. `blocks.sapling.birch`
|
||||||
* w (optional - default 1) - the width of the structure
|
* w (optional - default 1) - the width of the structure
|
||||||
|
@ -145,8 +144,8 @@ parameters
|
||||||
not how deep underground the structure lies - this is how far
|
not how deep underground the structure lies - this is how far
|
||||||
away (depth of field) from the drone the structure will extend.
|
away (depth of field) from the drone the structure will extend.
|
||||||
|
|
||||||
Example
|
#### Example
|
||||||
-------
|
|
||||||
To create a black structure 4 blocks wide, 9 blocks tall and 1 block long...
|
To create a black structure 4 blocks wide, 9 blocks tall and 1 block long...
|
||||||
|
|
||||||
box(blocks.wool.black, 4, 9, 1);
|
box(blocks.wool.black, 4, 9, 1);
|
||||||
|
@ -158,12 +157,12 @@ To create a black structure 4 blocks wide, 9 blocks tall and 1 block long...
|
||||||
|
|
||||||
![box example 1](img/boxex1.png)
|
![box example 1](img/boxex1.png)
|
||||||
|
|
||||||
Drone.box0() method
|
### Drone.box0() method
|
||||||
===================
|
|
||||||
Another convenience method - this one creates 4 walls with no floor or ceiling.
|
Another convenience method - this one creates 4 walls with no floor or ceiling.
|
||||||
|
|
||||||
Parameters
|
#### Parameters
|
||||||
----------
|
|
||||||
* block - the block id - e.g. 6 for an oak sapling or '6:2' for a birch sapling.
|
* block - the block id - e.g. 6 for an oak sapling or '6:2' for a birch sapling.
|
||||||
Alternatively you can use any one of the `blocks` values e.g. `blocks.sapling.birch`
|
Alternatively you can use any one of the `blocks` values e.g. `blocks.sapling.birch`
|
||||||
* width (optional - default 1) - the width of the structure
|
* width (optional - default 1) - the width of the structure
|
||||||
|
@ -171,28 +170,28 @@ Parameters
|
||||||
* length (optional - default 1) - the length of the structure - how far
|
* length (optional - default 1) - the length of the structure - how far
|
||||||
away (depth of field) from the drone the structure will extend.
|
away (depth of field) from the drone the structure will extend.
|
||||||
|
|
||||||
Example
|
#### Example
|
||||||
-------
|
|
||||||
To create a stone building with the insided hollowed out 7 wide by 3 tall by 6 long...
|
To create a stone building with the insided hollowed out 7 wide by 3 tall by 6 long...
|
||||||
|
|
||||||
box0( blocks.stone, 7, 3, 6);
|
box0( blocks.stone, 7, 3, 6);
|
||||||
|
|
||||||
![example box0](img/box0ex1.png)
|
![example box0](img/box0ex1.png)
|
||||||
|
|
||||||
Drone.boxa() method
|
### Drone.boxa() method
|
||||||
===================
|
|
||||||
Construct a cuboid using an array of blocks. As the drone moves first along the width axis,
|
Construct a cuboid using an array of blocks. As the drone moves first along the width axis,
|
||||||
then the height (y axis) then the length, each block is picked from the array and placed.
|
then the height (y axis) then the length, each block is picked from the array and placed.
|
||||||
|
|
||||||
Parameters
|
#### Parameters
|
||||||
----------
|
|
||||||
* blocks - An array of blocks - each block in the array will be placed in turn.
|
* blocks - An array of blocks - each block in the array will be placed in turn.
|
||||||
* width
|
* width
|
||||||
* height
|
* height
|
||||||
* length
|
* length
|
||||||
|
|
||||||
Example
|
#### Example
|
||||||
-------
|
|
||||||
Construct a rainbow-colored road 100 blocks long...
|
Construct a rainbow-colored road 100 blocks long...
|
||||||
|
|
||||||
var rainbowColors = [blocks.wool.red, blocks.wool.orange, blocks.wool.yellow, blocks.wool.lime,
|
var rainbowColors = [blocks.wool.red, blocks.wool.orange, blocks.wool.yellow, blocks.wool.lime,
|
||||||
|
@ -202,8 +201,8 @@ Construct a rainbow-colored road 100 blocks long...
|
||||||
|
|
||||||
![boxa example](img/boxaex1.png)
|
![boxa example](img/boxaex1.png)
|
||||||
|
|
||||||
Drone Movement
|
### Drone Movement
|
||||||
==============
|
|
||||||
Drones can move freely in minecraft's 3-D world. You control the
|
Drones can move freely in minecraft's 3-D world. You control the
|
||||||
Drone's movement using any of the following methods..
|
Drone's movement using any of the following methods..
|
||||||
|
|
||||||
|
@ -226,13 +225,12 @@ drone.turn() will make the turn face east. If the drone is facing east
|
||||||
then drone.turn(2) will make the drone turn twice so that it is facing
|
then drone.turn(2) will make the drone turn twice so that it is facing
|
||||||
west.
|
west.
|
||||||
|
|
||||||
Drone Positional Info
|
### Drone Positional Info
|
||||||
=====================
|
|
||||||
|
|
||||||
* getLocation() - Returns a Bukkit Location object for the drone
|
* getLocation() - Returns a Bukkit Location object for the drone
|
||||||
|
|
||||||
Drone Markers
|
### Drone Markers
|
||||||
=============
|
|
||||||
Markers are useful when your Drone has to do a lot of work. You can
|
Markers are useful when your Drone has to do a lot of work. You can
|
||||||
set a check-point and return to the check-point using the move()
|
set a check-point and return to the check-point using the move()
|
||||||
method. If your drone is about to undertake a lot of work -
|
method. If your drone is about to undertake a lot of work -
|
||||||
|
@ -248,12 +246,11 @@ Markers are created and returned to using the followng two methods...
|
||||||
* move - moves the drone to a saved location. Alternatively you can provide an
|
* move - moves the drone to a saved location. Alternatively you can provide an
|
||||||
org.bukkit.Location object or x,y,z and direction parameters.
|
org.bukkit.Location object or x,y,z and direction parameters.
|
||||||
|
|
||||||
Parameters
|
#### Parameters
|
||||||
----------
|
|
||||||
* name - the name of the checkpoint to save or return to.
|
* name - the name of the checkpoint to save or return to.
|
||||||
|
|
||||||
Example
|
#### Example
|
||||||
-------
|
|
||||||
|
|
||||||
drone.chkpt('town-square');
|
drone.chkpt('town-square');
|
||||||
//
|
//
|
||||||
|
@ -267,68 +264,65 @@ Example
|
||||||
//
|
//
|
||||||
drone.move('town-square');
|
drone.move('town-square');
|
||||||
|
|
||||||
Drone.prism() method
|
### Drone.prism() method
|
||||||
====================
|
|
||||||
Creates a prism. This is useful for roofs on houses.
|
Creates a prism. This is useful for roofs on houses.
|
||||||
|
|
||||||
Parameters
|
#### Parameters
|
||||||
----------
|
|
||||||
|
|
||||||
* block - the block id - e.g. 6 for an oak sapling or '6:2' for a birch sapling.
|
* block - the block id - e.g. 6 for an oak sapling or '6:2' for a birch sapling.
|
||||||
Alternatively you can use any one of the `blocks` values e.g. `blocks.sapling.birch`
|
Alternatively you can use any one of the `blocks` values e.g. `blocks.sapling.birch`
|
||||||
* width - the width of the prism
|
* width - the width of the prism
|
||||||
* length - the length of the prism (will be 2 time its height)
|
* length - the length of the prism (will be 2 time its height)
|
||||||
|
|
||||||
Example
|
#### Example
|
||||||
-------
|
|
||||||
|
|
||||||
prism(blocks.oak,3,12);
|
prism(blocks.oak,3,12);
|
||||||
|
|
||||||
![prism example](img/prismex1.png)
|
![prism example](img/prismex1.png)
|
||||||
|
|
||||||
Drone.prism0() method
|
### Drone.prism0() method
|
||||||
=====================
|
|
||||||
A variation on `prism` which hollows out the inside of the prism. It uses the same parameters as `prism`.
|
A variation on `prism` which hollows out the inside of the prism. It uses the same parameters as `prism`.
|
||||||
|
|
||||||
Drone.cylinder() method
|
### Drone.cylinder() method
|
||||||
=======================
|
|
||||||
A convenience method for building cylinders. Building begins radius blocks to the right and forward.
|
A convenience method for building cylinders. Building begins radius blocks to the right and forward.
|
||||||
|
|
||||||
Parameters
|
#### Parameters
|
||||||
----------
|
|
||||||
|
|
||||||
* block - the block id - e.g. 6 for an oak sapling or '6:2' for a birch sapling.
|
* block - the block id - e.g. 6 for an oak sapling or '6:2' for a birch sapling.
|
||||||
Alternatively you can use any one of the `blocks` values e.g. `blocks.sapling.birch`
|
Alternatively you can use any one of the `blocks` values e.g. `blocks.sapling.birch`
|
||||||
* radius
|
* radius
|
||||||
* height
|
* height
|
||||||
|
|
||||||
Example
|
#### Example
|
||||||
-------
|
|
||||||
To create a cylinder of Iron 7 blocks in radius and 1 block high...
|
To create a cylinder of Iron 7 blocks in radius and 1 block high...
|
||||||
|
|
||||||
cylinder(blocks.iron, 7 , 1);
|
cylinder(blocks.iron, 7 , 1);
|
||||||
|
|
||||||
![cylinder example](img/cylinderex1.png)
|
![cylinder example](img/cylinderex1.png)
|
||||||
|
|
||||||
Drone.cylinder0() method
|
### Drone.cylinder0() method
|
||||||
========================
|
|
||||||
A version of cylinder that hollows out the middle.
|
A version of cylinder that hollows out the middle.
|
||||||
|
|
||||||
Example
|
#### Example
|
||||||
-------
|
|
||||||
To create a hollow cylinder of Iron 7 blocks in radius and 1 block high...
|
To create a hollow cylinder of Iron 7 blocks in radius and 1 block high...
|
||||||
|
|
||||||
cylinder0(blocks.iron, 7, 1);
|
cylinder0(blocks.iron, 7, 1);
|
||||||
|
|
||||||
![cylinder0 example](img/cylinder0ex1.png)
|
![cylinder0 example](img/cylinder0ex1.png)
|
||||||
|
|
||||||
Drone.arc() method
|
### Drone.arc() method
|
||||||
==================
|
|
||||||
The arc() method can be used to create 1 or more 90 degree arcs in the horizontal or vertical planes.
|
The arc() method can be used to create 1 or more 90 degree arcs in the horizontal or vertical planes.
|
||||||
This method is called by cylinder() and cylinder0() and the sphere() and sphere0() methods.
|
This method is called by cylinder() and cylinder0() and the sphere() and sphere0() methods.
|
||||||
|
|
||||||
Parameters
|
#### Parameters
|
||||||
----------
|
|
||||||
arc() takes a single parameter - an object with the following named properties...
|
arc() takes a single parameter - an object with the following named properties...
|
||||||
|
|
||||||
* radius - The radius of the arc.
|
* radius - The radius of the arc.
|
||||||
|
@ -350,8 +344,8 @@ arc() takes a single parameter - an object with the following named properties..
|
||||||
circle to draw. If the quadrants property is absent then all 4
|
circle to draw. If the quadrants property is absent then all 4
|
||||||
quadrants are drawn.
|
quadrants are drawn.
|
||||||
|
|
||||||
Examples
|
#### Examples
|
||||||
--------
|
|
||||||
To draw a 1/4 circle (top right quadrant only) with a radius of 10 and stroke width of 2 blocks ...
|
To draw a 1/4 circle (top right quadrant only) with a radius of 10 and stroke width of 2 blocks ...
|
||||||
|
|
||||||
arc({blockType: blocks.iron,
|
arc({blockType: blocks.iron,
|
||||||
|
@ -369,16 +363,16 @@ To draw a 1/4 circle (top right quadrant only) with a radius of 10 and stroke wi
|
||||||
[bres]: http://en.wikipedia.org/wiki/Midpoint_circle_algorithm
|
[bres]: http://en.wikipedia.org/wiki/Midpoint_circle_algorithm
|
||||||
[dv]: http://www.minecraftwiki.net/wiki/Data_values
|
[dv]: http://www.minecraftwiki.net/wiki/Data_values
|
||||||
|
|
||||||
Drone.door() method
|
### Drone.door() method
|
||||||
===================
|
|
||||||
create a door - if a parameter is supplied an Iron door is created otherwise a wooden door is created.
|
create a door - if a parameter is supplied an Iron door is created otherwise a wooden door is created.
|
||||||
|
|
||||||
Parameters
|
#### Parameters
|
||||||
----------
|
|
||||||
* doorType (optional - default wood) - If a parameter is provided then the door is Iron.
|
* doorType (optional - default wood) - If a parameter is provided then the door is Iron.
|
||||||
|
|
||||||
Example
|
#### Example
|
||||||
-------
|
|
||||||
To create a wooden door at the crosshairs/drone's location...
|
To create a wooden door at the crosshairs/drone's location...
|
||||||
|
|
||||||
var drone = new Drone();
|
var drone = new Drone();
|
||||||
|
@ -390,33 +384,33 @@ To create an iron door...
|
||||||
|
|
||||||
![iron door](img/doorex1.png)
|
![iron door](img/doorex1.png)
|
||||||
|
|
||||||
Drone.door2() method
|
### Drone.door2() method
|
||||||
====================
|
|
||||||
Create double doors (left and right side)
|
Create double doors (left and right side)
|
||||||
|
|
||||||
Parameters
|
#### Parameters
|
||||||
----------
|
|
||||||
* doorType (optional - default wood) - If a parameter is provided then the door is Iron.
|
* doorType (optional - default wood) - If a parameter is provided then the door is Iron.
|
||||||
|
|
||||||
Example
|
#### Example
|
||||||
-------
|
|
||||||
To create double-doors at the cross-hairs/drone's location...
|
To create double-doors at the cross-hairs/drone's location...
|
||||||
|
|
||||||
drone.door2();
|
drone.door2();
|
||||||
|
|
||||||
![double doors](img/door2ex1.png)
|
![double doors](img/door2ex1.png)
|
||||||
|
|
||||||
Drone.sign() method
|
### Drone.sign() method
|
||||||
===================
|
|
||||||
Signs must use block 63 (stand-alone signs) or 68 (signs on walls)
|
Signs must use block 63 (stand-alone signs) or 68 (signs on walls)
|
||||||
|
|
||||||
Parameters
|
#### Parameters
|
||||||
----------
|
|
||||||
* message - can be a string or an array of strings.
|
* message - can be a string or an array of strings.
|
||||||
* block - can be 63 or 68
|
* block - can be 63 or 68
|
||||||
|
|
||||||
Example
|
#### Example
|
||||||
-------
|
|
||||||
To create a free-standing sign...
|
To create a free-standing sign...
|
||||||
|
|
||||||
drone.sign(["Hello","World"],63);
|
drone.sign(["Hello","World"],63);
|
||||||
|
@ -429,16 +423,15 @@ To create a free-standing sign...
|
||||||
|
|
||||||
![wall sign](img/signex2.png)
|
![wall sign](img/signex2.png)
|
||||||
|
|
||||||
Drone Trees methods
|
### Drone Trees methods
|
||||||
===================
|
|
||||||
|
|
||||||
* oak()
|
* oak()
|
||||||
* spruce()
|
* spruce()
|
||||||
* birch()
|
* birch()
|
||||||
* jungle()
|
* jungle()
|
||||||
|
|
||||||
Example
|
#### Example
|
||||||
-------
|
|
||||||
To create 4 trees in a row, point the cross-hairs at the ground then type `/js ` and ...
|
To create 4 trees in a row, point the cross-hairs at the ground then type `/js ` and ...
|
||||||
|
|
||||||
up().oak().right(8).spruce().right(8).birch().right(8).jungle();
|
up().oak().right(8).spruce().right(8).birch().right(8).jungle();
|
||||||
|
@ -451,35 +444,33 @@ the `up()` method is called first).
|
||||||
|
|
||||||
![tree example](img/treeex1.png)
|
![tree example](img/treeex1.png)
|
||||||
|
|
||||||
|
|
||||||
None of the tree methods require parameters. Tree methods will only be successful
|
None of the tree methods require parameters. Tree methods will only be successful
|
||||||
if the tree is placed on grass in a setting where trees can grow.
|
if the tree is placed on grass in a setting where trees can grow.
|
||||||
|
|
||||||
Drone.garden() method
|
### Drone.garden() method
|
||||||
=====================
|
|
||||||
places random flowers and long grass (similar to the effect of placing bonemeal on grass)
|
places random flowers and long grass (similar to the effect of placing bonemeal on grass)
|
||||||
|
|
||||||
Parameters
|
#### Parameters
|
||||||
----------
|
|
||||||
|
|
||||||
* width - the width of the garden
|
* width - the width of the garden
|
||||||
* length - how far from the drone the garden extends
|
* length - how far from the drone the garden extends
|
||||||
|
|
||||||
Example
|
#### Example
|
||||||
-------
|
|
||||||
To create a garden 10 blocks wide by 5 blocks long...
|
To create a garden 10 blocks wide by 5 blocks long...
|
||||||
|
|
||||||
garden(10,5);
|
garden(10,5);
|
||||||
|
|
||||||
![garden example](img/gardenex1.png)
|
![garden example](img/gardenex1.png)
|
||||||
|
|
||||||
Drone.rand() method
|
### Drone.rand() method
|
||||||
===================
|
|
||||||
rand takes either an array (if each blockid has the same chance of occurring)
|
rand takes either an array (if each blockid has the same chance of occurring)
|
||||||
or an object where each property is a blockid and the value is it's weight (an integer)
|
or an object where each property is a blockid and the value is it's weight (an integer)
|
||||||
|
|
||||||
Example
|
#### Example
|
||||||
-------
|
|
||||||
place random blocks stone, mossy stone and cracked stone (each block has the same chance of being picked)
|
place random blocks stone, mossy stone and cracked stone (each block has the same chance of being picked)
|
||||||
|
|
||||||
rand( [blocks.brick.stone, blocks.brick.mossy, blocks.brick.cracked ],w,d,h)
|
rand( [blocks.brick.stone, blocks.brick.mossy, blocks.brick.cracked ],w,d,h)
|
||||||
|
@ -490,34 +481,32 @@ to place random blocks stone has a 50% chance of being picked,
|
||||||
|
|
||||||
regular stone has a 50% chance, mossy stone has a 30% chance and cracked stone has just a 20% chance of being picked.
|
regular stone has a 50% chance, mossy stone has a 30% chance and cracked stone has just a 20% chance of being picked.
|
||||||
|
|
||||||
Copy & Paste using Drone
|
### Copy & Paste using Drone
|
||||||
========================
|
|
||||||
A drone can be used to copy and paste areas of the game world.
|
A drone can be used to copy and paste areas of the game world.
|
||||||
|
|
||||||
Drone.copy() method
|
### Drone.copy() method
|
||||||
===================
|
|
||||||
Copies an area so it can be pasted elsewhere. The name can be used for
|
Copies an area so it can be pasted elsewhere. The name can be used for
|
||||||
pasting the copied area elsewhere...
|
pasting the copied area elsewhere...
|
||||||
|
|
||||||
Parameters
|
#### Parameters
|
||||||
----------
|
|
||||||
|
|
||||||
* name - the name to be given to the copied area (used by `paste`)
|
* name - the name to be given to the copied area (used by `paste`)
|
||||||
* width - the width of the area to copy
|
* width - the width of the area to copy
|
||||||
* height - the height of the area to copy
|
* height - the height of the area to copy
|
||||||
* length - the length of the area (extending away from the drone) to copy
|
* length - the length of the area (extending away from the drone) to copy
|
||||||
|
|
||||||
Example
|
#### Example
|
||||||
-------
|
|
||||||
|
|
||||||
drone.copy('somethingCool',10,5,10).right(12).paste('somethingCool');
|
drone.copy('somethingCool',10,5,10).right(12).paste('somethingCool');
|
||||||
|
|
||||||
Drone.paste() method
|
### Drone.paste() method
|
||||||
====================
|
|
||||||
Pastes a copied area to the current location.
|
Pastes a copied area to the current location.
|
||||||
|
|
||||||
Example
|
#### Example
|
||||||
-------
|
|
||||||
To copy a 10x5x10 area (using the drone's coordinates as the starting
|
To copy a 10x5x10 area (using the drone's coordinates as the starting
|
||||||
point) into memory. the copied area can be referenced using the name
|
point) into memory. the copied area can be referenced using the name
|
||||||
'somethingCool'. The drone moves 12 blocks right then pastes the copy.
|
'somethingCool'. The drone moves 12 blocks right then pastes the copy.
|
||||||
|
@ -526,8 +515,7 @@ point) into memory. the copied area can be referenced using the name
|
||||||
.right(12)
|
.right(12)
|
||||||
.paste('somethingCool');
|
.paste('somethingCool');
|
||||||
|
|
||||||
Chaining
|
### Chaining
|
||||||
========
|
|
||||||
|
|
||||||
All of the Drone methods return a Drone object, which means methods
|
All of the Drone methods return a Drone object, which means methods
|
||||||
can be 'chained' together so instead of writing this...
|
can be 'chained' together so instead of writing this...
|
||||||
|
@ -558,30 +546,28 @@ commands in a new script file and load it using /js load()
|
||||||
|
|
||||||
[fl]: http://en.wikipedia.org/wiki/Fluent_interface
|
[fl]: http://en.wikipedia.org/wiki/Fluent_interface
|
||||||
|
|
||||||
Drone Properties
|
### Drone Properties
|
||||||
================
|
|
||||||
|
|
||||||
* x - The Drone's position along the west-east axis (x increases as you move east)
|
* x - The Drone's position along the west-east axis (x increases as you move east)
|
||||||
* y - The Drone's position along the vertical axis (y increses as you move up)
|
* y - The Drone's position along the vertical axis (y increses as you move up)
|
||||||
* z - The Drone's position along the north-south axis (z increases as you move south)
|
* z - The Drone's position along the north-south axis (z increases as you move south)
|
||||||
* dir - The Drone's direction 0 is east, 1 is south , 2 is west and 3 is north.
|
* dir - The Drone's direction 0 is east, 1 is south , 2 is west and 3 is north.
|
||||||
|
|
||||||
Extending Drone
|
### Extending Drone
|
||||||
===============
|
|
||||||
The Drone object can be easily extended - new buidling recipes/blue-prints can be added and can
|
The Drone object can be easily extended - new buidling recipes/blue-prints can be added and can
|
||||||
become part of a Drone's chain using the *static* method `Drone.extend`.
|
become part of a Drone's chain using the *static* method `Drone.extend`.
|
||||||
|
|
||||||
Drone.extend() static method
|
### Drone.extend() static method
|
||||||
============================
|
|
||||||
Use this method to add new methods (which also become chainable global functions) to the Drone object.
|
Use this method to add new methods (which also become chainable global functions) to the Drone object.
|
||||||
|
|
||||||
Parameters
|
#### Parameters
|
||||||
----------
|
|
||||||
* name - The name of the new method e.g. 'pyramid'
|
* name - The name of the new method e.g. 'pyramid'
|
||||||
* function - The method body.
|
* function - The method body.
|
||||||
|
|
||||||
Example
|
#### Example
|
||||||
-------
|
|
||||||
|
|
||||||
// submitted by [edonaldson][edonaldson]
|
// submitted by [edonaldson][edonaldson]
|
||||||
Drone.extend('pyramid', function(block,height){
|
Drone.extend('pyramid', function(block,height){
|
||||||
|
@ -603,11 +589,10 @@ Once the method is defined (it can be defined in a new pyramid.js file) it can b
|
||||||
|
|
||||||
[edonaldson]: https://github.com/edonaldson
|
[edonaldson]: https://github.com/edonaldson
|
||||||
|
|
||||||
Drone Constants
|
### Drone Constants
|
||||||
===============
|
|
||||||
|
#### Drone.PLAYER_STAIRS_FACING
|
||||||
|
|
||||||
Drone.PLAYER_STAIRS_FACING
|
|
||||||
--------------------------
|
|
||||||
An array which can be used when constructing stairs facing in the Drone's direction...
|
An array which can be used when constructing stairs facing in the Drone's direction...
|
||||||
|
|
||||||
var d = new Drone();
|
var d = new Drone();
|
||||||
|
@ -615,8 +600,8 @@ An array which can be used when constructing stairs facing in the Drone's direct
|
||||||
|
|
||||||
... will construct a single oak stair block facing the drone.
|
... will construct a single oak stair block facing the drone.
|
||||||
|
|
||||||
Drone.PLAYER_SIGN_FACING
|
#### Drone.PLAYER_SIGN_FACING
|
||||||
------------------------
|
|
||||||
An array which can be used when placing signs so they face in a given direction.
|
An array which can be used when placing signs so they face in a given direction.
|
||||||
This is used internally by the Drone.sign() method. It should also be used for placing
|
This is used internally by the Drone.sign() method. It should also be used for placing
|
||||||
any of the following blocks...
|
any of the following blocks...
|
||||||
|
@ -630,8 +615,8 @@ To place a chest facing the Drone ...
|
||||||
|
|
||||||
drone.box( blocks.chest + ':' + Drone.PLAYER_SIGN_FACING[drone.dir]);
|
drone.box( blocks.chest + ':' + Drone.PLAYER_SIGN_FACING[drone.dir]);
|
||||||
|
|
||||||
Drone.PLAYER_TORCH_FACING
|
#### Drone.PLAYER_TORCH_FACING
|
||||||
-------------------------
|
|
||||||
Used when placing torches so that they face towards the drone.
|
Used when placing torches so that they face towards the drone.
|
||||||
|
|
||||||
drone.box( blocks.torch + ':' + Drone.PLAYER_TORCH_FACING[drone.dir]);
|
drone.box( blocks.torch + ':' + Drone.PLAYER_TORCH_FACING[drone.dir]);
|
||||||
|
@ -763,16 +748,16 @@ Drone.extend = function(name, func)
|
||||||
};
|
};
|
||||||
|
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
Drone.times() Method
|
### Drone.times() Method
|
||||||
====================
|
|
||||||
The times() method makes building multiple copies of buildings easy. It's possible to create rows or grids of buildings without resorting to `for` or `while` loops.
|
The times() method makes building multiple copies of buildings easy. It's possible to create rows or grids of buildings without resorting to `for` or `while` loops.
|
||||||
|
|
||||||
Parameters
|
#### Parameters
|
||||||
----------
|
|
||||||
* numTimes (optional - default 2) : The number of times you want to repeat the preceding statements.
|
* numTimes (optional - default 2) : The number of times you want to repeat the preceding statements.
|
||||||
|
|
||||||
Example
|
#### Example
|
||||||
-------
|
|
||||||
Say you want to do the same thing over and over. You have a couple of options...
|
Say you want to do the same thing over and over. You have a couple of options...
|
||||||
|
|
||||||
* You can use a for loop...
|
* You can use a for loop...
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
var Drone = require('./drone').Drone;
|
var Drone = require('./drone').Drone;
|
||||||
|
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
## Drone.sphere() method
|
### Drone.sphere() method
|
||||||
|
|
||||||
Creates a sphere.
|
Creates a sphere.
|
||||||
|
|
||||||
### Parameters
|
#### Parameters
|
||||||
|
|
||||||
* block - The block the sphere will be made of.
|
* block - The block the sphere will be made of.
|
||||||
* radius - The radius of the sphere.
|
* radius - The radius of the sphere.
|
||||||
|
|
||||||
### Example
|
#### Example
|
||||||
|
|
||||||
To create a sphere of Iron with a radius of 10 blocks...
|
To create a sphere of Iron with a radius of 10 blocks...
|
||||||
|
|
||||||
|
@ -67,16 +67,16 @@ Drone.extend('sphere', function(block,radius)
|
||||||
return this.move('sphere');
|
return this.move('sphere');
|
||||||
});
|
});
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
## Drone.sphere0() method
|
### Drone.sphere0() method
|
||||||
|
|
||||||
Creates an empty sphere.
|
Creates an empty sphere.
|
||||||
|
|
||||||
### Parameters
|
#### Parameters
|
||||||
|
|
||||||
* block - The block the sphere will be made of.
|
* block - The block the sphere will be made of.
|
||||||
* radius - The radius of the sphere.
|
* radius - The radius of the sphere.
|
||||||
|
|
||||||
### Example
|
#### Example
|
||||||
|
|
||||||
To create a sphere of Iron with a radius of 10 blocks...
|
To create a sphere of Iron with a radius of 10 blocks...
|
||||||
|
|
||||||
|
@ -166,17 +166,17 @@ Drone.extend('sphere0', function(block,radius)
|
||||||
|
|
||||||
});
|
});
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
## Drone.hemisphere() method
|
### Drone.hemisphere() method
|
||||||
|
|
||||||
Creates a hemisphere. Hemispheres can be either north or south.
|
Creates a hemisphere. Hemispheres can be either north or south.
|
||||||
|
|
||||||
### Parameters
|
#### Parameters
|
||||||
|
|
||||||
* block - the block the hemisphere will be made of.
|
* block - the block the hemisphere will be made of.
|
||||||
* radius - the radius of the hemisphere
|
* radius - the radius of the hemisphere
|
||||||
* northSouth - whether the hemisphere is 'north' or 'south'
|
* northSouth - whether the hemisphere is 'north' or 'south'
|
||||||
|
|
||||||
### Example
|
#### Example
|
||||||
|
|
||||||
To create a wood 'north' hemisphere with a radius of 7 blocks...
|
To create a wood 'north' hemisphere with a radius of 7 blocks...
|
||||||
|
|
||||||
|
@ -236,17 +236,17 @@ Drone.extend('hemisphere', function(block,radius, northSouth){
|
||||||
|
|
||||||
});
|
});
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
## Drone.hemisphere0() method
|
### Drone.hemisphere0() method
|
||||||
|
|
||||||
Creates a hollow hemisphere. Hemispheres can be either north or south.
|
Creates a hollow hemisphere. Hemispheres can be either north or south.
|
||||||
|
|
||||||
### Parameters
|
#### Parameters
|
||||||
|
|
||||||
* block - the block the hemisphere will be made of.
|
* block - the block the hemisphere will be made of.
|
||||||
* radius - the radius of the hemisphere
|
* radius - the radius of the hemisphere
|
||||||
* northSouth - whether the hemisphere is 'north' or 'south'
|
* northSouth - whether the hemisphere is 'north' or 'south'
|
||||||
|
|
||||||
### Example
|
#### Example
|
||||||
|
|
||||||
To create a glass 'north' hemisphere with a radius of 20 blocks...
|
To create a glass 'north' hemisphere with a radius of 20 blocks...
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
## Example Plugin #1
|
## Example Plugin #1 - A simple extension to Minecraft.
|
||||||
|
|
||||||
A simple minecraft plugin. The most basic module.
|
A simple minecraft plugin. The most basic module.
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
## Example Plugin #2
|
## Example Plugin #2 - Making extensions available for all players.
|
||||||
|
|
||||||
A simple minecraft plugin. Commands for other players.
|
A simple minecraft plugin. Commands for other players.
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
## Example Plugin #3
|
## Example Plugin #3 - Limiting use of commands to operators only.
|
||||||
|
|
||||||
A simple minecraft plugin. Commands for operators only.
|
A simple minecraft plugin. Commands for operators only.
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
## Example Plugin #4
|
## Example Plugin #4 - Using parameters in commands.
|
||||||
|
|
||||||
A simple minecraft plugin. Handling parameters.
|
A simple minecraft plugin. Handling parameters.
|
||||||
|
|
||||||
### Usage:
|
### Usage:
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
## Example Plugin #5
|
## Example Plugin #5 - Re-use - Using your own and others modules.
|
||||||
|
|
||||||
A simple minecraft plugin. Using Modules.
|
A simple minecraft plugin. Using Modules.
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
## Example Plugin #6
|
## Example Plugin #6 - Re-use - Using 'utils' to get Player objects.
|
||||||
|
|
||||||
A simple minecraft plugin. Finding players by name.
|
A simple minecraft plugin. Finding players by name.
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
## Example Plugin #7
|
## Example Plugin #7 - Listening for events, Greet players when they join the game.
|
||||||
|
|
||||||
A simple event-driven minecraft plugin. How to handle Events.
|
A simple event-driven minecraft plugin. How to handle Events.
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
## homes Module
|
## homes Plugin
|
||||||
|
|
||||||
The homes plugin lets players set a location as home and return to the
|
The homes plugin lets players set a location as home and return to the
|
||||||
location, invite other players to their home and also visit other
|
location, invite other players to their home and also visit other
|
||||||
|
|
Reference in a new issue