mods that hopefully work for a TechAge-based pack

This commit is contained in:
2026-09-09 06:27:51 -06:00
parent 4e6b08d194
commit c27db2a537
6234 changed files with 375578 additions and 0 deletions
+355
View File
@@ -0,0 +1,355 @@
-- translation and get mod path
local S = minetest.get_translator("mob_horse")
local MP = minetest.get_modpath(minetest.get_current_modname()) .. "/"
-- horse shoes (speed, jump, brake/reverse speed, overlay texture)
local shoes = {
["mobs:horseshoe_steel"] = {7, 4, 2, "mobs_horseshoe_steelo.png"},
["mobs:horseshoe_bronze"] = {7, 4, 4, "mobs_horseshoe_bronzeo.png"},
["mobs:horseshoe_mese"] = {9, 5, 8, "mobs_horseshoe_meseo.png"},
["mobs:horseshoe_diamond"] = {10, 6, 6, "mobs_horseshoe_diamondo.png"},
["mobs:horseshoe_crystal"] = {11, 6, 9, "mobs_horseshoe_crystalo.png"}
}
-- rideable horse
mobs:register_mob("mob_horse:horse", {
description = S("Horse"),
type = "animal",
visual = "mesh",
visual_size = {x = 1.20, y = 1.20},
mesh = "mobs_horse.x",
collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.25, 0.4},
animation = {
speed_normal = 15,
stand_start = 25, stand_end = 25, -- stand still
stand2_start = 25, stand2_end = 50, stand2_loop = false, -- head to side
walk_start = 75, walk_end = 100,
run_start = 75, run_end = 100, run_speed = 45,
punch_start = 55, punch_end = 75, punch_speed = 35 -- rear up
},
textures = {
{"mobs_horse.png"}, -- textures by Mjollna
{"mobs_horsepeg.png"},
{"mobs_horseara.png"}
},
fear_height = 3,
--runaway = true,
fly = false,
walk_chance = 60,
view_range = 7,
follow = {
"farming:wheat", "default:apple", "farming:oat",
"farming:barley", "farming:corn"
},
passive = false, attack_type = "dogfight", reach = 2.5, damage = 3,
attack_chance = 95,
attack_monsters = true,
hp_min = 15,
hp_max = 23,
armor = 100,
lava_damage = 5,
fire_damage = 4,
fall_damage = 1,
water_damage = 0,
makes_footstep_sound = true,
sounds = {
random = "mob_horse",
death = "mob_horse_whinny",
attack = "mob_horse_whinny"
},
drops = {
{name = "mobs:leather", chance = 1, min = 0, max = 2},
{name = "mobs:meat_raw", chance = 1, min = 1, max = 2}
},
do_mount_action = function(self, dtime) -- holding sneak and LMB while riding horse
-- only allowed to continue after 5 seconds
self.neigh_timer = (self.neigh_timer or 0)
if (os.time() - self.neigh_timer) < 5 then return end
core.sound_play("mob_horse_whinny", {pos = self.object:get_pos()}, true)
self.neigh_timer = os.time()
end,
do_custom = function(self, dtime)
-- set required values if not already present
if not self.max_speed_forward then
self.max_speed_forward = 6
self.max_speed_reverse = 2
self.accel = 6
self.driver_attach_at = {x = 0, y = 10, z = -2}
self.driver_eye_offset = {x = 0, y = 10 + 3, z = 0}
self.driver_scale = {x = 0.8, y = 0.8} -- shrink driver to fit model
-- self.alt_turn = true -- uses left and right keys to turn horse instead
end
-- if driver present allow control of horse
if self.driver then
mobs.drive(self, "walk", "stand", false, dtime)
return false -- skip rest of mob functions
end
end,
on_die = function(self, pos)
-- detach player from horse properly
if self.driver then
mobs.detach(self.driver, {x = 1, y = 0, z = 1})
end
-- drop saddle if found
if self.saddle then
minetest.add_item(pos, "mobs:saddle")
end
-- drop any horseshoes added
if self.shoed then
minetest.add_item(pos, self.shoed)
end
end,
on_rightclick = function(self, clicker)
-- make sure player is clicking
if not clicker or not clicker:is_player() then return end
-- feed, tame or heal horse
if mobs:feed_tame(self, clicker, 10, true, true) then return end
-- applying protection rune
if mobs:protect(self, clicker) then return end
local player_name = clicker:get_player_name()
-- make sure tamed horse is being clicked by owner only
if self.tamed and self.owner == player_name then
local inv = clicker:get_inventory()
local tool = clicker:get_wielded_item()
local item = tool:get_name()
-- detatch player already riding horse
if self.driver and clicker == self.driver then
mobs.detach(clicker, {x = 1, y = 0, z = 1})
self:set_animation("stand")
return
end
-- attach saddle to horse
if not self.driver and not self.child
and clicker:get_wielded_item():get_name() == "mobs:saddle"
and not self.saddle then
self.saddle = true
self.order = "stand"
self.object:set_properties({stepheight = 1.2})
-- take saddle from inventory
inv:remove_item("main", "mobs:saddle")
self.texture_mods = self.texture_mods .. "^mobs_saddle_overlay.png"
self.object:set_texture_mod(self.texture_mods)
return
end
-- apply horseshoes
if item:find("mobs:horseshoe") then
-- drop any existing shoes
if self.shoed then
minetest.add_item(self.object:get_pos(), self.shoed)
end
local speed = shoes[item][1]
local jump = shoes[item][2]
local reverse = shoes[item][3]
local overlay = shoes[item][4]
self.max_speed_forward = speed
self.jump_height = jump
self.max_speed_reverse = reverse
self.accel = speed
self.shoed = item
-- apply horseshoe overlay to current horse texture
if overlay then
self.texture_mods = "^" .. overlay
if self.saddle then
self.texture_mods = self.texture_mods
.. "^mobs_saddle_overlay.png"
end
self.object:set_texture_mod(self.texture_mods)
end
-- show horse speed and jump stats with shoes fitted
minetest.chat_send_player(player_name,
S("Horse shoes fitted -")
.. S(" speed: ") .. speed
.. S(" , jump height: ") .. jump
.. S(" , stop speed: ") .. reverse)
tool:take_item()
clicker:set_wielded_item(tool)
return
end
end
-- used to capture horse with magic lasso
if mobs:capture_mob(self, clicker, nil, nil, 100, false, nil) then return end
-- ride horse if saddled
if self.saddle and self.owner == player_name then
mobs.attach(self, clicker)
end
end,
--[[
on_sound = function(self, def)
if def.loudness > 0.8 then -- if loud enough startle horse into jumping
self.object:set_velocity({x = 0, y = 5, z = 0})
end
end
]]
})
-- check for custom spawn.lua
local input = io.open(MP .. "spawn.lua", "r")
if input then
input:close()
input = nil
dofile(MP .. "spawn.lua")
else
mobs:spawn({
name = "mob_horse:horse",
nodes = {"default:dirt_with_grass", "ethereal:dry_dirt"},
min_light = 14,
interval = 60,
chance = 16000,
min_height = 10,
max_height = 31000,
day_toggle = true
})
end
-- spawn egg (true at end means horse can be placed in protected areas)
mobs:register_egg("mob_horse:horse", S("Horse"), "wool_brown.png", 1, nil, true)
-- steel horseshoes
minetest.register_craftitem(":mobs:horseshoe_steel", {
description = S("Steel HorseShoes (use on horse to apply)"),
inventory_image = "mobs_horseshoe_steel.png",
})
minetest.register_craft({
output = "mobs:horseshoe_steel",
recipe = {
{"", "default:steelblock", ""},
{"default:steel_ingot", "", "default:steel_ingot"},
{"default:steel_ingot", "", "default:steel_ingot"}
}
})
-- bronze horseshoes
minetest.register_craftitem(":mobs:horseshoe_bronze", {
description = S("Bronze HorseShoes (use on horse to apply)"),
inventory_image = "mobs_horseshoe_bronze.png"
})
minetest.register_craft({
output = "mobs:horseshoe_bronze",
recipe = {
{"", "default:bronzeblock", ""},
{"default:bronze_ingot", "", "default:bronze_ingot"},
{"default:bronze_ingot", "", "default:bronze_ingot"}
}
})
-- mese horseshoes
minetest.register_craftitem(":mobs:horseshoe_mese", {
description = S("Mese HorseShoes (use on horse to apply)"),
inventory_image = "mobs_horseshoe_mese.png"
})
minetest.register_craft({
output = "mobs:horseshoe_mese",
recipe = {
{"", "default:mese", ""},
{"default:mese_crystal_fragment", "", "default:mese_crystal_fragment"},
{"default:mese_crystal_fragment", "", "default:mese_crystal_fragment"}
}
})
-- diamond horseshoes
minetest.register_craftitem(":mobs:horseshoe_diamond", {
description = S("Diamond HorseShoes (use on horse to apply)"),
inventory_image = "mobs_horseshoe_diamond.png"
})
minetest.register_craft({
output = "mobs:horseshoe_diamond",
recipe = {
{"", "default:diamondblock", ""},
{"default:diamond", "", "default:diamond"},
{"default:diamond", "", "default:diamond"}
}
})
-- crystal horseshoes
if minetest.get_modpath("ethereal") then
minetest.register_craftitem(":mobs:horseshoe_crystal", {
description = S("Crystal HorseShoes (use on horse to apply)"),
inventory_image = "mobs_horseshoe_crystal.png"
})
minetest.register_craft({
output = "mobs:horseshoe_crystal",
recipe = {
{"", "ethereal:crystal_block", ""},
{"ethereal:crystal_ingot", "", "ethereal:crystal_ingot"},
{"ethereal:crystal_ingot", "", "ethereal:crystal_ingot"}
}
})
end
-- lucky blocks
if minetest.get_modpath("lucky_block") then
lucky_block:add_blocks({
{"dro", {"mobs:horseshoe_steel"}},
{"dro", {"mobs:horseshoe_bronze"}},
{"dro", {"mobs:horseshoe_mese"}},
{"dro", {"mobs:horseshoe_diamond"}},
{"dro", {"mobs:horseshoe_crystal"}}
})
end
print("[MOD] Mobs Redo Horse loaded")
+3
View File
@@ -0,0 +1,3 @@
Code: MIT
Textures: CC-BY-SA 3.0 by Mjollna
Model: MIT by KrupnovPavel
+10
View File
@@ -0,0 +1,10 @@
# textdomain:mob_horse
, jump height: = , springhøjde :
, stop speed: = , stophastighed :
speed: = hastighed :
Bronze HorseShoes (use on horse to apply)=Bronzehestesko (brug på hest for at skoe den)
Diamond HorseShoes (use on horse to apply)=Diamandhestesko (brug på hest for at skoe den)
Horse=Hest
Horse shoes fitted -= Hesteskoen passede -
Mese HorseShoes (use on horse to apply)=Mesehestesko (brug på hest for at skoe den)
Steel HorseShoes (use on horse to apply)=Stålhestesko (brug på hest for at skoe den)
+10
View File
@@ -0,0 +1,10 @@
# textdomain:mob_horse
# , jump height: =
# , stop speed: =
# speed: =
#Bronze HorseShoes (use on horse to apply)=
#Diamond HorseShoes (use on horse to apply)=
#Horse=
#Horse shoes fitted -=
#Mese HorseShoes (use on horse to apply)=
#Steel HorseShoes (use on horse to apply)=
+10
View File
@@ -0,0 +1,10 @@
# textdomain:mob_horse
, jump height: = , altura de salto:
, stop speed: = , desaceleración:
speed: = velocidad:
Bronze HorseShoes (use on horse to apply)=Herraduras de bronze (úsalas en el caballo para herrar)
Diamond HorseShoes (use on horse to apply)=Herraduras de diamante (úsalas en el caballo para herrar)
Horse=Caballo
Horse shoes fitted -= Herrado -
Mese HorseShoes (use on horse to apply)=Herraduras de mese (úsalas en el caballo para herrar)
Steel HorseShoes (use on horse to apply)=Herraduras de acero (úsalas en el caballo para herrar)
+10
View File
@@ -0,0 +1,10 @@
# textdomain:mob_horse
, jump height: = , hauteur des sauts :
, stop speed: = , décélération :
speed: = vitesse :
Bronze HorseShoes (use on horse to apply)=Fers à cheval de bronze (clic droit pour ferrer)
Diamond HorseShoes (use on horse to apply)=Fers à cheval en diamant (clic droit pour ferrer)
Horse=Cheval
Horse shoes fitted -= Ferré -
Mese HorseShoes (use on horse to apply)=Fers à cheval en mese (clic droit pour ferrer)
Steel HorseShoes (use on horse to apply)=Fers à cheval en acier (clic droit pour ferrer)
+10
View File
@@ -0,0 +1,10 @@
# textdomain:mob_horse
, jump height: = , altezza di salto:
, stop speed: = , velocità di arresto:
speed: = velocità:
Bronze HorseShoes (use on horse to apply)=Ferri di cavallo di bronzo (usarli su un cavallo per applicarli)
Diamond HorseShoes (use on horse to apply)=Ferri di cavallo di diamante (usarli su un cavallo per applicarli)
Horse=Cavallo
Horse shoes fitted -=Ferri di cavallo indossati -
Mese HorseShoes (use on horse to apply)=Ferri di cavallo di mese (usarli su un cavallo per applicarli)
Steel HorseShoes (use on horse to apply)=Ferri di cavallo d'acciaio (usarli su un cavallo per applicarli)
+10
View File
@@ -0,0 +1,10 @@
# textdomain:mob_horse
, jump height: = , ketinggian lompat:
, stop speed: = , kelajuan berhenti:
speed: = kelajuan:
Bronze HorseShoes (use on horse to apply)=Ladam Kuda Gangsa (guna pada kuda untuk pakaikan ia)
Diamond HorseShoes (use on horse to apply)=Ladam Kuda Intan (guna pada kuda untuk pakaikan ia)
Horse=Kuda
Horse shoes fitted -=Ladam telah dipasang pada kuda -
Mese HorseShoes (use on horse to apply)=Ladam Kuda Mese (guna pada kuda untuk pakaikan ia)
Steel HorseShoes (use on horse to apply)=Ladam Kuda Keluli (guna pada kuda untuk pakaikan ia)
+10
View File
@@ -0,0 +1,10 @@
# textdomain:mob_horse
, jump height: =,跳跃高度:
, stop speed: =,停止速度:
speed: =速度:
Bronze HorseShoes (use on horse to apply)=青铜马蹄铁(用在马匹上)
Diamond HorseShoes (use on horse to apply)=钻石马蹄铁(用在马匹上)
Horse=马
Horse shoes fitted -=马蹄铁 -
Mese HorseShoes (use on horse to apply)=黄石马蹄铁(用在马匹上)
Steel HorseShoes (use on horse to apply)=钢马蹄铁(用在马匹上)
+10
View File
@@ -0,0 +1,10 @@
# textdomain:mob_horse
, jump height: =,跳躍高度:
, stop speed: =,停止速度:
speed: =速度:
Bronze HorseShoes (use on horse to apply)=青銅馬蹄鐵(用在馬匹上)
Diamond HorseShoes (use on horse to apply)=鑽石馬蹄鐵(用在馬匹上)
Horse=馬
Horse shoes fitted -=馬蹄鐵 -
Mese HorseShoes (use on horse to apply)=黃石馬蹄鐵(用在馬匹上)
Steel HorseShoes (use on horse to apply)=鋼馬蹄鐵(用在馬匹上)
+11
View File
@@ -0,0 +1,11 @@
# textdomain:mob_horse
, jump height: = , высота прыжка:
, stop speed: = , скорость остановки:
speed: = скорость:
Bronze HorseShoes (use on horse to apply)=Бронзовая Подква (используйте на лошади, чтобы применить)
Diamond HorseShoes (use on horse to apply)=Алмазная Подкова (используйте на лошади, чтобы применить)
Horse=Лошадь
Horse shoes fitted -=Одетая лошадиная подкова -
Mese HorseShoes (use on horse to apply)=Месе Подкова (используйте на лошади, чтобы применить)
Steel HorseShoes (use on horse to apply)=Стальная Подкова (используйте на лошади, чтобы применить)
Crystal HorseShoes (use on horse to apply)=Кристаллическая Подкова (используйте на лошади, чтобы применить)
+11
View File
@@ -0,0 +1,11 @@
# textdomain:mob_horse
, jump height: =
, stop speed: =
speed: =
Bronze HorseShoes (use on horse to apply)=
Diamond HorseShoes (use on horse to apply)=
Horse=
Horse shoes fitted -=
Mese HorseShoes (use on horse to apply)=
Steel HorseShoes (use on horse to apply)=
Crystal HorseShoes (use on horse to apply)=
+5
View File
@@ -0,0 +1,5 @@
name = mob_horse
description = Adds a rideable horse into game with horse shoe upgrades.
depends = mobs
optional_depends = lucky_block
min_minetest_version = 5.0
File diff suppressed because it is too large Load Diff
+22
View File
@@ -0,0 +1,22 @@
# MOB Horse
### Spawning
There are three different horse textures (white, brown, black) which will spawn on green grassy areas and dry dirt areas in Ethereal mapgen.
---
### Taming
Horses can be tamed with 10x wheat, apple, barley, oats of corn which then allows the player to pick up the horse using a lasso and ride by right-clicking with a saddle.
---
### Saddle
Right clicking a horse with a saddle equips it and the horse will be ordered to stand still until you wish to ride.
---
### Horseshoes
Horseshoes can be crafted using steel, bronze, mese, diamond and crystal (4x ingots - 2 down either side with 1x block top middle) and placed on a horse by right clicking with the item. These can make horses run faster or jump higher while riding depending on tier.
---
### Dead Horse
When riding a horse monsters will generally attack the horse first to get to player riding it, when horse dies the player is dismounted and it will drop any shoes or saddles in use as well as some horse meat.
#### Lucky Blocks: 5
Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

+8
View File
@@ -0,0 +1,8 @@
https://freesound.org/people/blazecon0/sounds/99222/ (Attribution 3.0)
mob_horse.1.ogg
https://freesound.org/people/Gingerhoney/sounds/655070/ (Attribution 3.0)
mob_horse.2.ogg
https://freesound.org/people/GoodListener/sounds/322445/ (Attribution 3.0)
mob_horse_whinny.ogg
Binary file not shown.
Binary file not shown.
Binary file not shown.
+72
View File
@@ -0,0 +1,72 @@
--[[ Spawn Template, defaults to values shown if line not provided
mobs:spawn({
name = "",
- Name of mob, must be provided e.g. "mymod:my_mob"
nodes = {"group:soil, "group:stone"},
- Nodes to spawn on top of.
neighbors = {"air"},
- Nodes to spawn beside.
min_light = 0,
- Minimum light level.
max_light = 15,
- Maximum light level, 15 is sunlight only.
interval = 30,
- Spawn interval in seconds.
chance = 5000,
- Spawn chance, 1 in every 5000 nodes.
active_object_count = 1,
- Active mobs of this type in area.
min_height = -31000,
- Minimum height level.
max_height = 31000,
- Maximum height level.
day_toggle = nil,
- Daytime toggle, true to spawn during day, false for night, nil for both
on_spawn = nil,
- On spawn function to run when mob spawns in world
on_map_load = nil,
- On map load, when true mob only spawns in newly generated map areas
})
]]--
-- Horse
mobs:spawn({
name = "mob_horse:horse",
nodes = {"default:dirt_with_grass", "ethereal:dry_dirt"},
min_light = 14,
interval = 60,
chance = 16000,
min_height = 10,
max_height = 31000,
day_toggle = true
})
Binary file not shown.

After

Width:  |  Height:  |  Size: 886 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 724 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB