made blocks a module rather than a plugin

This commit is contained in:
walterhiggins 2013-12-25 13:39:04 +00:00
parent d44a43e598
commit b92e9e4a07
9 changed files with 302 additions and 21 deletions

View file

@ -764,6 +764,20 @@ Example
<p style="color:gold;font-weight:bold">Hello World</p>
Blocks Module
=============
You hate having to lookup [Data Values][dv] when you use ScriptCraft's Drone() functions. So do I.
So I created this blocks object which is a helper object for use in construction.
Examples
--------
box( blocks.oak ); // creates a single oak wood block
box( blocks.sand, 3, 2, 1 ); // creates a block of sand 3 wide x 2 high x 1 long
box( blocks.wool.green, 2 ); // creates a block of green wool 2 blocks wide
Color aliased properties that were a direct descendant of the blocks object are no longer used to avoid confusion with carpet and stained clay blocks. In addition, there's a convenience array `blocks.rainbow` which is an array of the 7 colors of the rainbow (or closest approximations).
Fireworks Module
================
The fireworks module makes it easy to create fireworks using
@ -1516,20 +1530,6 @@ To create a 2-line high message using glowstone...
[imgbt1]: img/blocktype1.png
Blocks Module
=============
You hate having to lookup [Data Values][dv] when you use ScriptCraft's Drone() functions. So do I.
So I created this blocks object which is a helper object for use in construction.
Examples
--------
box( blocks.oak ); // creates a single oak wood block
box( blocks.sand, 3, 2, 1 ); // creates a block of sand 3 wide x 2 high x 1 long
box( blocks.wool.green, 2 ); // creates a block of green wool 2 blocks wide
Color aliased properties that were a direct descendant of the blocks object are no longer used to avoid confusion with carpet and stained clay blocks. In addition, there's a convenience array `blocks.rainbow` which is an array of the 7 colors of the rainbow (or closest approximations).
Drone.sphere() method
=====================
Creates a sphere.

View file

@ -0,0 +1,275 @@
/************************************************************************
Blocks Module
=============
You hate having to lookup [Data Values][dv] when you use ScriptCraft's Drone() functions. So do I.
So I created this blocks object which is a helper object for use in construction.
Examples
--------
box( blocks.oak ); // creates a single oak wood block
box( blocks.sand, 3, 2, 1 ); // creates a block of sand 3 wide x 2 high x 1 long
box( blocks.wool.green, 2 ); // creates a block of green wool 2 blocks wide
Color aliased properties that were a direct descendant of the blocks object are no longer used to avoid confusion with carpet and stained clay blocks. In addition, there's a convenience array `blocks.rainbow` which is an array of the 7 colors of the rainbow (or closest approximations).
***/
var blocks = {
air: 0,
stone: 1,
grass: 2,
dirt: 3,
cobblestone: 4,
oak: 5,
spruce: '5:1',
birch: '5:2',
jungle: '5:3',
sapling: {
oak: 6,
spruce: '6:1',
birch: '62:2',
jungle: '6:3'
},
bedrock: 7,
water: 8,
water_still: 9,
lava: 10,
lava_still: 11,
sand: 12,
gravel: 13,
gold_ore: 14,
iron_ore: 15,
coal_ore: 16,
wood: 17,
leaves: 18,
sponge: 19,
glass: 20,
lapis_lazuli_ore: 21,
lapis_lazuli_block: 22,
dispenser: 23,
sandstone: 24,
note: 25,
bed: 26,
powered_rail: 27,
detector_rail: 28,
sticky_piston: 29,
cobweb: 30,
grass_tall: 31,
dead_bush: 32,
piston: 33,
piston_extn: 34,
wool: {
white: 35 // All other colors added below
},
dandelion: 37,
flower_yellow: 37,
rose: 38,
flower_red: 38,
mushroom_brown: 39,
mushroom_red: 40,
gold: 41,
iron: 42,
tnt: 46,
bookshelf: 47,
moss_stone: 48,
obsidian: 49,
torch: 50,
fire: 51,
monster_spawner: 52,
stairs: {
oak: 53,
cobblestone: 67,
brick: 108,
stone: 109,
nether: 114,
sandstone: 128,
spruce: 134,
birch: 135,
jungle: 136,
quartz: 156
},
chest: 54,
redstone_wire: 55,
diamond_ore: 56,
diamond: 57,
crafting_table: 58,
wheat_seeds: 59,
farmland: 60,
furnace: 61,
furnace_burning: 62,
sign_post: 63,
door_wood: 64,
ladder: 65,
rail: 66,
sign: 68,
lever: 69,
pressure_plate_stone: 70,
door_iron: 71,
pressure_plate_wood: 72,
redstone_ore: 73,
redstone_ore_glowing: 74,
torch_redstone: 75,
torch_redstone_active: 76,
stone_button: 77,
ice: 79,
snow: 80,
cactus: 81,
clay: 82,
sugar_cane: 83,
jukebox: 84,
fence: 85,
pumpkin: 86,
netherrack: 87,
soulsand: 88,
glowstone: 89,
netherportal: 90,
jackolantern: 91,
cake: 92,
redstone_repeater: 93,
redeston_repeater_active: 94,
chest_locked: 95,
trapdoor: 96,
monster_egg: 97,
brick: {
stone: 98,
mossy: '98:1',
cracked: '98:2',
chiseled: '98:3',
red: 45
},
mushroom_brown_huge: 99,
mushroom_red_huge: 100,
iron_bars: 101,
glass_pane: 102,
melon: 103,
pumpkin_stem: 104,
melon_stem: 105,
vines: 106,
fence_gate: 107,
mycelium: 110,
lily_pad: 111,
nether: 112,
nether_fence: 113,
netherwart: 115,
table_enchantment: 116,
brewing_stand: 117,
cauldron: 118,
endportal: 119,
endportal_frame: 120,
endstone: 121,
dragon_egg: 122,
redstone_lamp: 123,
redstone_lamp_active: 124,
slab: {
snow: 78,
stone: 44,
sandstone: '44:1',
wooden: '44:2',
cobblestone: '44:3',
brick: '44:4',
stonebrick: '44:5',
netherbrick:'44:6',
quartz: '44:7',
oak: 126,
spruce: '126:1',
birch: '126:2',
jungle: '126:3',
upper: {
stone: '44:8',
sandstone: '44:9',
wooden: '44:10',
cobblestone: '44:11',
brick: '44:12',
stonebrick: '44:13',
netherbrick:'44:14',
quartz: '44:15',
oak: '126:8',
spruce: '126:9',
birch: '126:10',
jungle: '126:11',
}
},
cocoa: 127,
emerald_ore: 129,
enderchest: 130,
tripwire_hook: 131,
tripwire: 132,
emerald: 133,
command: 137,
beacon: 138,
cobblestone_wall: 139,
flowerpot: 140,
carrots: 141,
potatoes: 142,
button_wood: 143,
mobhead: 144,
anvil: 145,
chest_trapped: 146,
pressure_plate_weighted_light: 147,
pressure_plate_weighted_heavy: 148,
redstone_comparator: 149,
redstone_comparator_active: 150,
daylight_sensor: 151,
redstone: 152,
netherquartzore: 153,
hopper: 154,
quartz: 155,
rail_activator: 157,
dropper: 158,
stained_clay: {
white: 159 // All other colors added below
},
hay: 170,
carpet: {
white: 171 // All other colors added below
},
hardened_clay: 172,
coal_block: 173
};
// Add all available colors to colorized block collections
var colors = {
orange: ':1',
magenta: ':2',
lightblue: ':3',
yellow: ':4',
lime: ':5',
pink: ':6',
gray: ':7',
lightgray: ':8',
cyan: ':9',
purple: ':10',
blue: ':11',
brown: ':12',
green: ':13',
red: ':14',
black: ':15'
};
var colorized_blocks = ["wool", "stained_clay", "carpet"];
for (var i = 0, len = colorized_blocks.length; i < len; i++) {
var block = colorized_blocks[i],
data_value = blocks[block].white;
for (var color in colors) {
blocks[block][color] = data_value + colors[color];
}
};
/*
rainbow colors - a convenience
Color aliased properties that were a direct descendant of the blocks
object are no longer used to avoid confusion with carpet and stained
clay blocks.
*/
blocks.rainbow = [blocks.wool.red,
blocks.wool.orange,
blocks.wool.yellow,
blocks.wool.lime,
blocks.wool.lightblue,
blocks.wool.blue,
blocks.wool.purple];
module.exports = blocks;

View file

@ -1,5 +1,5 @@
var Drone = require('./drone').Drone;
var blocks = require('./blocks').blocks;
var blocks = require('blocks');
/************************************************************************
Drone.blocktype() method

View file

@ -1,5 +1,5 @@
var Drone = require('../drone').Drone;
var blocks = require('../blocks').blocks;
var blocks = require('blocks');
/**
* Creates a tile pattern of given block types and size

View file

@ -1,5 +1,5 @@
var Drone = require('../drone').Drone;
var blocks = require('../blocks').blocks;
var blocks = require('blocks');
/************************************************************************
Drone.rainbow() method

View file

@ -1,5 +1,5 @@
var Drone = require('../drone').Drone;
var blocks = require('../blocks').blocks;
var blocks = require('blocks');
//
// usage:

View file

@ -1,5 +1,5 @@
var Drone = require('../drone').Drone;
var blocks = require('../blocks').blocks;
var blocks = require('blocks');
Drone.extend('skyscraper',function(floors){

View file

@ -1,5 +1,5 @@
var Drone = require('../drone').Drone;
var blocks = require('../blocks').blocks;
var blocks = require('blocks');
/************************************************************************
Drone.spiral_stairs() method

View file

@ -1,5 +1,5 @@
var _utils = require('utils');
var blocks = require('./blocks').blocks;
var blocks = require('blocks');
/*********************************************************************
Drone Module
@ -733,6 +733,12 @@ Drone = function(x,y,z,dir,world)
};
exports.Drone = Drone;
/*
because this is a plugin, any of its exports will be exported globally.
Since 'blocks' is a module not a plugin it is convenient to export it via
the Drone module.
*/
exports.blocks = blocks;
//
// add custom methods to the Drone object using this function