Make mod independent
parent
63efe313f2
commit
7d64c8b98b
|
@ -1,6 +1,6 @@
|
||||||
MIT License
|
The MIT License (MIT)
|
||||||
|
|
||||||
Copyright © 2017 Jordan Irwin (AntumDeluge)
|
Copyright © 2021 Jordan Irwin (AntumDeluge)
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
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
|
this software and associated documentation files (the "Software"), to deal in
|
||||||
|
|
|
@ -0,0 +1,75 @@
|
||||||
|
--[[ LICENSE HEADER
|
||||||
|
|
||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright © 2021 Jordan Irwin
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
--]]
|
||||||
|
|
||||||
|
|
||||||
|
asm.addEggRecipe = function(name, spawn, ingredients)
|
||||||
|
if type(ingredients) == "string" then
|
||||||
|
ingredients = {ingredients,}
|
||||||
|
end
|
||||||
|
|
||||||
|
table.insert(ingredients, 1, "spawneggs:egg")
|
||||||
|
core.register_craft({
|
||||||
|
output = "spawneggs:" .. name,
|
||||||
|
type = "shapeless",
|
||||||
|
recipe = ingredients,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
asm.addEgg = function(eggdef)
|
||||||
|
local img = "spawneggs_" .. eggdef.name .. ".png"
|
||||||
|
if eggdef.inventory_image then
|
||||||
|
img = eggdef.inventory_image
|
||||||
|
end
|
||||||
|
|
||||||
|
core.register_craftitem(":spawneggs:" .. eggdef.name, {
|
||||||
|
description = eggdef.name:gsub("^%l", string.upper) .. " Spawn Egg",
|
||||||
|
inventory_image = img,
|
||||||
|
|
||||||
|
on_place = function(itemstack, placer, target)
|
||||||
|
if target.type == "node" then
|
||||||
|
local pos = target.above
|
||||||
|
pos.y = pos.y + 1
|
||||||
|
local ref = core.add_entity(pos, eggdef.spawn)
|
||||||
|
if ref and placer:is_player() then
|
||||||
|
local entity = ref:get_luaentity()
|
||||||
|
-- set owner
|
||||||
|
if entity.ownable then entity.owner = placer:get_player_name() end
|
||||||
|
end
|
||||||
|
if not core.settings:get_bool("creative_mode") then
|
||||||
|
itemstack:take_item()
|
||||||
|
end
|
||||||
|
|
||||||
|
return itemstack
|
||||||
|
end
|
||||||
|
end
|
||||||
|
})
|
||||||
|
|
||||||
|
asm.addEggRecipe(name, spawn, ingredients)
|
||||||
|
|
||||||
|
-- DEBUG
|
||||||
|
asm.log("action", "Registered spawnegg for " .. spawn)
|
||||||
|
end
|
10
depends.txt
10
depends.txt
|
@ -1,10 +1,2 @@
|
||||||
antum
|
|
||||||
spawneggs
|
|
||||||
animal_chicken?
|
|
||||||
chicken?
|
|
||||||
default?
|
|
||||||
mobs?
|
mobs?
|
||||||
mobs_monster?
|
spawneggs?
|
||||||
oerrki?
|
|
||||||
sheep?
|
|
||||||
wool?
|
|
||||||
|
|
121
eggs.lua
121
eggs.lua
|
@ -1,121 +0,0 @@
|
||||||
--[[ LICENSE HEADER
|
|
||||||
|
|
||||||
MIT License
|
|
||||||
|
|
||||||
Copyright © 2017 Jordan Irwin
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
--]]
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
antum.spawneggs.addEggRecipe = function(name, spawn, ingredients)
|
|
||||||
table.insert(ingredients, 1, 'spawneggs:egg')
|
|
||||||
core.register_craft({
|
|
||||||
output = 'spawneggs:' .. name,
|
|
||||||
type = 'shapeless',
|
|
||||||
recipe = ingredients,
|
|
||||||
})
|
|
||||||
end
|
|
||||||
|
|
||||||
antum.spawneggs.addEgg = function(name, spawn, ingredients)
|
|
||||||
core.register_craftitem(':spawneggs:' .. name, {
|
|
||||||
description = name:gsub("^%l", string.upper) .. ' Spawn Egg',
|
|
||||||
inventory_image = 'spawneggs_' .. name ..'.png',
|
|
||||||
|
|
||||||
on_place = function(itemstack, placer, target)
|
|
||||||
if target.type == 'node' then
|
|
||||||
local pos = target.above
|
|
||||||
pos.y = pos.y + 1
|
|
||||||
core.add_entity(pos, spawn)
|
|
||||||
if not core.settings:get_bool('creative_mode') then
|
|
||||||
itemstack:take_item()
|
|
||||||
end
|
|
||||||
|
|
||||||
return itemstack
|
|
||||||
end
|
|
||||||
end
|
|
||||||
})
|
|
||||||
|
|
||||||
antum.spawneggs.addEggRecipe(name, spawn, ingredients)
|
|
||||||
|
|
||||||
-- DEBUG
|
|
||||||
antum.logAction('Registered spawnegg for ' .. spawn)
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if core.get_modpath('spawneggs') then
|
|
||||||
-- Clear all spawneggs
|
|
||||||
local spawneggs_default = {
|
|
||||||
'dirt_monster', 'dungeon_master', 'oerkki', 'rat',
|
|
||||||
'sand_monster', 'sheep', 'stone_monster', 'tree_monster'
|
|
||||||
}
|
|
||||||
|
|
||||||
for I in pairs(spawneggs_default) do
|
|
||||||
core.clear_craft({
|
|
||||||
output = 'spawneggs:' .. spawneggs_default[I],
|
|
||||||
})
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
-- Sheep spawnegg
|
|
||||||
if core.get_modpath('sheep') and core.get_modpath('wool') then
|
|
||||||
antum.spawneggs.addEgg('sheep', 'creatures:sheep', {'group:wool'})
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Oerrki spawnegg
|
|
||||||
if core.get_modpath('oerrki') and core.get_modpath('default') then
|
|
||||||
antum.spawneggs.addEgg('oerrki', 'creatures:oerrki', {'default:obsidian'})
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Chicken spawnegg
|
|
||||||
if core.get_modpath('chicken') then
|
|
||||||
antum.spawneggs.addEgg('chicken', 'creatures:chicken', {'creatures:feather'})
|
|
||||||
end
|
|
||||||
|
|
||||||
-- mobs_redo monsters
|
|
||||||
if core.get_modpath('mobs_monster') and core.get_modpath('default') then
|
|
||||||
|
|
||||||
-- Dirt monster
|
|
||||||
antum.spawneggs.addEgg('dirt_monster', 'mobs_monster:dirt_monster', {'default:dirt'})
|
|
||||||
|
|
||||||
-- Dungeon master
|
|
||||||
--addLocalEgg('dungeon_master', 'mobs_monster:dungeon_master', {''}) -- needs ingredient
|
|
||||||
|
|
||||||
-- Mese monster
|
|
||||||
antum.spawneggs.addEgg('mese_monster', 'mobs_monster:mese_monster', {'default:mese'})
|
|
||||||
|
|
||||||
-- Oerkki
|
|
||||||
|
|
||||||
-- Sand monster
|
|
||||||
antum.spawneggs.addEgg('sand_monster', 'mobs_monster:sand_monster', {'default:sand'})
|
|
||||||
antum.spawneggs.addEggRecipe('sand_monster', 'mobs_monster:sand_monster', {'default:desert_sand'})
|
|
||||||
|
|
||||||
-- Spider
|
|
||||||
--antum.spawneggs.addEgg('spider', 'mobs_monster:spider', {''}) -- need ingredient & egg
|
|
||||||
|
|
||||||
-- Stone monster
|
|
||||||
--antum.spawneggs.addEgg('stone_monster', 'mobs_monster:stone_monster', {'default:stone'}) -- DISABLED: too graphic
|
|
||||||
|
|
||||||
-- Tree monster
|
|
||||||
antum.spawneggs.addEgg('tree_monster', 'mobs_monster:tree_monster', {'default:sapling'})
|
|
||||||
end
|
|
44
init.lua
44
init.lua
|
@ -1,8 +1,8 @@
|
||||||
--[[ LICENSE HEADER
|
--[[ LICENSE HEADER
|
||||||
|
|
||||||
MIT License
|
The MIT License (MIT)
|
||||||
|
|
||||||
Copyright © 2017 Jordan Irwin
|
Copyright © 2021 Jordan Irwin
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
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
|
this software and associated documentation files (the "Software"), to deal in
|
||||||
|
@ -25,19 +25,35 @@
|
||||||
--]]
|
--]]
|
||||||
|
|
||||||
|
|
||||||
antum.spawneggs = {}
|
asm = {}
|
||||||
|
|
||||||
antum.spawneggs.modname = core.get_current_modname()
|
asm.modname = core.get_current_modname()
|
||||||
antum.spawneggs.modpath = core.get_modpath(antum.spawneggs.modname)
|
asm.modpath = core.get_modpath(asm.modname)
|
||||||
|
|
||||||
antum.loadScript('eggs')
|
asm.log = function(lvl, msg)
|
||||||
|
if not msg then
|
||||||
|
msg = lvl
|
||||||
|
lvl = nil
|
||||||
|
end
|
||||||
|
|
||||||
if core.registered_items["mobs:egg"] then
|
if lvl then
|
||||||
core.register_craft({
|
core.log(lvl, "[" .. asm.modname .. "] " .. msg)
|
||||||
output = "spawneggs:egg",
|
else
|
||||||
recipe = {
|
core.log("[" ams.modname .. "] " .. msg)
|
||||||
{"mobs:egg", "mobs:egg"},
|
end
|
||||||
{"mobs:egg", "mobs:egg"},
|
end
|
||||||
},
|
|
||||||
})
|
if core.global_exists("spawneggs") then
|
||||||
|
asm.log("warning", "Overwriting \"spawneggs\" global")
|
||||||
|
end
|
||||||
|
|
||||||
|
spawneggs = asm
|
||||||
|
|
||||||
|
local scripts = {
|
||||||
|
"api",
|
||||||
|
"items",
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, script in ipairs(scripts) do
|
||||||
|
dofile(asm.modpath .. "/" .. script .. ".lua")
|
||||||
end
|
end
|
||||||
|
|
|
@ -0,0 +1,41 @@
|
||||||
|
--[[ LICENSE HEADER
|
||||||
|
|
||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright © 2021 Jordan Irwin
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
--]]
|
||||||
|
|
||||||
|
|
||||||
|
core.register_craftitem(":spawneggs:egg", {
|
||||||
|
description = "Spawning Egg",
|
||||||
|
inventory_image = "spawneggs_egg.png",
|
||||||
|
}
|
||||||
|
|
||||||
|
if core.registered_items["mobs:egg"] then
|
||||||
|
core.register_craft({
|
||||||
|
output = "asm:egg",
|
||||||
|
recipe = {
|
||||||
|
{"mobs:egg", "mobs:egg"},
|
||||||
|
{"mobs:egg", "mobs:egg"},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
end
|
Loading…
Reference in New Issue