first commit
23
Licence.txt
Executable file
@ -0,0 +1,23 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2016 TenPlus1
|
||||
Copyright (c) 2020 APercy
|
||||
|
||||
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.
|
||||
|
16
README.md
@ -1 +1,15 @@
|
||||
# minetest_biofuel
|
||||
# minetest_biofuel
|
||||
|
||||
Minetest 5.2 mod: Biofuel Distiller Kit
|
||||
========================================
|
||||
by APercy
|
||||
|
||||
License of source code:
|
||||
-----------------------
|
||||
Based on original Wine mod for Minetest by TenPlus1
|
||||
|
||||
License of media (textures, 3d models):
|
||||
---------------------------------------
|
||||
|
||||
Distiller model and textures (including biofuel barrel icon) by APercy. See License file
|
||||
|
||||
|
3
depends.txt
Executable file
@ -0,0 +1,3 @@
|
||||
player_api
|
||||
default?
|
||||
creative?
|
199
init.lua
Normal file
@ -0,0 +1,199 @@
|
||||
----------
|
||||
--biofuel
|
||||
----------
|
||||
|
||||
local modname = "biofuel"
|
||||
|
||||
if minetest.get_modpath("default") then
|
||||
--[[minetest.register_craft({
|
||||
output = modname .. ":biofuel",
|
||||
recipe = {
|
||||
{"", "farming:wheat"},
|
||||
{"farming:wheat", "farming:wheat"},
|
||||
}
|
||||
})]]--
|
||||
minetest.register_craft({
|
||||
output = modname .. ":biofuel_distiller",
|
||||
recipe = {
|
||||
{"default:copper_ingot", "default:copper_ingot", "default:copper_ingot"},
|
||||
{"default:steel_ingot" , "", "default:steel_ingot"},
|
||||
{"default:steel_ingot" , "default:steel_ingot", "default:steel_ingot"},
|
||||
},
|
||||
})
|
||||
end
|
||||
|
||||
|
||||
-- biofuel
|
||||
minetest.register_craftitem(modname .. ":biofuel",{
|
||||
description = "Bio Fuel",
|
||||
inventory_image = "biofuel_inv.png",
|
||||
})
|
||||
|
||||
local ferment = {
|
||||
{"default:papyrus", modname .. ":biofuel"},
|
||||
{"farming:wheat", modname .. ":biofuel"},
|
||||
{"farming:corn", modname .. ":biofuel"},
|
||||
{"farming:baked_potato", modname .. ":biofuel"}
|
||||
}
|
||||
|
||||
-- distiller
|
||||
biofueldistiller_formspec = "size[8,9]"
|
||||
.. "list[current_name;src;2,1;1,1;]"
|
||||
.. "list[current_name;dst;5,1;1,1;]"
|
||||
.. "list[current_player;main;0,5;8,4;]"
|
||||
.. "listring[current_name;dst]"
|
||||
.. "listring[current_player;main]"
|
||||
.. "listring[current_name;src]"
|
||||
.. "listring[current_player;main]"
|
||||
.. "image[3.5,1;1,1;gui_furnace_arrow_bg.png^[transformR270]"
|
||||
|
||||
minetest.register_node( modname .. ":biofuel_distiller", {
|
||||
description = "Biofuel Distiller",
|
||||
tiles = {"metal.png", "aluminum.png", "copper.png" },
|
||||
drawtype = "mesh",
|
||||
mesh = "biofuel_distiller.b3d",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
groups = {
|
||||
choppy = 2, oddly_breakable_by_hand = 1, flammable = 2
|
||||
},
|
||||
legacy_facedir_simple = true,
|
||||
|
||||
on_place = minetest.rotate_node,
|
||||
|
||||
on_construct = function(pos)
|
||||
|
||||
local meta = minetest.get_meta(pos)
|
||||
|
||||
meta:set_string("formspec", biofueldistiller_formspec)
|
||||
meta:set_string("infotext", "Biofuel Distiller")
|
||||
meta:set_float("status", 0.0)
|
||||
|
||||
local inv = meta:get_inventory()
|
||||
|
||||
inv:set_size("src", 1)
|
||||
inv:set_size("dst", 1)
|
||||
end,
|
||||
|
||||
can_dig = function(pos,player)
|
||||
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
|
||||
if not inv:is_empty("dst")
|
||||
or not inv:is_empty("src") then
|
||||
return false
|
||||
end
|
||||
|
||||
return true
|
||||
end,
|
||||
|
||||
allow_metadata_inventory_take = function(pos, listname, index, stack, player)
|
||||
|
||||
if minetest.is_protected(pos, player:get_player_name()) then
|
||||
return 0
|
||||
end
|
||||
|
||||
return stack:get_count()
|
||||
end,
|
||||
|
||||
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
|
||||
|
||||
if minetest.is_protected(pos, player:get_player_name()) then
|
||||
return 0
|
||||
end
|
||||
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
|
||||
if listname == "src" then
|
||||
return stack:get_count()
|
||||
elseif listname == "dst" then
|
||||
return 0
|
||||
end
|
||||
end,
|
||||
|
||||
allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
|
||||
|
||||
if minetest.is_protected(pos, player:get_player_name()) then
|
||||
return 0
|
||||
end
|
||||
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
local stack = inv:get_stack(from_list, from_index)
|
||||
|
||||
if to_list == "src" then
|
||||
return count
|
||||
elseif to_list == "dst" then
|
||||
return 0
|
||||
end
|
||||
end,
|
||||
|
||||
on_metadata_inventory_put = function(pos)
|
||||
|
||||
local timer = minetest.get_node_timer(pos)
|
||||
|
||||
timer:start(5)
|
||||
end,
|
||||
|
||||
on_timer = function(pos)
|
||||
|
||||
local meta = minetest.get_meta(pos) ; if not meta then return end
|
||||
local inv = meta:get_inventory()
|
||||
|
||||
-- is barrel empty?
|
||||
if not inv or inv:is_empty("src") then
|
||||
|
||||
meta:set_float("status", 0.0)
|
||||
meta:set_string("infotext", "Fuel Distiller")
|
||||
|
||||
return false
|
||||
end
|
||||
|
||||
-- does it contain any of the source items on the list?
|
||||
local has_item
|
||||
|
||||
for n = 1, #ferment do
|
||||
|
||||
if inv:contains_item("src", ItemStack(ferment[n][1])) then
|
||||
|
||||
has_item = n
|
||||
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
if not has_item then
|
||||
return false
|
||||
end
|
||||
|
||||
-- is there room for additional fermentation?
|
||||
if not inv:room_for_item("dst", ferment[has_item][2]) then
|
||||
|
||||
meta:set_string("infotext", "Fuel Distiller (FULL)")
|
||||
|
||||
return true
|
||||
end
|
||||
|
||||
local status = meta:get_float("status")
|
||||
|
||||
-- fermenting (change status)
|
||||
if status < 100 then
|
||||
meta:set_string("infotext", "Fuel Distiller " .. status .. "% done")
|
||||
meta:set_float("status", status + 5)
|
||||
else
|
||||
inv:remove_item("src", ferment[has_item][1])
|
||||
inv:add_item("dst", ferment[has_item][2])
|
||||
|
||||
meta:set_float("status", 0,0)
|
||||
end
|
||||
|
||||
if inv:is_empty("src") then
|
||||
meta:set_float("status", 0.0)
|
||||
meta:set_string("infotext", "Fuel Distiller")
|
||||
end
|
||||
|
||||
return true
|
||||
end,
|
||||
})
|
5
mod.conf
Normal file
@ -0,0 +1,5 @@
|
||||
name = biofuel
|
||||
depends = player_api
|
||||
optional_depends = default, creative
|
||||
description = It adds a distiller and biofuel, for running biofuel powered machines
|
||||
title = Biofuel Distiller Kit
|
BIN
models/biofuel_distiller.b3d
Normal file
BIN
models/pointer.b3d
Normal file
BIN
models/src/aluminum.png
Executable file
After Width: | Height: | Size: 2.4 KiB |
BIN
models/src/biofuel_inv.png
Normal file
After Width: | Height: | Size: 4.6 KiB |
BIN
models/src/black.png
Executable file
After Width: | Height: | Size: 581 B |
BIN
models/src/copper.png
Executable file
After Width: | Height: | Size: 2.6 KiB |
BIN
models/src/distiller.blend
Normal file
BIN
models/src/distiller.blend1
Normal file
BIN
models/src/interior_black.png
Executable file
After Width: | Height: | Size: 382 B |
BIN
models/src/metal.png
Executable file
After Width: | Height: | Size: 1.1 KiB |
BIN
models/src/panel.png
Executable file
After Width: | Height: | Size: 1.3 KiB |
BIN
models/src/panel.xcf
Normal file
BIN
models/src/pointer.blend
Normal file
BIN
screenshot.png
Normal file
After Width: | Height: | Size: 54 KiB |
BIN
sounds/helicopter_motor.ogg
Normal file
BIN
textures/aluminum.png
Executable file
After Width: | Height: | Size: 2.4 KiB |
BIN
textures/biofuel_inv.png
Normal file
After Width: | Height: | Size: 4.6 KiB |
BIN
textures/black.png
Executable file
After Width: | Height: | Size: 581 B |
BIN
textures/copper.png
Executable file
After Width: | Height: | Size: 2.6 KiB |
BIN
textures/interior_black.png
Executable file
After Width: | Height: | Size: 382 B |
BIN
textures/metal.png
Executable file
After Width: | Height: | Size: 1.1 KiB |
BIN
textures/panel.png
Executable file
After Width: | Height: | Size: 1.3 KiB |