This repository has been archived on 2021-07-14. You can view files and clone it, but cannot push or open issues or pull requests.
scriptcraft/src/main/js/modules/drone/doors.js

102 lines
2.4 KiB
JavaScript

/*global module*/
'use strict';
/*************************************************************************
### Drone.door() method
create a door - if a parameter is supplied an Iron door is created otherwise a wooden door is created.
#### Parameters
* doorType (optional - default wood) - If a parameter is provided then the door is Iron.
#### Example
To create a wooden door at the crosshairs/drone's location...
var drone = new Drone(self);
drone.door();
To create an iron door...
drone.door( blocks.door_iron );
![iron door](img/doorex1.png)
### Drone.door_iron() method
create an Iron door.
### Drone.door2() method
Create double doors (left and right side)
#### Parameters
* doorType (optional - default wood) - If a parameter is provided then the door is Iron.
#### Example
To create double-doors at the cross-hairs/drone's location...
drone.door2();
![double doors](img/door2ex1.png)
### Drone.door2_iron() method
Create double iron doors
***/
var blocks = require('blocks');
/*global require, Packages, __plugin*/
function door( doorMaterial, hinge) {
if ( typeof doorMaterial == 'undefined' ) {
doorMaterial = blocks.door_wood; // wood
}
if (typeof hinge == 'undefined') {
hinge = 'left';
}
var Drone = this.constructor;
this.then(function(){
var lower = this.setBlock(doorMaterial, this.dir, 0, 0, 0, false);
var upper = this.setBlock(doorMaterial, hinge=='left' ? 8 : 9, 0,1,0, false);
if (Drone.bountiful){
var DoorHalf = Packages.net.minecraft.block.BlockDoor.EnumDoorHalf,
HingePosition = Packages.net.minecraft.block.BlockDoor.EnumHingePosition,
prop = require('blockhelper').property;
prop(lower)
.set('facing', this.dir)
.set('half', DoorHalf.LOWER );
prop(upper)
.set('hinge', hinge == 'left' ? HingePosition.LEFT: HingePosition.RIGHT)
.set('half', DoorHalf.UPPER);
}
if (__plugin.canary){
lower.update();
upper.update();
}
});
}
module.exports = function(Drone){
Drone.extend( door );
Drone.extend( function door_iron( ) {
this.door(blocks.door_iron);
} );
Drone.extend( function door2( doorMaterial ) {
if ( typeof doorMaterial == 'undefined' ) {
doorMaterial = blocks.door_wood;
}
this
.door( doorMaterial, 'left')
.right()
.door( doorMaterial, 'right')
.left();
} );
Drone.extend( function door2_iron( ) {
this.door2( blocks.door_iron );
} );
};