def _onOpenNewEditEntity(self, msg): if self._currentEntity is not None: if self._currentEntity.getName() == msg.entityName: return if not self._askToSaveEntity(): return loader = self._app._editorNative.getEntityLoader() try: newEntity = loader.loadEntity(msg.entityName) except Exception as e: Log.error( "[_EventManager:_onOpenNewEditEntity] Can't load entity '{0}' (Exception: {1})" .format(msg.entityName, e)) traceback.print_tb(e.__traceback__) return if newEntity is None: return if not newEntity.loadToNative(): Log.error( "[_EventManager:_onOpenNewEditEntity] Can't load entity '{0}' to native" .format(msg.entityName)) return if self._currentEntity is not None: self._currentEntity.unloadFromNative() self._currentEntity = newEntity SendMessage(MsgSetEditEntity(self._currentEntity))
def closeEditEntity(self): if self._currentEntity is not None: if not self._askToSaveEntity(): return self._currentEntity.unloadFromNative() self._currentEntity = None SendMessage(MsgSetEditEntity(self._currentEntity))
def _signal_colorSelectBt_clicked(self): r, g, b, a = self._val.getVal() resColor = QColorDialog.getColor(QColor(r, g, b, a), self, "Select Color", QColorDialog.ShowAlphaChannel) if not resColor.isValid(): return self._push(resColor) SendMessage(MsgOnLogicDataEdited(self._val))
def _createNewChildEntity(self, treeItem, childName): parentItem = treeItem.parent() newEntity = parentItem._entity.createNewInternalChild(childName) if newEntity is None: return False treeItem._entity = newEntity treeItem.setText(0, newEntity.getName()) self._tree.setItemWidget(treeItem, 0, None) SendMessage(MsgChangeEditEntity(treeItem._entity)) return True
def onAddCopyLogic(self, editEntity, logicName, logicData): if editEntity is None: raise RuntimeError("Can't add logic to invalid entity") if not editEntity.isLoadedToNative(): raise RuntimeError( "Can't add logic to entity '{0}' that is not loaded to native". format(editEntity.getName())) entityLogic = editEntity.addCopyLogic(logicName, logicData) if entityLogic is None: raise RuntimeError("Can't add logic '{0}' to entity '{1}'".format( logicName, editEntity.getName())) SendMessage(MsgAddLogicToEntity(editEntity, entityLogic))
def _onAddLogicToEntity(self, msg): entity = msg.entity if entity is None: raise RuntimeError("Can't add logic to invalid entity") if not entity.isLoadedToNative(): raise RuntimeError( "Can't add logic to entity '{0}' that is not loaded to native". format(entity.getName())) from dialog.UniversalSelectDialog import ExecEntityLogicSelectDialog logic = ExecEntityLogicSelectDialog() if logic is None: return entityLogic = entity.addLogic(logic.getName()) if entityLogic is None: raise RuntimeError("Can't add logic '{0}' to entity '{1}'".format( logic.getName(), entity.getName())) SendMessage(MsgAddLogicToEntity(entity, entityLogic))
def _signal_xSpinBox_valueChanged(self, newXVal): yAngle = self._ySpinBox.value() zAngle = self._zSpinBox.value() self._push(newXVal, yAngle, zAngle) SendMessage(MsgOnLogicDataEdited(self._val))
def _signal_clearBt_clicked(self): self._push(None) SendMessage(MsgOnLogicDataEdited(self._val))
def _signal_addLogicBt_clicked(self): SendMessage(MsgOnAddLogicBtPressed(self._editEntity))
def _insertNewItem(self): self._val.addNewElement() SendMessage(MsgOnLogicDataEdited(self._val))
def _signal_floatSpinBox_valueChanged(self, newValue): self._push(newValue) SendMessage(MsgOnLogicDataEdited(self._val))
def _signal_tree_currentItemChanged(self, currItem, prevItem): if currItem is not None and hasattr(currItem, "_entity"): SendMessage(MsgChangeEditEntity(currItem._entity))
def _signal_xSpinBox_valueChanged(self, newXVal): x, y, z = self._val.getVal() self._push(newXVal, y, z) SendMessage(MsgOnLogicDataEdited(self._val))
def _signal_lineEdit_textEdited(self, text): self._push(text) SendMessage(MsgOnLogicDataEdited(self._val))
def _signal_checkBox_stateChanged(self, state): if state == Qt.Checked: self._push(True) else: self._push(False) SendMessage(MsgOnLogicDataEdited(self._val))
def _signal_selectBt_clicked(self): res = ExecSelectFromChildrenEntities(self._val.getEntity()) if res is None: return self._push(res) SendMessage(MsgOnLogicDataEdited(self._val))
def _signal_comboBox_indexChanged(self, idx): text = self._comboBox.currentText() self._push(text) SendMessage(MsgOnLogicDataEdited(self._val))
def _signal_spinBox_valueCanged(self, val): self._push(val) SendMessage(MsgOnLogicDataEdited(self._val))
def _signal_zSpinBox_valueChanged(self, newZVal): x, y, z, w = self._val.getVal() self._push(x, y, newZVal, w) SendMessage(MsgOnLogicDataEdited(self._val))
def _signal_tree_itemDoublecClicked(self, item): if item._node.isDir(): return entityName = item._node.getRelativePath() SendMessage(MsgOpenEntityForEdit(entityName))
def _signal_removeBt_clicked(self, button): self._val.removeElement(button._value) SendMessage(MsgOnLogicDataEdited(self._val))
def _signal_zSpinBox_valueChanged(self, newZVal): xAngle = self._xSpinBox.value() yAngle = self._ySpinBox.value() self._push(xAngle, yAngle, newZVal) SendMessage(MsgOnLogicDataEdited(self._val))
def _signal_ySpinBox_valueChanged(self, newYVal): x, y = self._val.getVal() self._push(x, newYVal) SendMessage(MsgOnLogicDataEdited(self._val))
def _signal_selectBt_clicked(self): res = ExecResourceSelectDialog(self._val.getResourceType()) if res is None: return self._push(res.getRelativePath()) SendMessage(MsgOnLogicDataEdited(self._val))