many worldgen mods and gonna try technic now

This commit is contained in:
2026-09-13 03:30:48 -06:00
parent bac6ac94a3
commit 548749cb1a
4811 changed files with 163271 additions and 1 deletions
+20
View File
@@ -0,0 +1,20 @@
Minetest Game mod: ice_sprites
============================
Adds ice sprites, which can then be caught in a net (via the fireflies mod) and placed in bottles to provide light (via the vessels mod).
Authors of source code
----------------------
Shara RedCat (MIT)
Authors of media (textures)
---------------------------
Shara RedCat (CC BY-SA 3.0):
fireflies_firefly.png
fireflies_firefly_animated.png
fireflies_bottle.png
fireflies_bottle_animated.png
fireflies_bottle.png and fireflies_bottle_animated.png are
modified from a texture by Vanessa Ezekowitz (CC BY-SA 3.0)
converted to ice_sprite textures by FaceDeer, who simply changed the yellow dots to blue.
+182
View File
@@ -0,0 +1,182 @@
ice_sprites = {}
local modname = minetest.get_current_modname()
local S = minetest.get_translator(modname)
local ice_sprite_desc
local ice_sprite_usage
local ice_sprite_bottle_desc
local ice_sprite_bottle_usage
local node_name_glass_bottle = df_dependencies.node_name_glass_bottle
local node_name_firefly = df_dependencies.node_name_fireflies
if minetest.get_modpath("doc") then
ice_sprite_desc = S("Ice sprites are mysterious glowing insect-like creatures that appear to be made partly of crystallized water.")
if node_name_glass_bottle then
if node_name_firefly then
ice_sprite_usage = S("Ice sprites can be caught with nets and placed in bottles as sources of light and freezing cold.")
end
ice_sprite_bottle_desc = S("A bottle containing a captured ice sprite.")
ice_sprite_bottle_usage = S("Ice sprites radiate both light and freezing cold.")
end
end
minetest.register_node("ice_sprites:ice_sprite", {
description = S("Ice Sprite"),
_doc_items_longdesc = ice_sprite_desc,
_doc_items_usagehelp = ice_sprite_usage,
drawtype = "plantlike",
tiles = {{
name = "ice_sprites_ice_sprite_animated.png",
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 1.5
},
}},
inventory_image = "ice_sprites_ice_sprite.png",
wield_image = "ice_sprites_ice_sprite.png",
waving = 1,
paramtype = "light",
sunlight_propagates = true,
buildable_to = true,
is_ground_content = false,
walkable = false,
groups = {catchable = 1, puts_out_fire = 1, cools_lava = 1, freezes_water = 1},
selection_box = {
type = "fixed",
fixed = {-0.1, -0.1, -0.1, 0.1, 0.1, 0.1},
},
light_source = 6,
floodable = true,
_mcl_blast_resistance = 0.1,
_mcl_hardness = 0.1,
on_place = function(itemstack, placer, pointed_thing)
local player_name = placer:get_player_name()
local pos = pointed_thing.above
if not minetest.is_protected(pos, player_name) and
not minetest.is_protected(pointed_thing.under, player_name) and
minetest.get_node(pos).name == "air" then
minetest.set_node(pos, {name = "ice_sprites:ice_sprite"})
minetest.get_node_timer(pos):start(1)
itemstack:take_item()
end
return itemstack
end,
on_timer = function(pos, elapsed)
if minetest.get_node_light(pos) > 11 or math.random() > 0.5 then
minetest.set_node(pos, {name = "ice_sprites:hidden_ice_sprite"})
end
minetest.get_node_timer(pos):start(math.random(20,40))
end
})
minetest.register_node("ice_sprites:hidden_ice_sprite", {
description = S("Hidden Ice Sprite"),
drawtype = "airlike",
inventory_image = "ice_sprites_ice_sprite.png",
wield_image = "ice_sprites_ice_sprite.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
is_ground_content = false,
pointable = false,
diggable = false,
buildable_to = true,
drop = "ice_sprites:ice_sprite",
groups = {not_in_creative_inventory = 1},
floodable = true,
_mcl_blast_resistance = 0.1,
_mcl_hardness = 0.1,
on_place = function(itemstack, placer, pointed_thing)
local player_name = placer:get_player_name()
local pos = pointed_thing.above
if not minetest.is_protected(pos, player_name) and
not minetest.is_protected(pointed_thing.under, player_name) and
minetest.get_node(pos).name == "air" then
minetest.set_node(pos, {name = "ice_sprites:hidden_ice_sprite"})
minetest.get_node_timer(pos):start(1)
itemstack:take_item()
end
return itemstack
end,
on_timer = function(pos, elapsed)
if minetest.get_node_light(pos) <= 11 then
minetest.set_node(pos, {name = "ice_sprites:ice_sprite"})
end
minetest.get_node_timer(pos):start(math.random(20,40))
end
})
-- ice sprite in a bottle
if node_name_glass_bottle then
local glass_sounds
if minetest.get_modpath("df_dependencies") then
glass_sounds = df_dependencies.sound_glass
end
minetest.register_node("ice_sprites:ice_sprite_bottle", {
description = S("Ice Sprite in a Bottle"),
_doc_items_longdesc = ice_sprite_bottle_desc,
_doc_items_usagehelp = ice_sprite_bottle_usage,
inventory_image = "ice_sprites_bottle.png",
wield_image = "ice_sprites_bottle.png",
tiles = {{
name = "ice_sprites_bottle_animated.png",
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 1.5
},
}},
drawtype = "plantlike",
paramtype = "light",
sunlight_propagates = true,
light_source = 9,
is_ground_content = false,
walkable = false,
groups = {dig_immediate = 3, attached_node = 1, puts_out_fire = 1, cools_lava = 1, freezes_water = 1, material_glass=1},
selection_box = {
type = "fixed",
fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25}
},
_mcl_blast_resistance = 0.5,
_mcl_hardness = 0.5,
sounds = glass_sounds(),
on_rightclick = function(pos, node, player, itemstack, pointed_thing)
local lower_pos = {x = pos.x, y = pos.y + 1, z = pos.z}
if minetest.is_protected(pos, player:get_player_name()) or
minetest.get_node(lower_pos).name ~= "air" then
return
end
local upper_pos = {x = pos.x, y = pos.y + 2, z = pos.z}
local ice_sprite_pos
if not minetest.is_protected(upper_pos, player:get_player_name()) and
minetest.get_node(upper_pos).name == "air" then
ice_sprite_pos = upper_pos
elseif not minetest.is_protected(lower_pos, player:get_player_name()) then
ice_sprite_pos = lower_pos
end
if ice_sprite_pos then
minetest.set_node(pos, {name = node_name_glass_bottle})
minetest.set_node(ice_sprite_pos, {name = "ice_sprites:ice_sprite"})
minetest.get_node_timer(ice_sprite_pos):start(1)
end
end
})
minetest.register_craft( {
type = "shapeless",
output = "ice_sprites:ice_sprite_bottle",
recipe = {"ice_sprites:ice_sprite", node_name_glass_bottle}
})
end
+58
View File
@@ -0,0 +1,58 @@
License of source code
----------------------
The MIT License (MIT)
Copyright (c) 2018 Shara RedCat
Permission is hereby granted, free of charge, to any person obtaining a copy of this
software and associated documentation files (the "Software"), to deal in the Software
without restriction, including without limitation the rights to use, copy, modify, merge,
publish, distribute, sublicense, and/or sell copies of the Software, and to permit
persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or
substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
For more details:
https://opensource.org/licenses/MIT
Licenses of media (textures)
----------------------------
Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)
Copyright (C) 2018 Shara RedCat
You are free to:
Share — copy and redistribute the material in any medium or format.
Adapt — remix, transform, and build upon the material for any purpose, even commercially.
The licensor cannot revoke these freedoms as long as you follow the license terms.
Under the following terms:
Attribution — You must give appropriate credit, provide a link to the license, and
indicate if changes were made. You may do so in any reasonable manner, but not in any way
that suggests the licensor endorses you or your use.
ShareAlike — If you remix, transform, or build upon the material, you must distribute
your contributions under the same license as the original.
No additional restrictions — You may not apply legal terms or technological measures that
legally restrict others from doing anything the license permits.
Notices:
You do not have to comply with the license for elements of the material in the public
domain or where your use is permitted by an applicable exception or limitation.
No warranties are given. The license may not give you all of the permissions necessary
for your intended use. For example, other rights such as publicity, privacy, or moral
rights may limit how you use the material.
For more details:
http://creativecommons.org/licenses/by-sa/3.0/
@@ -0,0 +1,21 @@
# textdomain: ice_sprites
### init.lua ###
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
A bottle containing a captured ice sprite.=Eine Flasche mit einem erbeuteten Eisgeist.
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
Hidden Ice Sprite=Verstecktes Eis-Sprite
Ice Sprite=
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
Ice Sprite in a Bottle=Ice Sprite in einer Flasche
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
Ice sprites are mysterious glowing insect-like creatures that appear to be made partly of crystallized water.=Eisgeister sind mysteriös leuchtende insektenähnliche Wesen, die teilweise aus kristallisiertem Wasser zu bestehen scheinen.
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
Ice sprites can be caught with nets and placed in bottles as sources of light and freezing cold.=Eisgeister können mit Netzen aufgefangen und als Lichtquelle und eiskalte in Flaschen abgefüllt werden.
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
Ice sprites radiate both light and freezing cold.=Eisgeister strahlen sowohl Licht als auch eiskalt aus.
@@ -0,0 +1,21 @@
# textdomain: ice_sprites
### init.lua ###
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
A bottle containing a captured ice sprite.=Una bottiglia contenente uno sprite di ghiaccio catturato.
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
Hidden Ice Sprite=Sprite di ghiaccio nascosto
Ice Sprite=
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
Ice Sprite in a Bottle=Ice Sprite in una bottiglia
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
Ice sprites are mysterious glowing insect-like creatures that appear to be made partly of crystallized water.=Gli sprite del ghiaccio sono misteriose creature luminose simili a insetti che sembrano essere costituite in parte da acqua cristallizzata.
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
Ice sprites can be caught with nets and placed in bottles as sources of light and freezing cold.=Gli sprite del ghiaccio possono essere catturati con reti e posti in bottiglie come fonti di luce e freddo gelido.
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
Ice sprites radiate both light and freezing cold.=Gli sprite del ghiaccio irradiano luce e freddo gelido.
@@ -0,0 +1,15 @@
# textdomain: ice_sprites
### init.lua ###
A bottle containing a captured ice sprite.=
Hidden Ice Sprite=
Ice Sprite=
Ice Sprite in a Bottle=
Ice sprites are mysterious glowing insect-like creatures that appear to be made partly of crystallized water.=
Ice sprites can be caught with nets and placed in bottles as sources of light and freezing cold.=
Ice sprites radiate both light and freezing cold.=
+4
View File
@@ -0,0 +1,4 @@
name = ice_sprites
description = Glowing blue firefly-like nodes
depends =
optional_depends = df_dependencies, doc
Binary file not shown.

After

Width:  |  Height:  |  Size: 173 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 B