1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-02-28 12:40:06 +00:00

Merge branch openmw:master into mwdialogue-bindings

This commit is contained in:
trav 2024-04-26 19:21:28 +00:00
commit a0989c3481
37 changed files with 611 additions and 57 deletions

View File

@ -229,6 +229,7 @@
Feature #7914: Do not allow to move GUI windows out of screen Feature #7914: Do not allow to move GUI windows out of screen
Feature #7923: Don't show non-existent higher ranks for factions with fewer than 9 ranks Feature #7923: Don't show non-existent higher ranks for factions with fewer than 9 ranks
Feature #7932: Support two-channel normal maps Feature #7932: Support two-channel normal maps
Feature #7936: Scalable icons in Qt applications
Task #5896: Do not use deprecated MyGUI properties Task #5896: Do not use deprecated MyGUI properties
Task #6085: Replace boost::filesystem with std::filesystem Task #6085: Replace boost::filesystem with std::filesystem
Task #6149: Dehardcode Lua API_REVISION Task #6149: Dehardcode Lua API_REVISION

View File

@ -81,7 +81,7 @@ message(STATUS "Configuring OpenMW...")
set(OPENMW_VERSION_MAJOR 0) set(OPENMW_VERSION_MAJOR 0)
set(OPENMW_VERSION_MINOR 49) set(OPENMW_VERSION_MINOR 49)
set(OPENMW_VERSION_RELEASE 0) set(OPENMW_VERSION_RELEASE 0)
set(OPENMW_LUA_API_REVISION 59) set(OPENMW_LUA_API_REVISION 60)
set(OPENMW_POSTPROCESSING_API_REVISION 1) set(OPENMW_POSTPROCESSING_API_REVISION 1)
set(OPENMW_VERSION_COMMITHASH "") set(OPENMW_VERSION_COMMITHASH "")

View File

@ -349,7 +349,7 @@ void Launcher::DataFilesPage::populateFileViews(const QString& contentModelName)
{ {
// Pad to correct vertical alignment // Pad to correct vertical alignment
QPixmap pixmap(QSize(200, 200)); // Arbitrary big number, will be scaled down to widget size QPixmap pixmap(QSize(200, 200)); // Arbitrary big number, will be scaled down to widget size
pixmap.fill(ui.directoryListWidget->palette().base().color()); pixmap.fill(QColor(0, 0, 0, 0));
auto emptyIcon = QIcon(pixmap); auto emptyIcon = QIcon(pixmap);
item->setIcon(emptyIcon); item->setIcon(emptyIcon);
} }

View File

@ -65,6 +65,14 @@ Launcher::MainDialog::MainDialog(const Files::ConfigurationManager& configuratio
setWindowFlags(this->windowFlags() & ~Qt::WindowContextHelpButtonHint); setWindowFlags(this->windowFlags() & ~Qt::WindowContextHelpButtonHint);
createIcons(); createIcons();
QWidget* spacer = new QWidget();
spacer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
toolBar->addWidget(spacer);
QLabel* logo = new QLabel(this);
logo->setPixmap(QIcon(":/images/openmw-header.png").pixmap(QSize(294, 64)));
toolBar->addWidget(logo);
} }
Launcher::MainDialog::~MainDialog() Launcher::MainDialog::~MainDialog()
@ -76,7 +84,7 @@ Launcher::MainDialog::~MainDialog()
void Launcher::MainDialog::createIcons() void Launcher::MainDialog::createIcons()
{ {
if (!QIcon::hasThemeIcon("document-new")) if (!QIcon::hasThemeIcon("document-new"))
QIcon::setThemeName("tango"); QIcon::setThemeName("fallback");
connect(dataAction, &QAction::triggered, this, &MainDialog::enableDataPage); connect(dataAction, &QAction::triggered, this, &MainDialog::enableDataPage);
connect(graphicsAction, &QAction::triggered, this, &MainDialog::enableGraphicsPage); connect(graphicsAction, &QAction::triggered, this, &MainDialog::enableGraphicsPage);

View File

@ -77,10 +77,6 @@
</property> </property>
<property name="styleSheet"> <property name="styleSheet">
<string notr="true">QToolBar { <string notr="true">QToolBar {
background-attachment: fixed;
background-image: url(:/images/openmw-header.png);
background-repeat: none;
background-position: right;
border: 0px; border: 0px;
} }

View File

@ -45,6 +45,7 @@ namespace MWBase
virtual void processChangedSettings(const std::set<std::pair<std::string, std::string>>& changed) = 0; virtual void processChangedSettings(const std::set<std::pair<std::string, std::string>>& changed) = 0;
virtual void setDragDrop(bool dragDrop) = 0; virtual void setDragDrop(bool dragDrop) = 0;
virtual bool isGamepadGuiCursorEnabled() = 0;
virtual void setGamepadGuiCursorEnabled(bool enabled) = 0; virtual void setGamepadGuiCursorEnabled(bool enabled) = 0;
virtual void toggleControlSwitch(std::string_view sw, bool value) = 0; virtual void toggleControlSwitch(std::string_view sw, bool value) = 0;

View File

@ -102,6 +102,11 @@ namespace MWInput
mControllerManager->setGamepadGuiCursorEnabled(enabled); mControllerManager->setGamepadGuiCursorEnabled(enabled);
} }
bool InputManager::isGamepadGuiCursorEnabled()
{
return mControllerManager->gamepadGuiCursorEnabled();
}
void InputManager::changeInputMode(bool guiMode) void InputManager::changeInputMode(bool guiMode)
{ {
mControllerManager->setGuiCursorEnabled(guiMode); mControllerManager->setGuiCursorEnabled(guiMode);

View File

@ -68,6 +68,7 @@ namespace MWInput
void setDragDrop(bool dragDrop) override; void setDragDrop(bool dragDrop) override;
void setGamepadGuiCursorEnabled(bool enabled) override; void setGamepadGuiCursorEnabled(bool enabled) override;
bool isGamepadGuiCursorEnabled() override;
void toggleControlSwitch(std::string_view sw, bool value) override; void toggleControlSwitch(std::string_view sw, bool value) override;
bool getControlSwitch(std::string_view sw) override; bool getControlSwitch(std::string_view sw) override;

View File

@ -10,6 +10,7 @@
#include "../mwbase/environment.hpp" #include "../mwbase/environment.hpp"
#include "../mwbase/inputmanager.hpp" #include "../mwbase/inputmanager.hpp"
#include "../mwbase/windowmanager.hpp"
#include "../mwinput/actions.hpp" #include "../mwinput/actions.hpp"
#include "luamanagerimp.hpp" #include "luamanagerimp.hpp"
@ -208,6 +209,11 @@ namespace MWLua
}; };
api["isMouseButtonPressed"] api["isMouseButtonPressed"]
= [](int button) -> bool { return SDL_GetMouseState(nullptr, nullptr) & SDL_BUTTON(button); }; = [](int button) -> bool { return SDL_GetMouseState(nullptr, nullptr) & SDL_BUTTON(button); };
api["_isGamepadCursorActive"] = [input]() -> bool { return input->isGamepadGuiCursorEnabled(); };
api["_setGamepadCursorActive"] = [input](bool v) {
input->setGamepadGuiCursorEnabled(v);
MWBase::Environment::get().getWindowManager()->setCursorActive(v);
};
api["getMouseMoveX"] = [input]() { return input->getMouseMoveX(); }; api["getMouseMoveX"] = [input]() { return input->getMouseMoveX(); };
api["getMouseMoveY"] = [input]() { return input->getMouseMoveY(); }; api["getMouseMoveY"] = [input]() { return input->getMouseMoveY(); };
api["getAxisValue"] = [input](int axis) { api["getAxisValue"] = [input](int axis) {

View File

@ -53,6 +53,9 @@ namespace Bgsm
MaterialFile() = default; MaterialFile() = default;
virtual void read(BGSMStream& stream); virtual void read(BGSMStream& stream);
virtual ~MaterialFile() = default; virtual ~MaterialFile() = default;
bool wrapT() const { return mClamp & 1; }
bool wrapS() const { return mClamp & 2; }
}; };
struct BGSMFile : MaterialFile struct BGSMFile : MaterialFile

View File

@ -338,6 +338,9 @@ namespace Nif
void read(NIFStream* nif) override; void read(NIFStream* nif) override;
void post(Reader& nif) override; void post(Reader& nif) override;
bool wrapT() const { return mClamp & 1; }
bool wrapS() const { return mClamp & 2; }
bool doubleSided() const { return mShaderFlags2 & BSLSFlag2_DoubleSided; } bool doubleSided() const { return mShaderFlags2 & BSLSFlag2_DoubleSided; }
bool treeAnim() const { return mShaderFlags2 & BSLSFlag2_TreeAnim; } bool treeAnim() const { return mShaderFlags2 & BSLSFlag2_TreeAnim; }
}; };
@ -366,6 +369,9 @@ namespace Nif
void read(NIFStream* nif) override; void read(NIFStream* nif) override;
bool wrapT() const { return mClamp & 1; }
bool wrapS() const { return mClamp & 2; }
bool useFalloff() const { return mShaderFlags1 & BSLSFlag1_Falloff; } bool useFalloff() const { return mShaderFlags1 & BSLSFlag1_Falloff; }
bool softEffect() const { return mShaderFlags1 & BSLSFlag1_SoftEffect; } bool softEffect() const { return mShaderFlags1 & BSLSFlag1_SoftEffect; }
bool doubleSided() const { return mShaderFlags2 & BSLSFlag2_DoubleSided; } bool doubleSided() const { return mShaderFlags2 & BSLSFlag2_DoubleSided; }

View File

@ -15,6 +15,15 @@ namespace NifOsg
META_StateAttribute(NifOsg, Fog, FOG) META_StateAttribute(NifOsg, Fog, FOG)
int compare(const StateAttribute& sa) const override
{
if (const int base = osg::Fog::compare(sa); base != 0)
return base;
const Fog& rhs = static_cast<const Fog&>(sa);
COMPARE_StateAttribute_Parameter(mDepth);
return 0;
}
void setDepth(float depth) { mDepth = depth; } void setDepth(float depth) { mDepth = depth; }
float getDepth() const { return mDepth; } float getDepth() const { return mDepth; }

View File

@ -2176,8 +2176,8 @@ namespace NifOsg
Bgsm::MaterialFilePtr material, osg::StateSet* stateset, std::vector<unsigned int>& boundTextures) Bgsm::MaterialFilePtr material, osg::StateSet* stateset, std::vector<unsigned int>& boundTextures)
{ {
const unsigned int uvSet = 0; const unsigned int uvSet = 0;
const bool wrapS = (material->mClamp >> 1) & 0x1; const bool wrapS = material->wrapS();
const bool wrapT = material->mClamp & 0x1; const bool wrapT = material->wrapT();
if (material->mShaderType == Bgsm::ShaderType::Lighting) if (material->mShaderType == Bgsm::ShaderType::Lighting)
{ {
const Bgsm::BGSMFile* bgsm = static_cast<const Bgsm::BGSMFile*>(material.get()); const Bgsm::BGSMFile* bgsm = static_cast<const Bgsm::BGSMFile*>(material.get());
@ -2486,11 +2486,9 @@ namespace NifOsg
node->setUserValue("shaderRequired", shaderRequired); node->setUserValue("shaderRequired", shaderRequired);
osg::StateSet* stateset = node->getOrCreateStateSet(); osg::StateSet* stateset = node->getOrCreateStateSet();
clearBoundTextures(stateset, boundTextures); clearBoundTextures(stateset, boundTextures);
const bool wrapS = (texprop->mClamp >> 1) & 0x1;
const bool wrapT = texprop->mClamp & 0x1;
if (!texprop->mTextureSet.empty()) if (!texprop->mTextureSet.empty())
handleTextureSet( handleTextureSet(texprop->mTextureSet.getPtr(), texprop->wrapS(), texprop->wrapT(),
texprop->mTextureSet.getPtr(), wrapS, wrapT, node->getName(), stateset, boundTextures); node->getName(), stateset, boundTextures);
handleTextureControllers(texprop, composite, stateset, animflags); handleTextureControllers(texprop, composite, stateset, animflags);
if (texprop->refraction()) if (texprop->refraction())
SceneUtil::setupDistortion(*node, texprop->mRefraction.mStrength); SceneUtil::setupDistortion(*node, texprop->mRefraction.mStrength);
@ -2534,11 +2532,9 @@ namespace NifOsg
handleShaderMaterialNodeProperties(material, stateset, boundTextures); handleShaderMaterialNodeProperties(material, stateset, boundTextures);
break; break;
} }
const bool wrapS = (texprop->mClamp >> 1) & 0x1;
const bool wrapT = texprop->mClamp & 0x1;
if (!texprop->mTextureSet.empty()) if (!texprop->mTextureSet.empty())
handleTextureSet( handleTextureSet(texprop->mTextureSet.getPtr(), texprop->wrapS(), texprop->wrapT(),
texprop->mTextureSet.getPtr(), wrapS, wrapT, node->getName(), stateset, boundTextures); node->getName(), stateset, boundTextures);
handleTextureControllers(texprop, composite, stateset, animflags); handleTextureControllers(texprop, composite, stateset, animflags);
if (texprop->doubleSided()) if (texprop->doubleSided())
stateset->setMode(GL_CULL_FACE, osg::StateAttribute::OFF); stateset->setMode(GL_CULL_FACE, osg::StateAttribute::OFF);
@ -2566,11 +2562,9 @@ namespace NifOsg
if (!texprop->mSourceTexture.empty()) if (!texprop->mSourceTexture.empty())
{ {
const unsigned int uvSet = 0; const unsigned int uvSet = 0;
const bool wrapS = (texprop->mClamp >> 1) & 0x1;
const bool wrapT = texprop->mClamp & 0x1;
unsigned int texUnit = boundTextures.size(); unsigned int texUnit = boundTextures.size();
attachExternalTexture( attachExternalTexture("diffuseMap", texprop->mSourceTexture, texprop->wrapS(), texprop->wrapT(),
"diffuseMap", texprop->mSourceTexture, wrapS, wrapT, uvSet, stateset, boundTextures); uvSet, stateset, boundTextures);
{ {
osg::ref_ptr<osg::TexMat> texMat(new osg::TexMat); osg::ref_ptr<osg::TexMat> texMat(new osg::TexMat);
// This handles 20.2.0.7 UV settings like 4.0.0.2 UV settings (see NifOsg::UVController) // This handles 20.2.0.7 UV settings like 4.0.0.2 UV settings (see NifOsg::UVController)
@ -2609,6 +2603,7 @@ namespace NifOsg
fog->setMode(osg::Fog::LINEAR); fog->setMode(osg::Fog::LINEAR);
fog->setColor(osg::Vec4f(fogprop->mColour, 1.f)); fog->setColor(osg::Vec4f(fogprop->mColour, 1.f));
fog->setDepth(fogprop->mFogDepth); fog->setDepth(fogprop->mFogDepth);
fog = shareAttribute(fog);
stateset->setAttributeAndModes(fog, osg::StateAttribute::ON); stateset->setAttributeAndModes(fog, osg::StateAttribute::ON);
// Intentionally ignoring radial fog flag // Intentionally ignoring radial fog flag
// We don't really want to override the global setting // We don't really want to override the global setting
@ -2620,6 +2615,7 @@ namespace NifOsg
fog->setMode(osg::Fog::LINEAR); fog->setMode(osg::Fog::LINEAR);
fog->setStart(10000000); fog->setStart(10000000);
fog->setEnd(10000000); fog->setEnd(10000000);
fog = shareAttribute(fog);
stateset->setAttributeAndModes(fog, osg::StateAttribute::OFF | osg::StateAttribute::OVERRIDE); stateset->setAttributeAndModes(fog, osg::StateAttribute::OFF | osg::StateAttribute::OVERRIDE);
} }
break; break;
@ -2821,7 +2817,11 @@ namespace NifOsg
// While NetImmerse and Gamebryo support specular lighting, Morrowind has its support disabled. // While NetImmerse and Gamebryo support specular lighting, Morrowind has its support disabled.
if (mVersion <= Nif::NIFFile::VER_MW || !specEnabled) if (mVersion <= Nif::NIFFile::VER_MW || !specEnabled)
{
mat->setSpecular(osg::Material::FRONT_AND_BACK, osg::Vec4f(0.f, 0.f, 0.f, 0.f)); mat->setSpecular(osg::Material::FRONT_AND_BACK, osg::Vec4f(0.f, 0.f, 0.f, 0.f));
mat->setShininess(osg::Material::FRONT_AND_BACK, 0.f);
specStrength = 1.f;
}
if (lightmode == Nif::NiVertexColorProperty::LightMode::LightMode_Emissive) if (lightmode == Nif::NiVertexColorProperty::LightMode::LightMode_Emissive)
{ {
@ -2852,32 +2852,31 @@ namespace NifOsg
mat->setColorMode(osg::Material::OFF); mat->setColorMode(osg::Material::OFF);
} }
if (!mPushedSorter && !hasSortAlpha && mHasStencilProperty) if (hasMatCtrl || mat->getColorMode() != osg::Material::OFF
setBin_Traversal(node->getOrCreateStateSet()); || mat->getEmission(osg::Material::FRONT_AND_BACK) != osg::Vec4f(0, 0, 0, 1)
|| mat->getDiffuse(osg::Material::FRONT_AND_BACK) != osg::Vec4f(1, 1, 1, 1)
if (!mPushedSorter && !hasMatCtrl && mat->getColorMode() == osg::Material::OFF || mat->getAmbient(osg::Material::FRONT_AND_BACK) != osg::Vec4f(1, 1, 1, 1)
&& mat->getEmission(osg::Material::FRONT_AND_BACK) == osg::Vec4f(0, 0, 0, 1) || mat->getShininess(osg::Material::FRONT_AND_BACK) != 0
&& mat->getDiffuse(osg::Material::FRONT_AND_BACK) == osg::Vec4f(1, 1, 1, 1) || mat->getSpecular(osg::Material::FRONT_AND_BACK) != osg::Vec4f(0.f, 0.f, 0.f, 0.f))
&& mat->getAmbient(osg::Material::FRONT_AND_BACK) == osg::Vec4f(1, 1, 1, 1)
&& mat->getShininess(osg::Material::FRONT_AND_BACK) == 0
&& mat->getSpecular(osg::Material::FRONT_AND_BACK) == osg::Vec4f(0.f, 0.f, 0.f, 0.f))
{ {
// default state, skip mat = shareAttribute(mat);
node->getOrCreateStateSet()->setAttributeAndModes(mat, osg::StateAttribute::ON);
}
if (emissiveMult != 1.f)
node->getOrCreateStateSet()->addUniform(new osg::Uniform("emissiveMult", emissiveMult));
if (specStrength != 1.f)
node->getOrCreateStateSet()->addUniform(new osg::Uniform("specStrength", specStrength));
if (!mPushedSorter)
{
if (!hasSortAlpha && mHasStencilProperty)
setBin_Traversal(node->getOrCreateStateSet());
return; return;
} }
mat = shareAttribute(mat);
osg::StateSet* stateset = node->getOrCreateStateSet(); osg::StateSet* stateset = node->getOrCreateStateSet();
stateset->setAttributeAndModes(mat, osg::StateAttribute::ON);
if (emissiveMult != 1.f)
stateset->addUniform(new osg::Uniform("emissiveMult", emissiveMult));
if (specStrength != 1.f)
stateset->addUniform(new osg::Uniform("specStrength", specStrength));
if (!mPushedSorter)
return;
auto assignBin = [&](Nif::NiSortAdjustNode::SortingMode mode, int type) { auto assignBin = [&](Nif::NiSortAdjustNode::SortingMode mode, int type) {
if (mode == Nif::NiSortAdjustNode::SortingMode::Off) if (mode == Nif::NiSortAdjustNode::SortingMode::Off)
{ {

View File

@ -4,6 +4,7 @@ paths=(
scripts/omw/ai.lua scripts/omw/ai.lua
scripts/omw/input/playercontrols.lua scripts/omw/input/playercontrols.lua
scripts/omw/mechanics/animationcontroller.lua scripts/omw/mechanics/animationcontroller.lua
scripts/omw/input/gamepadcontrols.lua
scripts/omw/camera/camera.lua scripts/omw/camera/camera.lua
scripts/omw/mwui/init.lua scripts/omw/mwui/init.lua
scripts/omw/settings/player.lua scripts/omw/settings/player.lua

View File

@ -39,6 +39,7 @@ Lua API reference
interface_animation interface_animation
interface_camera interface_camera
interface_controls interface_controls
interface_gamepadcontrols
interface_item_usage interface_item_usage
interface_mwui interface_mwui
interface_settings interface_settings

View File

@ -0,0 +1,8 @@
Interface GamepadControls
=========================
.. include:: version.rst
.. raw:: html
:file: generated_html/scripts_omw_input_gamepadcontrols.html

View File

@ -21,6 +21,10 @@
- by player scripts - by player scripts
- | Allows to alter behavior of the built-in script - | Allows to alter behavior of the built-in script
| that handles player controls. | that handles player controls.
* - :ref:`Controls <Interface GamepadControls>`
- by player scripts
- | Allows to alter behavior of the built-in script
| that handles player gamepad controls.
* - :ref:`ItemUsage <Interface ItemUsage>` * - :ref:`ItemUsage <Interface ItemUsage>`
- by global scripts - by global scripts
- | Allows to extend or override built-in item usage - | Allows to extend or override built-in item usage

View File

@ -98,7 +98,8 @@ set(BUILTIN_DATA_FILES
scripts/omw/input/playercontrols.lua scripts/omw/input/playercontrols.lua
scripts/omw/input/actionbindings.lua scripts/omw/input/actionbindings.lua
scripts/omw/input/smoothmovement.lua scripts/omw/input/smoothmovement.lua
scripts/omw/input/gamepadcontrols.lua
shaders/adjustments.omwfx shaders/adjustments.omwfx
shaders/bloomlinear.omwfx shaders/bloomlinear.omwfx
shaders/debug.omwfx shaders/debug.omwfx

View File

@ -20,6 +20,7 @@ PLAYER: scripts/omw/input/playercontrols.lua
PLAYER: scripts/omw/camera/camera.lua PLAYER: scripts/omw/camera/camera.lua
PLAYER: scripts/omw/input/actionbindings.lua PLAYER: scripts/omw/input/actionbindings.lua
PLAYER: scripts/omw/input/smoothmovement.lua PLAYER: scripts/omw/input/smoothmovement.lua
PLAYER: scripts/omw/input/gamepadcontrols.lua
NPC,CREATURE: scripts/omw/ai.lua NPC,CREATURE: scripts/omw/ai.lua
# User interface # User interface

View File

@ -0,0 +1,29 @@
local input = require('openmw.input')
return {
interfaceName = 'GamepadControls',
---
-- Gamepad control interface
-- @module GamepadControls
interface = {
--- Interface version
-- @field [parent=#GamepadControls] #number version
version = 0,
--- Checks if the gamepad cursor is active. If it is active, the left stick can move the cursor, and A will be interpreted as a mouse click.
-- @function [parent=#GamepadControls] isGamepadCursorActive
-- @return #boolean
isGamepadCursorActive = function()
return input._isGamepadCursorActive()
end,
--- Set if the gamepad cursor is active. If it is active, the left stick can move the cursor, and A will be interpreted as a mouse click.
-- @function [parent=#GamepadControls] setGamepadCursorActive
-- @param #boolean value
setGamepadCursorActive = function(state)
input._setGamepadCursorActive(state)
end,
}
}

View File

@ -342,7 +342,7 @@ to default Morrowind fonts. Check this box if you still prefer original fonts ov
</message> </message>
<message> <message>
<source>Clone Content List</source> <source>Clone Content List</source>
<translation>Создать копию списка плагинов</translation> <translation>Создать копию списка</translation>
</message> </message>
<message> <message>
<source>Delete Content List</source> <source>Delete Content List</source>

View File

@ -0,0 +1,151 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
version="1.0"
width="16.000000pt"
height="16.000000pt"
viewBox="0 0 16.000000 16.000000"
preserveAspectRatio="xMidYMid meet"
id="svg2"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:osb="http://www.openswatchbook.org/uri/2009/osb">
<defs
id="defs2">
<linearGradient
id="Main">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop2082" />
</linearGradient>
<linearGradient
id="Red">
<stop
style="stop-color:#ff664d;stop-opacity:1;"
offset="0"
id="stop2533" />
</linearGradient>
<mask
maskUnits="userSpaceOnUse"
id="mask-powermask-path-effect3119">
<path
id="path3117"
style="opacity:1;fill:#000000;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 10.250537,66.995394 -0.0047,0.0047 c -0.02767,-0.0066 -0.211799,-0.04039 -0.4563028,0.204116 C 9.6572915,67.468749 9.6572915,67.468749 9.5249999,67.49562 9.3927082,67.468749 9.3927082,67.468749 9.2604165,67.204166 9.061979,67.005731 8.8982935,66.990872 8.8289184,66.99591 c -0.023124,0.0016 -0.035657,0.0057 -0.035657,0.0057 0,0 -0.062009,0.20257 0.2025716,0.467154 0.2645833,0.132291 0.2645841,0.132291 0.291455,0.264583 -0.026871,0.132292 -0.026872,0.132292 -0.291455,0.264583 -0.2445017,0.244505 -0.2107512,0.428639 -0.2041218,0.456304 l -0.00465,0.0047 c 0,0 0.00465,2.65e-4 0.00517,5.29e-4 1.736e-4,5.3e-4 0.00103,0.0057 0.00103,0.0057 l 0.00465,-0.0047 c 0.027721,0.0066 0.2118445,0.04033 0.4563028,-0.204123 0.1322919,-0.264584 0.1322919,-0.264584 0.2645833,-0.291455 0.1322919,0.02687 0.1322917,0.02687 0.2645833,0.291455 0.1984378,0.198435 0.3621234,0.213294 0.4314984,0.208256 0.02312,-0.0016 0.03566,-0.0057 0.03566,-0.0057 0,0 0.06201,-0.20257 -0.202572,-0.467156 -0.2645836,-0.132289 -0.2645839,-0.132291 -0.291455,-0.264583 0.026871,-0.132279 0.026873,-0.132292 0.291455,-0.264583 0.244502,-0.244505 0.210752,-0.428639 0.204122,-0.456304 l 0.0047,-0.0047 c 0,0 -0.0046,-7.94e-4 -0.0052,-0.0011 -1.47e-4,-5.29e-4 -10e-4,-0.0052 -10e-4,-0.0052 z" />
</mask>
<linearGradient
id="Main-6">
<stop
style="stop-color:#888a85;stop-opacity:1;"
offset="0"
id="stop2082-3" />
</linearGradient>
<linearGradient
id="Green"
gradientTransform="scale(3.7795276)">
<stop
style="stop-color:#66ff7a;stop-opacity:1;"
offset="0"
id="stop2506" />
</linearGradient>
<mask
maskUnits="userSpaceOnUse"
id="mask-powermask-path-effect1741">
<path
id="path1739"
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#000000;fill-opacity:0.992157;stroke:none;stroke-width:0.264583;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;paint-order:fill markers stroke;stop-color:#000000;stop-opacity:1"
d="m 20.095414,60.589583 a 0.52916663,0.52916663 0 0 0 -0.516248,0.529166 0.52916663,0.52916663 0 0 0 0.529167,0.529167 0.52916663,0.52916663 0 0 0 0.529167,-0.529167 0.52916663,0.52916663 0 0 0 -0.529167,-0.529166 0.52916663,0.52916663 0 0 0 -0.01292,0 z m -1.058333,2.116666 A 0.52916663,0.52916663 0 0 0 18.520833,63.235416 0.52916663,0.52916663 0 0 0 19.05,63.764583 0.52916663,0.52916663 0 0 0 19.579166,63.235416 0.52916663,0.52916663 0 0 0 19.05,62.706249 a 0.52916663,0.52916663 0 0 0 -0.01292,0 z m 2.116666,0 a 0.52916663,0.52916663 0 0 0 -0.516247,0.529167 0.52916663,0.52916663 0 0 0 0.529166,0.529167 0.52916663,0.52916663 0 0 0 0.529167,-0.529167 0.52916663,0.52916663 0 0 0 -0.529167,-0.529167 0.52916663,0.52916663 0 0 0 -0.01292,0 z" />
</mask>
<mask
maskUnits="userSpaceOnUse"
id="mask-powermask-path-effect1389">
<path
id="path1387"
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#000000;fill-opacity:0.992157;stroke:none;stroke-width:0.264583;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"
transform="matrix(3.7795275,0,0,3.7795275,-6.9999997,-6.9999997)" />
</mask>
<linearGradient
id="Blue"
gradientTransform="matrix(0.26458333,0,0,0.26458333,-13.80713,103.48169)">
<stop
style="stop-color:#55c3ff;stop-opacity:1;"
offset="0"
id="stop2484" />
</linearGradient>
<linearGradient
id="Main-3"
osb:paint="solid">
<stop
style="stop-color:#4d4d4d;stop-opacity:1;"
offset="0"
id="stop2082-8" />
</linearGradient>
<linearGradient
id="Orange"
osb:paint="solid">
<stop
style="stop-color:#fdb433;stop-opacity:1;"
offset="0"
id="stop2584" />
</linearGradient>
<mask
maskUnits="userSpaceOnUse"
id="mask-powermask-path-effect1105">
<path
id="path1103"
style="opacity:1;fill:#000000;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</mask>
<linearGradient
id="Blue-2"
gradientTransform="matrix(0.26458333,0,0,0.26458333,-13.80713,103.48169)"
osb:paint="solid">
<stop
style="stop-color:#55c3ff;stop-opacity:1;"
offset="0"
id="stop2484-2" />
</linearGradient>
<linearGradient
id="Red-1"
osb:paint="solid">
<stop
style="stop-color:#ff664d;stop-opacity:1;"
offset="0"
id="stop2533-6" />
</linearGradient>
<linearGradient
xlink:href="#Main-3"
id="linearGradient2163"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.2267857,0,0,0.24804749,6.7279756,5.1096472)"
x1="122"
y1="189"
x2="136"
y2="189" />
<linearGradient
xlink:href="#Main-6"
id="linearGradient2178"
x1="122"
y1="189"
x2="136"
y2="189"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.24568457,0,0,0.264584,4.1577377,1.8519562)" />
</defs>
<g
id="document-new"
transform="matrix(3.7795278,0,0,3.7795176,-128.00003,-187.99948)"
style="display:inline">
<path
id="rect2091"
style="font-variation-settings:normal;display:inline;vector-effect:none;fill:url(#linearGradient2178);fill-opacity:1;stroke:none;stroke-width:0.254959px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;paint-order:fill markers stroke;stop-color:#000000"
d="m 34.131256,49.74166 v 4.233344 h 3.439583 V 49.74166 Z m 0.245683,0.264583 h 2.948216 v 3.704178 h -2.948216 z" />
<ellipse
style="display:inline;fill:#fdb433;fill-opacity:1;stroke:#000000;stroke-width:0"
id="path1"
cx="37.306255"
cy="51.329163"
rx="0.79374993"
ry="0.79375207" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.1 KiB

View File

@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg
width="16"
height="16"
viewBox="0 0 0.48 0.48"
fill="none"
version="1.1"
id="svg1"
sodipodi:docname="edit-clear.svg"
inkscape:version="1.3.2 (091e20e, 2023-11-25, custom)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs1" />
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:zoom="45.254834"
inkscape:cx="2.662699"
inkscape:cy="5.469029"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="svg1" />
<path
fill-rule="evenodd"
clip-rule="evenodd"
d="M 0.13694139,0.11547994 C 0.15035255,0.09940317 0.1581558,0.09 0.18,0.09 h 0.21690957 c 0.0147981,0 0.0360025,-8.4375e-4 0.0457552,0.0093808 C 0.45235556,0.10954567 0.45,0.12998958 0.45,0.143625 v 0.22275 c 0,0.0136354 1.125e-5,0.0310325 -0.009679,0.0411983 C 0.43056805,0.41780145 0.4117077,0.42 0.3969096,0.42 H 0.18 C 0.1581558,0.42 0.15035255,0.410597 0.13694145,0.3945203 L 0.03745556,0.27 c -0.0099407,-0.0119167 -0.0099407,-0.0180843 0,-0.03 z m 0.0697293,0.057728 c 0.00691,-0.006444 0.0181144,-0.006444 0.0250269,0 l 0.0500536,0.0466693 0.0500536,-0.0466693 c 0.00691,-0.006444 0.0181162,-0.006444 0.0250269,0 l 0.0125134,0.0116673 c 0.006912,0.006444 0.006912,0.0168905 0,0.0233347 l -0.0500537,0.0466684 0.0500537,0.0466702 c 0.006912,0.006444 0.006912,0.0168914 0,0.0233347 l -0.0125134,0.0116673 c -0.00691,0.006444 -0.0181162,0.006444 -0.0250269,0 l -0.0500536,-0.0466684 -0.0500536,0.0466684 c -0.006912,0.006444 -0.0181162,0.006444 -0.0250269,0 L 0.1941564,0.32488327 c -0.006911,-0.006444 -0.006911,-0.0168914 0,-0.0233347 L 0.2442109,0.25487835 0.1941564,0.20820994 c -0.006911,-0.006444 -0.006911,-0.0168905 0,-0.0233347 z"
fill="#000000"
id="path1"
style="stroke-width:0.0170879"
sodipodi:nodetypes="csscsscssccccccccccccccccccccccccc" />
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg
width="16"
height="16"
viewBox="0 0 0.32 0.32"
version="1.1"
id="svg1"
sodipodi:docname="edit-copy.svg"
inkscape:version="1.3.2 (091e20e, 2023-11-25, custom)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs1" />
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:zoom="4.105"
inkscape:cx="8.6479902"
inkscape:cy="45.188794"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="svg1" />
<path
d="M 0,0 V 0.26 H 0.06 V 0.24 H 0.02 V 0.02 H 0.24 V 0.06 H 0.06 V 0.32 H 0.32 V 0.06 H 0.26 C 0.25987392,0.04344927 0.25978913,0.01654867 0.26,0 Z M 0.08,0.08 H 0.3 V 0.3 H 0.08 Z M 0.1,0.1 V 0.12 H 0.28 V 0.1 Z m 0,0.04 V 0.16 H 0.28 V 0.14 Z m 0,0.04 V 0.2 H 0.2 V 0.18 Z"
fill="#808080"
overflow="visible"
style="fill:#888a85;fill-opacity:1;stroke-width:0.0255795;marker:none"
color="#000000"
id="path1"
sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccc" />
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="16"
height="16"
viewBox="0 0 16 16"
version="1.1"
id="svg1"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs
id="defs1" />
<title
id="title1">clear</title>
<style
type="text/css"
id="style1">* { fill: #dd3333 }</style>
<path
d="M 8,0 A 8,8 0 1 0 16,8 8,8 0 0 0 8,0 Z M 12.528,11.392 11.4,12.52 8,9.128 4.608,12.528 3.472,11.392 6.872,8 3.472,4.608 4.608,3.472 8,6.872 11.392,3.48 12.52,4.608 9.128,8 Z"
id="path1"
style="stroke-width:0.8" />
<metadata
id="metadata1">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:title>clear</dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
</svg>

After

Width:  |  Height:  |  Size: 929 B

View File

@ -0,0 +1,202 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
version="1.0"
width="16.000000pt"
height="16.000000pt"
viewBox="0 0 16.000000 16.000000"
preserveAspectRatio="xMidYMid meet"
id="svg2"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:osb="http://www.openswatchbook.org/uri/2009/osb">
<defs
id="defs2">
<linearGradient
id="linearGradient3">
<stop
style="stop-color:#6990c0;stop-opacity:1;"
offset="0"
id="stop3" />
</linearGradient>
<linearGradient
id="linearGradient2">
<stop
style="stop-color:#6990c0;stop-opacity:1;"
offset="0"
id="stop2" />
</linearGradient>
<linearGradient
id="Main">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop2082" />
</linearGradient>
<linearGradient
id="Red">
<stop
style="stop-color:#ff664d;stop-opacity:1;"
offset="0"
id="stop2533" />
</linearGradient>
<mask
maskUnits="userSpaceOnUse"
id="mask-powermask-path-effect3119">
<path
id="path3117"
style="opacity:1;fill:#000000;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 10.250537,66.995394 -0.0047,0.0047 c -0.02767,-0.0066 -0.211799,-0.04039 -0.4563028,0.204116 C 9.6572915,67.468749 9.6572915,67.468749 9.5249999,67.49562 9.3927082,67.468749 9.3927082,67.468749 9.2604165,67.204166 9.061979,67.005731 8.8982935,66.990872 8.8289184,66.99591 c -0.023124,0.0016 -0.035657,0.0057 -0.035657,0.0057 0,0 -0.062009,0.20257 0.2025716,0.467154 0.2645833,0.132291 0.2645841,0.132291 0.291455,0.264583 -0.026871,0.132292 -0.026872,0.132292 -0.291455,0.264583 -0.2445017,0.244505 -0.2107512,0.428639 -0.2041218,0.456304 l -0.00465,0.0047 c 0,0 0.00465,2.65e-4 0.00517,5.29e-4 1.736e-4,5.3e-4 0.00103,0.0057 0.00103,0.0057 l 0.00465,-0.0047 c 0.027721,0.0066 0.2118445,0.04033 0.4563028,-0.204123 0.1322919,-0.264584 0.1322919,-0.264584 0.2645833,-0.291455 0.1322919,0.02687 0.1322917,0.02687 0.2645833,0.291455 0.1984378,0.198435 0.3621234,0.213294 0.4314984,0.208256 0.02312,-0.0016 0.03566,-0.0057 0.03566,-0.0057 0,0 0.06201,-0.20257 -0.202572,-0.467156 -0.2645836,-0.132289 -0.2645839,-0.132291 -0.291455,-0.264583 0.026871,-0.132279 0.026873,-0.132292 0.291455,-0.264583 0.244502,-0.244505 0.210752,-0.428639 0.204122,-0.456304 l 0.0047,-0.0047 c 0,0 -0.0046,-7.94e-4 -0.0052,-0.0011 -1.47e-4,-5.29e-4 -10e-4,-0.0052 -10e-4,-0.0052 z" />
</mask>
<linearGradient
id="Main-6">
<stop
style="stop-color:#4d4d4d;stop-opacity:1;"
offset="0"
id="stop2082-3" />
</linearGradient>
<linearGradient
id="Green"
gradientTransform="scale(3.7795276)">
<stop
style="stop-color:#66ff7a;stop-opacity:1;"
offset="0"
id="stop2506" />
</linearGradient>
<mask
maskUnits="userSpaceOnUse"
id="mask-powermask-path-effect1741">
<path
id="path1739"
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#000000;fill-opacity:0.992157;stroke:none;stroke-width:0.264583;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;paint-order:fill markers stroke;stop-color:#000000;stop-opacity:1"
d="m 20.095414,60.589583 a 0.52916663,0.52916663 0 0 0 -0.516248,0.529166 0.52916663,0.52916663 0 0 0 0.529167,0.529167 0.52916663,0.52916663 0 0 0 0.529167,-0.529167 0.52916663,0.52916663 0 0 0 -0.529167,-0.529166 0.52916663,0.52916663 0 0 0 -0.01292,0 z m -1.058333,2.116666 A 0.52916663,0.52916663 0 0 0 18.520833,63.235416 0.52916663,0.52916663 0 0 0 19.05,63.764583 0.52916663,0.52916663 0 0 0 19.579166,63.235416 0.52916663,0.52916663 0 0 0 19.05,62.706249 a 0.52916663,0.52916663 0 0 0 -0.01292,0 z m 2.116666,0 a 0.52916663,0.52916663 0 0 0 -0.516247,0.529167 0.52916663,0.52916663 0 0 0 0.529166,0.529167 0.52916663,0.52916663 0 0 0 0.529167,-0.529167 0.52916663,0.52916663 0 0 0 -0.529167,-0.529167 0.52916663,0.52916663 0 0 0 -0.01292,0 z" />
</mask>
<mask
maskUnits="userSpaceOnUse"
id="mask-powermask-path-effect1389">
<path
id="path1387"
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#000000;fill-opacity:0.992157;stroke:none;stroke-width:0.264583;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1"
transform="matrix(3.7795275,0,0,3.7795275,-6.9999997,-6.9999997)" />
</mask>
<linearGradient
id="Blue"
gradientTransform="matrix(0.26458333,0,0,0.26458333,-13.80713,103.48169)">
<stop
style="stop-color:#55c3ff;stop-opacity:1;"
offset="0"
id="stop2484" />
</linearGradient>
<linearGradient
id="Main-3"
osb:paint="solid">
<stop
style="stop-color:#4d4d4d;stop-opacity:1;"
offset="0"
id="stop2082-8" />
</linearGradient>
<linearGradient
xlink:href="#Main-3"
id="linearGradient2146"
x1="61.899818"
y1="249"
x2="76.100182"
y2="249"
gradientUnits="userSpaceOnUse" />
<linearGradient
id="Main-61">
<stop
style="stop-color:#4d4d4d;stop-opacity:1;"
offset="0"
id="stop2082-1" />
</linearGradient>
<linearGradient
xlink:href="#Main-6"
id="linearGradient2098"
x1="52.082603"
y1="61.780205"
x2="53.181248"
y2="61.780205"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(3.7795278,0,0,3.7795278,-189.44141,-219.41797)" />
<linearGradient
xlink:href="#Main-6"
id="linearGradient2096"
x1="50.281166"
y1="62.838539"
x2="52.926998"
y2="62.838539"
gradientUnits="userSpaceOnUse" />
<linearGradient
xlink:href="#Main-6"
id="linearGradient2098-8"
x1="52.082603"
y1="61.780205"
x2="53.181248"
y2="61.780205"
gradientUnits="userSpaceOnUse" />
<linearGradient
xlink:href="#linearGradient2"
id="linearGradient2096-5"
x1="50.286324"
y1="62.972603"
x2="52.024643"
y2="62.967445"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-0.27492098,-0.52917219)" />
<linearGradient
xlink:href="#linearGradient3"
id="linearGradient2098-4"
x1="52.082603"
y1="61.780205"
x2="53.181248"
y2="61.780205"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-1.3228271,-0.79375592)" />
<linearGradient
xlink:href="#Main-6"
id="linearGradient2092"
x1="45.243748"
y1="62.838539"
x2="47.88958"
y2="62.838539"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-0.26458362)" />
<linearGradient
xlink:href="#Main-6"
id="linearGradient2094"
x1="44.989498"
y1="61.780205"
x2="46.088139"
y2="61.780205"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(0.79373763)" />
<linearGradient
xlink:href="#Main-6"
id="linearGradient2098-4-0"
x1="52.082603"
y1="61.780205"
x2="53.181248"
y2="61.780205"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-1.3228271,-0.79375592)" />
<linearGradient
xlink:href="#Main-6"
id="linearGradient2096-5-4"
x1="50.286324"
y1="62.972603"
x2="52.024643"
y2="62.967445"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-0.27492098,-0.52917219)" />
</defs>
<g
id="view-refresh"
transform="matrix(0,3.779101,-3.7009417,0,239.09292,-187.97786)"
style="display:inline;fill:#6990e2;fill-opacity:1">
<path
d="m 50.270649,61.097671 v 2.728844 l -0.165515,-0.295618 c -0.200301,-0.215272 -0.487064,0.07114 -0.294515,0.303831 l 0.496163,0.701273 c 0.08277,0.08969 0.349994,0.08969 0.432762,0 l 0.502632,-0.682198 c 0.08345,-0.08895 0.08345,-0.233953 0,-0.322906 -0.08277,-0.08969 -0.217568,-0.08969 -0.300336,0 l -0.141964,0.295618 v -2.728788 c -0.0035,-0.195933 0.01021,-0.357832 0.192519,-0.361564 h 0.257917 c 0.281511,-6.47e-4 0.281511,-0.45415 0,-0.454797 h -0.522618 c -0.416012,0.0038 -0.460565,0.369203 -0.457045,0.816305 z m 2.205154,-0.06817 c -0.200301,0.215272 0.100035,0.538178 0.300336,0.322906 l 0.140712,-0.295615 v 2.728844 c 0.0035,0.195934 -0.0091,0.357776 -0.191449,0.361508 h -0.522618 c -0.281511,6.47e-4 -0.281511,0.45415 0,0.454797 h 0.522618 c 0.416013,-0.0038 0.724196,-0.369259 0.720675,-0.816363 v -2.728786 l 0.166901,0.295615 c 0.08277,0.08969 0.217568,0.08969 0.300336,0 0.08345,-0.08895 0.08345,-0.233953 0,-0.322906 l -0.50243,-0.682195 c -0.08277,-0.08968 -0.349876,-0.08968 -0.432643,0 z"
id="path1"
style="overflow:hidden;fill:#6890e2;fill-opacity:1;stroke-width:0.00514101" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.1 KiB

View File

@ -1,6 +1,5 @@
[Icon Theme] [Icon Theme]
Name=Tango Name=Fallback
Comment=Tango Theme
Inherits=default Inherits=default
Directories=16x16 Directories=16x16

Binary file not shown.

Before

Width:  |  Height:  |  Size: 477 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 699 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 498 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 793 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 912 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 86 KiB

View File

@ -7,12 +7,12 @@
<file alias="preferences-advanced.png">images/preferences-advanced.png</file> <file alias="preferences-advanced.png">images/preferences-advanced.png</file>
<file alias="preferences-video.png">images/preferences-video.png</file> <file alias="preferences-video.png">images/preferences-video.png</file>
</qresource> </qresource>
<qresource prefix="icons/tango"> <qresource prefix="icons/fallback">
<file alias="index.theme">icons/tango/index.theme</file> <file alias="index.theme">icons/fallback/index.theme</file>
<file alias="16x16/document-new.png">icons/tango/16x16/document-new.png</file> <file alias="16x16/document-new.svg">icons/fallback/16x16/document-new.svg</file>
<file alias="16x16/edit-clear.png">icons/tango/16x16/edit-clear.png</file> <file alias="16x16/edit-clear.svg">icons/fallback/16x16/edit-clear.svg</file>
<file alias="16x16/edit-copy.png">icons/tango/16x16/edit-copy.png</file> <file alias="16x16/edit-copy.svg">icons/fallback/16x16/edit-copy.svg</file>
<file alias="16x16/edit-delete.png">icons/tango/16x16/edit-delete.png</file> <file alias="16x16/edit-delete.svg">icons/fallback/16x16/edit-delete.svg</file>
<file alias="16x16/view-refresh.png">icons/tango/16x16/view-refresh.png</file> <file alias="16x16/view-refresh.svg">icons/fallback/16x16/view-refresh.svg</file>
</qresource> </qresource>
</RCC> </RCC>

View File

@ -229,7 +229,7 @@
-- * `particle` - name of the particle texture to use. (default: "") -- * `particle` - name of the particle texture to use. (default: "")
-- * `vfxId` - a string ID that can be used to remove the effect later, using #removeVfx, and to avoid duplicate effects. The default value of "" can have duplicates. To avoid interaction with the engine, use unique identifiers unrelated to magic effect IDs. The engine uses this identifier to add and remove magic effects based on what effects are active on the actor. If this is set equal to the @{openmw.core#MagicEffectId} identifier of the magic effect being added, for example core.magic.EFFECT_TYPE.FireDamage, then the engine will remove it once the fire damage effect on the actor reaches 0. (Default: ""). -- * `vfxId` - a string ID that can be used to remove the effect later, using #removeVfx, and to avoid duplicate effects. The default value of "" can have duplicates. To avoid interaction with the engine, use unique identifiers unrelated to magic effect IDs. The engine uses this identifier to add and remove magic effects based on what effects are active on the actor. If this is set equal to the @{openmw.core#MagicEffectId} identifier of the magic effect being added, for example core.magic.EFFECT_TYPE.FireDamage, then the engine will remove it once the fire damage effect on the actor reaches 0. (Default: "").
-- --
-- @usage local mgef = core.magic.effects[myEffectName] -- @usage local mgef = core.magic.effects.records[myEffectName]
-- anim.addVfx(self, 'VFX_Hands', {bonename = 'Bip01 L Hand', particle = mgef.particle, loop = mgef.continuousVfx, vfxId = mgef.id..'_myuniquenamehere'}) -- anim.addVfx(self, 'VFX_Hands', {bonename = 'Bip01 L Hand', particle = mgef.particle, loop = mgef.continuousVfx, vfxId = mgef.id..'_myuniquenamehere'})
-- -- later: -- -- later:
-- anim.removeVfx(self, mgef.id..'_myuniquenamehere') -- anim.removeVfx(self, mgef.id..'_myuniquenamehere')

View File

@ -388,7 +388,7 @@
-- local function getEnchantment(item) -- local function getEnchantment(item)
-- local record = getRecord(item) -- local record = getRecord(item)
-- if record and record.enchant then -- if record and record.enchant then
-- return core.magic.enchantments[record.enchant] -- return core.magic.enchantments.records[record.enchant]
-- end -- end
-- return nil -- return nil
-- end -- end
@ -1096,7 +1096,7 @@
-- * `scale` - A number that scales the size of the vfx (Default: 1) -- * `scale` - A number that scales the size of the vfx (Default: 1)
-- --
-- @usage -- Spawn a sanctuary effect near the player -- @usage -- Spawn a sanctuary effect near the player
-- local effect = core.magic.effects[core.magic.EFFECT_TYPE.Sanctuary] -- local effect = core.magic.effects.records[core.magic.EFFECT_TYPE.Sanctuary]
-- pos = self.position + util.vector3(0, 100, 0) -- pos = self.position + util.vector3(0, 100, 0)
-- core.vfx.spawn(effect.castingStatic, pos) -- core.vfx.spawn(effect.castingStatic, pos)
-- --

View File

@ -372,7 +372,7 @@
-- for i = 1, #mySpells do print(mySpells[i].id) end -- for i = 1, #mySpells do print(mySpells[i].id) end
-- @usage -- add ALL spells that exist in the world -- @usage -- add ALL spells that exist in the world
-- local mySpells = types.Actor.spells(self) -- local mySpells = types.Actor.spells(self)
-- for _, spell in pairs(core.magic.spells) do -- for _, spell in pairs(core.magic.spells.records) do
-- if spell.type == core.magic.SPELL_TYPE.Spell then -- if spell.type == core.magic.SPELL_TYPE.Spell then
-- mySpells:add(spell) -- mySpells:add(spell)
-- end -- end