70 lines
1.9 KiB
JavaScript
70 lines
1.9 KiB
JavaScript
'use strict';
|
|
/*global module,exports,require,Packages*/
|
|
var Facing = Packages.net.minecraft.util.EnumFacing;
|
|
var DoorHalf = Packages.net.minecraft.block.BlockDoor.EnumDoorHalf;
|
|
var HingePosition = Packages.net.minecraft.block.BlockDoor.EnumHingePosition;
|
|
var DyeColor = Packages.net.minecraft.item.EnumDyeColor;
|
|
var table = {
|
|
facing: [ Facing.EAST, Facing.SOUTH, Facing.WEST, Facing.NORTH],
|
|
half: { upper: DoorHalf.UPPER, lower: DoorHalf.LOWER },
|
|
hinge: { left: HingePosition.LEFT, right: HingePosition.RIGHT },
|
|
color: {
|
|
black: DyeColor.BLACK,
|
|
blue: DyeColor.BLUE,
|
|
brown: DyeColor.BROWN,
|
|
cyan: DyeColor.CYAN,
|
|
gray: DyeColor.GRAY,
|
|
green: DyeColor.GREEN,
|
|
lightblue: DyeColor.LIGHT_BLUE,
|
|
lime: DyeColor.LIME,
|
|
magenta: DyeColor.MAGENTA,
|
|
orange: DyeColor.ORANGE,
|
|
pink: DyeColor.PINK,
|
|
purple: DyeColor.PURPLE,
|
|
red: DyeColor.RED,
|
|
silver: DyeColor.SILVER,
|
|
white: DyeColor.WHITE,
|
|
yellow: DyeColor.YELLOW,
|
|
0: DyeColor.WHITE,
|
|
1: DyeColor.ORANGE,
|
|
2: DyeColor.MAGENTA,
|
|
3: DyeColor.LIGHT_BLUE,
|
|
4: DyeColor.YELLOW,
|
|
5: DyeColor.LIME,
|
|
6: DyeColor.PINK,
|
|
7: DyeColor.GRAY,
|
|
8: DyeColor.SILVER,
|
|
9: DyeColor.CYAN,
|
|
10: DyeColor.PURPLE,
|
|
11: DyeColor.BLUE,
|
|
12: DyeColor.BROWN,
|
|
13: DyeColor.GREEN,
|
|
14: DyeColor.RED,
|
|
15: DyeColor.BLACK
|
|
}
|
|
};
|
|
|
|
function property( block ){
|
|
var result;
|
|
result = {
|
|
get: function(p){
|
|
var bp = block.getPropertyForName(p);
|
|
return block.getValue(bp);
|
|
},
|
|
set: function(name,value){
|
|
var bp = block.getPropertyForName(name);
|
|
if (bp === null){
|
|
console.warn(block + ' has no property named ' + name);
|
|
return result;
|
|
}
|
|
if (table[bp.name]){
|
|
value = table[bp.name][value];
|
|
}
|
|
block.setPropertyValue(bp, value);
|
|
return result;
|
|
}
|
|
};
|
|
return result;
|
|
}
|
|
exports.property = property;
|