mirror of
https://github.com/overte-org/overte.git
synced 2025-08-10 01:00:44 +02:00
Merge pull request #11365 from thoys/feat/cloneAvatarEntities
Clone local avatar entities
This commit is contained in:
commit
9f61e7471c
3 changed files with 39 additions and 21 deletions
|
@ -1,4 +1,4 @@
|
||||||
<!--
|
<!--
|
||||||
// entityProperties.html
|
// entityProperties.html
|
||||||
//
|
//
|
||||||
// Created by Ryan Huffman on 13 Nov 2014
|
// Created by Ryan Huffman on 13 Nov 2014
|
||||||
|
@ -136,17 +136,21 @@
|
||||||
|
|
||||||
<fieldset class="column" id="group-cloneable-group" style="display:none;">
|
<fieldset class="column" id="group-cloneable-group" style="display:none;">
|
||||||
<legend class="sub-section-header">
|
<legend class="sub-section-header">
|
||||||
<span>Cloneable Settings</span>
|
<span>Cloneable Settings</span>
|
||||||
</legend>
|
</legend>
|
||||||
<fieldset class="minor">
|
<fieldset class="minor">
|
||||||
<div><label>Clone Lifetime</label><input type="number" data-user-data-type="cloneLifetime" id="property-cloneable-lifetime"></div>
|
<div><label>Clone Lifetime</label><input type="number" data-user-data-type="cloneLifetime" id="property-cloneable-lifetime"></div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<fieldset class="minor">
|
<fieldset class="minor">
|
||||||
<div><label>Clone Limit </label><input type="number" data-user-data-type="cloneLimit" id="property-cloneable-limit"></div>
|
<div><label>Clone Limit</label><input type="number" data-user-data-type="cloneLimit" id="property-cloneable-limit"></div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<div class="property checkbox">
|
<div class="property checkbox">
|
||||||
<input type="checkbox" id="property-cloneable-dynamic">
|
<input type="checkbox" id="property-cloneable-dynamic">
|
||||||
<label for="property-cloneable-dynamic">Clone Dynamic</label>
|
<label for="property-cloneable-dynamic">Clone Dynamic</label>
|
||||||
|
</div>
|
||||||
|
<div class="property checkbox">
|
||||||
|
<input type="checkbox" id="property-cloneable-avatarEntity">
|
||||||
|
<label for="property-cloneable-avatarEntity">Clone Avatar Entity</label>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -554,6 +554,7 @@ function loaded() {
|
||||||
|
|
||||||
var elCloneable = document.getElementById("property-cloneable");
|
var elCloneable = document.getElementById("property-cloneable");
|
||||||
var elCloneableDynamic = document.getElementById("property-cloneable-dynamic");
|
var elCloneableDynamic = document.getElementById("property-cloneable-dynamic");
|
||||||
|
var elCloneableAvatarEntity = document.getElementById("property-cloneable-avatarEntity");
|
||||||
var elCloneableGroup = document.getElementById("group-cloneable-group");
|
var elCloneableGroup = document.getElementById("group-cloneable-group");
|
||||||
var elCloneableLifetime = document.getElementById("property-cloneable-lifetime");
|
var elCloneableLifetime = document.getElementById("property-cloneable-lifetime");
|
||||||
var elCloneableLimit = document.getElementById("property-cloneable-limit");
|
var elCloneableLimit = document.getElementById("property-cloneable-limit");
|
||||||
|
@ -844,25 +845,29 @@ function loaded() {
|
||||||
parsedUserData = JSON.parse(properties.userData);
|
parsedUserData = JSON.parse(properties.userData);
|
||||||
|
|
||||||
if ("grabbableKey" in parsedUserData) {
|
if ("grabbableKey" in parsedUserData) {
|
||||||
if ("grabbable" in parsedUserData["grabbableKey"]) {
|
var grabbableData = parsedUserData["grabbableKey"];
|
||||||
elGrabbable.checked = parsedUserData["grabbableKey"].grabbable;
|
if ("grabbable" in grabbableData) {
|
||||||
|
elGrabbable.checked = grabbableData.grabbable;
|
||||||
}
|
}
|
||||||
if ("wantsTrigger" in parsedUserData["grabbableKey"]) {
|
if ("wantsTrigger" in grabbableData) {
|
||||||
elWantsTrigger.checked = parsedUserData["grabbableKey"].wantsTrigger;
|
elWantsTrigger.checked = grabbableData.wantsTrigger;
|
||||||
}
|
}
|
||||||
if ("ignoreIK" in parsedUserData["grabbableKey"]) {
|
if ("ignoreIK" in grabbableData) {
|
||||||
elIgnoreIK.checked = parsedUserData["grabbableKey"].ignoreIK;
|
elIgnoreIK.checked = grabbableData.ignoreIK;
|
||||||
}
|
}
|
||||||
if ("cloneable" in parsedUserData["grabbableKey"]) {
|
if ("cloneable" in grabbableData) {
|
||||||
elCloneable.checked = parsedUserData["grabbableKey"].cloneable;
|
elCloneable.checked = grabbableData.cloneable;
|
||||||
elCloneableGroup.style.display = elCloneable.checked ? "block": "none";
|
elCloneableGroup.style.display = elCloneable.checked ? "block": "none";
|
||||||
elCloneableDynamic.checked = parsedUserData["grabbableKey"].cloneDynamic ? parsedUserData["grabbableKey"].cloneDynamic : properties.dynamic;
|
elCloneableDynamic.checked = grabbableData.cloneDynamic ? grabbableData.cloneDynamic : properties.dynamic;
|
||||||
if (elCloneable.checked) {
|
if (elCloneable.checked) {
|
||||||
if ("cloneLifetime" in parsedUserData["grabbableKey"]) {
|
if ("cloneLifetime" in grabbableData) {
|
||||||
elCloneableLifetime.value = parsedUserData["grabbableKey"].cloneLifetime ? parsedUserData["grabbableKey"].cloneLifetime : 300;
|
elCloneableLifetime.value = grabbableData.cloneLifetime ? grabbableData.cloneLifetime : 300;
|
||||||
}
|
}
|
||||||
if ("cloneLimit" in parsedUserData["grabbableKey"]) {
|
if ("cloneLimit" in grabbableData) {
|
||||||
elCloneableLimit.value = parsedUserData["grabbableKey"].cloneLimit ? parsedUserData["grabbableKey"].cloneLimit : 0;
|
elCloneableLimit.value = grabbableData.cloneLimit ? grabbableData.cloneLimit : 0;
|
||||||
|
}
|
||||||
|
if ("cloneAvatarEntity" in grabbableData) {
|
||||||
|
elCloneableAvatarEntity.checked = grabbableData.cloneAvatarEntity ? grabbableData.cloneAvatarEntity : false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1114,9 +1119,14 @@ function loaded() {
|
||||||
}
|
}
|
||||||
userDataChanger("grabbableKey", "grabbable", elGrabbable, elUserData, properties.dynamic);
|
userDataChanger("grabbableKey", "grabbable", elGrabbable, elUserData, properties.dynamic);
|
||||||
});
|
});
|
||||||
elCloneableDynamic.addEventListener('change', function (event){
|
elCloneableDynamic.addEventListener('change', function(event) {
|
||||||
userDataChanger("grabbableKey", "cloneDynamic", event.target, elUserData, -1);
|
userDataChanger("grabbableKey", "cloneDynamic", event.target, elUserData, -1);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
elCloneableAvatarEntity.addEventListener('change', function(event) {
|
||||||
|
userDataChanger("grabbableKey", "cloneAvatarEntity", event.target, elUserData, -1);
|
||||||
|
});
|
||||||
|
|
||||||
elCloneable.addEventListener('change', function (event) {
|
elCloneable.addEventListener('change', function (event) {
|
||||||
var checked = event.target.checked;
|
var checked = event.target.checked;
|
||||||
if (checked) {
|
if (checked) {
|
||||||
|
@ -1124,6 +1134,7 @@ function loaded() {
|
||||||
cloneLifetime: elCloneableLifetime,
|
cloneLifetime: elCloneableLifetime,
|
||||||
cloneLimit: elCloneableLimit,
|
cloneLimit: elCloneableLimit,
|
||||||
cloneDynamic: elCloneableDynamic,
|
cloneDynamic: elCloneableDynamic,
|
||||||
|
cloneAvatarEntity: elCloneableAvatarEntity,
|
||||||
cloneable: event.target,
|
cloneable: event.target,
|
||||||
grabbable: null
|
grabbable: null
|
||||||
}, elUserData, {});
|
}, elUserData, {});
|
||||||
|
@ -1134,6 +1145,7 @@ function loaded() {
|
||||||
cloneLifetime: null,
|
cloneLifetime: null,
|
||||||
cloneLimit: null,
|
cloneLimit: null,
|
||||||
cloneDynamic: null,
|
cloneDynamic: null,
|
||||||
|
cloneAvatarEntity: null,
|
||||||
cloneable: false
|
cloneable: false
|
||||||
}, elUserData, {});
|
}, elUserData, {});
|
||||||
elCloneableGroup.style.display = "none";
|
elCloneableGroup.style.display = "none";
|
||||||
|
|
|
@ -72,6 +72,7 @@ cloneEntity = function(props, worldEntityProps) {
|
||||||
var lifetime = grabInfo.cloneLifetime ? grabInfo.cloneLifetime : 300;
|
var lifetime = grabInfo.cloneLifetime ? grabInfo.cloneLifetime : 300;
|
||||||
var dynamic = grabInfo.cloneDynamic ? grabInfo.cloneDynamic : false;
|
var dynamic = grabInfo.cloneDynamic ? grabInfo.cloneDynamic : false;
|
||||||
var triggerable = grabInfo.triggerable ? grabInfo.triggerable : false;
|
var triggerable = grabInfo.triggerable ? grabInfo.triggerable : false;
|
||||||
|
var avatarEntity = grabInfo.cloneAvatarEntity ? grabInfo.cloneAvatarEntity : false;
|
||||||
var cUserData = Object.assign({}, JSON.parse(cloneableProps.userData));
|
var cUserData = Object.assign({}, JSON.parse(cloneableProps.userData));
|
||||||
var cProperties = Object.assign({}, cloneableProps);
|
var cProperties = Object.assign({}, cloneableProps);
|
||||||
|
|
||||||
|
@ -80,6 +81,7 @@ cloneEntity = function(props, worldEntityProps) {
|
||||||
delete cUserData.grabbableKey.cloneable;
|
delete cUserData.grabbableKey.cloneable;
|
||||||
delete cUserData.grabbableKey.cloneDynamic;
|
delete cUserData.grabbableKey.cloneDynamic;
|
||||||
delete cUserData.grabbableKey.cloneLimit;
|
delete cUserData.grabbableKey.cloneLimit;
|
||||||
|
delete cUserData.grabbableKey.cloneAvatarEntity;
|
||||||
delete cProperties.id;
|
delete cProperties.id;
|
||||||
|
|
||||||
|
|
||||||
|
@ -90,6 +92,6 @@ cloneEntity = function(props, worldEntityProps) {
|
||||||
cProperties.lifetime = lifetime;
|
cProperties.lifetime = lifetime;
|
||||||
cProperties.userData = JSON.stringify(cUserData);
|
cProperties.userData = JSON.stringify(cUserData);
|
||||||
|
|
||||||
var cloneID = Entities.addEntity(cProperties);
|
var cloneID = Entities.addEntity(cProperties, avatarEntity);
|
||||||
return cloneID;
|
return cloneID;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue