mirror of
https://github.com/minetest-mods/mesecons.git
synced 2025-06-28 22:06:03 +02:00
Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
3c9055c723 |
40
.github/workflows/check.yml
vendored
40
.github/workflows/check.yml
vendored
@ -9,9 +9,9 @@ jobs:
|
||||
- uses: actions/checkout@main
|
||||
- name: apt
|
||||
run: sudo apt-get install -y luarocks
|
||||
- name: install luacheck
|
||||
- name: luacheck install
|
||||
run: luarocks install --local luacheck
|
||||
- name: run luacheck
|
||||
- name: luacheck run
|
||||
run: $HOME/.luarocks/bin/luacheck ./
|
||||
|
||||
mineunit:
|
||||
@ -19,27 +19,23 @@ jobs:
|
||||
name: "Mineunit tests"
|
||||
steps:
|
||||
- uses: actions/checkout@main
|
||||
- name: apt
|
||||
run: sudo apt-get install -y luarocks
|
||||
- name: busted install
|
||||
run: luarocks install --local busted
|
||||
- name: luacov install
|
||||
run: luarocks install --local luacov
|
||||
- name: mineunit install
|
||||
run: luarocks install --server=https://luarocks.org/dev --local mineunit
|
||||
- name: run mesecons tests
|
||||
uses: mt-mods/mineunit-actions@master
|
||||
with:
|
||||
coverage: false
|
||||
mineunit-args: -q
|
||||
working-directory: ./mesecons
|
||||
working-directory: ./mesecons/
|
||||
run: $HOME/.luarocks/bin/mineunit -q
|
||||
- name: run mesecons_mvps tests
|
||||
uses: mt-mods/mineunit-actions@master
|
||||
with:
|
||||
coverage: false
|
||||
mineunit-args: -q
|
||||
working-directory: ./mesecons_mvps
|
||||
working-directory: ./mesecons_mvps/
|
||||
run: $HOME/.luarocks/bin/mineunit -q
|
||||
- name: run mesecons_fpga tests
|
||||
uses: mt-mods/mineunit-actions@master
|
||||
with:
|
||||
coverage: false
|
||||
mineunit-args: -q
|
||||
working-directory: ./mesecons_fpga
|
||||
working-directory: ./mesecons_fpga/
|
||||
run: $HOME/.luarocks/bin/mineunit -q
|
||||
- name: run mesecons_luacontroller tests
|
||||
uses: mt-mods/mineunit-actions@master
|
||||
with:
|
||||
coverage: false
|
||||
mineunit-args: -q
|
||||
working-directory: ./mesecons_luacontroller
|
||||
working-directory: ./mesecons_luacontroller/
|
||||
run: $HOME/.luarocks/bin/mineunit -q
|
||||
|
4
.github/workflows/test.yml
vendored
4
.github/workflows/test.yml
vendored
@ -11,12 +11,10 @@ jobs:
|
||||
cfg:
|
||||
- { image: 'registry.gitlab.com/minetest/minetest/server:5.0.1', mtg: false }
|
||||
- { image: 'ghcr.io/minetest/minetest:5.9.0', mtg: true }
|
||||
- { image: 'ghcr.io/luanti-org/luanti:5.11.0', mtg: true }
|
||||
steps:
|
||||
- uses: actions/checkout@main
|
||||
|
||||
- name: Download Minetest Game
|
||||
uses: actions/checkout@main
|
||||
- uses: actions/checkout@main
|
||||
with:
|
||||
repository: 'minetest/minetest_game'
|
||||
path: ./.test/minetest_game
|
||||
|
@ -15,7 +15,6 @@ ignore = {
|
||||
max_line_length = 200
|
||||
|
||||
read_globals = {
|
||||
"core",
|
||||
"default",
|
||||
"digiline",
|
||||
"doors",
|
||||
@ -30,7 +29,6 @@ read_globals = {
|
||||
"VoxelArea",
|
||||
"mcl_dyes",
|
||||
"mcl_sounds",
|
||||
"hades_sounds",
|
||||
}
|
||||
|
||||
globals = {"mesecon"}
|
||||
|
@ -99,9 +99,8 @@ do
|
||||
offstate = "mesecons:test_conductor_rot_off",
|
||||
}}
|
||||
mesecon.register_node("mesecons:test_conductor_rot", {
|
||||
paramtype2 = "4dir",
|
||||
description = "Rotatable Test Conductor",
|
||||
on_rotate = mesecon.on_rotate,
|
||||
on_rotate = mesecon.on_rotate_horiz,
|
||||
}, {mesecons = off_spec}, {mesecons = on_spec})
|
||||
end
|
||||
|
||||
|
11
README.md
11
README.md
@ -13,10 +13,9 @@ MESECONS by Jeija and contributors
|
||||
Mezzee-what?
|
||||
------------
|
||||
|
||||
[Mesecons](https://mesecons.net/)! They're yellow, they're conductive, and they'll add a whole new dimension to Luanti's gameplay.
|
||||
[Mesecons](https://mesecons.net/)! They're yellow, they're conductive, and they'll add a whole new dimension to Minetest's gameplay.
|
||||
|
||||
Mesecons is a mod for [Luanti](https://www.luanti.org/) that implements a ton of items related to digital circuitry, such as wires, buttons, lights, and even programmable controllers.
|
||||
Among other things, there are also pistons, solar panels, pressure plates, and note blocks.
|
||||
Mesecons is a mod for [Minetest](https://www.minetest.net/) that implements a ton of items related to digital circuitry, such as wires, buttons, lights, and even programmable controllers. Among other things, there are also pistons, solar panels, pressure plates, and note blocks.
|
||||
|
||||
Mesecons has a similar goal to Redstone in Minecraft, but works in its own way, with different rules and mechanics.
|
||||
|
||||
@ -25,15 +24,15 @@ OK, I want in.
|
||||
|
||||
Go get it!
|
||||
|
||||
[](https://content.luanti.org/packages/Jeija/mesecons/)
|
||||
[](https://content.minetest.net/packages/Jeija/mesecons/)
|
||||
|
||||
Install it directly from your client by searching it in the Online Content tab.
|
||||
|
||||
**Or** if you've downloaded a ZIP file check out [this page](https://docs.luanti.org/for-players/mods/) over at the official Luanti Wiki. For your convenience, here's a quick summary:
|
||||
**Or** if you've downloaded a ZIP file check out [this page](https://wiki.minetest.net/Mods) over at the official Minetest Wiki. For your convenience, here's a quick summary:
|
||||
|
||||
1. If Mesecons is still in a ZIP file, extract the folder inside to somewhere on the computer.
|
||||
2. Make sure that when you open the folder, you can directly find `README.md` in the listing. If you just see another folder, move that folder up one level and delete the old one.
|
||||
3. Open up the Luanti mods folder - called `mods`.
|
||||
3. Open up the Minetest mods folder - called `mods`.
|
||||
4. Copy the Mesecons folder into the mods folder.
|
||||
|
||||
Don't like some parts of Mesecons? Open up the Mesecons folder and delete the subfolder containing the mod you don't want. If you didn't want movestones, for example, all you have to do is delete the `mesecons_movestones` folder and they will no longer be available.
|
||||
|
@ -1,4 +0,0 @@
|
||||
# textdomain: mesecons
|
||||
|
||||
### oldwires.lua ###
|
||||
Mesecons=Мезеконы
|
@ -1,5 +0,0 @@
|
||||
# textdomain: mesecons
|
||||
|
||||
### oldwires.lua ###
|
||||
Mesecons=Месекони
|
||||
Mod that implements a ton of items related to digital circuitry.=Мод, який реалізує масу елементів, пов’язаних із цифровою схемою.
|
@ -17,7 +17,6 @@ function mesecon.on_rotate(pos, node, _, _, new_param2)
|
||||
end
|
||||
|
||||
-- An on_rotate callback for components which stay horizontal.
|
||||
-- Deprecated. Use paramtype2 = "4dir" instead.
|
||||
function mesecon.on_rotate_horiz(pos, node, user, mode, new_param2)
|
||||
if not minetest.global_exists("screwdriver") or mode ~= screwdriver.ROTATE_FACE then
|
||||
return false
|
||||
|
@ -1,4 +0,0 @@
|
||||
# textdomain: mesecons_blinkyplant
|
||||
|
||||
### init.lua ###
|
||||
Blinky Plant=Мигающий цветок
|
@ -1,4 +0,0 @@
|
||||
# textdomain: mesecons_blinkyplant
|
||||
|
||||
### init.lua ###
|
||||
Blinky Plant=Миготлива квітка
|
@ -1,4 +0,0 @@
|
||||
# textdomain: mesecons_button
|
||||
|
||||
### init.lua ###
|
||||
Button=Кнопка
|
@ -1,4 +0,0 @@
|
||||
# textdomain: mesecons_button
|
||||
|
||||
### init.lua ###
|
||||
Button=Кнопка
|
@ -1,5 +1,4 @@
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
local param_maxlen = mesecon.setting("commandblock_param_maxlen", 10000)
|
||||
|
||||
minetest.register_chatcommand("say", {
|
||||
params = "<text>",
|
||||
@ -49,7 +48,7 @@ minetest.register_chatcommand("hp", {
|
||||
local function initialize_data(meta)
|
||||
local commands = minetest.formspec_escape(meta:get_string("commands"))
|
||||
meta:set_string("formspec",
|
||||
"size[9,5]" ..
|
||||
"invsize[9,5;]" ..
|
||||
"textarea[0.5,0.5;8.5,4;commands;Commands;"..commands.."]" ..
|
||||
"label[1,3.8;@nearest, @farthest, and @random are replaced by the respective player names]" ..
|
||||
"button_exit[3.3,4.5;2,1;submit;Submit]")
|
||||
@ -157,11 +156,6 @@ local function commandblock_action_on(pos, node)
|
||||
minetest.chat_send_player(owner, "The command "..cmd.." does not exist")
|
||||
return
|
||||
end
|
||||
if #param > param_maxlen then
|
||||
minetest.chat_send_player(owner, "Command parameters are limited to max. " ..
|
||||
param_maxlen .. " bytes.")
|
||||
return
|
||||
end
|
||||
local has_privs, missing_privs = minetest.check_player_privs(owner, cmddef.privs)
|
||||
if not has_privs then
|
||||
minetest.chat_send_player(owner, "You don't have permission "
|
||||
|
@ -1,7 +0,0 @@
|
||||
# textdomain: mesecons_commandblock
|
||||
|
||||
### init.lua ###
|
||||
Say <text> as the server=Сказать <текст> от имени сервера
|
||||
Say <text> to <name> privately=Сказать <текст> игроку <имя> в личном сообщении
|
||||
Set health of <name> to <value> hitpoints=Установить здоровье игрока <имя> на <значение> хитпоинтов
|
||||
Command Block=Комадный блок
|
@ -1,7 +0,0 @@
|
||||
# textdomain: mesecons_commandblock
|
||||
|
||||
### init.lua ###
|
||||
Say <text> as the server=Сказати <текст> від імені сервера
|
||||
Say <text> to <name> privately=Сказати <текст> гравцю <ім'я> в приватному повідомленні
|
||||
Set health of <name> to <value> hitpoints=Встановити здоров'я гравця <ім'я> на <значення> ХП
|
||||
Command Block=Командний блок
|
@ -1,5 +0,0 @@
|
||||
# textdomain: mesecons_delayer
|
||||
|
||||
### init.lua ###
|
||||
Delayer=Элемент задержки
|
||||
You hacker you=Ти хакер, ти
|
@ -1,5 +0,0 @@
|
||||
# textdomain: mesecons_delayer
|
||||
|
||||
### init.lua ###
|
||||
Delayer=Затримувач
|
||||
You hacker you=Ти хакер, ти
|
@ -66,8 +66,7 @@ local object_detector_digiline = {
|
||||
effector = {
|
||||
action = function(pos, _, channel, msg)
|
||||
local meta = minetest.get_meta(pos)
|
||||
if channel == meta:get_string("digiline_channel") and
|
||||
(type(msg) == "string" or type(msg) == "number") then
|
||||
if channel == meta:get_string("digiline_channel") then
|
||||
meta:set_string("scanname", msg)
|
||||
object_detector_make_formspec(pos)
|
||||
end
|
||||
@ -111,16 +110,14 @@ minetest.register_node("mesecons_detector:object_detector_on", {
|
||||
on_blast = mesecon.on_blastnode,
|
||||
})
|
||||
|
||||
if minetest.get_modpath("mesecons_luacontroller") then
|
||||
minetest.register_craft({
|
||||
minetest.register_craft({
|
||||
output = 'mesecons_detector:object_detector_off',
|
||||
recipe = {
|
||||
{"mesecons_gamecompat:steel_ingot", "mesecons_gamecompat:steel_ingot", "mesecons_gamecompat:steel_ingot"},
|
||||
{"mesecons_gamecompat:steel_ingot", "mesecons_luacontroller:luacontroller0000", "mesecons_gamecompat:steel_ingot"},
|
||||
{"mesecons_gamecompat:steel_ingot", "group:mesecon_conductor_craftable", "mesecons_gamecompat:steel_ingot"},
|
||||
}
|
||||
})
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'mesecons_detector:object_detector_off',
|
||||
@ -289,16 +286,14 @@ minetest.register_node("mesecons_detector:node_detector_on", {
|
||||
on_blast = mesecon.on_blastnode,
|
||||
})
|
||||
|
||||
if minetest.get_modpath("mesecons_luacontroller") then
|
||||
minetest.register_craft({
|
||||
minetest.register_craft({
|
||||
output = 'mesecons_detector:node_detector_off',
|
||||
recipe = {
|
||||
{"mesecons_gamecompat:steel_ingot", "group:mesecon_conductor_craftable", "mesecons_gamecompat:steel_ingot"},
|
||||
{"mesecons_gamecompat:steel_ingot", "mesecons_luacontroller:luacontroller0000", "mesecons_gamecompat:steel_ingot"},
|
||||
{"mesecons_gamecompat:steel_ingot", "mesecons_gamecompat:steel_ingot", "mesecons_gamecompat:steel_ingot"},
|
||||
}
|
||||
})
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'mesecons_detector:node_detector_off',
|
||||
|
@ -1,5 +0,0 @@
|
||||
# textdomain: mesecons_detector
|
||||
|
||||
### init.lua ###
|
||||
Player Detector=Детектор игрока
|
||||
Node Detector=Детектор блока
|
@ -1,5 +0,0 @@
|
||||
# textdomain: mesecons_detector
|
||||
|
||||
### init.lua ###
|
||||
Player Detector=Детектор гравця
|
||||
Node Detector=Детектор блоку
|
@ -1,3 +1,2 @@
|
||||
name = mesecons_detector
|
||||
depends = mesecons, mesecons_gamecompat, mesecons_materials
|
||||
optional_depends = mesecons_luacontroller
|
||||
|
@ -132,6 +132,7 @@ local function meseconify_trapdoor(name)
|
||||
end
|
||||
|
||||
minetest.register_on_mods_loaded(function()
|
||||
if doors.registered_doors ~= nil then -- registered_doors is not always available
|
||||
for k,_ in pairs(doors.registered_doors) do
|
||||
if k:find("_a$") then
|
||||
meseconify_door(k:sub(1,-3))
|
||||
@ -142,4 +143,5 @@ minetest.register_on_mods_loaded(function()
|
||||
meseconify_trapdoor(k)
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
3
mesecons_doors/mod.conf
Normal file
3
mesecons_doors/mod.conf
Normal file
@ -0,0 +1,3 @@
|
||||
name = mesecons_doors
|
||||
depends = mesecons, doors
|
||||
optional_depends = xpanes
|
@ -18,7 +18,7 @@ minetest.register_node("mesecons_extrawires:corner_on", {
|
||||
{ name = "jeija_insulated_wire_ends_on.png", backface_culling = true },
|
||||
},
|
||||
paramtype = "light",
|
||||
paramtype2 = "4dir",
|
||||
paramtype2 = "facedir",
|
||||
is_ground_content = false,
|
||||
walkable = false,
|
||||
sunlight_propagates = true,
|
||||
@ -33,7 +33,7 @@ minetest.register_node("mesecons_extrawires:corner_on", {
|
||||
offstate = "mesecons_extrawires:corner_off"
|
||||
}},
|
||||
on_blast = mesecon.on_blastnode,
|
||||
on_rotate = mesecon.on_rotate,
|
||||
on_rotate = mesecon.on_rotate_horiz,
|
||||
})
|
||||
|
||||
minetest.register_node("mesecons_extrawires:corner_off", {
|
||||
@ -45,7 +45,7 @@ minetest.register_node("mesecons_extrawires:corner_off", {
|
||||
{ name = "jeija_insulated_wire_ends_off.png", backface_culling = true },
|
||||
},
|
||||
paramtype = "light",
|
||||
paramtype2 = "4dir",
|
||||
paramtype2 = "facedir",
|
||||
is_ground_content = false,
|
||||
walkable = false,
|
||||
sunlight_propagates = true,
|
||||
@ -59,7 +59,7 @@ minetest.register_node("mesecons_extrawires:corner_off", {
|
||||
onstate = "mesecons_extrawires:corner_on"
|
||||
}},
|
||||
on_blast = mesecon.on_blastnode,
|
||||
on_rotate = mesecon.on_rotate,
|
||||
on_rotate = mesecon.on_rotate_horiz,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
|
@ -41,7 +41,7 @@ for k, state in ipairs(doublecorner_states) do
|
||||
{ name = "jeija_insulated_wire_ends_" .. w2 .. ".png", backface_culling = true },
|
||||
},
|
||||
paramtype = "light",
|
||||
paramtype2 = "4dir",
|
||||
paramtype2 = "facedir",
|
||||
is_ground_content = false,
|
||||
walkable = false,
|
||||
sunlight_propagates = true,
|
||||
@ -56,7 +56,7 @@ for k, state in ipairs(doublecorner_states) do
|
||||
},
|
||||
},
|
||||
on_blast = mesecon.on_blastnode,
|
||||
on_rotate = mesecon.on_rotate,
|
||||
on_rotate = mesecon.on_rotate_horiz,
|
||||
})
|
||||
end
|
||||
|
||||
|
@ -3,6 +3,4 @@ dofile(minetest.get_modpath("mesecons_extrawires").."/tjunction.lua");
|
||||
dofile(minetest.get_modpath("mesecons_extrawires").."/corner.lua");
|
||||
dofile(minetest.get_modpath("mesecons_extrawires").."/doublecorner.lua");
|
||||
dofile(minetest.get_modpath("mesecons_extrawires").."/vertical.lua");
|
||||
if core.registered_nodes["mesecons_gamecompat:mese"] then
|
||||
dofile(minetest.get_modpath("mesecons_extrawires").."/mesewire.lua");
|
||||
end
|
||||
dofile(minetest.get_modpath("mesecons_extrawires").."/mesewire.lua");
|
||||
|
@ -1,20 +0,0 @@
|
||||
# textdomain: mesecons_extrawires
|
||||
|
||||
### corner.lua ###
|
||||
Insulated Mesecon Corner=Изолированный мезекон (угол)
|
||||
|
||||
### crossover.lua ###
|
||||
Insulated Mesecon Crossover=Изолированный мезекон (перекрестие)
|
||||
You hacker you!=Ти хакер ти!
|
||||
|
||||
### doublecorner.lua ###
|
||||
Insulated Mesecon Double Corner=Изолированный мезекон (двойной угол)
|
||||
|
||||
### mesewire.lua ###
|
||||
Mese Wire=Мезе-провод
|
||||
|
||||
### tjunction.lua ###
|
||||
Insulated Mesecon T-junction=Изолированный мезекон (Т-соединение)
|
||||
|
||||
### vertical.lua ###
|
||||
Vertical Mesecon=Вертикальный мезекон
|
@ -1,20 +0,0 @@
|
||||
# textdomain: mesecons_extrawires
|
||||
|
||||
### corner.lua ###
|
||||
Insulated Mesecon Corner=Ізольований месекон (кут)
|
||||
|
||||
### crossover.lua ###
|
||||
Insulated Mesecon Crossover=Ізольований месекон (перехрестя)
|
||||
You hacker you!=Ти хакер ти!
|
||||
|
||||
### doublecorner.lua ###
|
||||
Insulated Mesecon Double Corner=Ізольований месекон (подвійний кут)
|
||||
|
||||
### mesewire.lua ###
|
||||
Mese Wire=Месе-дріт
|
||||
|
||||
### tjunction.lua ###
|
||||
Insulated Mesecon T-junction=Ізольований месекон (T-з'єднання)
|
||||
|
||||
### vertical.lua ###
|
||||
Vertical Mesecon=Вертикальний месекон
|
@ -29,7 +29,7 @@ minetest.register_node("mesecons_extrawires:tjunction_on", {
|
||||
"jeija_insulated_wire_ends_on.png"
|
||||
},
|
||||
paramtype = "light",
|
||||
paramtype2 = "4dir",
|
||||
paramtype2 = "facedir",
|
||||
is_ground_content = false,
|
||||
walkable = false,
|
||||
sunlight_propagates = true,
|
||||
@ -45,7 +45,7 @@ minetest.register_node("mesecons_extrawires:tjunction_on", {
|
||||
offstate = "mesecons_extrawires:tjunction_off"
|
||||
}},
|
||||
on_blast = mesecon.on_blastnode,
|
||||
on_rotate = mesecon.on_rotate,
|
||||
on_rotate = mesecon.on_rotate_horiz,
|
||||
})
|
||||
|
||||
minetest.register_node("mesecons_extrawires:tjunction_off", {
|
||||
@ -60,7 +60,7 @@ minetest.register_node("mesecons_extrawires:tjunction_off", {
|
||||
"jeija_insulated_wire_ends_off.png"
|
||||
},
|
||||
paramtype = "light",
|
||||
paramtype2 = "4dir",
|
||||
paramtype2 = "facedir",
|
||||
is_ground_content = false,
|
||||
walkable = false,
|
||||
sunlight_propagates = true,
|
||||
@ -75,7 +75,7 @@ minetest.register_node("mesecons_extrawires:tjunction_off", {
|
||||
onstate = "mesecons_extrawires:tjunction_on"
|
||||
}},
|
||||
on_blast = mesecon.on_blastnode,
|
||||
on_rotate = mesecon.on_rotate,
|
||||
on_rotate = mesecon.on_rotate_horiz,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
|
@ -40,8 +40,6 @@ local bottom_rules = {
|
||||
{x=0, y=2, z=0} -- receive power from pressure plate / detector / ... 2 nodes above
|
||||
}
|
||||
|
||||
local use_texture_alpha = minetest.features.use_texture_alpha_string_modes and "clip" or nil
|
||||
|
||||
local function is_vertical_conductor(nodename)
|
||||
local def = minetest.registered_nodes[nodename]
|
||||
return def and def.is_vertical_conductor
|
||||
@ -98,7 +96,6 @@ mesecon.register_node("mesecons_extrawires:vertical", {
|
||||
after_place_node = vertical_update,
|
||||
after_dig_node = vertical_update,
|
||||
sounds = mesecon.node_sound.default,
|
||||
use_texture_alpha = use_texture_alpha,
|
||||
},{
|
||||
tiles = {"mesecons_wire_off.png"},
|
||||
groups = {dig_immediate=3},
|
||||
@ -133,7 +130,6 @@ mesecon.register_node("mesecons_extrawires:vertical_top", {
|
||||
after_place_node = vertical_update,
|
||||
after_dig_node = vertical_update,
|
||||
sounds = mesecon.node_sound.default,
|
||||
use_texture_alpha = use_texture_alpha,
|
||||
},{
|
||||
tiles = {"mesecons_wire_off.png"},
|
||||
mesecons = {conductor = {
|
||||
@ -166,7 +162,6 @@ mesecon.register_node("mesecons_extrawires:vertical_bottom", {
|
||||
after_place_node = vertical_update,
|
||||
after_dig_node = vertical_update,
|
||||
sounds = mesecon.node_sound.default,
|
||||
use_texture_alpha = use_texture_alpha,
|
||||
},{
|
||||
tiles = {"mesecons_wire_off.png"},
|
||||
mesecons = {conductor = {
|
||||
|
@ -1,7 +0,0 @@
|
||||
# textdomain: mesecons_fpga
|
||||
|
||||
### init.lua ###
|
||||
FPGA=ПЛИС
|
||||
|
||||
### tool.lua ###
|
||||
FPGA Programmer=ПЛИС-программер
|
@ -1,7 +0,0 @@
|
||||
# textdomain: mesecons_fpga
|
||||
|
||||
### init.lua ###
|
||||
FPGA=ПКВМ
|
||||
|
||||
### tool.lua ###
|
||||
FPGA Programmer=ПКВМ-программер
|
@ -1,72 +0,0 @@
|
||||
--Aliases
|
||||
|
||||
core.register_alias("mesecons_gamecompat:chest", "hades_chests:chest")
|
||||
core.register_alias("mesecons_gamecompat:chest_locked", "hades_chests:chest_locked")
|
||||
core.register_alias("mesecons_gamecompat:coalblock", "hades_core:coalblock")
|
||||
core.register_alias("mesecons_gamecompat:cobble", "hades_core:cobble")
|
||||
core.register_alias("mesecons_gamecompat:glass", "hades_core:glass")
|
||||
core.register_alias("mesecons_gamecompat:lava_source", "hades_core:lava_source")
|
||||
core.register_alias("mesecons_gamecompat:mese", "hades_core:mese")
|
||||
core.register_alias("mesecons_gamecompat:mese_crystal", "hades_core:mese_crystal")
|
||||
core.register_alias("mesecons_gamecompat:mese_crystal_fragment", "hades_core:mese_crystal_fragment")
|
||||
core.register_alias("mesecons_gamecompat:obsidian_glass", "hades_core:obsidian_glass")
|
||||
core.register_alias("mesecons_gamecompat:stone", "hades_core:stone")
|
||||
core.register_alias("mesecons_gamecompat:steel_ingot", "hades_core:steel_ingot")
|
||||
core.register_alias("mesecons_gamecompat:steelblock", "hades_core:steelblock")
|
||||
core.register_alias("mesecons_gamecompat:torch", "hades_torches:torch")
|
||||
|
||||
if core.get_modpath("hades_dye") then
|
||||
for _, color in ipairs(mesecon.dye_colors) do
|
||||
core.register_alias("mesecons_gamecompat:dye_" .. color, "hades_dye:" .. color)
|
||||
end
|
||||
end
|
||||
|
||||
-- Sounds
|
||||
|
||||
mesecon.node_sound.default = hades_sounds.node_sound_defaults()
|
||||
mesecon.node_sound.glass = hades_sounds.node_sound_glass_defaults()
|
||||
mesecon.node_sound.leaves = hades_sounds.node_sound_leaves_defaults()
|
||||
mesecon.node_sound.stone = hades_sounds.node_sound_stone_defaults()
|
||||
mesecon.node_sound.wood = hades_sounds.node_sound_wood_defaults()
|
||||
|
||||
if core.get_modpath("hades_fire") then
|
||||
mesecon.sound_name.fire = "fire_fire"
|
||||
end
|
||||
|
||||
if core.get_modpath("hades_tnt") then
|
||||
mesecon.sound_name.explode = "tnt_explode"
|
||||
end
|
||||
|
||||
-- Textures
|
||||
|
||||
mesecon.texture.steel_block = "default_steel_block.png"
|
||||
|
||||
-- MVPS stoppers
|
||||
|
||||
if core.get_modpath("mesecons_mvps") then
|
||||
-- All of the locked and internal nodes in Hades Revisited
|
||||
for _, name in ipairs({
|
||||
"hades_chests:chest_locked",
|
||||
"hades_chests:chest_locked_open",
|
||||
"hades_doors:hidden",
|
||||
"hades_doors:hidden_center",
|
||||
}) do
|
||||
mesecon.register_mvps_stopper(name)
|
||||
end
|
||||
core.register_on_mods_loaded(function()
|
||||
if core.get_modpath("hades_doors") then
|
||||
for _,v in pairs(core.registered_nodes) do
|
||||
if v.groups and (v.groups.door or v.groups.trapdoor) then
|
||||
mesecon.register_mvps_stopper(v.name)
|
||||
end
|
||||
end
|
||||
end
|
||||
if core.get_modpath("hades_beds") then
|
||||
for _,v in pairs(core.registered_nodes) do
|
||||
if v.groups and v.groups.bed then
|
||||
mesecon.register_mvps_stopper(v.name)
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
end
|
@ -7,13 +7,13 @@ minetest.register_alias("mesecons_gamecompat:coalblock", "mcl_core:coalblock")
|
||||
minetest.register_alias("mesecons_gamecompat:cobble", "mcl_core:cobble")
|
||||
minetest.register_alias("mesecons_gamecompat:glass", "mcl_core:glass")
|
||||
minetest.register_alias("mesecons_gamecompat:lava_source", "mcl_core:lava_source")
|
||||
minetest.register_alias("mesecons_gamecompat:mese", "mcl_redstone_torch:redstoneblock")
|
||||
minetest.register_alias("mesecons_gamecompat:mese_crystal", "mcl_redstone:redstone")
|
||||
minetest.register_alias("mesecons_gamecompat:mese_crystal_fragment", "mcl_redstone:redstone")
|
||||
minetest.register_alias("mesecons_gamecompat:mese", "mesecons:redstoneblock")
|
||||
minetest.register_alias("mesecons_gamecompat:mese_crystal", "mesecoms:redstone")
|
||||
minetest.register_alias("mesecons_gamecompat:mese_crystal_fragment", "mesecons:redstone")
|
||||
minetest.register_alias("mesecons_gamecompat:obsidian_glass", "mcl_core:glass")
|
||||
minetest.register_alias("mesecons_gamecompat:stone", "mcl_core:stone")
|
||||
minetest.register_alias("mesecons_gamecompat:steel_ingot", "mcl_core:iron_ingot")
|
||||
minetest.register_alias("mesecons_gamecompat:steelblock", "mcl_core:ironblock")
|
||||
minetest.register_alias("mesecons_gamecompat:steelblock", "mcl_core:steelblock")
|
||||
minetest.register_alias("mesecons_gamecompat:torch", "mcl_torches:torch")
|
||||
|
||||
if minetest.get_modpath("mcl_dyes") then
|
||||
@ -41,48 +41,3 @@ end
|
||||
-- Textures
|
||||
|
||||
mesecon.texture.steel_block = "default_steel_block.png"
|
||||
|
||||
if minetest.get_modpath("mesecons_mvps") then
|
||||
for k,v in pairs(core.registered_nodes) do
|
||||
local is_stopper = mesecon.mvps_stoppers[k]
|
||||
if v.groups and v.groups.unmovable_by_piston then
|
||||
mesecon.register_mvps_stopper(k)
|
||||
end
|
||||
if is_stopper then
|
||||
local groups = table.copy(v.groups or {})
|
||||
groups.unmovable_by_piston = 1
|
||||
v.groups = groups
|
||||
core.register_node(":"..k, v)
|
||||
end
|
||||
end
|
||||
for k,v in pairs(core.registered_entities) do
|
||||
local is_unmov = mesecon.mvps_unmov[k]
|
||||
if v._mcl_pistons_unmovable then
|
||||
mesecon.register_mvps_unmov(k)
|
||||
end
|
||||
if is_unmov then
|
||||
v._mcl_pistons_unmovable = true
|
||||
core.register_entity(":"..k, v)
|
||||
end
|
||||
end
|
||||
|
||||
core.register_on_mods_loaded(function()
|
||||
for _,v in pairs(core.registered_nodes) do
|
||||
if v.groups and v.groups.bed then
|
||||
mesecon.register_mvps_stopper(v.name)
|
||||
end
|
||||
if v.groups and v.groups.door then
|
||||
mesecon.register_mvps_stopper(v.name)
|
||||
end
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
core.register_craft({
|
||||
output = "mesecons:wire_00000000_off",
|
||||
recipe = {{"mcl_redstone:redstone"}}
|
||||
})
|
||||
core.register_craft({
|
||||
output = "mcl_redstone:redstone",
|
||||
recipe = {{"mesecons:wire_00000000_off"}}
|
||||
})
|
@ -48,26 +48,28 @@ if minetest.get_modpath("mesecons_mvps") then
|
||||
for _, name in ipairs({
|
||||
"default:chest_locked",
|
||||
"default:chest_locked_open",
|
||||
"doors:door_steel_b_1", -- old style doors
|
||||
"doors:door_steel_b_2", --
|
||||
"doors:door_steel_t_1", --
|
||||
"doors:door_steel_t_2", --
|
||||
"doors:door_steel_a", -- new style doors
|
||||
"doors:door_steel_b", --
|
||||
"doors:door_steel_c", --
|
||||
"doors:door_steel_d", --
|
||||
"doors:hidden",
|
||||
"doors:trapdoor_steel",
|
||||
"doors:trapdoor_steel_open",
|
||||
"beds:bed_bottom",
|
||||
"beds:bed_top",
|
||||
"beds:fancy_bed_bottom",
|
||||
"beds:fancy_bed_top",
|
||||
"xpanes:door_steel_bar_a",
|
||||
"xpanes:door_steel_bar_b",
|
||||
"xpanes:door_steel_bar_c",
|
||||
"xpanes:door_steel_bar_d",
|
||||
"xpanes:trapdoor_steel_bar",
|
||||
"xpanes:trapdoor_steel_bar_open",
|
||||
}) do
|
||||
mesecon.register_mvps_stopper(name)
|
||||
end
|
||||
core.register_on_mods_loaded(function()
|
||||
if minetest.get_modpath("doors") then
|
||||
for k,_ in pairs(doors.registered_doors) do
|
||||
mesecon.register_mvps_stopper(k)
|
||||
end
|
||||
end
|
||||
if minetest.get_modpath("beds") then
|
||||
for _,v in pairs(core.registered_nodes) do
|
||||
if v.groups and v.groups.bed then
|
||||
mesecon.register_mvps_stopper(v.name)
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
@ -14,16 +14,7 @@ if minetest.get_modpath("default") then
|
||||
dofile(minetest.get_modpath("mesecons_gamecompat").."/compat_mtg.lua")
|
||||
end
|
||||
|
||||
if minetest.get_modpath("mcl_redstone") then
|
||||
if minetest.get_modpath("mcl_core") then
|
||||
minetest.log("info", "Mesecons: detected MineClonia Game for game compatibility")
|
||||
dofile(minetest.get_modpath("mesecons_gamecompat").."/compat_mcla.lua")
|
||||
end
|
||||
|
||||
if minetest.get_modpath("hades_core") then
|
||||
minetest.log("info", "Mesecons: detected Hades Revisited Game for game compatibility")
|
||||
dofile(minetest.get_modpath("mesecons_gamecompat").."/compat_hades.lua")
|
||||
end
|
||||
|
||||
if minetest.get_modpath("doors") then
|
||||
dofile(minetest.get_modpath("mesecons_gamecompat").."/doors.lua")
|
||||
dofile(minetest.get_modpath("mesecons_gamecompat").."/compat_mcl.lua")
|
||||
end
|
||||
|
@ -1,3 +1,3 @@
|
||||
name = mesecons_gamecompat
|
||||
depends = mesecons
|
||||
optional_depends = fire, default, dye, mesecons_mvps, tnt, doors, beds, mcl_fire, mcl_core, mcl_dye, mcl_tnt, hades_sounds
|
||||
optional_depends = fire, default, dye, mesecons_mvps, tnt, mcl_fire, mcl_core, mcl_dye, mcl_tnt
|
||||
|
@ -1,5 +1,3 @@
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
local selection_box = {
|
||||
type = "fixed",
|
||||
fixed = { -8/16, -8/16, -8/16, 8/16, -6/16, 8/16 }
|
||||
@ -89,7 +87,7 @@ local function register_gate(name, inputnumber, assess, recipe, description)
|
||||
description = description,
|
||||
inventory_image = "jeija_gate_off.png^jeija_gate_"..name..".png",
|
||||
paramtype = "light",
|
||||
paramtype2 = "4dir",
|
||||
paramtype2 = "facedir",
|
||||
is_ground_content = false,
|
||||
drawtype = "nodebox",
|
||||
drop = basename.."_off",
|
||||
@ -102,7 +100,7 @@ local function register_gate(name, inputnumber, assess, recipe, description)
|
||||
offstate = basename.."_off",
|
||||
inputnumber = inputnumber,
|
||||
after_dig_node = mesecon.do_cooldown,
|
||||
on_rotate = mesecon.on_rotate,
|
||||
on_rotate = mesecon.on_rotate_horiz,
|
||||
},{
|
||||
tiles = {
|
||||
"jeija_microcontroller_bottom.png^".."jeija_gate_off.png^"..
|
||||
@ -148,38 +146,38 @@ end
|
||||
|
||||
register_gate("diode", 1, function (input) return input end,
|
||||
{{"mesecons:mesecon", "mesecons_torch:mesecon_torch_on", "mesecons_torch:mesecon_torch_on"}},
|
||||
S("Diode"))
|
||||
"Diode")
|
||||
|
||||
register_gate("not", 1, function (input) return not input end,
|
||||
{{"mesecons:mesecon", "mesecons_torch:mesecon_torch_on", "mesecons:mesecon"}},
|
||||
S("NOT Gate"))
|
||||
"NOT Gate")
|
||||
|
||||
register_gate("and", 2, function (val1, val2) return val1 and val2 end,
|
||||
{{"mesecons:mesecon", "", ""},
|
||||
{"", "mesecons_materials:silicon", "mesecons:mesecon"},
|
||||
{"mesecons:mesecon", "", ""}},
|
||||
S("AND Gate"))
|
||||
"AND Gate")
|
||||
|
||||
register_gate("nand", 2, function (val1, val2) return not (val1 and val2) end,
|
||||
{{"mesecons:mesecon", "", ""},
|
||||
{"", "mesecons_materials:silicon", "mesecons_torch:mesecon_torch_on"},
|
||||
{"mesecons:mesecon", "", ""}},
|
||||
S("NAND Gate"))
|
||||
"NAND Gate")
|
||||
|
||||
register_gate("xor", 2, function (val1, val2) return (val1 or val2) and not (val1 and val2) end,
|
||||
{{"mesecons:mesecon", "", ""},
|
||||
{"", "mesecons_materials:silicon", "mesecons_materials:silicon"},
|
||||
{"mesecons:mesecon", "", ""}},
|
||||
S("XOR Gate"))
|
||||
"XOR Gate")
|
||||
|
||||
register_gate("nor", 2, function (val1, val2) return not (val1 or val2) end,
|
||||
{{"mesecons:mesecon", "", ""},
|
||||
{"", "mesecons:mesecon", "mesecons_torch:mesecon_torch_on"},
|
||||
{"mesecons:mesecon", "", ""}},
|
||||
S("NOR Gate"))
|
||||
"NOR Gate")
|
||||
|
||||
register_gate("or", 2, function (val1, val2) return (val1 or val2) end,
|
||||
{{"mesecons:mesecon", "", ""},
|
||||
{"", "mesecons:mesecon", "mesecons:mesecon"},
|
||||
{"mesecons:mesecon", "", ""}},
|
||||
S("OR Gate"))
|
||||
"OR Gate")
|
||||
|
@ -1,8 +0,0 @@
|
||||
# textdomain: mesecons_gates
|
||||
Diode=Диод
|
||||
NOT Gate=НЕ-шлюз
|
||||
AND Gate=И-шлюз
|
||||
NAND Gate=NAND-шлюз
|
||||
XOR Gate=XOR-шлюз
|
||||
NOR Gate=NOR-шлюз
|
||||
OR Gate=ИЛИ-шлюз
|
@ -1,8 +0,0 @@
|
||||
# textdomain: mesecons_gates
|
||||
Diode=Діод
|
||||
NOT Gate=NOT перехідник
|
||||
AND Gate=AND перехідник
|
||||
NAND Gate=NAND перехідник
|
||||
XOR Gate=XOR перехідник
|
||||
NOR Gate=NOR перехідник
|
||||
OR Gate=OR перехідник
|
@ -1,8 +0,0 @@
|
||||
# textdomain: mesecons_gates
|
||||
Diode=
|
||||
NOT Gate=
|
||||
AND Gate=
|
||||
NAND Gate=
|
||||
XOR Gate=
|
||||
NOR Gate=
|
||||
OR Gate=
|
@ -1,4 +0,0 @@
|
||||
# textdomain: mesecons_hydroturbine
|
||||
|
||||
### init.lua ###
|
||||
Water Turbine=Гидротурбина
|
@ -1,4 +0,0 @@
|
||||
# textdomain: mesecons_hydroturbine
|
||||
|
||||
### init.lua ###
|
||||
Water Turbine=Гідротурбіна
|
@ -17,7 +17,7 @@ minetest.register_node("mesecons_insulated:insulated_on", {
|
||||
"jeija_insulated_wire_sides_on.png"
|
||||
},
|
||||
paramtype = "light",
|
||||
paramtype2 = "4dir",
|
||||
paramtype2 = "facedir",
|
||||
is_ground_content = false,
|
||||
walkable = false,
|
||||
sunlight_propagates = true,
|
||||
@ -39,7 +39,7 @@ minetest.register_node("mesecons_insulated:insulated_on", {
|
||||
rules = insulated_wire_get_rules
|
||||
}},
|
||||
on_blast = mesecon.on_blastnode,
|
||||
on_rotate = mesecon.on_rotate,
|
||||
on_rotate = mesecon.on_rotate_horiz,
|
||||
})
|
||||
|
||||
minetest.register_node("mesecons_insulated:insulated_off", {
|
||||
@ -54,7 +54,7 @@ minetest.register_node("mesecons_insulated:insulated_off", {
|
||||
"jeija_insulated_wire_sides_off.png"
|
||||
},
|
||||
paramtype = "light",
|
||||
paramtype2 = "4dir",
|
||||
paramtype2 = "facedir",
|
||||
is_ground_content = false,
|
||||
walkable = false,
|
||||
sunlight_propagates = true,
|
||||
@ -75,7 +75,7 @@ minetest.register_node("mesecons_insulated:insulated_off", {
|
||||
rules = insulated_wire_get_rules
|
||||
}},
|
||||
on_blast = mesecon.on_blastnode,
|
||||
on_rotate = mesecon.on_rotate,
|
||||
on_rotate = mesecon.on_rotate_horiz,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
|
@ -1,4 +0,0 @@
|
||||
# textdomain: mesecons_insulated
|
||||
|
||||
### init.lua ###
|
||||
Straight Insulated Mesecon=Прямой изолированный мезекон
|
@ -1,4 +0,0 @@
|
||||
# textdomain: mesecons_insulated
|
||||
|
||||
### init.lua ###
|
||||
Straight Insulated Mesecon=Прямий ізольований месекон
|
@ -1,4 +0,0 @@
|
||||
# textdomain: mesecons_lamp
|
||||
|
||||
### init.lua ###
|
||||
Mesecon Lamp=Мезеконовая лампа
|
@ -1,4 +0,0 @@
|
||||
# textdomain: mesecons_lamp
|
||||
|
||||
### init.lua ###
|
||||
Mesecon Lamp=Месеконова лампа
|
@ -1,15 +0,0 @@
|
||||
# textdomain: mesecons_lightstone
|
||||
|
||||
### init.lua ###
|
||||
Red Lightstone=Красный светящийся камень
|
||||
Green Lightstone=Зеленый светящийся камень
|
||||
Blue Lightstone=Синий светящийся камень
|
||||
Grey Lightstone=Серый светящийся камень
|
||||
Dark Grey Lightstone=Темно-серый светящийся камень
|
||||
Yellow Lightstone=Желтый светящийся камень
|
||||
Orange Lightstone=Оранжевый светящийся камень
|
||||
White Lightstone=Белый светящийся камень
|
||||
Pink Lightstone=Розовый светящийся камень
|
||||
Magenta Lightstone=Пурпурный светящийся камень
|
||||
Cyan Lightstone=Голубой светящийся камень
|
||||
Violet Lightstone=Фиолетовый светящийся камень
|
@ -1,15 +0,0 @@
|
||||
# textdomain: mesecons_lightstone
|
||||
|
||||
### init.lua ###
|
||||
Red Lightstone=Червоний світловий камінь
|
||||
Green Lightstone=Зелений світловий камінь
|
||||
Blue Lightstone=Синій світловий камінь
|
||||
Grey Lightstone=Сірий світловий камінь
|
||||
Dark Grey Lightstone=Темно-сірий світловий камінь
|
||||
Yellow Lightstone=Жовтий світловий камінь
|
||||
Orange Lightstone=Оранжевий світловий камінь
|
||||
White Lightstone=Білий світловий камінь
|
||||
Pink Lightstone=Рожевий світловий камінь
|
||||
Magenta Lightstone=Пурпуровий світловий камінь
|
||||
Cyan Lightstone=Блакитний світловий камінь
|
||||
Violet Lightstone=Фіолетовий світловий камінь
|
@ -509,7 +509,6 @@ local function create_environment(pos, mem, event, itbl, send_warning)
|
||||
print = safe_print,
|
||||
interrupt = get_interrupt(pos, itbl, send_warning),
|
||||
digiline_send = get_digiline_send(pos, itbl, send_warning),
|
||||
sha256sum = minetest.sha256,
|
||||
string = {
|
||||
byte = string.byte,
|
||||
char = string.char,
|
||||
|
@ -1,4 +0,0 @@
|
||||
# textdomain: mesecons_luacontroller
|
||||
|
||||
### init.lua ###
|
||||
Luacontroller=Lua-контроллер
|
@ -1,4 +0,0 @@
|
||||
# textdomain: mesecons_luacontroller
|
||||
|
||||
### init.lua ###
|
||||
Luacontroller=Lua-контролер
|
@ -2,13 +2,13 @@ local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
-- Glue and fiber
|
||||
minetest.register_craftitem("mesecons_materials:glue", {
|
||||
inventory_image = "mesecons_glue.png",
|
||||
image = "mesecons_glue.png",
|
||||
on_place_on_ground = minetest.craftitem_place_item,
|
||||
description = S("Glue"),
|
||||
})
|
||||
|
||||
minetest.register_craftitem("mesecons_materials:fiber", {
|
||||
inventory_image = "mesecons_fiber.png",
|
||||
image = "mesecons_fiber.png",
|
||||
on_place_on_ground = minetest.craftitem_place_item,
|
||||
description = S("Fiber"),
|
||||
})
|
||||
@ -29,7 +29,7 @@ minetest.register_craft({
|
||||
|
||||
-- Silicon
|
||||
minetest.register_craftitem("mesecons_materials:silicon", {
|
||||
inventory_image = "mesecons_silicon.png",
|
||||
image = "mesecons_silicon.png",
|
||||
on_place_on_ground = minetest.craftitem_place_item,
|
||||
description = S("Silicon"),
|
||||
})
|
||||
|
@ -1,6 +0,0 @@
|
||||
# textdomain: mesecons_materials
|
||||
|
||||
### init.lua ###
|
||||
Glue=Клей
|
||||
Fiber=Волокно
|
||||
Silicon=Кремний
|
@ -1,6 +0,0 @@
|
||||
# textdomain: mesecons_materials
|
||||
|
||||
### init.lua ###
|
||||
Glue=Клей
|
||||
Fiber=Волокно
|
||||
Silicon=Кремній
|
@ -1,4 +0,0 @@
|
||||
# textdomain: mesecons_microcontroller
|
||||
|
||||
### init.lua ###
|
||||
Microcontroller=Микроконтроллер
|
@ -1,4 +0,0 @@
|
||||
# textdomain: mesecons_microcontroller
|
||||
|
||||
### init.lua ###
|
||||
Microcontroller=Мікроконтролер
|
@ -1,7 +0,0 @@
|
||||
# textdomain: mesecons_movestones
|
||||
|
||||
### init.lua ###
|
||||
Movestone=Ходовой камень
|
||||
Sticky Movestone=Липкий ходовой камень
|
||||
Vertical Movestone=Вертикальный ходовой камень
|
||||
Vertical Sticky Movestone=Вертикальный липкий ходовой камень
|
@ -1,7 +0,0 @@
|
||||
# textdomain: mesecons_movestones
|
||||
|
||||
### init.lua ###
|
||||
Movestone=Ходовий камінь
|
||||
Sticky Movestone=Липкий ходовий камінь
|
||||
Vertical Movestone=Вертикальний ходовий камінь
|
||||
Vertical Sticky Movestone=Вертикальний липкий ходовий камінь
|
@ -1,4 +0,0 @@
|
||||
# textdomain: mesecons_noteblock
|
||||
|
||||
### init.lua ###
|
||||
Noteblock=Нотный блок
|
@ -1,4 +0,0 @@
|
||||
# textdomain: mesecons_noteblock
|
||||
|
||||
### init.lua ###
|
||||
Noteblock=Нотний блок
|
@ -115,13 +115,27 @@ local function piston_off(pos, node)
|
||||
end
|
||||
end
|
||||
|
||||
local orientations = {
|
||||
[0] = { 4, 8},
|
||||
{13, 17},
|
||||
{10, 6},
|
||||
{20, 15},
|
||||
}
|
||||
|
||||
local function piston_orientate(pos, placer)
|
||||
mesecon.mvps_set_owner(pos, placer)
|
||||
if not placer then
|
||||
return
|
||||
end
|
||||
local pitch = math.deg(placer:get_look_vertical())
|
||||
local node = minetest.get_node(pos)
|
||||
node.param2 = core.dir_to_facedir(placer:get_look_dir(), true)
|
||||
if pitch > 55 then
|
||||
node.param2 = orientations[node.param2][1]
|
||||
elseif pitch < -55 then
|
||||
node.param2 = orientations[node.param2][2]
|
||||
else
|
||||
return
|
||||
end
|
||||
minetest.swap_node(pos, node)
|
||||
-- minetest.after, because on_placenode for unoriented piston must be processed first
|
||||
minetest.after(0, mesecon.on_placenode, pos, node)
|
||||
|
@ -1,9 +0,0 @@
|
||||
# textdomain: mesecons_pistons
|
||||
|
||||
### init.lua ###
|
||||
Piston=Поршень
|
||||
Activated Piston Base=Основание активированного поршня
|
||||
Piston Pusher=Толкающая часть поршня
|
||||
Sticky Piston=Липкий поршень
|
||||
Activated Sticky Piston Base=Основание активированного липкого поршня
|
||||
Sticky Piston Pusher=Толкающая часть липкого поршня
|
@ -1,9 +0,0 @@
|
||||
# textdomain: mesecons_pistons
|
||||
|
||||
### init.lua ###
|
||||
Piston=Поршень
|
||||
Activated Piston Base=Основа активованого поршня
|
||||
Piston Pusher=Штовхаюча частина поршня
|
||||
Sticky Piston=Липкий поршень
|
||||
Activated Sticky Piston Base=Основа активованого липкого поршня
|
||||
Sticky Piston Pusher=Штовхаюча частина липкого поршня
|
@ -1,4 +0,0 @@
|
||||
# textdomain: mesecons_powerplant
|
||||
|
||||
### init.lua ###
|
||||
Power Plant=Энергоцветок
|
@ -1,4 +0,0 @@
|
||||
# textdomain: mesecons_powerplant
|
||||
|
||||
### init.lua ###
|
||||
Power Plant=Енергоквітка
|
@ -1,5 +0,0 @@
|
||||
# textdomain: mesecons_pressureplates
|
||||
|
||||
### init.lua ###
|
||||
Wooden Pressure Plate=Деревянная нажимная пластина
|
||||
Stone Pressure Plate=Каменная нажимная пластина
|
@ -1,5 +0,0 @@
|
||||
# textdomain: mesecons_pressureplates
|
||||
|
||||
### init.lua ###
|
||||
Wooden Pressure Plate=Дерев'яна натискна плита
|
||||
Stone Pressure Plate=Кам'яна натискна плита
|
@ -1,5 +0,0 @@
|
||||
# textdomain: mesecons_random
|
||||
|
||||
### init.lua ###
|
||||
Removestone=Исчезающий камень
|
||||
Ghoststone=Призрачный камень
|
@ -1,5 +0,0 @@
|
||||
# textdomain: mesecons_random
|
||||
|
||||
### init.lua ###
|
||||
Removestone=Зникаючий камінь
|
||||
Ghoststone=Примарний камінь
|
@ -30,8 +30,6 @@ local receiver_get_rules = mesecon.horiz_rules_getter({
|
||||
{x = 0, y = 0, z = -2},
|
||||
})
|
||||
|
||||
local use_texture_alpha = minetest.features.use_texture_alpha_string_modes and "clip" or nil
|
||||
|
||||
mesecon.register_node("mesecons_receiver:receiver", {
|
||||
drawtype = "nodebox",
|
||||
paramtype = "light",
|
||||
@ -100,7 +98,6 @@ mesecon.register_node("mesecons_receiver:receiver_up", {
|
||||
groups = {dig_immediate = 3, not_in_creative_inventory = 1},
|
||||
drop = "mesecons:wire_00000000_off",
|
||||
sounds = mesecon.node_sound.default,
|
||||
use_texture_alpha = use_texture_alpha,
|
||||
}, {
|
||||
tiles = {"mesecons_wire_off.png"},
|
||||
mesecons = {conductor = {
|
||||
@ -146,7 +143,6 @@ mesecon.register_node("mesecons_receiver:receiver_down", {
|
||||
groups = {dig_immediate = 3, not_in_creative_inventory = 1},
|
||||
drop = "mesecons:wire_00000000_off",
|
||||
sounds = mesecon.node_sound.default,
|
||||
use_texture_alpha = use_texture_alpha,
|
||||
}, {
|
||||
tiles = {"mesecons_wire_off.png"},
|
||||
mesecons = {conductor = {
|
||||
|
@ -1,4 +0,0 @@
|
||||
# textdomain: mesecons_solarpanel
|
||||
|
||||
### init.lua ###
|
||||
Solar Panel=Солнечная панель
|
@ -1,4 +0,0 @@
|
||||
# textdomain: mesecons_solarpanel
|
||||
|
||||
### init.lua ###
|
||||
Solar Panel=Сонячна панель
|
@ -1,4 +0,0 @@
|
||||
# textdomain: mesecons_stickyblocks
|
||||
|
||||
### init.lua ###
|
||||
Sticky Block=Липкий блок
|
@ -1,4 +0,0 @@
|
||||
# textdomain: mesecons_stickyblocks
|
||||
|
||||
### init.lua ###
|
||||
Sticky Block=Липкий блок
|
@ -1,4 +0,0 @@
|
||||
# textdomain: mesecons_switch
|
||||
|
||||
### init.lua ###
|
||||
Switch=Выключатель
|
@ -1,4 +0,0 @@
|
||||
# textdomain: mesecons_switch
|
||||
|
||||
### init.lua ###
|
||||
Switch=Перемикач
|
@ -1,4 +0,0 @@
|
||||
# textdomain: mesecons_torch
|
||||
|
||||
### init.lua ###
|
||||
Mesecon Torch=Мезе-факел
|
@ -1,4 +0,0 @@
|
||||
# textdomain: mesecons_torch
|
||||
|
||||
### init.lua ###
|
||||
Mesecon Torch=Месескип
|
@ -1,4 +0,0 @@
|
||||
# textdomain: mesecons_walllever
|
||||
|
||||
### init.lua ###
|
||||
Lever=Рычаг
|
@ -1,4 +0,0 @@
|
||||
# textdomain: mesecons_walllever
|
||||
|
||||
### init.lua ###
|
||||
Lever=Важіль
|
@ -1,4 +0,0 @@
|
||||
# textdomain: mesecons_wires
|
||||
|
||||
### init.lua ###
|
||||
Mesecon=Мезекон
|
@ -1,4 +0,0 @@
|
||||
# textdomain: mesecons_wires
|
||||
|
||||
### init.lua ###
|
||||
Mesecon=Месекон
|
@ -1,5 +1,3 @@
|
||||
name = mesecons
|
||||
description = Mod that implements a ton of items related to digital circuitry.
|
||||
min_minetest_version = 5.7.0
|
||||
author = Jeija
|
||||
title = Mesecons
|
||||
min_minetest_version = 5.0
|
||||
|
@ -11,11 +11,6 @@ mesecon.cooldown_granularity (Cooldown step length) float 0.5 0.0 1.0
|
||||
mesecon.blinky_plant_interval (Plant blinking interval) int 3 1 5
|
||||
|
||||
|
||||
[mesecons_commandblock]
|
||||
|
||||
mesecon.commandblock_param_maxlen (Maximum command parameter length) int 10000 100 1000000
|
||||
|
||||
|
||||
[mesecons_detector]
|
||||
|
||||
mesecon.detector_radius (Player detector scanning radius) int 6 3 16
|
||||
|
Reference in New Issue
Block a user