Andrew Meadowsarchive remaining JS scriptsc0b446c10 years agoHistory
76 lines · 2.6 KB · JavaScript
RawDownload
////  createBatButton.js//  examples/baseball/moreBatsButton.js////  Created by Stephen Birarda on 10/28/2015.//  Copyright 2015 High Fidelity, Inc.////  Distributed under the Apache License, Version 2.0.//  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html// (function(){    this.clickReleaseOnEntity = function(entityID, mouseEvent) {        if (!mouseEvent.isLeftButton) {            return;        }        this.dropBats();    };    this.startNearTrigger = function() {        this.dropBats();    };    this.startFarTrigger = function() {        this.dropBats();    };    this.dropBats = function() {        // if the bat box is near us, grab it's position        var nearby = Entities.findEntities(this.position, 20);         nearby.forEach(function(id) {            var properties = Entities.getEntityProperties(id, ["name", "position"]);            if (properties.name && properties.name == "Bat Box") {                boxPosition = properties.position;            }        });         var BAT_DROP_HEIGHT = 2.0;         var dropPosition;         if (!boxPosition) {            // we got no bat box position, drop in front of the avatar instead        } else {            // drop the bat above the bat box            dropPosition = Vec3.sum(boxPosition, { x: 0.0, y: BAT_DROP_HEIGHT, z: 0.0});        }         var BAT_MODEL = "atp:c47deaae09cca927f6bc9cca0e8bbe77fc618f8c3f2b49899406a63a59f885cb.fbx";        var BAT_COLLISION_HULL = "atp:9eafceb7510c41d50661130090de7e0632aa4da236ebda84a0059a4be2130e0c.obj";        var SCRIPT_RELATIVE_PATH = "bat.js"         var batUserData = {            grabbableKey: {                spatialKey: {                    leftRelativePosition: { x: 0.9, y: 0.05, z: -0.05 },                    rightRelativePosition: { x: 0.9, y: 0.05, z: 0.05 },                    relativeRotation: Quat.fromPitchYawRollDegrees(0, 0, 45)                }            }        }         // add the fresh bat at the drop position        var bat = Entities.addEntity({            name: 'Bat',            type: "Model",            modelURL: BAT_MODEL,            position: dropPosition,            compoundShapeURL: BAT_COLLISION_HULL,            dynamic: true,            velocity: { x: 0, y: 0.05, z: 0}, // workaround for gravity not taking effect on add            gravity: { x: 0, y: -9.81, z: 0},            rotation: Quat.fromPitchYawRollDegrees(0.0, 0.0, -90.0),            script: Script.resolvePath(SCRIPT_RELATIVE_PATH),            userData: JSON.stringify(batUserData)        });    };});