content/hifi-content/huffman/ctf/spawnPortalGun.js
2022-02-13 23:27:08 +01:00

99 lines
2.8 KiB
JavaScript

var GUN_RED_MODEL_URL = Script.resolvePath("models/portalgun_red.fbx");
var GUN_BLUE_MODEL_URL = Script.resolvePath("models/portalgun_blue.fbx");
var gunProps = {
"collisionsWillMove": 1,
"compoundShapeURL": Script.resolvePath("models/portalgun_collider.obj"),
"dimensions": {
"x": 0.17742760479450226,
"y": 0.38749998807907104,
"z": 0.99309998750686646
},
"dynamic": 1,
"gravity": {
"x": 0,
"y": -5,
"z": 0
},
"modelURL": Script.resolvePath("models/portalgun_red.fbx"),
"name": "Portal/Gun",
"position": {
"x": 1.4289360046386719,
"y": 0,
"z": 1.4532890319824219
},
"rotation": {
"w": 0.51259636878967285,
"x": -0.5248645544052124,
"y": 0.5236133337020874,
"z": -0.43306630849838257
},
lifetime: 100,
velocity: {
x: 0,
y: 0.5,
z: 0
},
"script": Script.resolvePath("portalGunClientEntity.js?" + Date.now()),
"shapeType": "compound",
"type": "Model",
"userData": "{\"grabbableKey\":{\"invertSolidWhileHeld\":true},\"wearable\":{\"joints\":{\"RightHand\":[{\"x\":0.1177130937576294,\"y\":0.12922893464565277,\"z\":0.08307232707738876},{\"x\":0.4934672713279724,\"y\":0.3605862259864807,\"z\":0.6394805908203125,\"w\":-0.4664038419723511}],\"LeftHand\":[{\"x\":0.09151676297187805,\"y\":0.13639454543590546,\"z\":0.09354984760284424},{\"x\":-0.19628101587295532,\"y\":0.6418180465698242,\"z\":0.2830369472503662,\"w\":0.6851521730422974}]}}}"
};
var lightProps = {
lifetime: 100,
"color": {
"blue": 255,
"green": 166,
"red": 41
},
"cutoff": 90,
"dimensions": {
"x": 5.0777130126953125,
"y": 5.0777130126953125,
"z": 5.0777130126953125
},
"falloffRadius": 2.2000000476837158,
"intensity": 5,
"name": "Portal/GunLight",
"localPosition": {
x: 0,
y: 0.1,
z: 0.5
},
"type": "Light"
};
var userData = JSON.parse(gunProps.userData);
var gunData = {
red: {
modelURL: GUN_RED_MODEL_URL,
lightColor: {
red: 255,
green: 23,
blue: 96,
}
},
blue: {
modelURL: GUN_BLUE_MODEL_URL,
lightColor: {
red: 41,
green: 166,
blue: 255,
}
}
};
var models = [GUN_RED_MODEL_URL, GUN_BLUE_MODEL_URL];
var colors = ['red', 'blue'];
for (var i = 0; i < colors.length; ++i) {
var color = colors[i];
gunProps.modelURL = gunData[color].modelURL;
gunProps.position = MyAvatar.position;
userData.color = color;
gunProps.userData = JSON.stringify(userData);
var gunID = Entities.addEntity(gunProps);
lightProps.color = gunData[color].lightColor;
lightProps.parentID = gunID;
Entities.addEntity(lightProps);
}