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
+24
View File
@@ -0,0 +1,24 @@
Sounds and textures are under various licenses, see the license.txt file in the /sounds and /textures directories for details.
License for Code
----------------
Copyright (C) 2018 FaceDeer
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.
+221
View File
@@ -0,0 +1,221 @@
local modname = minetest.get_current_modname()
local S = minetest.get_translator(modname)
local oil_desc
local oil_usage
if minetest.get_modpath("doc") then
oil_desc = S("Liquid hydrocarbons formed from the detritus of long dead plants and animals processed by heat and pressure deep within the earth.")
oil_usage = S("Buckets of oil can be used as fuel.")
end
local oil_sounds = {footstep = {name = "oil_oil_footstep", gain = 0.2}}
local water_source = df_dependencies.node_name_water_source
local water_flowing = df_dependencies.node_name_water_flowing
local bucket_empty = df_dependencies.node_name_bucket_empty
minetest.register_node("oil:oil_source", {
description = S("Oil"),
_doc_items_longdesc = oil_desc,
_doc_items_usagehelp = oil_usage,
drawtype = "liquid",
tiles = {
{
name = "oil_oil_source_animated.png",
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 2.0,
},
},
},
special_tiles = {
-- New-style water source material (mostly unused)
{
name = "oil_oil_source_animated.png",
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 2.0,
},
backface_culling = false,
},
},
alpha = 255,
paramtype = "light",
walkable = false,
pointable = false,
diggable = false,
sunlight_propagates = false,
buildable_to = true,
is_ground_content = false,
drop = "",
drowning = 1,
liquidtype = "source",
liquid_range = 3,
liquid_renewable = false,
liquid_alternative_flowing = "oil:oil_flowing",
liquid_alternative_source = "oil:oil_source",
liquid_viscosity = 1,
post_effect_color = {a = 250, r = 0, g = 0, b = 0},
groups = {liquid = 1, dig_by_piston=1},
sounds = oil_sounds,
_mcl_blast_resistance = 100,
_mcl_hardness = -1,
})
minetest.register_node("oil:oil_flowing", {
description = S("Flowing Oil"),
_doc_items_longdesc = oil_desc,
_doc_items_usagehelp = oil_usage,
drawtype = "flowingliquid",
tiles = {"oil_oil.png"},
special_tiles = {
{
name = "oil_oil_flowing_animated.png",
backface_culling = false,
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 4.0,
},
},
{
name = "oil_oil_flowing_animated.png",
backface_culling = true,
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 4.0,
},
},
},
alpha = 255,
paramtype = "light",
paramtype2 = "flowingliquid",
walkable = false,
pointable = false,
diggable = false,
buildable_to = true,
is_ground_content = false,
sunlight_propagates = false,
drop = "",
drowning = 1,
liquidtype = "flowing",
liquid_range = 3,
liquid_renewable = false,
liquid_alternative_flowing = "oil:oil_flowing",
liquid_alternative_source = "oil:oil_source",
liquid_viscosity = 1,
post_effect_color = {a = 250, r = 0, g = 0, b = 0},
groups = {liquid = 1, not_in_creative_inventory = 1, dig_by_piston=1},
sounds = oil_sounds,
_mcl_blast_resistance = 100,
_mcl_hardness = -1,
})
minetest.register_craft({
type = "fuel",
recipe = "oil:oil_source",
burntime = 370, -- same as coalblock
})
if minetest.get_modpath("dynamic_liquid") then
dynamic_liquid.liquid_abm("oil:oil_source", "oil:oil_flowing", 2)
-- not using default liquid_abm to prevent oil from churning around once it's on the surface of water - we want slicks to remain cohesive and static
minetest.register_abm({
label = "oil:oil floats",
nodenames = {"oil:oil_source"},
neighbors = {water_source},
interval = 1.0,
chance = 1,
catch_up = true,
action = function(pos, node)
local next_pos = {x=pos.x, y=pos.y+1, z=pos.z}
local next_node = minetest.get_node(next_pos)
local above_name = next_node.name
if above_name == water_source then
minetest.swap_node(next_pos, {name="oil:oil_source"})
minetest.swap_node(pos, next_node)
else
next_pos.y = pos.y
local displacement
if math.random() > 0.5 then displacement = 1 else displacement = -1 end
if math.random() > 0.5 then
next_pos.x = next_pos.x + displacement
else
next_pos.z = next_pos.z + displacement
end
next_node = minetest.get_node(next_pos)
if next_node.name == water_source then
if above_name ~= "air" then
-- we're not on the surface, so try any lateral movement
minetest.swap_node(next_pos, {name="oil:oil_source"})
minetest.swap_node(pos, next_node)
elseif math.random() < 0.1 then -- expensive and not commonly needed, so don't try this often
--Otherwise, count neighboring oil nodes and if we're increasing the number of neighboring oil nodes by moving then do so.
local oil_neighbors_here, here_count = minetest.find_nodes_in_area({x=pos.x-1, y=pos.y, z=pos.z-1}, {x=pos.x+1, y=pos.y, z=pos.z+1}, {"oil:oil_source"})
local oil_neighbors_there, there_count = minetest.find_nodes_in_area({x=next_pos.x-1, y=next_pos.y, z=next_pos.z-1}, {x=next_pos.x+1, y=next_pos.y, z=next_pos.z+1}, {"oil:oil_source"})
if there_count["oil:oil_source"] >= here_count["oil:oil_source"] then
minetest.swap_node(next_pos, {name="oil:oil_source"})
minetest.swap_node(pos, next_node)
end
end
end
end
end,
})
-- If oil is wandering around on top of a layer of water that isn't full, drop it down
-- into the water layer. This helps drive the system toward a more static state with a flat-looking surface.
minetest.register_abm({
label = "oil:oil settles",
nodenames = {"oil:oil_source"},
neighbors = {water_flowing},
interval = 1.0,
chance = 1,
catch_up = true,
action = function(pos, node)
local next_pos = {x=pos.x, y=pos.y-1, z=pos.z}
local next_node = minetest.get_node(next_pos)
if next_node.name == water_flowing then
minetest.swap_node(next_pos, {name="oil:oil_source"})
minetest.swap_node(pos, next_node)
end
end,
})
end
if df_dependencies.bucket_register_liquid then
df_dependencies.bucket_register_liquid(
"oil:oil_source",
"oil:oil_flowing",
"oil:oil_bucket",
"oil_bucket.png",
S("Oil Bucket")
)
minetest.register_craft({
type = "fuel",
recipe = "oil:oil_bucket",
burntime = 370, -- same as coalblock
replacements = {{"oil:oil_bucket", bucket_empty}},
})
if minetest.get_modpath("basic_materials") then
minetest.register_craft({
type = "cooking",
output = "basic_materials:paraffin",
recipe = "oil:oil_bucket",
cooktime = 5,
replacements = {{"oil:oil_bucket", bucket_empty}},
})
end
end
+17
View File
@@ -0,0 +1,17 @@
# textdomain: oil
### init.lua ###
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
Buckets of oil can be used as fuel.=Eimer Öl können als Kraftstoff verwendet werden.
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
Flowing Oil=Fließendes Öl
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
Liquid hydrocarbons formed from the detritus of long dead plants and animals processed by heat and pressure deep within the earth.=Flüssige Kohlenwasserstoffe, die aus dem Abfall langer toter Pflanzen und Tiere entstehen, die durch Hitze und Druck tief in der Erde verarbeitet werden.
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
Oil=Öl
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
Oil Bucket=Öleimer
+17
View File
@@ -0,0 +1,17 @@
# textdomain: oil
### init.lua ###
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
Buckets of oil can be used as fuel.=I secchi d'olio possono essere usati come carburante.
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
Flowing Oil=Olio che scorre
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
Liquid hydrocarbons formed from the detritus of long dead plants and animals processed by heat and pressure deep within the earth.=Idrocarburi liquidi formati dai detriti di piante e animali morti da tempo lavorati dal calore e dalla pressione nelle profondità della terra.
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
Oil=Olio
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
Oil Bucket=Secchio d'olio
+12
View File
@@ -0,0 +1,12 @@
# textdomain: oil
### init.lua ###
Buckets of oil can be used as fuel.=
Flowing Oil=
Liquid hydrocarbons formed from the detritus of long dead plants and animals processed by heat and pressure deep within the earth.=
Oil=
Oil Bucket=
+4
View File
@@ -0,0 +1,4 @@
name = oil
description = Oil liquid type
depends = df_dependencies
optional_depends = dynamic_liquid, doc, basic_materials
+6
View File
@@ -0,0 +1,6 @@
oil footstep 1-4 extracted from https://freesound.org/people/VlatkoBlazek/sounds/318592/
Released under the CC BY 3.0 license by:
Vlatko Blažek
Varaždin, Croatia
e-mail: vlatkoblazek@gmail.com
http://www.freesound.org/people/VlatkoBlazek/
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+3
View File
@@ -0,0 +1,3 @@
All textures not specifically listed here are created by FaceDeer and released under both the MIT license and under the Creative Commons CC0 license.
oil_bucket and oil liquid textures modified from default mod's bucket and water textures
Binary file not shown.

After

Width:  |  Height:  |  Size: 214 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 273 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB