add mesecons mods
This commit is contained in:
parent
71a53fbef8
commit
9861939223
721 changed files with 19937 additions and 1 deletions
15
mods/mesecons/mesecons_noteblock/README.txt
Normal file
15
mods/mesecons/mesecons_noteblock/README.txt
Normal file
|
@ -0,0 +1,15 @@
|
|||
Credits of sound files:
|
||||
|
||||
Note: Most sounds have not been used verbatim, but tweaked a little to be more suitable for the noteblock mod.
|
||||
|
||||
* mesecons_noteblock_litecrash.ogg
|
||||
* License: CC BY 3.0
|
||||
* by freesound.org user ani_music
|
||||
* Source: https://freesound.org/people/ani_music/sounds/219612/
|
||||
|
||||
Everything else:
|
||||
Created by Mesecons authors, licensed CC BY 3.0.
|
||||
|
||||
--------------------
|
||||
License links:
|
||||
* CC BY 3.0: http://creativecommons.org/licenses/by/3.0/
|
|
@ -0,0 +1,13 @@
|
|||
This effector makes a sound if powered and can be used for making music. Normally it makes piano sounds. The sound frequency can be changed by punching the block (only works for piano). There are some special sounds that depend on the block below:
|
||||
<table colspace="5">
|
||||
<tr><th>Block Below</th><th>Effect</th></tr>
|
||||
<tr><td>Glass or Obsidian Glass</td><td>Hi-hat</td></tr>
|
||||
<tr><td>Any stone</td><td>Kick</td></tr>
|
||||
<tr><td>Chest or Locked Chest</td><td>Snare</td></tr>
|
||||
<tr><td>Any tree</td><td>Crash</td></tr>
|
||||
<tr><td>Any wooden planks</td><td>Lite Crash</td></tr>
|
||||
<tr><td>Coal Block</td><td>Explosion sound (fixed pitch)</td></tr>
|
||||
<tr><td>Lava Source</td><td>Fire sound (fixed pitch)</td></tr>
|
||||
<tr><td>Steel Block</td><td>Piano (high pitch, one octave higher than normal)</td></tr>
|
||||
<tr><td>Any other block</td><td>Piano (low pitch)</td></tr>
|
||||
</table>
|
BIN
mods/mesecons/mesecons_noteblock/doc/noteblock/preview.png
Normal file
BIN
mods/mesecons/mesecons_noteblock/doc/noteblock/preview.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 113 KiB |
BIN
mods/mesecons/mesecons_noteblock/doc/noteblock/recipe.png
Normal file
BIN
mods/mesecons/mesecons_noteblock/doc/noteblock/recipe.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 11 KiB |
120
mods/mesecons/mesecons_noteblock/init.lua
Normal file
120
mods/mesecons/mesecons_noteblock/init.lua
Normal file
|
@ -0,0 +1,120 @@
|
|||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
minetest.register_node("mesecons_noteblock:noteblock", {
|
||||
description = S("Noteblock"),
|
||||
tiles = {"mesecons_noteblock.png"},
|
||||
is_ground_content = false,
|
||||
groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2},
|
||||
on_punch = function(pos, node, puncher) -- change sound when punched
|
||||
if minetest.is_protected(pos, puncher and puncher:get_player_name() or "") then
|
||||
return
|
||||
end
|
||||
|
||||
node.param2 = (node.param2+1)%12
|
||||
mesecon.noteblock_play(pos, node.param2)
|
||||
minetest.set_node(pos, node)
|
||||
end,
|
||||
sounds = mesecon.node_sound.wood,
|
||||
mesecons = {effector = { -- play sound when activated
|
||||
action_on = function(pos, node)
|
||||
mesecon.noteblock_play(pos, node.param2)
|
||||
end
|
||||
}},
|
||||
place_param2 = 11, -- initialize at C note
|
||||
on_blast = mesecon.on_blastnode,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "mesecons_noteblock:noteblock 1",
|
||||
recipe = {
|
||||
{"group:wood", "group:wood", "group:wood"},
|
||||
{"group:mesecon_conductor_craftable", "mesecons_gamecompat:steel_ingot", "group:mesecon_conductor_craftable"},
|
||||
{"group:wood", "group:wood", "group:wood"},
|
||||
}
|
||||
})
|
||||
|
||||
local soundnames = {
|
||||
[0] = "mesecons_noteblock_csharp",
|
||||
"mesecons_noteblock_d",
|
||||
"mesecons_noteblock_dsharp",
|
||||
"mesecons_noteblock_e",
|
||||
"mesecons_noteblock_f",
|
||||
"mesecons_noteblock_fsharp",
|
||||
"mesecons_noteblock_g",
|
||||
"mesecons_noteblock_gsharp",
|
||||
|
||||
"mesecons_noteblock_a",
|
||||
"mesecons_noteblock_asharp",
|
||||
"mesecons_noteblock_b",
|
||||
"mesecons_noteblock_c" -- << noteblock is initialized here
|
||||
}
|
||||
|
||||
local node_sounds = {}
|
||||
for alias, sound in pairs({
|
||||
["mesecons_gamecompat:lava_source"] = mesecon.sound_name.fire,
|
||||
["mesecons_gamecompat:chest"] = "mesecons_noteblock_snare",
|
||||
["mesecons_gamecompat:chest_locked"] = "mesecons_noteblock_snare",
|
||||
["mesecons_gamecompat:coalblock"] = mesecon.sound_name.explode,
|
||||
["mesecons_gamecompat:glass"] = "mesecons_noteblock_hihat",
|
||||
["mesecons_gamecompat:obsidian_glass"] = "mesecons_noteblock_hihat",
|
||||
}) do
|
||||
local nodename = minetest.registered_aliases[alias]
|
||||
if nodename then
|
||||
node_sounds[nodename] = sound
|
||||
end
|
||||
end
|
||||
|
||||
local node_sounds_group = {
|
||||
["stone"] = "mesecons_noteblock_kick",
|
||||
["tree"] = "mesecons_noteblock_crash",
|
||||
["wood"] = "mesecons_noteblock_litecrash",
|
||||
}
|
||||
|
||||
local steelblock_nodename = minetest.registered_aliases["mesecons_gamecompat:steelblock"]
|
||||
mesecon.noteblock_play = function(pos, param2)
|
||||
pos.y = pos.y-1
|
||||
local nodeunder = minetest.get_node(pos).name
|
||||
local soundname = node_sounds[nodeunder]
|
||||
local use_pitch = true
|
||||
local pitch
|
||||
-- Special sounds
|
||||
if not soundname then
|
||||
for k,v in pairs(node_sounds_group) do
|
||||
local g = minetest.get_item_group(nodeunder, k)
|
||||
if g ~= 0 then
|
||||
soundname = v
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
-- Piano
|
||||
if not soundname then
|
||||
soundname = soundnames[param2]
|
||||
if not soundname then
|
||||
minetest.log("error", "[mesecons_noteblock] No soundname found, test param2")
|
||||
return
|
||||
end
|
||||
if nodeunder == steelblock_nodename then
|
||||
soundname = soundname.. 2
|
||||
end
|
||||
use_pitch = false
|
||||
end
|
||||
-- Disable pitch for fire and explode because they'd sound too odd
|
||||
if soundname == "fire_fire" or soundname == "tnt_explode" then
|
||||
use_pitch = false
|
||||
end
|
||||
if use_pitch then
|
||||
-- Calculate pitch
|
||||
-- Adding 1 to param2 because param2=11 is *lowest* pitch sound
|
||||
local val = (param2+1)%12
|
||||
pitch = 2^((val-6)/12)
|
||||
end
|
||||
pos.y = pos.y+1
|
||||
if soundname == "fire_fire" then
|
||||
-- Smoothly fade out fire sound
|
||||
local handle = minetest.sound_play(soundname, {pos = pos, loop = true})
|
||||
minetest.after(3.0, minetest.sound_fade, handle, -1.5, 0.0)
|
||||
else
|
||||
minetest.sound_play(soundname, {pos = pos, pitch = pitch}, true)
|
||||
end
|
||||
end
|
|
@ -0,0 +1,2 @@
|
|||
# textdomain: mesecons_noteblock
|
||||
Noteblock=Notenblock
|
|
@ -0,0 +1,4 @@
|
|||
# textdomain: mesecons_noteblock
|
||||
|
||||
### init.lua ###
|
||||
Noteblock=Sonbloko
|
|
@ -0,0 +1,4 @@
|
|||
# textdomain: mesecons_noteblock
|
||||
|
||||
### init.lua ###
|
||||
Noteblock=Bloc de musique
|
|
@ -0,0 +1,4 @@
|
|||
# textdomain: mesecons_noteblock
|
||||
|
||||
### init.lua ###
|
||||
Noteblock=Нотный блок
|
|
@ -0,0 +1,4 @@
|
|||
# textdomain: mesecons_noteblock
|
||||
|
||||
### init.lua ###
|
||||
Noteblock=Нотний блок
|
4
mods/mesecons/mesecons_noteblock/locale/template.txt
Normal file
4
mods/mesecons/mesecons_noteblock/locale/template.txt
Normal file
|
@ -0,0 +1,4 @@
|
|||
# textdomain: mesecons_noteblock
|
||||
|
||||
### init.lua ###
|
||||
Noteblock=
|
2
mods/mesecons/mesecons_noteblock/mod.conf
Normal file
2
mods/mesecons/mesecons_noteblock/mod.conf
Normal file
|
@ -0,0 +1,2 @@
|
|||
name = mesecons_noteblock
|
||||
depends = mesecons, mesecons_gamecompat
|
BIN
mods/mesecons/mesecons_noteblock/sounds/mesecons_noteblock_a.ogg
Normal file
BIN
mods/mesecons/mesecons_noteblock/sounds/mesecons_noteblock_a.ogg
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
mods/mesecons/mesecons_noteblock/sounds/mesecons_noteblock_b.ogg
Normal file
BIN
mods/mesecons/mesecons_noteblock/sounds/mesecons_noteblock_b.ogg
Normal file
Binary file not shown.
Binary file not shown.
BIN
mods/mesecons/mesecons_noteblock/sounds/mesecons_noteblock_c.ogg
Normal file
BIN
mods/mesecons/mesecons_noteblock/sounds/mesecons_noteblock_c.ogg
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
mods/mesecons/mesecons_noteblock/sounds/mesecons_noteblock_d.ogg
Normal file
BIN
mods/mesecons/mesecons_noteblock/sounds/mesecons_noteblock_d.ogg
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
mods/mesecons/mesecons_noteblock/sounds/mesecons_noteblock_e.ogg
Normal file
BIN
mods/mesecons/mesecons_noteblock/sounds/mesecons_noteblock_e.ogg
Normal file
Binary file not shown.
Binary file not shown.
BIN
mods/mesecons/mesecons_noteblock/sounds/mesecons_noteblock_f.ogg
Normal file
BIN
mods/mesecons/mesecons_noteblock/sounds/mesecons_noteblock_f.ogg
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
mods/mesecons/mesecons_noteblock/sounds/mesecons_noteblock_g.ogg
Normal file
BIN
mods/mesecons/mesecons_noteblock/sounds/mesecons_noteblock_g.ogg
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
mods/mesecons/mesecons_noteblock/textures/mesecons_noteblock.png
Normal file
BIN
mods/mesecons/mesecons_noteblock/textures/mesecons_noteblock.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 836 B |
Loading…
Add table
Add a link
Reference in a new issue