283 lines
8.1 KiB
JavaScript
283 lines
8.1 KiB
JavaScript
|
|
(function() {
|
|
var FIVE_KEY = 53;
|
|
var SIX_KEY = 54;
|
|
var SEVEN_KEY = 55;
|
|
var EIGHT_KEY = 56;
|
|
|
|
var SHAPE_ENTITY_KEY = 83;
|
|
var WEB_ENTITY_KEY = 86;
|
|
var TEXT_ENTITY_KEY = 84;
|
|
var LIGHT_ENTITY_KEY = 71;
|
|
var LINE_ENTITY_KEY = 79;
|
|
var PARTICLE_ENTITY_KEY = 90;
|
|
var POLY_VOX_ENTITY_KEY = 89;
|
|
var POLY_LINE_ENTITY_KEY = 88;
|
|
|
|
var UPDATE_FACING_KEY = 70;
|
|
|
|
var instructionsOverlay = null;
|
|
var overlay1 = null;
|
|
var overlay2 = null;
|
|
var entity1 = null;
|
|
var entity2 = null;
|
|
|
|
var HEAD_JOINT_INDEX = MyAvatar.getJointIndex("Head");
|
|
var DEFAULT_DIMENSIONS = {x: 0.3, y: 0.3, z: 0.3};
|
|
var instructionText =
|
|
"Parent Entity Test \n" +
|
|
"Press the specified key to get entity type \n \n" +
|
|
"s -> Shape Entity \n" +
|
|
"t -> Text Entity \n" +
|
|
"v -> Web Entity \n" +
|
|
"z -> Particle Entity \n";
|
|
|
|
instructionsOverlay = Overlays.addOverlay("text", {
|
|
text: instructionText,
|
|
x: 10,
|
|
y: 10,
|
|
width: 400,
|
|
height: 400
|
|
});
|
|
|
|
var faceCamera = false;
|
|
|
|
function cleanup() {
|
|
Overlays.deleteOverlay(instructionsOverlay);
|
|
Overlays.deleteOverlay(overlay1);
|
|
Overlays.deleteOverlay(overlay2);
|
|
Entities.deleteEntity(entity1);
|
|
Entities.deleteEntity(entity2);
|
|
}
|
|
|
|
function clear() {
|
|
Overlays.deleteOverlay(overlay1);
|
|
Overlays.deleteOverlay(overlay2);
|
|
Entities.deleteEntity(entity2);
|
|
Entities.deleteEntity(entity1);
|
|
overlay1 = null;
|
|
overlay2 = null;
|
|
entity1 = null;
|
|
entity2 = null;
|
|
}
|
|
|
|
function parentEntityAvatar() {
|
|
}
|
|
|
|
function parentEntityOverlay() {
|
|
}
|
|
|
|
function parentAvatarEntity() {
|
|
}
|
|
|
|
function parentAvatarEntityOverlay() {
|
|
}
|
|
|
|
function shapeEntity() {
|
|
clear();
|
|
var shapeProperties = {
|
|
name: "shapeTestEntity",
|
|
type: "Box",
|
|
parentID: MyAvatar.sessionUUID,
|
|
localPosition: Vec3.ZERO,
|
|
parentJointIndex: HEAD_JOINT_INDEX,
|
|
dimensions: DEFAULT_DIMENSIONS
|
|
};
|
|
|
|
entity1 = Entities.addEntity(shapeProperties, true);
|
|
}
|
|
|
|
function textEntity() {
|
|
clear();
|
|
var textProperties = {
|
|
name: "textTestEntity",
|
|
type: "Text",
|
|
text: "This is just a test",
|
|
parentID: MyAvatar.sessionUUID,
|
|
localPosition: Vec3.ZERO,
|
|
parentJointIndex: HEAD_JOINT_INDEX,
|
|
dimensions: DEFAULT_DIMENSIONS,
|
|
faceCamera: faceCamera
|
|
};
|
|
entity1 = Entities.addEntity(textProperties, true);
|
|
}
|
|
|
|
function materialEntity() {
|
|
}
|
|
|
|
function modelEntity() {
|
|
}
|
|
|
|
function webEntity() {
|
|
clear();
|
|
print("creating webEntity");
|
|
var webProperties = {
|
|
type: "Web",
|
|
name: "WebTestEntity",
|
|
sourceUrl: "https://highfidelity.com/",
|
|
parentID: MyAvatar.sessionUUID,
|
|
localPosition: Vec3.ZERO,
|
|
parentJointIndex: HEAD_JOINT_INDEX,
|
|
dimensions: DEFAULT_DIMENSIONS
|
|
};
|
|
|
|
entity1 = Entities.addEntity(webProperties, true);
|
|
}
|
|
|
|
function lineEntity() {
|
|
clear();
|
|
print("creating lineEntity");
|
|
var lineProperties = {
|
|
type: "Line",
|
|
name: "LineTestEntity",
|
|
localPosition: Vec3.ZERO,
|
|
parentID: MyAvatar.sessionUUID,
|
|
parentJointIndex: HEAD_JOINT_INDEX,
|
|
dimensions: { x: 2, y: 2, z: 1 },
|
|
linePoints: [
|
|
{ x: -1, y: 1, z: 0 },
|
|
{ x: 0, y: -1, z: 0 },
|
|
{ x: 1, y: 1, z: 0 }
|
|
],
|
|
lineWidth: 13,
|
|
color: { red: 255, green: 255, blue: 255 }
|
|
};
|
|
|
|
entity1 = Entities.addEntity(lineProperties, true);
|
|
}
|
|
|
|
function lightEntity() {
|
|
clear();
|
|
print("creating lightEntity");
|
|
var lightProperties = {
|
|
type: "Light",
|
|
name: "LightTestEntity",
|
|
localPosition: Vec3.ZERO,
|
|
parentID: MyAvatar.sessionUUID,
|
|
parentJointIndex: HEAD_JOINT_INDEX,
|
|
dimensions: { x: 4, y: 4, z: 4 },
|
|
intensity: 100
|
|
};
|
|
entity1 = Entities.addEntity(lightProperties, true);
|
|
}
|
|
|
|
function particleEffectEntity() {
|
|
clear();
|
|
print("creating ParticleEntity");
|
|
var particleEffectProperties = {
|
|
type: "ParticleEffect",
|
|
name: "ParticleEffectTestEntity",
|
|
localPosition: Vec3.ZERO,
|
|
parentID: MyAvatar.sessionUUID,
|
|
parentJointIndex: HEAD_JOINT_INDEX,
|
|
dimensions: DEFAULT_DIMENSIONS,
|
|
lifespan: 5,
|
|
emitRate: 10,
|
|
emitSpeed: 0.02,
|
|
speedSpread: 0.01,
|
|
emitAcceleration: { x: 0, y: 0.02, z: 0 },
|
|
polarFinish: Math.PI,
|
|
textures: "https://content.highfidelity.com/DomainContent/production/Particles/wispy-smoke.png",
|
|
particleRadius: 0.1,
|
|
color: { red: 0, green: 255, blue: 0 },
|
|
alphaFinish: 0
|
|
};
|
|
|
|
entity1 = Entities.addEntity(particleEffectProperties, true);
|
|
}
|
|
|
|
function polyLineEntity() {
|
|
clear();
|
|
print("creating PolyLineEntity");
|
|
var polyLineProperties = {
|
|
type: "PolyLine",
|
|
name: "PolyLineTestEntity",
|
|
localPosition: Vec3.ZERO,
|
|
parentID: MyAvatar.sessionUUID,
|
|
parentJointIndex: HEAD_JOINT_INDEX,
|
|
dimensions: DEFAULT_DIMENSIONS,
|
|
linePoints: [
|
|
{ x: -1, y: 0.5, z: 0 },
|
|
{ x: 0, y: 0, z: 0 },
|
|
{ x: 1, y: 0.5, z: 0 }
|
|
],
|
|
normals: [
|
|
{ x: 0, y: 0, z: 1 },
|
|
{ x: 0, y: 0, z: 1 },
|
|
{ x: 0, y: 0, z: 1 }
|
|
],
|
|
strokeWidths: [ 0.1, 0.1, 0.1 ],
|
|
color: { red: 255, green: 0, blue: 0 },
|
|
textures: "http://hifi-production.s3.amazonaws.com/DomainContent/Toybox/flowArts/trails.png",
|
|
isUVModeStretch: true
|
|
};
|
|
|
|
entity1 = Entities.addEntity(polyLineProperties, true);
|
|
}
|
|
|
|
function polyVoxEntity() {
|
|
clear();
|
|
print("creating polyVox Entity");
|
|
var texture = "http://public.highfidelity.com/cozza13/tuscany/Concrete2.jpg";
|
|
var polyVoxProperties = {
|
|
type: "PolyVox",
|
|
name: "PolyVoxTestEntity",
|
|
localPosition: Vec3.ZERO,
|
|
parentID: MyAvatar.sessionUUID,
|
|
parentJointIndex: HEAD_JOINT_INDEX,
|
|
dimensions: {x: 2, y: 2, z: 2},
|
|
xTextureURL: texture,
|
|
yTextureURL: texture,
|
|
zTextureURL: texture
|
|
};
|
|
|
|
entity1 = Entities.addEntity(polyVoxProperties, true);
|
|
Entities.setVoxelSphere(entity1, MyAvatar.position, 0.2, 255);
|
|
}
|
|
|
|
|
|
function keyPressEvent(event) {
|
|
if (!event.isAutoRepeat) {
|
|
var key = event.key;
|
|
print("Key Pressed: " + key);
|
|
|
|
switch (key) {
|
|
case SHAPE_ENTITY_KEY:
|
|
shapeEntity();
|
|
break;
|
|
|
|
case WEB_ENTITY_KEY:
|
|
webEntity();
|
|
break;
|
|
|
|
case TEXT_ENTITY_KEY:
|
|
textEntity();
|
|
break;
|
|
|
|
case UPDATE_FACING_KEY:
|
|
faceCamera = !faceCamera;
|
|
textEntity();
|
|
break;
|
|
|
|
case LIGHT_ENTITY_KEY:
|
|
lightEntity();
|
|
break;
|
|
|
|
case LINE_ENTITY_KEY:
|
|
lineEntity();
|
|
break;
|
|
|
|
case PARTICLE_ENTITY_KEY:
|
|
particleEffectEntity();
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
Controller.keyPressEvent.connect(keyPressEvent);
|
|
|
|
Script.scriptEnding.connect(cleanup);
|
|
})();
|