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/canary/fireworks.js

40 lines
1.6 KiB
JavaScript

'use strict';
/*global require, Packages, module*/
var items = require('items');
var Canary = Packages.net.canarymod.Canary;
var cmFireworkHelper = Packages.net.canarymod.api.inventory.helper.FireworkHelper;
var cmExplosionType = Packages.net.canarymod.api.inventory.helper.FireworkHelper.ExplosionType;
var explosionTypes = ['STAR','BURST','CREEPER','LARGE','SMALL'];
var cmDyeColor = Packages.net.canarymod.api.DyeColor;
var entityFactory = Canary.factory().entityFactory;
var cmEntityType = Packages.net.canarymod.api.entity.EntityType;
var colors = [].concat(cmDyeColor.values());
function canaryFirework( location ) {
var firework = items.fireworkStar(1);
var i1 = Math.floor(Math.random()* colors.length);
var i2 = Math.floor(Math.random()* colors.length);
var colorsToUse = colors.slice(Math.min(i1,i2),Math.max(i1,i2));
if (colorsToUse.length == 0){
colorsToUse = colors;
}
cmFireworkHelper.addStarColors( firework, colorsToUse );
cmFireworkHelper.setDoesFlicker( firework, true );
cmFireworkHelper.setDoesTrail( firework, true );
// use a random explosion type
var rnd = Math.floor(Math.random() * explosionTypes.length);
var type = explosionTypes[rnd];
cmFireworkHelper.setStarExplosionType( firework, cmExplosionType[type]);
var rocket = items.fireworkRocket(1);
cmFireworkHelper.setFlightDuration( rocket, 3);
cmFireworkHelper.attachFireworkStars( rocket, [firework] );
var rocketEntity = entityFactory.newEntity(cmEntityType.FIREWORKROCKET, location);
rocketEntity.item = rocket;
rocketEntity.spawn();
}
module.exports = canaryFirework;