void SpawnPointTool::onDrawPreview(sf::RenderTarget& target, sf::RenderStates states, sf::Vector2i cursorPosition) { // Create spawn point marker object. Object spawnPointPreview(Object::Type::Internal); spawnPointPreview.setPosition(cursorPosition); spawnPointPreview.setPropertyInt(Object::Property::Type, ObjectAppearanceManager::InternalCharacter); spawnPointPreview.setPropertyInt(Object::Property::Subtype, -1); // Get marker vertices. std::vector<sf::Vertex> vertices = getEditorData().objectAppearance->getObjectVertices(spawnPointPreview); for (sf::Vertex & vertex : vertices) { // Make preview translucent. vertex.color.a *= 0.75f; } // Calculate preview rectangle. sf::FloatRect previewRect((cursorPosition.x - 0.5f) * TileAppearanceManager::TILE_SIZE, (cursorPosition.y - 0.5f) * TileAppearanceManager::TILE_SIZE, TileAppearanceManager::TILE_SIZE, TileAppearanceManager::TILE_SIZE); previewRectangle.setPosition(previewRect.left, previewRect.top); previewRectangle.setSize(sf::Vector2f(previewRect.width, previewRect.height)); // Render preview rectangle. states.texture = nullptr; target.draw(previewRectangle, states); // Render marker preview. states.texture = getEditorData().objectAppearance->getTexture(); target.draw(vertices.data(), vertices.size(), sf::Triangles, states); }
void SpawnPointTool::onMousePress(sf::Vector2i position, MouseButton button) { if (getEditorData().level) { getEditorData().level->setPlayerSpawnPoint(position); } }
void SpawnPointTool::onMouseDrag(sf::Vector2i positionFrom, sf::Vector2i positionTo) { if (getEditorData().level) { getEditorData().level->setPlayerSpawnPoint(positionTo); } }
void pcl::modeler::Parameter::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) { getEditorData(editor); std::pair<QVariant, int> model_data = toModelData(); model->setData(index, model_data.first, model_data.second); }
void TileTool::onInit() { std::vector<Tile> tiles; std::vector<Tile::ID> tileIDs = getEditorData().tileAppearance->getTileIDList(); for (Tile::ID tileID : tileIDs) { Tile tile; tile.id = tileID; const std::string & tileName = getEditorData().tileAppearance->getTileName(tile); if (!tile.exists() || tileName.empty() || tileName[0] == '!') { continue; } tiles.push_back(tile); } settingsPanel = TileToolPanel::make(tiles, *getEditorData().tileAppearance); }