added ability to drag ParticleEffects and Light Entities around via Overlay Icon.

This commit is contained in:
Mike Moody 2017-07-06 23:17:23 -07:00
parent e384f6d1b7
commit be68d99bed
2 changed files with 25 additions and 2 deletions

View file

@ -648,7 +648,10 @@ var toolBar = (function () {
// everybody else to think that Interface has lost focus overall. fogbugzid:558
// Window.setFocus();
}
entityIconOverlayManager.setVisible(isActive && Menu.isOptionChecked(MENU_SHOW_LIGHTS_AND_PARTICLES_IN_EDIT_MODE));
var activeLightParticle = (isActive && Menu.isOptionChecked(MENU_SHOW_LIGHTS_AND_PARTICLES_IN_EDIT_MODE));
entityIconOverlayManager.setVisible(activeLightParticle);
entityIconOverlayManager.setIconsSelectable(activeLightParticle);
Entities.setDrawZoneBoundaries(isActive && Menu.isOptionChecked(MENU_SHOW_ZONES_IN_EDIT_MODE));
};
@ -1464,7 +1467,10 @@ function handeMenuEvent(menuItem) {
} else if (menuItem === "Select All Entities Touching Box") {
selectAllEtitiesInCurrentSelectionBox(true);
} else if (menuItem === MENU_SHOW_LIGHTS_AND_PARTICLES_IN_EDIT_MODE) {
entityIconOverlayManager.setVisible(isActive && Menu.isOptionChecked(MENU_SHOW_LIGHTS_AND_PARTICLES_IN_EDIT_MODE));
var activeLightParticle = (isActive && Menu.isOptionChecked(MENU_SHOW_LIGHTS_AND_PARTICLES_IN_EDIT_MODE));
entityIconOverlayManager.setVisible(activeLightParticle);
entityIconOverlayManager.setIconsSelectable(activeLightParticle);
} else if (menuItem === MENU_SHOW_ZONES_IN_EDIT_MODE) {
Entities.setDrawZoneBoundaries(isActive && Menu.isOptionChecked(MENU_SHOW_ZONES_IN_EDIT_MODE));
}

View file

@ -2,6 +2,7 @@
EntityIconOverlayManager = function(entityTypes, getOverlayPropertiesFunc) {
var visible = false;
var iconsSelectable = false;
// List of all created overlays
var allOverlays = [];
@ -69,6 +70,18 @@ EntityIconOverlayManager = function(entityTypes, getOverlayPropertiesFunc) {
}
};
this.setIconsSelectable = function(isIconsSelectable) {
if (iconsSelectable !== isIconsSelectable) {
iconsSelectable = isIconsSelectable;
for (var id in entityOverlays) {
Overlays.editOverlay(entityOverlays[id], {
ignoreRayIntersection: iconsSelectable
});
}
}
};
// Allocate or get an unused overlay
function getOverlay() {
var overlay;
@ -114,6 +127,10 @@ EntityIconOverlayManager = function(entityTypes, getOverlayPropertiesFunc) {
overlayProperties[key] = customProperties[key];
}
}
if(properties.type === 'ParticleEffect' || properties.type === 'Light'){
overlayProperties.ignoreRayIntersection = true;
}
Overlays.editOverlay(overlay, overlayProperties);
}
}