mtsr version

This commit is contained in:
Александр Авдеев 2024-08-31 11:07:49 +03:00
parent b8e5733d39
commit 5ec0f2dbde
38 changed files with 770 additions and 82 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/.idea/

3
.idea/.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
# Default ignored files
/shelf/
/workspace.xml

View File

@ -0,0 +1,31 @@
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<DBN-PSQL>
<case-options enabled="true">
<option name="KEYWORD_CASE" value="lower" />
<option name="FUNCTION_CASE" value="lower" />
<option name="PARAMETER_CASE" value="lower" />
<option name="DATATYPE_CASE" value="lower" />
<option name="OBJECT_CASE" value="preserve" />
</case-options>
<formatting-settings enabled="false" />
</DBN-PSQL>
<DBN-SQL>
<case-options enabled="true">
<option name="KEYWORD_CASE" value="lower" />
<option name="FUNCTION_CASE" value="lower" />
<option name="PARAMETER_CASE" value="lower" />
<option name="DATATYPE_CASE" value="lower" />
<option name="OBJECT_CASE" value="preserve" />
</case-options>
<formatting-settings enabled="false">
<option name="STATEMENT_SPACING" value="one_line" />
<option name="CLAUSE_CHOP_DOWN" value="chop_down_if_statement_long" />
<option name="ITERATION_ELEMENTS_WRAPPING" value="chop_down_if_not_single" />
</formatting-settings>
</DBN-SQL>
<ScalaCodeStyleSettings>
<option name="MULTILINE_STRING_CLOSING_QUOTES_ON_NEW_LINE" value="true" />
</ScalaCodeStyleSettings>
</code_scheme>
</component>

View File

@ -0,0 +1,5 @@
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" />
</state>
</component>

405
.idea/dbnavigator.xml Normal file
View File

@ -0,0 +1,405 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DBNavigator.Project.DatabaseFileManager">
<open-files />
</component>
<component name="DBNavigator.Project.Settings">
<connections />
<browser-settings>
<general>
<display-mode value="TABBED" />
<navigation-history-size value="100" />
<show-object-details value="false" />
<enable-sticky-paths value="true" />
</general>
<filters>
<object-type-filter>
<object-type name="SCHEMA" enabled="true" />
<object-type name="USER" enabled="true" />
<object-type name="ROLE" enabled="true" />
<object-type name="PRIVILEGE" enabled="true" />
<object-type name="CHARSET" enabled="true" />
<object-type name="TABLE" enabled="true" />
<object-type name="VIEW" enabled="true" />
<object-type name="MATERIALIZED_VIEW" enabled="true" />
<object-type name="NESTED_TABLE" enabled="true" />
<object-type name="COLUMN" enabled="true" />
<object-type name="INDEX" enabled="true" />
<object-type name="CONSTRAINT" enabled="true" />
<object-type name="DATASET_TRIGGER" enabled="true" />
<object-type name="DATABASE_TRIGGER" enabled="true" />
<object-type name="SYNONYM" enabled="true" />
<object-type name="SEQUENCE" enabled="true" />
<object-type name="PROCEDURE" enabled="true" />
<object-type name="FUNCTION" enabled="true" />
<object-type name="PACKAGE" enabled="true" />
<object-type name="TYPE" enabled="true" />
<object-type name="TYPE_ATTRIBUTE" enabled="true" />
<object-type name="ARGUMENT" enabled="true" />
<object-type name="DIMENSION" enabled="true" />
<object-type name="CLUSTER" enabled="true" />
<object-type name="DBLINK" enabled="true" />
</object-type-filter>
</filters>
<sorting>
<object-type name="COLUMN" sorting-type="NAME" />
<object-type name="FUNCTION" sorting-type="NAME" />
<object-type name="PROCEDURE" sorting-type="NAME" />
<object-type name="ARGUMENT" sorting-type="POSITION" />
<object-type name="TYPE ATTRIBUTE" sorting-type="POSITION" />
</sorting>
<default-editors>
<object-type name="VIEW" editor-type="SELECTION" />
<object-type name="PACKAGE" editor-type="SELECTION" />
<object-type name="TYPE" editor-type="SELECTION" />
</default-editors>
</browser-settings>
<navigation-settings>
<lookup-filters>
<lookup-objects>
<object-type name="SCHEMA" enabled="true" />
<object-type name="USER" enabled="false" />
<object-type name="ROLE" enabled="false" />
<object-type name="PRIVILEGE" enabled="false" />
<object-type name="CHARSET" enabled="false" />
<object-type name="TABLE" enabled="true" />
<object-type name="VIEW" enabled="true" />
<object-type name="MATERIALIZED VIEW" enabled="true" />
<object-type name="INDEX" enabled="true" />
<object-type name="CONSTRAINT" enabled="true" />
<object-type name="DATASET TRIGGER" enabled="true" />
<object-type name="DATABASE TRIGGER" enabled="true" />
<object-type name="SYNONYM" enabled="false" />
<object-type name="SEQUENCE" enabled="true" />
<object-type name="PROCEDURE" enabled="true" />
<object-type name="FUNCTION" enabled="true" />
<object-type name="PACKAGE" enabled="true" />
<object-type name="TYPE" enabled="true" />
<object-type name="DIMENSION" enabled="false" />
<object-type name="CLUSTER" enabled="false" />
<object-type name="DBLINK" enabled="true" />
</lookup-objects>
<force-database-load value="false" />
<prompt-connection-selection value="true" />
<prompt-schema-selection value="true" />
</lookup-filters>
</navigation-settings>
<dataset-grid-settings>
<general>
<enable-zooming value="true" />
<enable-column-tooltip value="true" />
</general>
<sorting>
<nulls-first value="true" />
<max-sorting-columns value="4" />
</sorting>
<audit-columns>
<column-names value="" />
<visible value="true" />
<editable value="false" />
</audit-columns>
</dataset-grid-settings>
<dataset-editor-settings>
<text-editor-popup>
<active value="false" />
<active-if-empty value="false" />
<data-length-threshold value="100" />
<popup-delay value="1000" />
</text-editor-popup>
<values-actions-popup>
<show-popup-button value="true" />
<element-count-threshold value="1000" />
<data-length-threshold value="250" />
</values-actions-popup>
<general>
<fetch-block-size value="100" />
<fetch-timeout value="30" />
<trim-whitespaces value="true" />
<convert-empty-strings-to-null value="true" />
<select-content-on-cell-edit value="true" />
<large-value-preview-active value="true" />
</general>
<filters>
<prompt-filter-dialog value="true" />
<default-filter-type value="BASIC" />
</filters>
<qualified-text-editor text-length-threshold="300">
<content-types>
<content-type name="Text" enabled="true" />
<content-type name="Properties" enabled="true" />
<content-type name="XML" enabled="true" />
<content-type name="DTD" enabled="true" />
<content-type name="HTML" enabled="true" />
<content-type name="XHTML" enabled="true" />
<content-type name="CSS" enabled="true" />
<content-type name="Java" enabled="true" />
<content-type name="SQL" enabled="true" />
<content-type name="PL/SQL" enabled="true" />
<content-type name="JavaScript" enabled="true" />
<content-type name="JSON" enabled="true" />
<content-type name="JSON5" enabled="true" />
<content-type name="Groovy" enabled="true" />
<content-type name="YAML" enabled="true" />
<content-type name="Manifest" enabled="true" />
</content-types>
</qualified-text-editor>
<record-navigation>
<navigation-target value="VIEWER" />
</record-navigation>
</dataset-editor-settings>
<code-editor-settings>
<general>
<show-object-navigation-gutter value="false" />
<show-spec-declaration-navigation-gutter value="true" />
<enable-spellchecking value="true" />
<enable-reference-spellchecking value="false" />
</general>
<confirmations>
<save-changes value="false" />
<revert-changes value="true" />
<exit-on-changes value="ASK" />
</confirmations>
</code-editor-settings>
<code-completion-settings>
<filters>
<basic-filter>
<filter-element type="RESERVED_WORD" id="keyword" selected="true" />
<filter-element type="RESERVED_WORD" id="function" selected="true" />
<filter-element type="RESERVED_WORD" id="parameter" selected="true" />
<filter-element type="RESERVED_WORD" id="datatype" selected="true" />
<filter-element type="RESERVED_WORD" id="exception" selected="true" />
<filter-element type="OBJECT" id="schema" selected="true" />
<filter-element type="OBJECT" id="role" selected="true" />
<filter-element type="OBJECT" id="user" selected="true" />
<filter-element type="OBJECT" id="privilege" selected="true" />
<user-schema>
<filter-element type="OBJECT" id="table" selected="true" />
<filter-element type="OBJECT" id="view" selected="true" />
<filter-element type="OBJECT" id="materialized view" selected="true" />
<filter-element type="OBJECT" id="index" selected="true" />
<filter-element type="OBJECT" id="constraint" selected="true" />
<filter-element type="OBJECT" id="trigger" selected="true" />
<filter-element type="OBJECT" id="synonym" selected="false" />
<filter-element type="OBJECT" id="sequence" selected="true" />
<filter-element type="OBJECT" id="procedure" selected="true" />
<filter-element type="OBJECT" id="function" selected="true" />
<filter-element type="OBJECT" id="package" selected="true" />
<filter-element type="OBJECT" id="type" selected="true" />
<filter-element type="OBJECT" id="dimension" selected="true" />
<filter-element type="OBJECT" id="cluster" selected="true" />
<filter-element type="OBJECT" id="dblink" selected="true" />
</user-schema>
<public-schema>
<filter-element type="OBJECT" id="table" selected="false" />
<filter-element type="OBJECT" id="view" selected="false" />
<filter-element type="OBJECT" id="materialized view" selected="false" />
<filter-element type="OBJECT" id="index" selected="false" />
<filter-element type="OBJECT" id="constraint" selected="false" />
<filter-element type="OBJECT" id="trigger" selected="false" />
<filter-element type="OBJECT" id="synonym" selected="false" />
<filter-element type="OBJECT" id="sequence" selected="false" />
<filter-element type="OBJECT" id="procedure" selected="false" />
<filter-element type="OBJECT" id="function" selected="false" />
<filter-element type="OBJECT" id="package" selected="false" />
<filter-element type="OBJECT" id="type" selected="false" />
<filter-element type="OBJECT" id="dimension" selected="false" />
<filter-element type="OBJECT" id="cluster" selected="false" />
<filter-element type="OBJECT" id="dblink" selected="false" />
</public-schema>
<any-schema>
<filter-element type="OBJECT" id="table" selected="true" />
<filter-element type="OBJECT" id="view" selected="true" />
<filter-element type="OBJECT" id="materialized view" selected="true" />
<filter-element type="OBJECT" id="index" selected="true" />
<filter-element type="OBJECT" id="constraint" selected="true" />
<filter-element type="OBJECT" id="trigger" selected="true" />
<filter-element type="OBJECT" id="synonym" selected="true" />
<filter-element type="OBJECT" id="sequence" selected="true" />
<filter-element type="OBJECT" id="procedure" selected="true" />
<filter-element type="OBJECT" id="function" selected="true" />
<filter-element type="OBJECT" id="package" selected="true" />
<filter-element type="OBJECT" id="type" selected="true" />
<filter-element type="OBJECT" id="dimension" selected="true" />
<filter-element type="OBJECT" id="cluster" selected="true" />
<filter-element type="OBJECT" id="dblink" selected="true" />
</any-schema>
</basic-filter>
<extended-filter>
<filter-element type="RESERVED_WORD" id="keyword" selected="true" />
<filter-element type="RESERVED_WORD" id="function" selected="true" />
<filter-element type="RESERVED_WORD" id="parameter" selected="true" />
<filter-element type="RESERVED_WORD" id="datatype" selected="true" />
<filter-element type="RESERVED_WORD" id="exception" selected="true" />
<filter-element type="OBJECT" id="schema" selected="true" />
<filter-element type="OBJECT" id="user" selected="true" />
<filter-element type="OBJECT" id="role" selected="true" />
<filter-element type="OBJECT" id="privilege" selected="true" />
<user-schema>
<filter-element type="OBJECT" id="table" selected="true" />
<filter-element type="OBJECT" id="view" selected="true" />
<filter-element type="OBJECT" id="materialized view" selected="true" />
<filter-element type="OBJECT" id="index" selected="true" />
<filter-element type="OBJECT" id="constraint" selected="true" />
<filter-element type="OBJECT" id="trigger" selected="true" />
<filter-element type="OBJECT" id="synonym" selected="true" />
<filter-element type="OBJECT" id="sequence" selected="true" />
<filter-element type="OBJECT" id="procedure" selected="true" />
<filter-element type="OBJECT" id="function" selected="true" />
<filter-element type="OBJECT" id="package" selected="true" />
<filter-element type="OBJECT" id="type" selected="true" />
<filter-element type="OBJECT" id="dimension" selected="true" />
<filter-element type="OBJECT" id="cluster" selected="true" />
<filter-element type="OBJECT" id="dblink" selected="true" />
</user-schema>
<public-schema>
<filter-element type="OBJECT" id="table" selected="true" />
<filter-element type="OBJECT" id="view" selected="true" />
<filter-element type="OBJECT" id="materialized view" selected="true" />
<filter-element type="OBJECT" id="index" selected="true" />
<filter-element type="OBJECT" id="constraint" selected="true" />
<filter-element type="OBJECT" id="trigger" selected="true" />
<filter-element type="OBJECT" id="synonym" selected="true" />
<filter-element type="OBJECT" id="sequence" selected="true" />
<filter-element type="OBJECT" id="procedure" selected="true" />
<filter-element type="OBJECT" id="function" selected="true" />
<filter-element type="OBJECT" id="package" selected="true" />
<filter-element type="OBJECT" id="type" selected="true" />
<filter-element type="OBJECT" id="dimension" selected="true" />
<filter-element type="OBJECT" id="cluster" selected="true" />
<filter-element type="OBJECT" id="dblink" selected="true" />
</public-schema>
<any-schema>
<filter-element type="OBJECT" id="table" selected="true" />
<filter-element type="OBJECT" id="view" selected="true" />
<filter-element type="OBJECT" id="materialized view" selected="true" />
<filter-element type="OBJECT" id="index" selected="true" />
<filter-element type="OBJECT" id="constraint" selected="true" />
<filter-element type="OBJECT" id="trigger" selected="true" />
<filter-element type="OBJECT" id="synonym" selected="true" />
<filter-element type="OBJECT" id="sequence" selected="true" />
<filter-element type="OBJECT" id="procedure" selected="true" />
<filter-element type="OBJECT" id="function" selected="true" />
<filter-element type="OBJECT" id="package" selected="true" />
<filter-element type="OBJECT" id="type" selected="true" />
<filter-element type="OBJECT" id="dimension" selected="true" />
<filter-element type="OBJECT" id="cluster" selected="true" />
<filter-element type="OBJECT" id="dblink" selected="true" />
</any-schema>
</extended-filter>
</filters>
<sorting enabled="true">
<sorting-element type="RESERVED_WORD" id="keyword" />
<sorting-element type="RESERVED_WORD" id="datatype" />
<sorting-element type="OBJECT" id="column" />
<sorting-element type="OBJECT" id="table" />
<sorting-element type="OBJECT" id="view" />
<sorting-element type="OBJECT" id="materialized view" />
<sorting-element type="OBJECT" id="index" />
<sorting-element type="OBJECT" id="constraint" />
<sorting-element type="OBJECT" id="trigger" />
<sorting-element type="OBJECT" id="synonym" />
<sorting-element type="OBJECT" id="sequence" />
<sorting-element type="OBJECT" id="procedure" />
<sorting-element type="OBJECT" id="function" />
<sorting-element type="OBJECT" id="package" />
<sorting-element type="OBJECT" id="type" />
<sorting-element type="OBJECT" id="dimension" />
<sorting-element type="OBJECT" id="cluster" />
<sorting-element type="OBJECT" id="dblink" />
<sorting-element type="OBJECT" id="schema" />
<sorting-element type="OBJECT" id="role" />
<sorting-element type="OBJECT" id="user" />
<sorting-element type="RESERVED_WORD" id="function" />
<sorting-element type="RESERVED_WORD" id="parameter" />
</sorting>
<format>
<enforce-code-style-case value="true" />
</format>
</code-completion-settings>
<execution-engine-settings>
<statement-execution>
<fetch-block-size value="100" />
<execution-timeout value="20" />
<debug-execution-timeout value="600" />
<focus-result value="false" />
<prompt-execution value="false" />
</statement-execution>
<script-execution>
<command-line-interfaces />
<execution-timeout value="300" />
</script-execution>
<method-execution>
<execution-timeout value="30" />
<debug-execution-timeout value="600" />
<parameter-history-size value="10" />
</method-execution>
</execution-engine-settings>
<operation-settings>
<transactions>
<uncommitted-changes>
<on-project-close value="ASK" />
<on-disconnect value="ASK" />
<on-autocommit-toggle value="ASK" />
</uncommitted-changes>
<multiple-uncommitted-changes>
<on-commit value="ASK" />
<on-rollback value="ASK" />
</multiple-uncommitted-changes>
</transactions>
<session-browser>
<disconnect-session value="ASK" />
<kill-session value="ASK" />
<reload-on-filter-change value="false" />
</session-browser>
<compiler>
<compile-type value="KEEP" />
<compile-dependencies value="ASK" />
<always-show-controls value="false" />
</compiler>
</operation-settings>
<ddl-file-settings>
<extensions>
<mapping file-type-id="VIEW" extensions="vw" />
<mapping file-type-id="TRIGGER" extensions="trg" />
<mapping file-type-id="PROCEDURE" extensions="prc" />
<mapping file-type-id="FUNCTION" extensions="fnc" />
<mapping file-type-id="PACKAGE" extensions="pkg" />
<mapping file-type-id="PACKAGE_SPEC" extensions="pks" />
<mapping file-type-id="PACKAGE_BODY" extensions="pkb" />
<mapping file-type-id="TYPE" extensions="tpe" />
<mapping file-type-id="TYPE_SPEC" extensions="tps" />
<mapping file-type-id="TYPE_BODY" extensions="tpb" />
</extensions>
<general>
<lookup-ddl-files value="true" />
<create-ddl-files value="false" />
<synchronize-ddl-files value="true" />
<use-qualified-names value="false" />
<make-scripts-rerunnable value="true" />
</general>
</ddl-file-settings>
<general-settings>
<regional-settings>
<date-format value="MEDIUM" />
<number-format value="UNGROUPED" />
<locale value="SYSTEM_DEFAULT" />
<use-custom-formats value="false" />
</regional-settings>
<environment>
<environment-types>
<environment-type id="development" name="Development" description="Development environment" color="-2430209/-12296320" readonly-code="false" readonly-data="false" />
<environment-type id="integration" name="Integration" description="Integration environment" color="-2621494/-12163514" readonly-code="true" readonly-data="false" />
<environment-type id="production" name="Production" description="Productive environment" color="-11574/-10271420" readonly-code="true" readonly-data="true" />
<environment-type id="other" name="Other" description="" color="-1576/-10724543" readonly-code="false" readonly-data="false" />
</environment-types>
<visibility-settings>
<connection-tabs value="true" />
<dialog-headers value="true" />
<object-editor-tabs value="true" />
<script-editor-tabs value="false" />
<execution-result-tabs value="true" />
</visibility-settings>
</environment>
</general-settings>
</component>
</project>

9
.idea/jonez.iml Normal file
View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

6
.idea/misc.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_22" default="true" project-jdk-name="22" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

8
.idea/modules.xml Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/jonez.iml" filepath="$PROJECT_DIR$/.idea/jonez.iml" />
</modules>
</component>
</project>

6
.idea/vcs.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

View File

@ -1,39 +1,44 @@
chisel = {}
local S = minetest.get_translator(minetest.get_current_modname())
local S = ...
chisel.chiselable = {}
chisel.group_style_index = {}
chisel.group_style_nodes = {}
chisel.player_copied_style = {}
jonez.chisel = {
chiselable = {},
group_style_index = {},
group_style_nodes = {},
player_copied_style = {},
}
chisel.register_chiselable = function(node_name, group_name, style)
chisel.chiselable[ node_name ] = {}
chisel.chiselable[ node_name ].group_name = group_name
chisel.chiselable[ node_name ].style = style
jonez.chisel.register_chiselable = function(node_name, group_name, style)
jonez.chisel.chiselable[node_name] = {}
jonez.chisel.chiselable[node_name].group_name = group_name
jonez.chisel.chiselable[node_name].style = style
if not chisel.group_style_nodes[ group_name ] then
chisel.group_style_nodes[ group_name ] = {}
if not jonez.chisel.group_style_nodes[group_name] then
jonez.chisel.group_style_nodes[group_name] = {}
end
chisel.group_style_nodes[ group_name ][ style ] = node_name
jonez.chisel.group_style_nodes[group_name][style] = node_name
end
chisel.register_chiselable_stair_and_slab = function(node_subname, group_subname, style)
chisel.register_chiselable("stairs:stair_" .. node_subname, "stairs:stair_" .. group_subname, style)
chisel.register_chiselable("stairs:stair_inner_" .. node_subname, "stairs:stair_inner_" .. group_subname, style)
chisel.register_chiselable("stairs:stair_outer_" .. node_subname, "stairs:stair_outer_" .. group_subname, style)
chisel.register_chiselable("stairs:slab_" .. node_subname, "stairs:slab_" .. group_subname, style)
jonez.chisel.register_chiselable_stair_and_slab = function(node_subname, group_subname, style)
jonez.chisel.register_chiselable("stairs:stair_" .. node_subname, "stairs:stair_" .. group_subname, style)
jonez.chisel.register_chiselable("stairs:stair_inner_" .. node_subname, "stairs:stair_inner_" .. group_subname, style)
jonez.chisel.register_chiselable("stairs:stair_outer_" .. node_subname, "stairs:stair_outer_" .. group_subname, style)
jonez.chisel.register_chiselable("stairs:slab_" .. node_subname, "stairs:slab_" .. group_subname, style)
end
local function chisel_interact(player, pointed_thing, is_right_click)
if pointed_thing.type ~= "node" then return end
if pointed_thing.type ~= "node" then
return
end
local pos = pointed_thing.under
local is_sneak = player and player:get_player_control().sneak or false
local player_name = player and player:get_player_name()
-- A true player is required
if not player_name then return end
if not player_name then
return
end
-- Check for node protection
if minetest.is_protected(pos, player_name) then
@ -46,33 +51,35 @@ local function chisel_interact(player, pointed_thing, is_right_click)
local node = minetest.get_node(pos)
local node_name = node.name
if not chisel.chiselable[ node_name ] then
if not jonez.chisel.chiselable[node_name] then
minetest.chat_send_player(player_name, "Not chiselable")
return
end
local group_name = chisel.chiselable[ node_name ].group_name
local style = chisel.chiselable[ node_name ].style
local group = chisel.group_style_nodes[ group_name ]
local group_name = jonez.chisel.chiselable[node_name].group_name
local style = jonez.chisel.chiselable[node_name].style
local group = jonez.chisel.group_style_nodes[group_name]
local new_style, new_node_name
-- Now branch on the four user-input cases
if is_right_click then
if is_sneak then
-- Copy style
chisel.player_copied_style[ player_name ] = style
jonez.chisel.player_copied_style[player_name] = style
minetest.chat_send_player(player_name, "Chisel style " .. style .. " copied")
return
else
-- Paste style
new_style = chisel.player_copied_style[ player_name ]
new_style = jonez.chisel.player_copied_style[player_name]
if not new_style then
minetest.chat_send_player(player_name, "No chisel style copied yet, use sneak + right-click to copy a style")
return
end
-- Already the correct style, exit now!
if new_style == style then return end
if new_style == style then
return
end
new_node_name = group[new_style]
if not new_node_name then
@ -160,3 +167,75 @@ minetest.register_craft({
}
})
if minetest.get_modpath("unified_inventory") then
unified_inventory.register_craft_type("jonez:chisel", {
description = S("Chisel for Marble"),
icon = "jonez_chisel.png",
width = 1,
height = 1,
})
minetest.register_on_mods_loaded(function()
for _, group in pairs(jonez.chisel.group_style_nodes) do
local prev_node
local first_node
for _, node in pairs(group) do
if not first_node then
first_node = node
end
if prev_node then
minetest.log("verbose", ("[jonez] chisel recipe %s -> %s"):format(node, prev_node))
unified_inventory.register_craft({
type = "jonez:chisel",
output = node,
items = {prev_node},
width = 1,
})
end
prev_node = node
end
unified_inventory.register_craft({
type = "jonez:chisel",
output = first_node,
items = {prev_node},
width = 1,
})
end
end)
end
if minetest.get_modpath("i3") then
i3.register_craft_type("jonez:chisel", {
description = S("Chisel for Marble"),
icon = "jonez_chisel.png",
})
minetest.register_on_mods_loaded(function()
for _, group in pairs(jonez.chisel.group_style_nodes) do
local prev_node
local first_node
for _, node in pairs(group) do
if not first_node then
first_node = node
end
if prev_node then
i3.register_craft({
type = "jonez:chisel",
result = node,
items = {prev_node},
})
end
prev_node = node
end
i3.register_craft({
type = "jonez:chisel",
result = first_node,
items = {prev_node},
})
end
end)
end

161
init.lua
View File

@ -1,13 +1,15 @@
--Variables
local mod_path = minetest.get_modpath(minetest.get_current_modname())
dofile(mod_path .. "/chisel.lua")
local S = minetest.get_translator(minetest.get_current_modname())
jonez = {}
local mod_name = minetest.get_current_modname()
local mod_path = minetest.get_modpath(mod_name)
local S = minetest.get_translator(mod_name)
assert(loadfile(mod_path .. "/chisel.lua"))(S)
local function firstToUpper(str)
return (str:gsub("^%l", string.upper))
end
chisel.register_chiselable("jonez:marble", "jonez:marble", "raw" )
jonez.chisel.register_chiselable("jonez:marble", "jonez:marble", "raw" )
minetest.register_node("jonez:marble", {
description = S("Ancient Marble"),
tiles = {"jonez_marble.png"},
@ -16,7 +18,7 @@ minetest.register_node("jonez:marble", {
sounds = default.node_sound_stone_defaults(),
})
chisel.register_chiselable("jonez:marble_polished", "jonez:marble", "polished" )
jonez.chisel.register_chiselable("jonez:marble_polished", "jonez:marble", "polished" )
minetest.register_node("jonez:marble_polished", {
description = S("Ancient Polished Marble"),
tiles = {"jonez_marble_polished.png"},
@ -25,7 +27,7 @@ minetest.register_node("jonez:marble_polished", {
sounds = default.node_sound_stone_defaults(),
})
chisel.register_chiselable_stair_and_slab("marble", "marble", "raw" )
jonez.chisel.register_chiselable_stair_and_slab("marble", "marble", "raw" )
stairs.register_stair_and_slab(
"marble",
"jonez:marble",
@ -36,7 +38,16 @@ stairs.register_stair_and_slab(
default.node_sound_stone_defaults()
)
chisel.register_chiselable_stair_and_slab("marble_brick", "marble_brick", "raw" )
jonez.chisel.register_chiselable("jonez:marble_brick", "jonez:marble_brick", "raw" )
minetest.register_node("jonez:marble_brick", {
description = S("Ancient Marble Brick"),
tiles = {"jonez_marble_brick.png"},
is_ground_content = false,
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
})
jonez.chisel.register_chiselable_stair_and_slab("marble_brick", "marble_brick", "raw" )
stairs.register_stair_and_slab(
"marble_brick",
"jonez:marble_brick",
@ -47,16 +58,7 @@ stairs.register_stair_and_slab(
default.node_sound_stone_defaults()
)
chisel.register_chiselable("jonez:marble_brick", "jonez:marble_brick", "raw" )
minetest.register_node("jonez:marble_brick", {
description = S("Ancient Marble Brick"),
tiles = {"jonez_marble_brick.png"},
is_ground_content = false,
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
})
chisel.register_chiselable("jonez:marble_brick_polished", "jonez:marble_brick", "polished" )
jonez.chisel.register_chiselable("jonez:marble_brick_polished", "jonez:marble_brick", "polished" )
minetest.register_node("jonez:marble_brick_polished", {
description = S("Ancient Marble Polished Brick"),
tiles = {"jonez_marble_brick_polished.png"},
@ -65,7 +67,7 @@ minetest.register_node("jonez:marble_brick_polished", {
sounds = default.node_sound_stone_defaults(),
})
chisel.register_chiselable_stair_and_slab("marble_polished", "marble", "polished" )
jonez.chisel.register_chiselable_stair_and_slab("marble_polished", "marble", "polished" )
stairs.register_stair_and_slab(
"marble_polished",
"jonez:marble_polished",
@ -76,7 +78,7 @@ stairs.register_stair_and_slab(
default.node_sound_stone_defaults()
)
chisel.register_chiselable_stair_and_slab("marble_brick_polished", "marble_brick", "polished" )
jonez.chisel.register_chiselable_stair_and_slab("marble_brick_polished", "marble_brick", "polished" )
stairs.register_stair_and_slab(
"marble_brick_polished",
"jonez:marble_brick_polished",
@ -133,7 +135,11 @@ local styles = {
"carthaginian",
"industrial",
"romanesque",
"cimmerian"
"cimmerian",
"nubian",
"norman",
"romantic",
"persian"
}
-- The Crafting of the Greek Set
@ -180,39 +186,47 @@ minetest.register_craft({
for i = 1, #styles do
chisel.register_chiselable("jonez:"..styles[i].."_architrave", "jonez:architrave", styles[i] )
jonez.chisel.register_chiselable("jonez:"..styles[i].."_architrave", "jonez:architrave", styles[i] )
minetest.register_node("jonez:"..styles[i].."_architrave", {
description = S("Ancient").." "..S(firstToUpper(styles[i])).." "..S("Architrave"),
tiles = {"jonez_"..styles[i].."_top_bottom.png", "jonez_"..styles[i].."_top_bottom.png", "jonez_"..styles[i].."_architrave.png"},
tiles = {"jonez_"..styles[i].."_top_bottom.png", "jonez_"..styles[i].."_top_bottom.png", "jonez_"..
styles[i].."_architrave.png"},
is_ground_content = false,
groups = {cracky=3},
paramtype2 = "facedir",
sounds = default.node_sound_stone_defaults(),
})
chisel.register_chiselable("jonez:"..styles[i].."_capital", "jonez:capital", styles[i] )
jonez.chisel.register_chiselable("jonez:"..styles[i].."_capital", "jonez:capital", styles[i] )
minetest.register_node("jonez:"..styles[i].."_capital", {
description = S("Ancient").." "..S(firstToUpper(styles[i])).." "..S("Capital"),
tiles = {"jonez_"..styles[i].."_top_bottom.png", "jonez_"..styles[i].."_top_bottom.png", "jonez_"..styles[i].."_capital.png"},
tiles = {"jonez_"..styles[i].."_top_bottom.png", "jonez_"..styles[i].."_top_bottom.png", "jonez_"..styles[i]..
"_capital.png"},
is_ground_content = false,
groups = {cracky=3},
paramtype2 = "facedir",
sounds = default.node_sound_stone_defaults(),
})
chisel.register_chiselable("jonez:"..styles[i].."_shaft", "jonez:shaft", styles[i] )
jonez.chisel.register_chiselable("jonez:"..styles[i].."_shaft", "jonez:shaft", styles[i] )
minetest.register_node("jonez:"..styles[i].."_shaft", {
description = S("Ancient").." "..S(firstToUpper(styles[i])).." "..S("Shaft"),
tiles = {"jonez_"..styles[i].."_top_bottom.png", "jonez_"..styles[i].."_top_bottom.png", "jonez_"..styles[i].."_shaft.png"},
tiles = {"jonez_"..styles[i].."_top_bottom.png", "jonez_"..styles[i].."_top_bottom.png", "jonez_"..styles[i]..
"_shaft.png"},
is_ground_content = false,
groups = {cracky=3},
paramtype2 = "facedir",
sounds = default.node_sound_stone_defaults(),
})
chisel.register_chiselable("jonez:"..styles[i].."_base", "jonez:base", styles[i] )
jonez.chisel.register_chiselable("jonez:"..styles[i].."_base", "jonez:base", styles[i] )
minetest.register_node("jonez:"..styles[i].."_base", {
description = S("Ancient").." "..S(firstToUpper(styles[i])).." "..S("Base"),
tiles = {"jonez_"..styles[i].."_top_bottom.png", "jonez_"..styles[i].."_top_bottom.png", "jonez_"..styles[i].."_base.png"},
tiles = {"jonez_"..styles[i].."_top_bottom.png", "jonez_"..styles[i].."_top_bottom.png", "jonez_"..styles[i]..
"_base.png"},
is_ground_content = false,
groups = {cracky=3},
paramtype2 = "facedir",
sounds = default.node_sound_stone_defaults(),
})
end
@ -232,7 +246,7 @@ for i = 1, #vines do
paramtype = "light",
paramtype2 = "facedir",
tiles = {vines[i].texture},
use_texture_alpha = true,
use_texture_alpha = "clip",
inventory_image = vines[i].texture,
wield_image = vines[i].texture,
node_box = {
@ -247,14 +261,16 @@ for i = 1, #vines do
end
local panels = {
{name= "jonez_panel_1", description= "Mosaic Glass Panel", textures={front= "jonez_panel_1.png", edge="jonez_panes_edge.png"},
{name= "jonez_panel_1", description= "Mosaic Glass Panel", textures={front= "jonez_panel_1.png",
edge="jonez_panes_edge.png"},
recipe = {
{"dye:blue", "dye:black", "dye:pink"},
{"dye:red", "xpanes:pane_flat", "dye:green"},
{"dye:yellow", "dye:black", "dye:orange"},
}
},
{name= "jonez_panel_2", description= "Blossom Glass Panel", textures={front="jonez_panel_2.png", edge="jonez_panes_edge.png"},
{name= "jonez_panel_2", description= "Blossom Glass Panel", textures={front="jonez_panel_2.png",
edge="jonez_panes_edge.png"},
recipe = {
{"dye:blue", "dye:red", "dye:green"},
{"dye:yellow", "xpanes:pane_flat", "dye:yellow"},
@ -263,16 +279,16 @@ local panels = {
},
{name= "wrought_lattice_bottom", description= "Ancient Wrought Lattice (Bottom)",
textures={front="jonez_wrought_lattice_bottom.png", edge="jonez_panes_edge.png"},
use_texture_alpha = true,
use_texture_alpha = "clip",
recipe = {
{'default:steel_ingot', 'default:steel_ingot'},
{'default:tin_ingot', 'default:tin_ingot'},
{'default:steel_ingot', 'default:steel_ingot'},
{'', '', ''},
{'default:steel_ingot', 'default:tin_ingot', 'default:steel_ingot'},
{'default:steel_ingot', 'default:tin_ingot', 'default:steel_ingot'},
}
},
{name= "palace_window_top", description= "Palace Window (Top)",
textures={front="jonez_palace_window_top.png", edge="default_wood.png"},
use_texture_alpha = true,
use_texture_alpha = "clip",
recipe = {
{'', 'xpanes:pane_flat', ''},
{'', 'xpanes:pane_flat', ''},
@ -281,11 +297,11 @@ local panels = {
},
{name= "palace_window_bottom", description= "Palace Window (Bottom)",
textures={front="jonez_palace_window_bottom.png", edge="default_wood.png"},
use_texture_alpha = true,
use_texture_alpha = "clip",
recipe = {
{'xpanes:pane_flat', 'xpanes:pane_flat', ''},
{'', '', ''},
{'', '', ''},
{'', 'xpanes:pane_flat', ''},
{'', 'xpanes:pane_flat', ''},
}
},
}
@ -335,18 +351,22 @@ local pavements= {
{name= "jonez:pebbled_pavement", description= "Ancient Pebbled Pavement", texture= "jonez_pebbled_pavement.png",
recipe = {
{'', 'stairs:slab_marble_brick_polished', ''},
{'stairs:slab_marble_brick_polished', '', 'stairs:slab_marble_brick_polished'},
{'stairs:slab_marble_brick_polished', 'stairs:slab_marble_brick_polished',
'stairs:slab_marble_brick_polished'},
{'', 'stairs:slab_marble_brick_polished', ''},
}
},
{name= "jonez:pebbled_medieval_pavement", description= "Ancient Pebbled Medieval Pavement", texture= "jonez_pebbled_medieval_pavement.png",
{name= "jonez:pebbled_medieval_pavement", description= "Ancient Pebbled Medieval Pavement",
texture= "jonez_pebbled_medieval_pavement.png",
recipe = {
{'stairs:slab_marble_brick_polished', 'stairs:slab_marble_brick_polished', ''},
{'stairs:slab_marble_brick_polished', 'stairs:slab_marble_brick_polished', 'stairs:slab_marble_brick_polished'},
{'stairs:slab_marble_brick_polished', 'stairs:slab_marble_brick_polished',
'stairs:slab_marble_brick_polished'},
{'', 'stairs:slab_marble_brick_polished', 'stairs:slab_marble_brick_polished'},
}
},
{name= "jonez:pebbled_gothic_pavement", description= "Ancient Pebbled Gothic Pavement", texture= "jonez_pebbled_gothic_pavement.png",
{name= "jonez:pebbled_gothic_pavement", description= "Ancient Pebbled Gothic Pavement",
texture= "jonez_pebbled_gothic_pavement.png",
recipe = {
{'stairs:slab_marble_brick_polished', 'stairs:slab_marble_brick_polished', ''},
{'', 'stairs:slab_marble_brick_polished', ''},
@ -356,7 +376,8 @@ local pavements= {
{name= "jonez:pebbled_wall", description= "Ancient Pebbled Wall", texture= "jonez_pebbled_wall.png",
recipe = {
{'', 'stairs:slab_marble_brick_polished', ''},
{'stairs:slab_marble_brick_polished', 'stairs:slab_marble_brick_polished', 'stairs:slab_marble_brick_polished'},
{'stairs:slab_marble_brick_polished', 'stairs:slab_marble_brick_polished',
'stairs:slab_marble_brick_polished'},
{'', 'stairs:slab_marble_brick_polished', ''},
}
},
@ -374,34 +395,45 @@ local pavements= {
{'', 'stairs:slab_marble_brick_polished', ''},
}
},
{name= "jonez:pompeiian_pavement", description= "Ancient Pompeiian Pavement", texture= "jonez_pompeiian_pavement.png",
{name= "jonez:pompeiian_pavement", description= "Ancient Pompeiian Pavement",
texture= "jonez_pompeiian_pavement.png",
recipe = {
{'stairs:slab_marble_brick', 'stairs:slab_marble_brick_polished', 'stairs:slab_marble_brick'},
{'stairs:slab_marble_brick', 'stairs:slab_marble_brick_polished', 'stairs:slab_marble_brick'},
{'stairs:slab_marble_brick', 'stairs:slab_marble_brick_polished', 'stairs:slab_marble_brick'},
}
},
{name= "jonez:pompeiian_path", description= "Ancient Pompeiian Path", texture= "jonez_pompeiian_path.png", amount = 4,
{name= "jonez:pompeiian_path", description= "Ancient Pompeiian Path", texture= "jonez_pompeiian_path.png",
amount = 4,
recipe = {
{'stairs:slab_marble_brick_polished', 'stairs:slab_marble_brick', 'stairs:slab_marble_brick_polished'},
{'stairs:slab_marble_brick', 'stairs:slab_marble_brick', 'stairs:slab_marble_brick'},
{'stairs:slab_marble_brick_polished', 'stairs:slab_marble_brick', 'stairs:slab_marble_brick_polished'},
}
},
{name= "jonez:carthaginian_pavement", description= "Carthaginian Pavement", texture= "jonez_carthaginian_pavement.png", amount = 4,
{name= "jonez:carthaginian_pavement", description= "Carthaginian Pavement",
texture= "jonez_carthaginian_pavement.png", amount = 4,
recipe = {
{'stairs:slab_marble_brick', 'stairs:slab_marble_brick_polished', 'stairs:slab_marble_brick'},
{'stairs:slab_marble_brick', 'stairs:slab_marble_brick', 'stairs:slab_marble_brick'},
{'stairs:slab_marble_brick', 'stairs:slab_marble_brick_polished', 'stairs:slab_marble_brick'},
}
},
{name= "jonez:carthaginian_wall", description= "Carthaginian Wall", texture= "jonez_carthaginian_wall.png", amount = 4,
{name= "jonez:carthaginian_wall", description= "Carthaginian Wall", texture= "jonez_carthaginian_wall.png",
amount = 4,
recipe = {
{'stairs:slab_marble_brick_polished', 'stairs:slab_marble_brick', 'stairs:slab_marble_brick_polished'},
{'stairs:slab_marble_brick', 'stairs:slab_marble_brick_polished', 'stairs:slab_marble_brick'},
{'stairs:slab_marble_brick_polished', 'stairs:slab_marble_brick', 'stairs:slab_marble_brick_polished'},
}
},
{name= "jonez:nubian_wall", description= "Nubian Wall", texture= "jonez_nubian_wall.png", amount = 9,
recipe = {
{'default:sandstonebrick', 'default:sandstonebrick', 'default:sandstonebrick'},
{'default:sandstonebrick', 'default:sandstonebrick', 'default:sandstonebrick'},
{'default:sandstonebrick', 'default:sandstonebrick', 'default:sandstonebrick'},
}
},
}
for i = 1, #pavements do
@ -414,12 +446,12 @@ for i = 1, #pavements do
})
local amount
if pavements[i].amount then
amount = " ".. tostring(pavements[i].amount)
amount = tostring(pavements[i].amount)
else
amount = "1"
end
minetest.register_craft({
output = pavements[i].name .. amount,
output = pavements[i].name .. " " .. amount,
type = 'shaped',
recipe = pavements[i].recipe,
})
@ -448,7 +480,7 @@ minetest.register_node("jonez:wrought_lattice_top", {
"jonez_wrought_lattice_top.png",
"jonez_wrought_lattice_top.png"
},
use_texture_alpha = true,
use_texture_alpha = "clip",
})
minetest.register_craft({
@ -513,3 +545,30 @@ minetest.register_craft({
{'', 'jonez:marble_polished', ''},
},
})
minetest.register_node("jonez:censer", {
description = S("Censer"),
tiles = {"jonez_censer_top.png", "jonez_censer_top.png", "jonez_censer_front.png"},
drawtype = "nodebox",
paramtype = "light",
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, -0.5, 0.5, -0.375, 0.5}, -- NodeBox1
{-0.4375, -0.375, -0.4375, 0.4375, -0.3125, 0.4375}, -- NodeBox2
{-0.375, -0.3125, -0.375, 0.375, -0.25, 0.375}, -- NodeBox3
{-0.3125, -0.3125, -0.3125, 0.3125, 0.25, 0.3125}, -- NodeBox4
{-0.375, 0.25, -0.375, 0.375, 0.3125, 0.375}, -- NodeBox5
{-0.4375, 0.3125, -0.4375, 0.4375, 0.375, -0.375}, -- NodeBox6
{-0.5, 0.375, -0.5, 0.5, 0.5, -0.4375}, -- NodeBox7
{-0.4375, 0.3125, 0.375, 0.4375, 0.375, 0.4375}, -- NodeBox8
{-0.5, 0.375, 0.4375, 0.5, 0.5, 0.5}, -- NodeBox9
{0.375, 0.3125, -0.4375, 0.4375, 0.375, 0.4375}, -- NodeBox10
{0.4375, 0.375, -0.5, 0.5, 0.5, 0.5}, -- NodeBox11
{-0.5, 0.375, -0.5, -0.4375, 0.5, 0.5}, -- NodeBox12
{-0.4375, 0.3125, -0.4375, -0.375, 0.375, 0.4375}, -- NodeBox13
},
},
groups = {cracky=1},
})

View File

@ -24,6 +24,9 @@ Carthaginian=Cartaginés
Industrial=Industrial
Romanesque=Romanisco
Cimmerian=Cimerio
Nubian=Nubio
Norma=Normando
Romantic=Romántico
Ancient Marble Stair=Escalera de mármol antiguo
Ancient Marble Slab=Losa de mármol antiguo
Ancient Marble Brick Stair=Escalera de ladrillo de mármol antiguo
@ -60,3 +63,4 @@ Ancient Pompeiian Path=Camino antiguo pompeyano
Ancient Pompeiian Altar=Altar antiguo pompeyano
Carthaginian Pavement=Pavimiento cartaginés
Carthaginian Wall=Pavimiento cartaginés
Censer=Incensiario

71
locale/jonez.ru.tr Normal file
View File

@ -0,0 +1,71 @@
# textdomain: jonez
Ancient Marble=Древний мрамор
Chisel for Marble=Зубило для мрамора
Ancient=Древний
Architrave=Архитрав
Capital=Капитал
Shaft=Вал
Norman=Норманский
Base=Основание
Artdeco=Артдеко
Roman=Римский
Greek=Греческий
Germanic=Германский
Tuscan=Тосканский
Persian=Персидский
Romanic=Романский
Nabataean=Набатейский
Minoan=Минойский
Attic=Аттический
Versailles=Версальский
Medieval=Средневековый
Gothic=Готический
Pompeiian=Помпейский
Corinthian=Коринфский
Carthaginian=Карфагенский
Industrial=Индустриальный
Romanesque=Романский
Cimmerian=Киммерийский
Nubian=Нубийский
Norma=Нормнский
Romantic=Романтический
Nubian Wall=Нубийская стена
Ancient Marble Stair=Древняя мраморная лестница
Ancient Marble Slab=Древняя мраморная плита
Ancient Marble Brick=Древний мраморный кирпич
Ancient Marble Brick Stair=Древняя мраморная лестница
Ancient Marble Brick Slab=Древняя плита из мраморного кирпича
Ancient Marble Polished Brick=Древний мраморный полированный кирпич
Swedish Ivy=Шведский плющ
Ruin Creeper=Руинный ползун
Ruin Vine=Руинная лоза
Climbing Rose=Вьющаяся роза
Mosaic Glass Panel=Мозаичная стеклянная панел
Blossom Glass Panel=Цветеная стеклянная панель
Ancient Wrought Lattice (Bottom)=Древняя кованая решетка (низ)
Ancient Wrought Lattice (Top)=Древняя кованая решетка (верх)
Ancient Blossom Pavement=Древний цветущий тротуар
Ancient Tiled Pavement=Античный плиточный тротуар
Ancient Mosaic Pavement=Древний мозаичный тротуар
Ancient Diamond Pavement=Древний алмазный тротуар
Ancient Pebbled Pavement=Древний галечный тротуар
Ancient Pebbled Medieval Pavement=Древний галечный средневековый тротуар
Ancient Pebbled Gothic Pavement=Древний галечный готический тротуар
Ancient Pebbled Wall=Древняя галечная стена
Ancient Gothic Wall=Древняя готическая стена
Ancient Polished Marble=Древний полированный мрамор
Ancient Polished Marble Stair=Древняя лестница из полированного мрамора
Ancient Polished Marble Slab=Древняя плита из полированного мрамора
Ancient Polished Marble Brick Stair=Древняя лестница из полированного мрамора
Ancient Polished Marble Brick Slab=Древняя кирпичная плита из полированного мрамора
Palace Window (Top)=Дворцовое окно (верх)
Palace Window (Bottom)=Дворцовое окно (низ)
Versailles Pavement=Версальский тротуар
Versailles Tile=Версальская плитка
Ancient Pompeiian Wall=Древняя помпейская стена
Ancient Pompeiian Pavement=Древнепомпейский тротуар
Ancient Pompeiian Path=Древняя помпейская тропа
Ancient Pompeiian Altar=Древнепомпейский алтарь
Carthaginian Pavement=Карфагенская мостовая
Carthaginian Wall=Карфагенская стена
Censer=Кадильница

View File

@ -1,2 +1,3 @@
name = jonez
depends = stairs, xpanes
depends = default, dye, stairs, xpanes
optional_depends = i3, unified_inventory

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB