inital push to Wuzzy's bzoss_brew branch.
7
mods/ITEMS/mcl_brewing/depends.txt
Executable file
|
@ -0,0 +1,7 @@
|
|||
mcl_init
|
||||
mcl_formspec
|
||||
mcl_sounds
|
||||
mcl_potions
|
||||
mcl_mobitems
|
||||
mcl_core?
|
||||
screwdriver?
|
1054
mods/ITEMS/mcl_brewing/init.lua
Executable file
3
mods/ITEMS/mcl_brewing/locale/template.txt
Executable file
|
@ -0,0 +1,3 @@
|
|||
# textdomain: mcl_brewing
|
||||
Brewing Stand=
|
||||
The brewing stand allows the creating of potions for the benefit of various effects. Stay tuned for developments, as you can only view the stand and interact with it, but not create potions.
|
1
mods/ITEMS/mcl_brewing/mod.conf
Executable file
|
@ -0,0 +1 @@
|
|||
name = mcl_brewing
|
BIN
mods/ITEMS/mcl_brewing/sounds/mcl_brewing_complete.ogg
Executable file
BIN
mods/ITEMS/mcl_brewing/textures/mcl_brewing_base.png
Normal file
After Width: | Height: | Size: 191 B |
BIN
mods/ITEMS/mcl_brewing/textures/mcl_brewing_bottle_bg.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
mods/ITEMS/mcl_brewing/textures/mcl_brewing_bubbles.png
Normal file
After Width: | Height: | Size: 193 B |
BIN
mods/ITEMS/mcl_brewing/textures/mcl_brewing_bubbles_active.png
Normal file
After Width: | Height: | Size: 194 B |
BIN
mods/ITEMS/mcl_brewing/textures/mcl_brewing_burner.png
Normal file
After Width: | Height: | Size: 147 B |
BIN
mods/ITEMS/mcl_brewing/textures/mcl_brewing_burner_active.png
Normal file
After Width: | Height: | Size: 157 B |
BIN
mods/ITEMS/mcl_brewing/textures/mcl_brewing_fuel_bg.png
Executable file
After Width: | Height: | Size: 250 B |
BIN
mods/ITEMS/mcl_brewing/textures/mcl_brewing_inventory.png
Executable file
After Width: | Height: | Size: 1 KiB |
BIN
mods/ITEMS/mcl_brewing/textures/mcl_brewing_potion_bg.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
mods/ITEMS/mcl_brewing/textures/mcl_brewing_side.png
Normal file
After Width: | Height: | Size: 404 B |
BIN
mods/ITEMS/mcl_brewing/textures/mcl_brewing_top.png
Normal file
After Width: | Height: | Size: 404 B |
|
@ -1,3 +1,5 @@
|
|||
mcl_core
|
||||
mcl_farming
|
||||
mcl_mobitems
|
||||
mcl_fishing
|
||||
playerphysics
|
||||
|
|
|
@ -8,7 +8,7 @@ minetest.register_craftitem("mcl_potions:fermented_spider_eye", {
|
|||
wield_image = "mcl_potions_spider_eye_fermented.png",
|
||||
inventory_image = "mcl_potions_spider_eye_fermented.png",
|
||||
-- TODO: Reveal item when it's actually useful
|
||||
groups = { brewitem = 1, not_in_creative_inventory = 1, not_in_craft_guide = 1 },
|
||||
groups = { brewitem = 1, not_in_creative_inventory = 0, not_in_craft_guide = 0 },
|
||||
stack_max = 64,
|
||||
})
|
||||
|
||||
|
@ -33,7 +33,7 @@ minetest.register_craftitem("mcl_potions:glass_bottle", {
|
|||
local def = minetest.registered_nodes[node.name]
|
||||
|
||||
-- Call on_rightclick if the pointed node defines it
|
||||
if placer and not placer :get_player_control().sneak then
|
||||
if placer and not placer:get_player_control().sneak then
|
||||
if def and def.on_rightclick then
|
||||
return def.on_rightclick(pointed_thing.under, node, placer, itemstack) or itemstack
|
||||
end
|
||||
|
@ -130,7 +130,14 @@ local potion_image = function(colorstring, opacity)
|
|||
if not opacity then
|
||||
opacity = 127
|
||||
end
|
||||
return "mcl_potions_potion_bottle_drinkable.png^(mcl_potions_potion_overlay.png^[colorize:"..colorstring..":"..tostring(opacity)..")"
|
||||
return "mcl_potions_potion_overlay.png^[colorize:"..colorstring..":"..tostring(opacity).."^mcl_potions_potion_bottle_drinkable.png"
|
||||
end
|
||||
|
||||
local splash_image = function(colorstring, opacity)
|
||||
if not opacity then
|
||||
opacity = 127
|
||||
end
|
||||
return "mcl_potions_splash_overlay.png^[colorize:"..colorstring..":"..tostring(opacity).."^mcl_potions_splash_bottle.png"
|
||||
end
|
||||
|
||||
-- Cauldron fill up rules:
|
||||
|
@ -279,6 +286,8 @@ minetest.register_craftitem("mcl_potions:potion_mundane", {
|
|||
on_place = minetest.item_eat(0, "mcl_potions:glass_bottle"),
|
||||
on_secondary_use = minetest.item_eat(0, "mcl_potions:glass_bottle"),
|
||||
})
|
||||
|
||||
|
||||
minetest.register_craftitem("mcl_potions:potion_thick", {
|
||||
description = S("Thick Potion"),
|
||||
_tt_help = S("No effect"),
|
||||
|
@ -288,7 +297,7 @@ minetest.register_craftitem("mcl_potions:potion_thick", {
|
|||
inventory_image = potion_image("#0000FF"),
|
||||
wield_image = potion_image("#0000FF"),
|
||||
-- TODO: Reveal item when it's actually useful
|
||||
groups = {brewitem=1, food=3, can_eat_when_full=1, not_in_creative_inventory=1 },
|
||||
groups = {brewitem=1, food=3, can_eat_when_full=1, not_in_creative_inventory=0 },
|
||||
on_place = minetest.item_eat(0, "mcl_potions:glass_bottle"),
|
||||
on_secondary_use = minetest.item_eat(0, "mcl_potions:glass_bottle"),
|
||||
})
|
||||
|
@ -297,8 +306,7 @@ minetest.register_craftitem("mcl_potions:speckled_melon", {
|
|||
description = S("Glistering Melon"),
|
||||
_doc_items_longdesc = S("This shiny melon is full of tiny gold nuggets and would be nice in an item frame. It isn't edible and not useful for anything else."),
|
||||
stack_max = 64,
|
||||
-- TODO: Reveal item when it's actually useful
|
||||
groups = { brewitem = 1, not_in_creative_inventory = 1, not_in_craft_guide = 1 },
|
||||
groups = { brewitem = 1, not_in_creative_inventory = 0, not_in_craft_guide = 1 },
|
||||
inventory_image = "mcl_potions_melon_speckled.png",
|
||||
})
|
||||
|
||||
|
@ -316,7 +324,522 @@ minetest.register_craftitem("mcl_potions:dragon_breath", {
|
|||
_doc_items_longdesc = brewhelp,
|
||||
wield_image = "mcl_potions_dragon_breath.png",
|
||||
inventory_image = "mcl_potions_dragon_breath.png",
|
||||
-- TODO: Reveal item when it's actually useful
|
||||
groups = { brewitem = 1, not_in_creative_inventory = 1 },
|
||||
stack_max = 64,
|
||||
groups = { brewitem = 1, not_in_creative_inventory = 0 },
|
||||
stack_max = 1,
|
||||
})
|
||||
|
||||
local function _use_potion()
|
||||
minetest.item_eat(0, "mcl_potions:glass_bottle")
|
||||
minetest.sound_play("mcl_potions_drinking")
|
||||
end
|
||||
|
||||
local healing_func = function(player, hp) player:set_hp(player:get_hp() + hp) end
|
||||
|
||||
minetest.register_craftitem("mcl_potions:healing", {
|
||||
description = S("Healing Potion"),
|
||||
_doc_items_longdesc = brewhelp,
|
||||
wield_image = potion_image("#CC0000"),
|
||||
inventory_image = potion_image("#CC0000"),
|
||||
groups = { brewitem = 1, food=3, can_eat_when_full=1 },
|
||||
stack_max = 1,
|
||||
|
||||
on_place = function(itemstack, user, pointed_thing)
|
||||
healing_func(user, 4)
|
||||
_use_potion()
|
||||
return itemstack
|
||||
end,
|
||||
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
healing_func(user, 4)
|
||||
_use_potion()
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_craftitem("mcl_potions:healing_2", {
|
||||
description = S("Healing Potion II"),
|
||||
_doc_items_longdesc = brewhelp,
|
||||
wield_image = potion_image("#DD0000"),
|
||||
inventory_image = potion_image("#DD0000"),
|
||||
groups = { brewitem = 1, food=3, can_eat_when_full=1 },
|
||||
stack_max = 1,
|
||||
|
||||
on_place = function(itemstack, user, pointed_thing)
|
||||
healing_func(user, 8)
|
||||
_use_potion()
|
||||
return itemstack
|
||||
end,
|
||||
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
healing_func(user, 8)
|
||||
_use_potion()
|
||||
return itemstack
|
||||
end,
|
||||
|
||||
})
|
||||
|
||||
minetest.register_craftitem("mcl_potions:harming", {
|
||||
description = S("Harming Potion"),
|
||||
_doc_items_longdesc = brewhelp,
|
||||
wield_image = potion_image("#660099"),
|
||||
inventory_image = potion_image("#660099"),
|
||||
groups = { brewitem = 1, food=3, can_eat_when_full=1 },
|
||||
stack_max = 1,
|
||||
|
||||
on_place = function(itemstack, user, pointed_thing)
|
||||
healing_func(user, -6)
|
||||
_use_potion()
|
||||
return itemstack
|
||||
end,
|
||||
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
healing_func(user, -6)
|
||||
_use_potion()
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_craftitem("mcl_potions:harming_2", {
|
||||
description = S("Harming Potion II"),
|
||||
_doc_items_longdesc = brewhelp,
|
||||
wield_image = potion_image("#330066"),
|
||||
inventory_image = potion_image("#330066"),
|
||||
groups = { brewitem = 1, food=3, can_eat_when_full=1 },
|
||||
stack_max = 1,
|
||||
|
||||
on_place = function(itemstack, user, pointed_thing)
|
||||
healing_func(user, -12)
|
||||
_use_potion()
|
||||
return itemstack
|
||||
end,
|
||||
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
healing_func(user, -12)
|
||||
_use_potion()
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
|
||||
minetest.register_craftitem("mcl_potions:night_vision", {
|
||||
description = S("Night Vision Potion"),
|
||||
_doc_items_longdesc = brewhelp,
|
||||
wield_image = "mcl_potions_night_vision.png",
|
||||
inventory_image = "mcl_potions_night_vision.png",
|
||||
groups = { brewitem = 1, food=0},
|
||||
stack_max = 1,
|
||||
})
|
||||
|
||||
local swiftness_func = function(player, factor, duration)
|
||||
playerphysics.add_physics_factor(player, "speed", "swiftness", factor)
|
||||
minetest.after(duration, function() playerphysics.remove_physics_factor(player, "speed", "swiftness") end )
|
||||
end
|
||||
|
||||
minetest.register_craftitem("mcl_potions:swiftness", {
|
||||
description = S("Swiftness Potion"),
|
||||
_doc_items_longdesc = brewhelp,
|
||||
wield_image = potion_image("#009999"),
|
||||
inventory_image = potion_image("#009999"),
|
||||
groups = { brewitem = 1, food=0},
|
||||
stack_max = 1,
|
||||
|
||||
on_place = function(itemstack, user, pointed_thing)
|
||||
swiftness_func(user, 1.2, 180)
|
||||
_use_potion()
|
||||
return itemstack
|
||||
end,
|
||||
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
swiftness_func(user, 1.2, 180)
|
||||
_use_potion()
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_craftitem("mcl_potions:swiftness_2", {
|
||||
description = S("Swiftness Potion II"),
|
||||
_doc_items_longdesc = brewhelp,
|
||||
wield_image = potion_image("#00BBBB"),
|
||||
inventory_image = potion_image("#00BBBB"),
|
||||
groups = { brewitem = 1, food=0},
|
||||
stack_max = 1,
|
||||
|
||||
on_place = function(itemstack, user, pointed_thing)
|
||||
swiftness_func(user, 1.4, 90)
|
||||
_use_potion()
|
||||
return itemstack
|
||||
end,
|
||||
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
swiftness_func(user, 1.4, 90)
|
||||
_use_potion()
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_craftitem("mcl_potions:swiftness_plus", {
|
||||
description = S("Swiftness Potion +"),
|
||||
_doc_items_longdesc = brewhelp,
|
||||
wield_image = potion_image("#00AAAA"),
|
||||
inventory_image = potion_image("#00AAAA"),
|
||||
groups = { brewitem = 1, food=0},
|
||||
stack_max = 1,
|
||||
|
||||
on_place = function(itemstack, user, pointed_thing)
|
||||
swiftness_func(user, 1.2, 480)
|
||||
_use_potion()
|
||||
return itemstack
|
||||
end,
|
||||
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
swiftness_func(user, 1.2, 480)
|
||||
_use_potion()
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_craftitem("mcl_potions:slowness", {
|
||||
description = S("Slowness Potion"),
|
||||
_doc_items_longdesc = brewhelp,
|
||||
wield_image = potion_image("#000080"),
|
||||
inventory_image = potion_image("#000080"),
|
||||
groups = { brewitem = 1, food=0},
|
||||
stack_max = 1,
|
||||
|
||||
on_place = function(itemstack, user, pointed_thing)
|
||||
swiftness_func(user, 0.85, 90)
|
||||
_use_potion()
|
||||
return itemstack
|
||||
end,
|
||||
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
swiftness_func(user, 0.85, 90)
|
||||
_use_potion()
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_craftitem("mcl_potions:slowness_plus", {
|
||||
description = S("Slowness Potion +"),
|
||||
_doc_items_longdesc = brewhelp,
|
||||
wield_image = potion_image("#000066"),
|
||||
inventory_image = potion_image("#000066"),
|
||||
groups = { brewitem = 1, food=0},
|
||||
stack_max = 1,
|
||||
|
||||
on_place = function(itemstack, user, pointed_thing)
|
||||
swiftness_func(user, 0.85, 240)
|
||||
_use_potion()
|
||||
return itemstack
|
||||
end,
|
||||
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
swiftness_func(user, 0.85, 240)
|
||||
_use_potion()
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
local leaping_func = function(player, factor, duration)
|
||||
playerphysics.add_physics_factor(player, "jump", "leaping", factor)
|
||||
minetest.after(duration, function() playerphysics.remove_physics_factor(player, "jump", "leaping") end )
|
||||
end
|
||||
|
||||
|
||||
minetest.register_craftitem("mcl_potions:leaping", {
|
||||
description = S("Leaping Potion"),
|
||||
_doc_items_longdesc = brewhelp,
|
||||
wield_image = potion_image("#00CC33"),
|
||||
inventory_image = potion_image("#00CC33"),
|
||||
groups = { brewitem = 1, food=0},
|
||||
stack_max = 1,
|
||||
|
||||
on_place = function(itemstack, user, pointed_thing)
|
||||
leaping_func(user, 1.2, 180)
|
||||
_use_potion()
|
||||
return itemstack
|
||||
end,
|
||||
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
leaping_func(user, 1.2, 180)
|
||||
_use_potion()
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_craftitem("mcl_potions:leaping_2", {
|
||||
description = S("Leaping Potion II"),
|
||||
_doc_items_longdesc = brewhelp,
|
||||
wield_image = potion_image("#00EE33"),
|
||||
inventory_image = potion_image("#00EE33"),
|
||||
groups = { brewitem = 1, food=0},
|
||||
stack_max = 1,
|
||||
|
||||
on_place = function(itemstack, user, pointed_thing)
|
||||
leaping_func(user, 1.4, 90)
|
||||
_use_potion()
|
||||
return itemstack
|
||||
end,
|
||||
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
leaping_func(user, 1.4, 90)
|
||||
_use_potion()
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_craftitem("mcl_potions:leaping_plus", {
|
||||
description = S("Leaping Potion +"),
|
||||
_doc_items_longdesc = brewhelp,
|
||||
wield_image = potion_image("#00DD33"),
|
||||
inventory_image = potion_image("#00DD33"),
|
||||
groups = { brewitem = 1, food=0},
|
||||
stack_max = 1,
|
||||
|
||||
on_place = function(itemstack, user, pointed_thing)
|
||||
leaping_func(user, 1.2, 480)
|
||||
_use_potion()
|
||||
return itemstack
|
||||
end,
|
||||
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
leaping_func(user, 1.2, 480)
|
||||
_use_potion()
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
local weakness_func = function(player, factor, duration)
|
||||
player:set_attribute("weakness", tostring(factor))
|
||||
print(player:get_player_name().." ".."weakness = "..player:get_attribute("weakness"))
|
||||
minetest.after(duration, function() player:set_attribute("weakness", tostring(0)) end )
|
||||
end
|
||||
minetest.register_craftitem("mcl_potions:weakness", {
|
||||
description = S("Weakness Potion"),
|
||||
_doc_items_longdesc = brewhelp,
|
||||
wield_image = potion_image("#6600AA"),
|
||||
inventory_image = potion_image("#6600AA"),
|
||||
groups = { brewitem = 1, food=0},
|
||||
stack_max = 1,
|
||||
|
||||
on_place = function(itemstack, user, pointed_thing)
|
||||
weakness_func(user, 1.2, 180)
|
||||
_use_potion()
|
||||
return itemstack
|
||||
end,
|
||||
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
weakness_func(user, 1.2, 180)
|
||||
_use_potion()
|
||||
return itemstack
|
||||
end
|
||||
})
|
||||
|
||||
-- Look into reducing attack on punch
|
||||
minetest.register_on_punchnode(function(pos, node, puncher, pointed_thing)
|
||||
if puncher:get_attribute("weakness") then
|
||||
print("Weakness Active")
|
||||
end
|
||||
end)
|
||||
|
||||
|
||||
function register_splash(name, descr, color, def)
|
||||
|
||||
local id = "mcl_potions:"..name.."_splash"
|
||||
minetest.register_craftitem(id, {
|
||||
description = descr,
|
||||
inventory_image = splash_image(color),
|
||||
on_use = function(itemstack, placer, pointed_thing)
|
||||
--weapons_shot(itemstack, placer, pointed_thing, def.velocity, name)
|
||||
local velocity = 10
|
||||
local dir = placer:get_look_dir();
|
||||
local pos = placer:getpos();
|
||||
local obj = minetest.env:add_entity({x=pos.x+dir.x,y=pos.y+2+dir.y,z=pos.z+dir.z}, id.."_flying")
|
||||
obj:setvelocity({x=dir.x*velocity,y=dir.y*velocity,z=dir.z*velocity})
|
||||
obj:setacceleration({x=0, y=-9.8, z=0})
|
||||
itemstack:take_item()
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
local w = 0.35
|
||||
|
||||
minetest.register_entity(id.."_flying",{
|
||||
textures = {splash_image(color)},
|
||||
hp_max = 1,
|
||||
visual_size = {x=w,y=w},
|
||||
collisionbox = {-w,-w,-w, w,w,w},
|
||||
on_step = function(self, dtime)
|
||||
local pos = self.object:getpos()
|
||||
local node = minetest.get_node(pos)
|
||||
local n = node.name
|
||||
local d = 1.5
|
||||
if n ~= "air" then
|
||||
minetest.sound_play("mcl_potions_breaking_glass")
|
||||
minetest.add_particlespawner({
|
||||
amount = 40,
|
||||
time = 2,
|
||||
minpos = {x=pos.x-d, y=pos.y, z=pos.z-d},
|
||||
maxpos = {x=pos.x+d, y=pos.y+1, z=pos.z+d},
|
||||
minvel = {x=-1, y=0, z=-1},
|
||||
maxvel = {x=1, y=0.5, z=1},
|
||||
minacc = {x=-0.5, y=0, z=-0.5},
|
||||
maxacc = {x=0.5, y=.2, z=0.5},
|
||||
minexptime = 1,
|
||||
maxexptime = 5,
|
||||
minsize = 2,
|
||||
maxsize = 4,
|
||||
collisiondetection = true,
|
||||
vertical = false,
|
||||
texture = "mcl_potions_sprite.png^[colorize:"..color..":127",
|
||||
})
|
||||
self.object:remove()
|
||||
for i, obj in ipairs(minetest.get_objects_inside_radius(pos, 2)) do
|
||||
if minetest.is_player(obj) then def.potion_fun(obj) end
|
||||
end
|
||||
end
|
||||
end,
|
||||
})
|
||||
end
|
||||
|
||||
register_splash("healing", "Splash Healing", "#AA0000", {
|
||||
potion_fun = function(player) player:set_hp(player:get_hp() + 3) end,
|
||||
})
|
||||
|
||||
register_splash("healing_2", "Splash Healing II", "#DD0000", {
|
||||
potion_fun = function(player) player:set_hp(player:get_hp() + 6) end,
|
||||
})
|
||||
|
||||
register_splash("harming", "Splash Harming", "#660099", {
|
||||
potion_fun = function(player) healing_func(player, -4) end,
|
||||
})
|
||||
|
||||
register_splash("harming_2", "Splash Harming II", "#330066", {
|
||||
potion_fun = function(player) healing_func(player, -6) end,
|
||||
})
|
||||
|
||||
register_splash("leaping", "Splash Leaping", "#00CC33", {
|
||||
potion_fun = function(player) leaping_func(player, 1.2, 135) end
|
||||
})
|
||||
|
||||
register_splash("leaping_2", "Splash Leaping II", "#00EE33", {
|
||||
potion_fun = function(player) leaping_func(player, 1.4, 135) end
|
||||
})
|
||||
|
||||
register_splash("leaping_plus", "Splash Leaping +", "#00DD33", {
|
||||
potion_fun = function(player) leaping_func(player, 1.2, 360) end
|
||||
})
|
||||
|
||||
register_splash("swiftness", "Splash Swiftness", "#009999", {
|
||||
potion_fun = function(player) swiftness_func(player, 1.2, 135) end
|
||||
})
|
||||
|
||||
register_splash("swiftness_2", "Splash Swiftness II", "#00BBBB", {
|
||||
potion_fun = function(player) swiftness_func(player, 1.4, 135) end
|
||||
})
|
||||
|
||||
register_splash("swiftness_plus", "Splash Swiftness +", "#00BBBB", {
|
||||
potion_fun = function(player) swiftness_func(player, 1.2, 360) end
|
||||
})
|
||||
|
||||
register_splash("slowness", "Splash Slowness ", "#000080", {
|
||||
potion_fun = function(player) swiftness_func(player, 0.85, 68) end
|
||||
})
|
||||
|
||||
register_splash("slowness_plus", "Splash Slowness +", "#000066", {
|
||||
potion_fun = function(player) swiftness_func(player, 0.85, 180) end
|
||||
})
|
||||
|
||||
|
||||
-- duration effects of redstone are a factor of 8/3
|
||||
-- duration effects of glowstone are a time factor of 1/2 and effect of 14/12
|
||||
-- splash potion effects are reduced by a factor of 3/4
|
||||
|
||||
local water_table = {
|
||||
["mcl_nether:nether_wart_item"] = "mcl_potions:potion_awkward",
|
||||
["mcl_potions:fermented_spider_eye"] = "mcl_potions:weakness",
|
||||
}
|
||||
|
||||
local awkward_table = {
|
||||
["mcl_potions:speckled_melon"] = "mcl_potions:healing",
|
||||
["mcl_farming:carrot_item_gold"] = "mcl_potions:night_vision",
|
||||
["mcl_core:sugar"] = "mcl_potions:swiftness",
|
||||
["mcl_mobitems:magma_cream"] = "mcl_potions:fire_resistance", --add craft
|
||||
["mcl_mobitems:blaze_powder"] = "mcl_potions:strength", --add craft
|
||||
["mcl_fishing:pufferfish_raw"] = "mcl_potions:water_breathing", --add craft
|
||||
["mcl_mobitems:ghast_tear"] = "mcl_potions:regeneration", --add craft
|
||||
["mcl_mobitems:spider_eye"] = "mcl_potions:poison", --add craft
|
||||
["mcl_mobitems:rabbit_foot"] = "mcl_potions:leaping", --add craft
|
||||
}
|
||||
|
||||
local output_table = {
|
||||
["mcl_potions:potion_river_water"] = water_table,
|
||||
["mcl_potions:potion_water"] = water_table,
|
||||
["mcl_potions:potion_awkward"] = awkward_table,
|
||||
}
|
||||
|
||||
local enhancement_table = {
|
||||
["mcl_potions:healing"] = "mcl_potions:healing_2",
|
||||
["mcl_potions:harming"] = "mcl_potions:harming_2",
|
||||
["mcl_potions:swiftness"] = "mcl_potions:swiftness_2",
|
||||
["mcl_potions:leaping"] = "mcl_potions:leaping_2",
|
||||
}
|
||||
|
||||
local extension_table = {
|
||||
["mcl_potions:swiftness"] = "mcl_potions:swiftness_plus",
|
||||
["mcl_potions:leaping"] = "mcl_potions:leaping_plus",
|
||||
}
|
||||
|
||||
local inversion_table = {
|
||||
["mcl_potions:healing"] = "mcl_potions:harming",
|
||||
["mcl_potions:healing_2"] = "mcl_potions:harming_2",
|
||||
["mcl_potions:swiftness"] = "mcl_potions:slowness",
|
||||
["mcl_potions:swiftness_2"] = "mcl_potions:slowness_plus",
|
||||
["mcl_potions:swiftness_plus"] = "mlc_potions:slowness_plus",
|
||||
["mcl_potions:leaping"] = "mcl_potions:slowness",
|
||||
["mcl_potions:leaping_2"] = "mcl_potions:slowness_plus",
|
||||
["mcl_potions:leaping_plus"] = "mlc_potions:slowness_plus",
|
||||
}
|
||||
|
||||
local potions = {"healing", "healing_2",
|
||||
"harming", "harming_2", "slowness", "slowness_plus",
|
||||
"leaping", "leaping_2", "leaping_plus",
|
||||
"swiftness", "swiftness_2", "swiftness_plus",
|
||||
}
|
||||
|
||||
local splash_table = {}
|
||||
|
||||
for i, potion in ipairs(potions) do
|
||||
splash_table["mcl_potions:"..potion] = "mcl_potions:"..potion.."_splash"
|
||||
end
|
||||
|
||||
local mod_table = {
|
||||
["mesecons:redstone"] = extension_table,
|
||||
["mcl_potions:fermented_spider_eye"] = inversion_table,
|
||||
["mcl_nether:glowstone_dust"] = enhancement_table,
|
||||
["mcl_mobitems:gunpowder"] = splash_table,
|
||||
}
|
||||
|
||||
mcl_potions = {}
|
||||
-- Compare two ingredients for compatable alchemy
|
||||
function mcl_potions.get_alchemy(ingr, pot)
|
||||
|
||||
if output_table[pot] ~= nil then
|
||||
local brew_table = output_table[pot]
|
||||
if brew_table[ingr] ~= nil then
|
||||
return brew_table[ingr]
|
||||
end
|
||||
|
||||
elseif mod_table[ingr] ~= nil then
|
||||
local brew_table = mod_table[ingr]
|
||||
if brew_table[pot] ~= nil then
|
||||
return brew_table[pot]
|
||||
end
|
||||
elseif splash_table[ingr] ~= nil then
|
||||
local brew_table = mod_table[ingr]
|
||||
if brew_table[pot] ~= nil then
|
||||
return brew_table[pot]
|
||||
end
|
||||
end
|
||||
|
||||
return false
|
||||
end
|
||||
|
|
BIN
mods/ITEMS/mcl_potions/sounds/mcl_potions_breaking_glass.ogg
Executable file
BIN
mods/ITEMS/mcl_potions/sounds/mcl_potions_drinking.ogg
Normal file
BIN
mods/ITEMS/mcl_potions/textures/hb_potion_bar.png
Normal file
After Width: | Height: | Size: 91 B |
BIN
mods/ITEMS/mcl_potions/textures/hb_swiftness_bgicon.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
mods/ITEMS/mcl_potions/textures/hb_swiftness_icon.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
mods/ITEMS/mcl_potions/textures/mcl_potions_splash_bottle.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
mods/ITEMS/mcl_potions/textures/mcl_potions_splash_overlay.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
mods/ITEMS/mcl_potions/textures/mcl_potions_sprite.png
Normal file
After Width: | Height: | Size: 1.2 KiB |