upload
7
.gitignore
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
## Generic ignorable patterns and files
|
||||||
|
*~
|
||||||
|
.*.swp
|
||||||
|
*bak*
|
||||||
|
tags
|
||||||
|
*.vim
|
||||||
|
|
78
README.md
@ -1,2 +1,80 @@
|
|||||||
# minetest_hades
|
# minetest_hades
|
||||||
A Minetest subgame
|
A Minetest subgame
|
||||||
|
|
||||||
|
To play this game in Minetest, insert this repository as
|
||||||
|
/games/minetest_hades
|
||||||
|
in the Minetest Engine.
|
||||||
|
|
||||||
|
The Minetest Engine can be found in:
|
||||||
|
https://github.com/minetest/minetest/
|
||||||
|
|
||||||
|
All my work is under WTFPL License
|
||||||
|
The extern mods have different Licenses. look at the modfolders for details.
|
||||||
|
|
||||||
|
Extern mods are(mods that not from me and not part of the standard minetest-game):
|
||||||
|
|
||||||
|
3d forniture
|
||||||
|
https://forum.minetest.net/viewtopic.php?id=2207
|
||||||
|
|
||||||
|
bags
|
||||||
|
https://forum.minetest.net/viewtopic.php?id=3081
|
||||||
|
|
||||||
|
bedrock
|
||||||
|
http://www.moontest.org/viewtopic.php?f=11&t=9231
|
||||||
|
|
||||||
|
boost_cart
|
||||||
|
https://forum.minetest.net/viewtopic.php?f=11&t=10172
|
||||||
|
|
||||||
|
farming_plus
|
||||||
|
https://forum.minetest.net/viewtopic.php?id=2787
|
||||||
|
|
||||||
|
glowcrystals
|
||||||
|
https://forum.minetest.net/viewtopic.php?id=9047
|
||||||
|
|
||||||
|
home gui
|
||||||
|
https://forum.minetest.net/viewtopic.php?id=3101
|
||||||
|
|
||||||
|
highlandpools
|
||||||
|
https://forum.minetest.net/viewtopic.php?id=8400
|
||||||
|
|
||||||
|
hud
|
||||||
|
https://forum.minetest.net/viewtopic.php?id=6342
|
||||||
|
|
||||||
|
inventory plus
|
||||||
|
https://forum.minetest.net/viewtopic.php?id=3100
|
||||||
|
|
||||||
|
item tweaks
|
||||||
|
https://github.com/minetest-technic/item_tweaks
|
||||||
|
|
||||||
|
item frames
|
||||||
|
https://forum.minetest.net/viewtopic.php?id=5600
|
||||||
|
|
||||||
|
kerova
|
||||||
|
https://forum.minetest.net/viewtopic.php?id=8054
|
||||||
|
|
||||||
|
mesecons
|
||||||
|
https://forum.minetest.net/viewtopic.php?t=628
|
||||||
|
|
||||||
|
mobs redo (an old version)
|
||||||
|
https://forum.minetest.net/viewtopic.php?t=9917
|
||||||
|
|
||||||
|
pipeworks
|
||||||
|
https://forum.minetest.net/viewtopic.php?t=2155
|
||||||
|
|
||||||
|
plantlife (old destroyed code)
|
||||||
|
https://forum.minetest.net/viewtopic.php?id=3898
|
||||||
|
|
||||||
|
signs lib
|
||||||
|
https://forum.minetest.net/viewtopic.php?id=2041
|
||||||
|
|
||||||
|
trash can
|
||||||
|
https://forum.minetest.net/viewtopic.php?id=6315
|
||||||
|
|
||||||
|
travel net
|
||||||
|
https://forum.minetest.net/viewtopic.php?id=4877
|
||||||
|
|
||||||
|
vines
|
||||||
|
https://forum.minetest.net/viewtopic.php?id=2344
|
||||||
|
|
||||||
|
zcg
|
||||||
|
https://forum.minetest.net/viewtopic.php?id=5564
|
||||||
|
53
README.txt
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
The main game for the Minetest game engine [minetest_game]
|
||||||
|
==========================================================
|
||||||
|
|
||||||
|
To build the wholeness of the Minetest project, insert this repository as
|
||||||
|
/games/minetest_game
|
||||||
|
in the Minetest Engine.
|
||||||
|
|
||||||
|
The Minetest Engine can be found in:
|
||||||
|
https://github.com/minetest/minetest/
|
||||||
|
|
||||||
|
Compatibility
|
||||||
|
--------------
|
||||||
|
The minetest_game github master HEAD is generally compatible with the github
|
||||||
|
master HEAD of minetest.
|
||||||
|
|
||||||
|
Additionally, when the minetest engine is tagged to be a certain version (eg.
|
||||||
|
0.4.dev-20120326), minetest_game is tagged with the version too.
|
||||||
|
|
||||||
|
When stable releases are made, minetest_game is packaged and made available in
|
||||||
|
http://minetest.net/download.php
|
||||||
|
and in case the repository has grown too much, it may be reset. In that sense,
|
||||||
|
this is not a "real" git repository. (Package maintainers please note!)
|
||||||
|
|
||||||
|
License of source code
|
||||||
|
----------------------
|
||||||
|
Copyright (C) 2010-2012 celeron55, Perttu Ahola <celeron55@gmail.com>
|
||||||
|
See README.txt in each mod directory for information about other authors.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2.1 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License along
|
||||||
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
|
License of media (textures and sounds)
|
||||||
|
--------------------------------------
|
||||||
|
Copyright (C) 2010-2012 celeron55, Perttu Ahola <celeron55@gmail.com>
|
||||||
|
See README.txt in each mod directory for information about other authors.
|
||||||
|
|
||||||
|
Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)
|
||||||
|
http://creativecommons.org/licenses/by-sa/3.0/
|
||||||
|
|
||||||
|
License of menu/header.png
|
||||||
|
Copyright (C) 2013 BlockMen CC BY-3.0
|
||||||
|
|
BIN
menu/header.png
Normal file
After Width: | Height: | Size: 143 KiB |
BIN
menu/icon.png
Normal file
After Width: | Height: | Size: 6.1 KiB |
BIN
menu/overlay.png
Normal file
After Width: | Height: | Size: 901 KiB |
24
minetest.conf
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
-- only_peaceful_mobs=true
|
||||||
|
give_initial_stuff=true
|
||||||
|
movement_speed_jump=9.2
|
||||||
|
movement_gravity=7.81
|
||||||
|
selectionbox_color=(2,25,2)
|
||||||
|
-- num_emerge_threads =
|
||||||
|
-- liquid_loop_max=2000
|
||||||
|
-- liquid_update=0.5
|
||||||
|
-- liquid_relax=1
|
||||||
|
underground_springs=1
|
||||||
|
--liquid_fast_flood=1
|
||||||
|
mg_name=v6
|
||||||
|
water_level=-5
|
||||||
|
cloud_height=200
|
||||||
|
mg_flags=notrees, nodungeons, caves
|
||||||
|
mgv6_spflags = mudflow, nosnowbiomes, nojungles
|
||||||
|
mgv6_np_terrain_base=-8, 40, (32, 32, 32), 2321, 5, 0.6
|
||||||
|
mgv6_np_cave = 12, 4, (16, 16, 16), 322439, 3, 0.50, 2.0
|
||||||
|
-- for freaks: mgv6_np_cave = 176, 133, (250, 250, 250), 34329, 3, 0.50, 2.0
|
||||||
|
enable_item_drops = false
|
||||||
|
enable_item_pickup = true
|
||||||
|
remove_items = -1
|
||||||
|
|
||||||
|
|
262
mods/3dforniture/crafting.lua
Normal file
@ -0,0 +1,262 @@
|
|||||||
|
--[[
|
||||||
|
Some adjustments and expansions for Hades subgame added 2015 by Glünggi
|
||||||
|
|
||||||
|
3D Forniture
|
||||||
|
|
||||||
|
Copyright 2012 Tonyka
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||||
|
MA 02110-1301, USA.
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
|
||||||
|
InfinityProject
|
||||||
|
|
||||||
|
suggested creating bathroom kit.
|
||||||
|
|
||||||
|
cosarara97
|
||||||
|
|
||||||
|
code.
|
||||||
|
|
||||||
|
]]--
|
||||||
|
|
||||||
|
-- Deco Home
|
||||||
|
|
||||||
|
--Table
|
||||||
|
minetest.register_craft( {
|
||||||
|
output = '3dforniture:table',
|
||||||
|
recipe = {
|
||||||
|
{ 'default:wood','default:wood', 'default:wood' },
|
||||||
|
{ 'default:stick', '', 'default:stick' },
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft( {
|
||||||
|
output = '3dforniture:table_black',
|
||||||
|
recipe = {
|
||||||
|
{ 'default:colwood_black','default:colwood_black', 'default:colwood_black' },
|
||||||
|
{ 'default:stick', '', 'default:stick' },
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft( {
|
||||||
|
output = '3dforniture:table_white',
|
||||||
|
recipe = {
|
||||||
|
{ 'default:colwood_white','default:colwood_white', 'default:colwood_white' },
|
||||||
|
{ 'default:stick', '', 'default:stick' },
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = 'fuel',
|
||||||
|
recipe = '3dforniture:table',
|
||||||
|
burntime = 30,
|
||||||
|
})
|
||||||
|
|
||||||
|
--Chair
|
||||||
|
minetest.register_craft( {
|
||||||
|
output = '3dforniture:chair 2',
|
||||||
|
recipe = {
|
||||||
|
{ 'default:stick',''},
|
||||||
|
{ 'default:wood','default:wood' },
|
||||||
|
{ 'default:stick','default:stick' },
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft( {
|
||||||
|
output = '3dforniture:chair_black 2',
|
||||||
|
recipe = {
|
||||||
|
{ 'default:stick',''},
|
||||||
|
{ 'default:colwood_black','default:colwood_black' },
|
||||||
|
{ 'default:stick','default:stick' },
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft( {
|
||||||
|
output = '3dforniture:chair_white 2',
|
||||||
|
recipe = {
|
||||||
|
{ 'default:stick',''},
|
||||||
|
{ 'default:colwood_white','default:colwood_white' },
|
||||||
|
{ 'default:stick','default:stick' },
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = 'fuel',
|
||||||
|
recipe = '3dforniture:chair',
|
||||||
|
burntime = 15,
|
||||||
|
})
|
||||||
|
|
||||||
|
--Armchair
|
||||||
|
minetest.register_craft( {
|
||||||
|
output = '3dforniture:armchair 2',
|
||||||
|
recipe = {
|
||||||
|
{ 'default:wood',''},
|
||||||
|
{ 'default:wood','wool:black' },
|
||||||
|
{ 'default:wood','default:wood' },
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft( {
|
||||||
|
output = '3dforniture:armchair_white 2',
|
||||||
|
recipe = {
|
||||||
|
{ 'default:wood',''},
|
||||||
|
{ 'default:wood','wool:white' },
|
||||||
|
{ 'default:wood','default:wood' },
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft( {
|
||||||
|
output = '3dforniture:armchair_blue 2',
|
||||||
|
recipe = {
|
||||||
|
{ 'default:wood',''},
|
||||||
|
{ 'default:wood','wool:blue' },
|
||||||
|
{ 'default:wood','default:wood' },
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft( {
|
||||||
|
output = '3dforniture:armchair_brown 2',
|
||||||
|
recipe = {
|
||||||
|
{ 'default:wood',''},
|
||||||
|
{ 'default:wood','wool:brown' },
|
||||||
|
{ 'default:wood','default:wood' },
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft( {
|
||||||
|
output = '3dforniture:armchair_red 2',
|
||||||
|
recipe = {
|
||||||
|
{ 'default:wood',''},
|
||||||
|
{ 'default:wood','wool:red' },
|
||||||
|
{ 'default:wood','default:wood' },
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft( {
|
||||||
|
output = '3dforniture:armchair_green 2',
|
||||||
|
recipe = {
|
||||||
|
{ 'default:wood',''},
|
||||||
|
{ 'default:wood','wool:dark_green' },
|
||||||
|
{ 'default:wood','default:wood' },
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = 'fuel',
|
||||||
|
recipe = '3dforniture:armchair',
|
||||||
|
burntime = 30,
|
||||||
|
})
|
||||||
|
|
||||||
|
--Table Lamp
|
||||||
|
minetest.register_craft( {
|
||||||
|
output = '3dforniture:table_lamp_off',
|
||||||
|
recipe = {
|
||||||
|
{'default:paper','default:torch' ,'default:paper'},
|
||||||
|
{'','default:stick',''},
|
||||||
|
{'','stairs:slab_wood',''},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = 'fuel',
|
||||||
|
recipe = '3dforniture:table_lamp_off',
|
||||||
|
burntime = 10,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Bathroom Kit
|
||||||
|
|
||||||
|
--Toilet
|
||||||
|
minetest.register_craft( {
|
||||||
|
output = '3dforniture:toilet',
|
||||||
|
recipe = {
|
||||||
|
{'default:clay','homedecor:plastic_base',''},
|
||||||
|
{ 'default:clay','default:clay', '' },
|
||||||
|
{ 'pipeworks:pipe_1_empty', 'pipeworks:pump_off', '' },
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
--Sink
|
||||||
|
minetest.register_craft( {
|
||||||
|
output = '3dforniture:sink',
|
||||||
|
recipe = {
|
||||||
|
{ 'default:clay','default:clay', 'default:clay' },
|
||||||
|
{ '','pipeworks:pipe_1_empty', '' },
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
--Taps
|
||||||
|
minetest.register_craft( {
|
||||||
|
output = '3dforniture:taps',
|
||||||
|
recipe = {
|
||||||
|
{ 'default:bronze_ingot','pipeworks:pipe_1_empty', 'default:bronze_ingot' },
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
--Shower Tray
|
||||||
|
minetest.register_craft( {
|
||||||
|
output = '3dforniture:shower_tray',
|
||||||
|
recipe = {
|
||||||
|
{ 'default:steel_ingot','default:steel_ingot', 'default:steel_ingot' },
|
||||||
|
{ '','pipeworks:pipe_1_empty', '' },
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
--Shower Head
|
||||||
|
minetest.register_craft( {
|
||||||
|
output = '3dforniture:shower_head',
|
||||||
|
recipe = {
|
||||||
|
{'pipeworks:pipe_1_empty', 'default:bronze_ingot'},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Medieval Forniture
|
||||||
|
|
||||||
|
--Bars
|
||||||
|
minetest.register_craft( {
|
||||||
|
output = '3dforniture:bars 10',
|
||||||
|
recipe = {
|
||||||
|
{ 'default:steel_ingot','default:steel_ingot','default:steel_ingot' },
|
||||||
|
{ 'default:steel_ingot','default:steel_ingot','default:steel_ingot' },
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- L Binding Bars
|
||||||
|
minetest.register_craft( {
|
||||||
|
output = '3dforniture:L_binding_bars 4',
|
||||||
|
recipe = {
|
||||||
|
{ '3dforniture:bars','' },
|
||||||
|
{ '3dforniture:bars','3dforniture:bars' },
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
--Chains
|
||||||
|
minetest.register_craft( {
|
||||||
|
output = '3dforniture:chains 4',
|
||||||
|
recipe = {
|
||||||
|
{'','default:steel_ingot',''},
|
||||||
|
{ 'default:steel_ingot','', 'default:steel_ingot' },
|
||||||
|
{ '', 'default:steel_ingot', '' },
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
--Torch Wall
|
||||||
|
--minetest.register_craft( {
|
||||||
|
--output = '3dforniture:torch_wall',
|
||||||
|
--recipe = {
|
||||||
|
--{ 'default:coal_lump' },
|
||||||
|
--{ 'default:steel_ingot' },
|
||||||
|
--},
|
||||||
|
--})
|
1
mods/3dforniture/depends.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
default
|
94
mods/3dforniture/init.lua
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
--[[
|
||||||
|
Some adjustments and expansions for Hades subgame added 2015 by Glünggi
|
||||||
|
|
||||||
|
3D Forniture
|
||||||
|
|
||||||
|
Copyright 2012 Tonyka
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||||
|
MA 02110-1301, USA.
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
|
||||||
|
|
||||||
|
Lesliev
|
||||||
|
|
||||||
|
code
|
||||||
|
information and assistance in various aspects
|
||||||
|
|
||||||
|
InfinityProject
|
||||||
|
|
||||||
|
suggested creating bathroom kit.
|
||||||
|
|
||||||
|
cosarara97
|
||||||
|
|
||||||
|
code.
|
||||||
|
|
||||||
|
]]--
|
||||||
|
|
||||||
|
dofile(minetest.get_modpath("3dforniture").."/crafting.lua")
|
||||||
|
dofile(minetest.get_modpath("3dforniture").."/nodes.lua")
|
||||||
|
|
||||||
|
--alias
|
||||||
|
minetest.register_alias('table', '3dforniture:table')
|
||||||
|
minetest.register_alias('chair', '3dforniture:chair')
|
||||||
|
minetest.register_alias('bars', '3dforniture:bars')
|
||||||
|
minetest.register_alias('binding_bars', '3dforniture:L_binding_bars')
|
||||||
|
minetest.register_alias('chains', '3dforniture:chains')
|
||||||
|
minetest.register_alias('torch_wall', '3dforniture:torch_wall')
|
||||||
|
minetest.register_alias('toilet', '3dforniture:toilet')
|
||||||
|
minetest.register_alias('sink', '3dforniture:sink')
|
||||||
|
minetest.register_alias('taps', '3dforniture:taps')
|
||||||
|
minetest.register_alias('shower_tray', '3dforniture:shower_tray')
|
||||||
|
minetest.register_alias('shower_head', '3dforniture:shower_head')
|
||||||
|
minetest.register_alias('table_lamp', '3dforniture:table_lamp_off')
|
||||||
|
minetest.register_alias('armchair', '3dforniture:armchair')
|
||||||
|
|
||||||
|
--function
|
||||||
|
|
||||||
|
local on_lamp_puncher = function (pos, node, puncher)
|
||||||
|
if node.name == "3dforniture:table_lamp_off" then
|
||||||
|
minetest.env:add_node(pos, {name="3dforniture:table_lamp_low"})
|
||||||
|
nodeupdate(pos)
|
||||||
|
elseif node.name == "3dforniture:table_lamp_low" then
|
||||||
|
minetest.env:add_node(pos, {name="3dforniture:table_lamp_med"})
|
||||||
|
nodeupdate(pos)
|
||||||
|
elseif node.name == "3dforniture:table_lamp_med" then
|
||||||
|
minetest.env:add_node(pos, {name="3dforniture:table_lamp_hi"})
|
||||||
|
nodeupdate(pos)
|
||||||
|
elseif node.name == "3dforniture:table_lamp_hi" then
|
||||||
|
minetest.env:add_node(pos, {name="3dforniture:table_lamp_max"})
|
||||||
|
nodeupdate(pos)
|
||||||
|
elseif node.name == "3dforniture:table_lamp_max" then
|
||||||
|
minetest.env:add_node(pos, {name="3dforniture:table_lamp_off"})
|
||||||
|
nodeupdate(pos)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
local on_toilet_puncher = function (pos, node, puncher)
|
||||||
|
if node.name == '3dforniture:toilet' then
|
||||||
|
local dir = node["param2"]
|
||||||
|
minetest.env:add_node(pos, {name="3dforniture:toilet_open", paramtype2='none', param2=dir})
|
||||||
|
nodeupdate(pos)
|
||||||
|
elseif node.name == '3dforniture:toilet_open' then
|
||||||
|
local dir = node["param2"]
|
||||||
|
minetest.env:add_node(pos, {name="3dforniture:toilet", paramtype2='none', param2=dir})
|
||||||
|
nodeupdate(pos)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
minetest.register_on_punchnode(on_lamp_puncher)
|
||||||
|
minetest.register_on_punchnode(on_toilet_puncher)
|
1165
mods/3dforniture/nodes.lua
Normal file
BIN
mods/3dforniture/sounds/3dforniture_dig_toilet.ogg
Normal file
BIN
mods/3dforniture/textures/3dforniture_inv_chains.png
Normal file
After Width: | Height: | Size: 5.3 KiB |
BIN
mods/3dforniture/textures/3dforniture_inv_shower_head.png
Normal file
After Width: | Height: | Size: 5.1 KiB |
BIN
mods/3dforniture/textures/3dforniture_inv_shower_tray.png
Normal file
After Width: | Height: | Size: 5.3 KiB |
BIN
mods/3dforniture/textures/3dforniture_inv_sink.png
Normal file
After Width: | Height: | Size: 5.1 KiB |
BIN
mods/3dforniture/textures/3dforniture_inv_taps.png
Normal file
After Width: | Height: | Size: 5.2 KiB |
BIN
mods/3dforniture/textures/3dforniture_inv_torch_wall.png
Normal file
After Width: | Height: | Size: 5.0 KiB |
BIN
mods/3dforniture/textures/forniture_armchair_lat1.png
Normal file
After Width: | Height: | Size: 4.3 KiB |
BIN
mods/3dforniture/textures/forniture_armchair_lat1_blue.png
Normal file
After Width: | Height: | Size: 4.4 KiB |
BIN
mods/3dforniture/textures/forniture_armchair_lat1_brown.png
Normal file
After Width: | Height: | Size: 4.3 KiB |
BIN
mods/3dforniture/textures/forniture_armchair_lat1_green.png
Normal file
After Width: | Height: | Size: 4.4 KiB |
BIN
mods/3dforniture/textures/forniture_armchair_lat1_red.png
Normal file
After Width: | Height: | Size: 4.4 KiB |
BIN
mods/3dforniture/textures/forniture_armchair_lat1_white.png
Normal file
After Width: | Height: | Size: 4.3 KiB |
BIN
mods/3dforniture/textures/forniture_armchair_lat2.png
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
mods/3dforniture/textures/forniture_armchair_lat2_blue.png
Normal file
After Width: | Height: | Size: 4.3 KiB |
BIN
mods/3dforniture/textures/forniture_armchair_lat2_brown.png
Normal file
After Width: | Height: | Size: 4.3 KiB |
BIN
mods/3dforniture/textures/forniture_armchair_lat2_green.png
Normal file
After Width: | Height: | Size: 4.3 KiB |
BIN
mods/3dforniture/textures/forniture_armchair_lat2_red.png
Normal file
After Width: | Height: | Size: 4.3 KiB |
BIN
mods/3dforniture/textures/forniture_armchair_lat2_white.png
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
mods/3dforniture/textures/forniture_armchair_top.png
Normal file
After Width: | Height: | Size: 4.3 KiB |
BIN
mods/3dforniture/textures/forniture_armchair_top_blue.png
Normal file
After Width: | Height: | Size: 4.3 KiB |
BIN
mods/3dforniture/textures/forniture_armchair_top_brown.png
Normal file
After Width: | Height: | Size: 4.6 KiB |
BIN
mods/3dforniture/textures/forniture_armchair_top_green.png
Normal file
After Width: | Height: | Size: 4.6 KiB |
BIN
mods/3dforniture/textures/forniture_armchair_top_red.png
Normal file
After Width: | Height: | Size: 4.3 KiB |
BIN
mods/3dforniture/textures/forniture_armchair_top_white.png
Normal file
After Width: | Height: | Size: 4.3 KiB |
BIN
mods/3dforniture/textures/forniture_black_metal.png
Normal file
After Width: | Height: | Size: 4.1 KiB |
BIN
mods/3dforniture/textures/forniture_black_metal_s1.png
Normal file
After Width: | Height: | Size: 4.1 KiB |
BIN
mods/3dforniture/textures/forniture_black_metal_s2.png
Normal file
After Width: | Height: | Size: 4.0 KiB |
BIN
mods/3dforniture/textures/forniture_marble.png
Normal file
After Width: | Height: | Size: 4.6 KiB |
BIN
mods/3dforniture/textures/forniture_marble_base_ducha_top.png
Normal file
After Width: | Height: | Size: 4.6 KiB |
BIN
mods/3dforniture/textures/forniture_marble_s1.png
Normal file
After Width: | Height: | Size: 4.4 KiB |
BIN
mods/3dforniture/textures/forniture_marble_s2.png
Normal file
After Width: | Height: | Size: 4.5 KiB |
BIN
mods/3dforniture/textures/forniture_marble_sb1.png
Normal file
After Width: | Height: | Size: 4.3 KiB |
BIN
mods/3dforniture/textures/forniture_marble_sb2.png
Normal file
After Width: | Height: | Size: 4.5 KiB |
BIN
mods/3dforniture/textures/forniture_marble_top_sink.png
Normal file
After Width: | Height: | Size: 4.9 KiB |
BIN
mods/3dforniture/textures/forniture_marble_top_toilet.png
Normal file
After Width: | Height: | Size: 4.5 KiB |
BIN
mods/3dforniture/textures/forniture_metal.png
Normal file
After Width: | Height: | Size: 4.0 KiB |
BIN
mods/3dforniture/textures/forniture_metal_s1.png
Normal file
After Width: | Height: | Size: 4.0 KiB |
BIN
mods/3dforniture/textures/forniture_metal_s2.png
Normal file
After Width: | Height: | Size: 4.0 KiB |
BIN
mods/3dforniture/textures/forniture_papyrus.png
Normal file
After Width: | Height: | Size: 3.7 KiB |
BIN
mods/3dforniture/textures/forniture_papyrus_s1.png
Normal file
After Width: | Height: | Size: 3.8 KiB |
BIN
mods/3dforniture/textures/forniture_papyrus_s2.png
Normal file
After Width: | Height: | Size: 3.8 KiB |
BIN
mods/3dforniture/textures/forniture_table_lamp_l.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
mods/3dforniture/textures/forniture_table_lamp_s.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
BIN
mods/3dforniture/textures/forniture_torch_wall_anim.png
Normal file
After Width: | Height: | Size: 6.6 KiB |
BIN
mods/3dforniture/textures/forniture_torch_wall_i.png
Normal file
After Width: | Height: | Size: 5.0 KiB |
BIN
mods/3dforniture/textures/forniture_torch_wall_s.png
Normal file
After Width: | Height: | Size: 5.0 KiB |
BIN
mods/3dforniture/textures/forniture_wood.png
Normal file
After Width: | Height: | Size: 4.0 KiB |
BIN
mods/3dforniture/textures/forniture_wood_black.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
mods/3dforniture/textures/forniture_wood_s1.png
Normal file
After Width: | Height: | Size: 4.0 KiB |
BIN
mods/3dforniture/textures/forniture_wood_s1_black.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
mods/3dforniture/textures/forniture_wood_s1_white.png
Normal file
After Width: | Height: | Size: 3.8 KiB |
BIN
mods/3dforniture/textures/forniture_wood_s2.png
Normal file
After Width: | Height: | Size: 4.0 KiB |
BIN
mods/3dforniture/textures/forniture_wood_s2_black.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
mods/3dforniture/textures/forniture_wood_s2_white.png
Normal file
After Width: | Height: | Size: 3.8 KiB |
BIN
mods/3dforniture/textures/forniture_wood_white.png
Normal file
After Width: | Height: | Size: 3.8 KiB |
34
mods/bags/LICENSE
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
Some adjustments and expansions for Hades subgame added 2015 by Glünggi
|
||||||
|
|
||||||
|
Copyright (c) 2013, Brett O'Donnell http://cornernote.github.io
|
||||||
|
All rights reserved.
|
||||||
|
_____ _____ _____ _____ _____ _____
|
||||||
|
| |___| __ | | |___| __ | | |___|_ _|___
|
||||||
|
| --| . | -| | | | -_| -| | | | . | | | | -_|
|
||||||
|
|_____|___|__|__|_|___|___|__|__|_|___|___| |_| |___|
|
||||||
|
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without modification,
|
||||||
|
are permitted provided that the following conditions are met:
|
||||||
|
|
||||||
|
* Redistributions of source code must retain the above copyright notice, this
|
||||||
|
list of conditions and the following disclaimer.
|
||||||
|
|
||||||
|
* Redistributions in binary form must reproduce the above copyright notice, this
|
||||||
|
list of conditions and the following disclaimer in the documentation and/or
|
||||||
|
other materials provided with the distribution.
|
||||||
|
|
||||||
|
* Neither the name of the organization nor the names of its
|
||||||
|
contributors may be used to endorse or promote products derived from
|
||||||
|
this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||||
|
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
38
mods/bags/README.md
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
# Bags for Minetest
|
||||||
|
|
||||||
|
Allows players to craft and attach bags to their inventory to increase player item storage capacity.
|
||||||
|
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- Bags are available in inventory.
|
||||||
|
- Multiple sized bags.
|
||||||
|
- Bags store items permanently with the player.
|
||||||
|
|
||||||
|
|
||||||
|
## Resources
|
||||||
|
|
||||||
|
- **[Documentation](http://cornernote.github.io/minetest-bags)**
|
||||||
|
- **[GitHub Project](https://github.com/cornernote/minetest-bags)**
|
||||||
|
- **[Minetest Forum](http://minetest.net/forum/viewtopic.php?id=3081)**
|
||||||
|
|
||||||
|
|
||||||
|
## Support
|
||||||
|
|
||||||
|
- Does this README need improvement? Go ahead and [suggest a change](https://github.com/cornernote/minetest-bags/edit/master/README.md).
|
||||||
|
- Found a bug, or need help using this project? Check the [open issues](https://github.com/cornernote/minetest-bags/issues) or [create an issue](https://github.com/cornernote/minetest-bags/issues/new).
|
||||||
|
|
||||||
|
|
||||||
|
## About
|
||||||
|
|
||||||
|
This module is open source, so it's distributed freely. If you find it useful then I ask not for your wealth, but simply to spare your time to consider the world we share by watching [Earthlings](http://earthlings.com/), a multi-award winning film available to watch online for free. A must-see for anyone who wishes to make the world a better place.
|
||||||
|
|
||||||
|
|
||||||
|
## Credits
|
||||||
|
|
||||||
|
- Tonyka - created the amazing bag textures
|
||||||
|
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
[BSD-3-Clause](https://raw.github.com/cornernote/minetest-bags/master/LICENSE), Copyright © 2013-2014 [Brett O'Donnell](http://cornernote.github.io/)
|
1
mods/bags/bags/depends.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
inventory_plus
|
144
mods/bags/bags/init.lua
Normal file
@ -0,0 +1,144 @@
|
|||||||
|
--[[
|
||||||
|
|
||||||
|
Bags for Minetest
|
||||||
|
|
||||||
|
Copyright (c) 2012 cornernote, Brett O'Donnell <cornernote@gmail.com>
|
||||||
|
Source Code: https://github.com/cornernote/minetest-particles
|
||||||
|
License: GPLv3
|
||||||
|
|
||||||
|
]]--
|
||||||
|
|
||||||
|
|
||||||
|
-- get_formspec
|
||||||
|
local get_formspec = function(player,page)
|
||||||
|
if page=="bags" then
|
||||||
|
return "size[8,7.5]"
|
||||||
|
..default.gui_bg_img
|
||||||
|
..default.gui_slots
|
||||||
|
.."list[current_player;main;0,3.5;8,4;]"
|
||||||
|
.."button[0,0;2,0.5;main;Back]"
|
||||||
|
.."button[0,2;2,0.5;bag1;Bag 1]"
|
||||||
|
.."button[2,2;2,0.5;bag2;Bag 2]"
|
||||||
|
.."button[4,2;2,0.5;bag3;Bag 3]"
|
||||||
|
.."button[6,2;2,0.5;bag4;Bag 4]"
|
||||||
|
.."list[detached:"..player:get_player_name().."_bags;bag1;0.5,1;1,1;]"
|
||||||
|
.."list[detached:"..player:get_player_name().."_bags;bag2;2.5,1;1,1;]"
|
||||||
|
.."list[detached:"..player:get_player_name().."_bags;bag3;4.5,1;1,1;]"
|
||||||
|
.."list[detached:"..player:get_player_name().."_bags;bag4;6.5,1;1,1;]"
|
||||||
|
end
|
||||||
|
for i=1,4 do
|
||||||
|
if page=="bag"..i then
|
||||||
|
local image = player:get_inventory():get_stack("bag"..i, 1):get_definition().inventory_image
|
||||||
|
return "size[8,8.5]"
|
||||||
|
..default.gui_bg_img
|
||||||
|
..default.gui_slots
|
||||||
|
.."list[current_player;main;0,4.5;8,4;]"
|
||||||
|
.."button[0,0;2,0.5;main;Main]"
|
||||||
|
.."button[2,0;2,0.5;bags;Bags]"
|
||||||
|
.."image[7,0;1,1;"..image.."]"
|
||||||
|
.."list[current_player;bag"..i.."contents;0,1;8,3;]"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- register_on_player_receive_fields
|
||||||
|
minetest.register_on_player_receive_fields(function(player, formname, fields)
|
||||||
|
if fields.bags then
|
||||||
|
inventory_plus.set_inventory_formspec(player, get_formspec(player,"bags"))
|
||||||
|
return
|
||||||
|
end
|
||||||
|
for i=1,4 do
|
||||||
|
local page = "bag"..i
|
||||||
|
if fields[page] then
|
||||||
|
if player:get_inventory():get_stack(page, 1):get_definition().groups.bagslots==nil then
|
||||||
|
page = "bags"
|
||||||
|
end
|
||||||
|
inventory_plus.set_inventory_formspec(player, get_formspec(player,page))
|
||||||
|
return
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
-- register_on_joinplayer
|
||||||
|
minetest.register_on_joinplayer(function(player)
|
||||||
|
inventory_plus.register_button(player,"bags","Bags")
|
||||||
|
local player_inv = player:get_inventory()
|
||||||
|
local bags_inv = minetest.create_detached_inventory(player:get_player_name().."_bags",{
|
||||||
|
on_put = function(inv, listname, index, stack, player)
|
||||||
|
player:get_inventory():set_stack(listname, index, stack)
|
||||||
|
player:get_inventory():set_size(listname.."contents", stack:get_definition().groups.bagslots)
|
||||||
|
end,
|
||||||
|
on_take = function(inv, listname, index, stack, player)
|
||||||
|
player:get_inventory():set_stack(listname, index, nil)
|
||||||
|
end,
|
||||||
|
allow_put = function(inv, listname, index, stack, player)
|
||||||
|
if stack:get_definition().groups.bagslots then
|
||||||
|
return 1
|
||||||
|
else
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
allow_take = function(inv, listname, index, stack, player)
|
||||||
|
if player:get_inventory():is_empty(listname.."contents")==true then
|
||||||
|
return stack:get_count()
|
||||||
|
else
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
allow_move = function(inv, from_list, from_index, to_list, to_index, count, player)
|
||||||
|
return 0
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
for i=1,4 do
|
||||||
|
local bag = "bag"..i
|
||||||
|
player_inv:set_size(bag, 1)
|
||||||
|
bags_inv:set_size(bag, 1)
|
||||||
|
bags_inv:set_stack(bag,1,player_inv:get_stack(bag,1))
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
-- register bag tools
|
||||||
|
minetest.register_tool("bags:small", {
|
||||||
|
description = "Small Bag",
|
||||||
|
inventory_image = "bags_small.png",
|
||||||
|
groups = {bagslots=8},
|
||||||
|
})
|
||||||
|
minetest.register_tool("bags:medium", {
|
||||||
|
description = "Medium Bag",
|
||||||
|
inventory_image = "bags_medium.png",
|
||||||
|
groups = {bagslots=16},
|
||||||
|
})
|
||||||
|
minetest.register_tool("bags:large", {
|
||||||
|
description = "Large Bag",
|
||||||
|
inventory_image = "bags_large.png",
|
||||||
|
groups = {bagslots=24},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- register bag crafts
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "bags:small",
|
||||||
|
recipe = {
|
||||||
|
{"", "farming:string", ""},
|
||||||
|
{"wool:white", "wool:white", "wool:white"},
|
||||||
|
{"wool:white", "wool:white", "wool:white"},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "bags:medium",
|
||||||
|
recipe = {
|
||||||
|
{"", "default:stick", ""},
|
||||||
|
{"bags:small", "farming:string", "bags:small"},
|
||||||
|
{"bags:small", "farming:string", "bags:small"},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "bags:large",
|
||||||
|
recipe = {
|
||||||
|
{"", "default:stick", ""},
|
||||||
|
{"bags:medium", "farming:string", "bags:medium"},
|
||||||
|
{"bags:medium", "farming:string", "bags:medium"},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- log that we started
|
||||||
|
minetest.log("action", "[MOD]"..minetest.get_current_modname().." -- loaded from "..minetest.get_modpath(minetest.get_current_modname()))
|
BIN
mods/bags/bags/textures/bags_large.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
mods/bags/bags/textures/bags_medium.png
Normal file
After Width: | Height: | Size: 3.8 KiB |
BIN
mods/bags/bags/textures/bags_small.png
Normal file
After Width: | Height: | Size: 3.7 KiB |
0
mods/bags/modpack.txt
Normal file
13
mods/bedrock/LICENSE.txt
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
+---- zlib/libpng license ----+
|
||||||
|
|
||||||
|
Copyright (c) 2013-2014 Calinou and contributors
|
||||||
|
|
||||||
|
This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.
|
||||||
|
|
||||||
|
Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
|
||||||
|
|
||||||
|
1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
|
||||||
|
|
||||||
|
2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
|
||||||
|
|
||||||
|
3. This notice may not be removed or altered from any source distribution.
|
1
mods/bedrock/depends.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
default
|
41
mods/bedrock/init.lua
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
minetest.register_ore({
|
||||||
|
ore_type = "scatter",
|
||||||
|
ore = "bedrock:bedrock",
|
||||||
|
wherein = "default:stone",
|
||||||
|
clust_scarcity = 1 * 1 * 1,
|
||||||
|
clust_num_ores = 5,
|
||||||
|
clust_size = 2,
|
||||||
|
height_min = -30912, -- Engine changes can modify this value.
|
||||||
|
height_max = -30656, -- This ensures the bottom of the world is not even loaded.
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_ore({
|
||||||
|
ore_type = "scatter",
|
||||||
|
ore = "bedrock:deepstone",
|
||||||
|
wherein = "default:stone",
|
||||||
|
clust_scarcity = 1 * 1 * 1,
|
||||||
|
clust_num_ores = 5,
|
||||||
|
clust_size = 2,
|
||||||
|
height_min = -30656,
|
||||||
|
height_max = -30000,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("bedrock:bedrock", {
|
||||||
|
description = "Bedrock",
|
||||||
|
tile_images = {"bedrock_bedrock.png"},
|
||||||
|
drop = "",
|
||||||
|
groups = {unbreakable = 1, not_in_creative_inventory = 1}, -- For Map Tools' admin pickaxe.
|
||||||
|
sounds = default.node_sound_stone_defaults(),
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("bedrock:deepstone", {
|
||||||
|
description = "Deepstone",
|
||||||
|
tile_images = {"bedrock_deepstone.png"},
|
||||||
|
drop = "default:stone", -- Intended.
|
||||||
|
groups = {cracky = 1},
|
||||||
|
sounds = default.node_sound_stone_defaults(),
|
||||||
|
})
|
||||||
|
|
||||||
|
if minetest.setting_getbool("log_mods") then
|
||||||
|
minetest.log("action", "[bedrock] loaded.")
|
||||||
|
end
|
BIN
mods/bedrock/textures/bedrock_bedrock.png
Normal file
After Width: | Height: | Size: 682 B |
BIN
mods/bedrock/textures/bedrock_deepstone.png
Normal file
After Width: | Height: | Size: 373 B |
17
mods/bones/README.txt
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
Minetest 0.4 mod: bones
|
||||||
|
=======================
|
||||||
|
|
||||||
|
License of source code:
|
||||||
|
-----------------------
|
||||||
|
Copyright (C) 2012 PilzAdam
|
||||||
|
|
||||||
|
WTFPL
|
||||||
|
|
||||||
|
License of media (textures and sounds)
|
||||||
|
--------------------------------------
|
||||||
|
Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)
|
||||||
|
http://creativecommons.org/licenses/by-sa/3.0/
|
||||||
|
|
||||||
|
Authors of media files
|
||||||
|
----------------------
|
||||||
|
Bad_Command_
|
1
mods/bones/depends.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
default
|
133
mods/bones/init.lua
Normal file
@ -0,0 +1,133 @@
|
|||||||
|
-- Minetest 0.4 mod: bones
|
||||||
|
-- See README.txt for licensing and other information.
|
||||||
|
|
||||||
|
local function is_owner(pos, name)
|
||||||
|
local owner = minetest.get_meta(pos):get_string("owner")
|
||||||
|
if owner == "" or owner == name then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
minetest.register_node("bones:bones", {
|
||||||
|
description = "Bones",
|
||||||
|
tiles = {
|
||||||
|
"bones_top.png",
|
||||||
|
"bones_bottom.png",
|
||||||
|
"bones_side.png",
|
||||||
|
"bones_side.png",
|
||||||
|
"bones_rear.png",
|
||||||
|
"bones_front.png"
|
||||||
|
},
|
||||||
|
paramtype2 = "facedir",
|
||||||
|
groups = {dig_immediate=2},
|
||||||
|
sounds = default.node_sound_dirt_defaults({
|
||||||
|
footstep = {name="default_gravel_footstep", gain=0.5},
|
||||||
|
dug = {name="default_gravel_footstep", gain=1.0},
|
||||||
|
}),
|
||||||
|
|
||||||
|
can_dig = function(pos, player)
|
||||||
|
local inv = minetest.get_meta(pos):get_inventory()
|
||||||
|
return is_owner(pos, player:get_player_name()) and inv:is_empty("main")
|
||||||
|
end,
|
||||||
|
|
||||||
|
allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
|
||||||
|
if is_owner(pos, player:get_player_name()) then
|
||||||
|
return count
|
||||||
|
end
|
||||||
|
return 0
|
||||||
|
end,
|
||||||
|
|
||||||
|
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
|
||||||
|
return 0
|
||||||
|
end,
|
||||||
|
|
||||||
|
allow_metadata_inventory_take = function(pos, listname, index, stack, player)
|
||||||
|
if is_owner(pos, player:get_player_name()) then
|
||||||
|
return stack:get_count()
|
||||||
|
end
|
||||||
|
return 0
|
||||||
|
end,
|
||||||
|
|
||||||
|
on_metadata_inventory_take = function(pos, listname, index, stack, player)
|
||||||
|
local meta = minetest.get_meta(pos)
|
||||||
|
if meta:get_string("owner") ~= "" and meta:get_inventory():is_empty("main") then
|
||||||
|
meta:set_string("infotext", meta:get_string("owner").."'s old bones")
|
||||||
|
meta:set_string("formspec", "")
|
||||||
|
meta:set_string("owner", "")
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
|
||||||
|
on_timer = function(pos, elapsed)
|
||||||
|
local meta = minetest.get_meta(pos)
|
||||||
|
local time = meta:get_int("time")+elapsed
|
||||||
|
local publish = 1200
|
||||||
|
if tonumber(minetest.setting_get("share_bones_time")) then
|
||||||
|
publish = tonumber(minetest.setting_get("share_bones_time"))
|
||||||
|
end
|
||||||
|
if publish == 0 then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
if time >= publish then
|
||||||
|
meta:set_string("infotext", meta:get_string("owner").."'s old bones")
|
||||||
|
meta:set_string("owner", "")
|
||||||
|
else
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_on_dieplayer(function(player)
|
||||||
|
if minetest.setting_getbool("creative_mode") then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local pos = player:getpos()
|
||||||
|
pos.x = math.floor(pos.x+0.5)
|
||||||
|
pos.y = math.floor(pos.y+0.5)
|
||||||
|
pos.z = math.floor(pos.z+0.5)
|
||||||
|
local param2 = minetest.dir_to_facedir(player:get_look_dir())
|
||||||
|
|
||||||
|
local nn = minetest.get_node(pos).name
|
||||||
|
if minetest.registered_nodes[nn].can_dig and
|
||||||
|
not minetest.registered_nodes[nn].can_dig(pos, player) then
|
||||||
|
local player_inv = player:get_inventory()
|
||||||
|
|
||||||
|
for i=1,player_inv:get_size("main") do
|
||||||
|
player_inv:set_stack("main", i, nil)
|
||||||
|
end
|
||||||
|
for i=1,player_inv:get_size("craft") do
|
||||||
|
player_inv:set_stack("craft", i, nil)
|
||||||
|
end
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
minetest.dig_node(pos)
|
||||||
|
minetest.add_node(pos, {name="bones:bones", param2=param2})
|
||||||
|
|
||||||
|
local meta = minetest.get_meta(pos)
|
||||||
|
local inv = meta:get_inventory()
|
||||||
|
local player_inv = player:get_inventory()
|
||||||
|
inv:set_size("main", 8*4)
|
||||||
|
|
||||||
|
local empty_list = inv:get_list("main")
|
||||||
|
inv:set_list("main", player_inv:get_list("main"))
|
||||||
|
player_inv:set_list("main", empty_list)
|
||||||
|
|
||||||
|
for i=1,player_inv:get_size("craft") do
|
||||||
|
inv:add_item("main", player_inv:get_stack("craft", i))
|
||||||
|
player_inv:set_stack("craft", i, nil)
|
||||||
|
end
|
||||||
|
|
||||||
|
meta:set_string("formspec", "size[8,9]"..
|
||||||
|
"list[current_name;main;0,0;8,4;]"..
|
||||||
|
"list[current_player;main;0,5;8,4;]"..
|
||||||
|
"background[-0.5,-0.65;9,10.35;".."bones.png".."]"..
|
||||||
|
"listcolors[#001100;#006600;#ffffff;#006600;#ffffff]")
|
||||||
|
meta:set_string("infotext", player:get_player_name().."'s fresh bones")
|
||||||
|
meta:set_string("owner", player:get_player_name())
|
||||||
|
meta:set_int("time", 0)
|
||||||
|
|
||||||
|
local timer = minetest.get_node_timer(pos)
|
||||||
|
timer:start(10)
|
||||||
|
end)
|
BIN
mods/bones/textures/bones_bottom.png
Normal file
After Width: | Height: | Size: 284 B |
BIN
mods/bones/textures/bones_front.png
Normal file
After Width: | Height: | Size: 183 B |
BIN
mods/bones/textures/bones_rear.png
Normal file
After Width: | Height: | Size: 306 B |
BIN
mods/bones/textures/bones_side.png
Normal file
After Width: | Height: | Size: 289 B |
BIN
mods/bones/textures/bones_top.png
Normal file
After Width: | Height: | Size: 279 B |
25
mods/boost_cart/README.txt
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
Some adjustments and expansions for Hades subgame added 2015 by Glünggi
|
||||||
|
|
||||||
|
Minetest mod: boost_cart
|
||||||
|
=======================
|
||||||
|
Based on the mod "carts" by PilzAdam
|
||||||
|
Target: Run smoothly and do not use too much CPU
|
||||||
|
|
||||||
|
License of source code:
|
||||||
|
-----------------------
|
||||||
|
WTFPL
|
||||||
|
|
||||||
|
License of media (textures, sounds and models):
|
||||||
|
-----------------------------------------------
|
||||||
|
CC-0
|
||||||
|
|
||||||
|
Authors of media files:
|
||||||
|
-----------------------
|
||||||
|
kddekadenz:
|
||||||
|
cart_bottom.png
|
||||||
|
cart_side.png
|
||||||
|
cart_top.png
|
||||||
|
|
||||||
|
Zeg9:
|
||||||
|
cart.x
|
||||||
|
cart.png
|
2
mods/boost_cart/depends.txt
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
default
|
||||||
|
mesecons?
|
100
mods/boost_cart/functions.lua
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
function boost_cart:get_sign(z)
|
||||||
|
if z == 0 then
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
return z / math.abs(z)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function boost_cart:velocity_to_dir(v)
|
||||||
|
if math.abs(v.x) > math.abs(v.z) then
|
||||||
|
return {x=boost_cart:get_sign(v.x), y=boost_cart:get_sign(v.y), z=0}
|
||||||
|
else
|
||||||
|
return {x=0, y=boost_cart:get_sign(v.y), z=boost_cart:get_sign(v.z)}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function boost_cart:is_rail(pos)
|
||||||
|
local node = minetest.get_node(pos).name
|
||||||
|
return minetest.get_item_group(node, "rail") ~= 0
|
||||||
|
end
|
||||||
|
|
||||||
|
function boost_cart:get_rail_direction(pos_, dir_, ctrl, old_switch)
|
||||||
|
local pos = vector.round(pos_)
|
||||||
|
local dir = vector.new(dir_)
|
||||||
|
local cur = nil
|
||||||
|
local left_check, right_check = true, true
|
||||||
|
old_switch = old_switch or 0
|
||||||
|
|
||||||
|
-- Check left and right
|
||||||
|
local left = {x=0, y=0, z=0}
|
||||||
|
local right = {x=0, y=0, z=0}
|
||||||
|
if dir.z ~= 0 and dir.x == 0 then
|
||||||
|
left.x = -dir.z
|
||||||
|
right.x = dir.z
|
||||||
|
elseif dir.x ~= 0 and dir.z == 0 then
|
||||||
|
left.z = dir.x
|
||||||
|
right.z = -dir.x
|
||||||
|
end
|
||||||
|
|
||||||
|
if ctrl then
|
||||||
|
if old_switch == 1 then
|
||||||
|
left_check = false
|
||||||
|
elseif old_switch == 2 then
|
||||||
|
right_check = false
|
||||||
|
end
|
||||||
|
if ctrl.left and left_check then
|
||||||
|
cur = vector.add(pos, left)
|
||||||
|
if boost_cart:is_rail(cur) then
|
||||||
|
return left, 1
|
||||||
|
end
|
||||||
|
left_check = false
|
||||||
|
end
|
||||||
|
if ctrl.right and right_check then
|
||||||
|
cur = vector.add(pos, right)
|
||||||
|
if boost_cart:is_rail(cur) then
|
||||||
|
return right, 2
|
||||||
|
end
|
||||||
|
right_check = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Front
|
||||||
|
dir.y = 0
|
||||||
|
cur = vector.add(pos, dir)
|
||||||
|
if boost_cart:is_rail(cur) then
|
||||||
|
return dir
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Down
|
||||||
|
dir.y = -1
|
||||||
|
cur = vector.add(pos, dir)
|
||||||
|
if boost_cart:is_rail(cur) then
|
||||||
|
return dir
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Up
|
||||||
|
dir.y = 1
|
||||||
|
cur = vector.add(pos, dir)
|
||||||
|
if boost_cart:is_rail(cur) then
|
||||||
|
return dir
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Left, if not already checked
|
||||||
|
if left_check then
|
||||||
|
cur = vector.add(pos, left)
|
||||||
|
if boost_cart:is_rail(cur) then
|
||||||
|
return left
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Right, if not already checked
|
||||||
|
if right_check then
|
||||||
|
cur = vector.add(pos, right)
|
||||||
|
if boost_cart:is_rail(cur) then
|
||||||
|
return right
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return {x=0, y=0, z=0}
|
||||||
|
end
|
286
mods/boost_cart/init.lua
Normal file
@ -0,0 +1,286 @@
|
|||||||
|
-- TODO:
|
||||||
|
-- Add rail-cross switching
|
||||||
|
-- Prevent from floating carts
|
||||||
|
|
||||||
|
boost_cart = {}
|
||||||
|
boost_cart.modpath = minetest.get_modpath("boost_cart")
|
||||||
|
boost_cart.speed_max = 10
|
||||||
|
|
||||||
|
function vector.floor(v)
|
||||||
|
return {
|
||||||
|
x = math.floor(v.x),
|
||||||
|
y = math.floor(v.y),
|
||||||
|
z = math.floor(v.z)
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
dofile(boost_cart.modpath.."/functions.lua")
|
||||||
|
dofile(boost_cart.modpath.."/rails.lua")
|
||||||
|
|
||||||
|
boost_cart.cart = {
|
||||||
|
physical = false,
|
||||||
|
collisionbox = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
|
||||||
|
visual = "mesh",
|
||||||
|
mesh = "cart.x",
|
||||||
|
visual_size = {x=1, y=1},
|
||||||
|
textures = {"cart.png"},
|
||||||
|
|
||||||
|
driver = nil,
|
||||||
|
punch = false, -- used to re-send velocity and position
|
||||||
|
velocity = {x=0, y=0, z=0}, -- only used on punch
|
||||||
|
old_dir = {x=0, y=0, z=0},
|
||||||
|
old_pos = nil,
|
||||||
|
old_switch = nil
|
||||||
|
}
|
||||||
|
|
||||||
|
function boost_cart.cart:on_rightclick(clicker)
|
||||||
|
if not clicker or not clicker:is_player() then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
local player_name = clicker:get_player_name()
|
||||||
|
if self.driver and player_name == self.driver then
|
||||||
|
self.driver = nil
|
||||||
|
clicker:set_detach()
|
||||||
|
elseif not self.driver then
|
||||||
|
self.driver = player_name
|
||||||
|
clicker:set_attach(self.object, "", {x=0,y=0.5,z=0}, {x=0,y=0,z=0})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function boost_cart.cart:on_activate(staticdata, dtime_s)
|
||||||
|
self.object:set_armor_groups({immortal=1})
|
||||||
|
end
|
||||||
|
|
||||||
|
function boost_cart.cart:on_punch(puncher, time_from_last_punch, tool_capabilities, direction)
|
||||||
|
if not puncher or not puncher:is_player() then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if puncher:get_player_control().sneak then
|
||||||
|
if self.driver then
|
||||||
|
default.player_attached[self.driver] = nil
|
||||||
|
local player = minetest.get_player_by_name(self.driver)
|
||||||
|
if player then
|
||||||
|
player:set_detach()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
self.object:remove()
|
||||||
|
puncher:get_inventory():add_item("main", "carts:cart")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local vel = self.velocity
|
||||||
|
if puncher:get_player_name() == self.driver then
|
||||||
|
if math.abs(vel.x) + math.abs(vel.z) > 4 then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local cart_dir = boost_cart:velocity_to_dir(direction)
|
||||||
|
if cart_dir.x == 0 and cart_dir.z == 0 then
|
||||||
|
local fd = minetest.dir_to_facedir(puncher:get_look_dir())
|
||||||
|
if fd == 0 then
|
||||||
|
cart_dir.x = 1
|
||||||
|
elseif fd == 1 then
|
||||||
|
cart_dir.z = -1
|
||||||
|
elseif fd == 2 then
|
||||||
|
cart_dir.x = -1
|
||||||
|
elseif fd == 3 then
|
||||||
|
cart_dir.z = 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if time_from_last_punch > tool_capabilities.full_punch_interval then
|
||||||
|
time_from_last_punch = tool_capabilities.full_punch_interval
|
||||||
|
end
|
||||||
|
local dir = boost_cart:get_rail_direction(self.object:getpos(), cart_dir)
|
||||||
|
|
||||||
|
local f = 4 * (time_from_last_punch / tool_capabilities.full_punch_interval)
|
||||||
|
vel.x = dir.x * f
|
||||||
|
vel.y = dir.y * f
|
||||||
|
vel.z = dir.z * f
|
||||||
|
self.velocity = vel
|
||||||
|
self.old_pos = nil
|
||||||
|
self.punch = true
|
||||||
|
end
|
||||||
|
|
||||||
|
function boost_cart.cart:on_step(dtime)
|
||||||
|
local vel = self.object:getvelocity()
|
||||||
|
if self.punch then
|
||||||
|
vel = vector.add(vel, self.velocity)
|
||||||
|
self.velocity = {x=0, y=0, z=0}
|
||||||
|
elseif vector.equals(vel, {x=0, y=0, z=0}) then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local dir, last_switch = nil, nil
|
||||||
|
local pos = self.object:getpos()
|
||||||
|
if self.old_pos and not self.punch then
|
||||||
|
local flo_pos = vector.floor(pos)
|
||||||
|
local flo_old = vector.floor(self.old_pos)
|
||||||
|
if vector.equals(flo_pos, flo_old) then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
end
|
||||||
|
local ctrl = nil
|
||||||
|
if self.driver then
|
||||||
|
local player = minetest.get_player_by_name(self.driver)
|
||||||
|
if player then
|
||||||
|
ctrl = player:get_player_control()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if self.old_pos then
|
||||||
|
local diff = vector.subtract(self.old_pos, pos)
|
||||||
|
for _,v in ipairs({"x","y","z"}) do
|
||||||
|
if math.abs(diff[v]) > 1.2 then
|
||||||
|
local expected_pos = vector.add(self.old_pos, self.old_dir)
|
||||||
|
dir, last_switch = boost_cart:get_rail_direction(pos, self.old_dir, ctrl, self.old_switch)
|
||||||
|
if vector.equals(dir, {x=0, y=0, z=0}) then
|
||||||
|
dir = false
|
||||||
|
pos = vector.new(expected_pos)
|
||||||
|
self.punch = true
|
||||||
|
end
|
||||||
|
--minetest.log("action", "Cart moving too fast at "..minetest.pos_to_string(expected_pos))
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if vel.y == 0 then
|
||||||
|
for _,v in ipairs({"x", "z"}) do
|
||||||
|
if vel[v] ~= 0 and math.abs(vel[v]) < 0.9 then
|
||||||
|
vel[v] = 0
|
||||||
|
self.punch = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local cart_dir = {
|
||||||
|
x = boost_cart:get_sign(vel.x),
|
||||||
|
y = boost_cart:get_sign(vel.y),
|
||||||
|
z = boost_cart:get_sign(vel.z)
|
||||||
|
}
|
||||||
|
|
||||||
|
local max_vel = boost_cart.speed_max
|
||||||
|
if not dir then
|
||||||
|
dir, last_switch = boost_cart:get_rail_direction(pos, cart_dir, ctrl, self.old_switch)
|
||||||
|
end
|
||||||
|
if vector.equals(dir, {x=0, y=0, z=0}) then
|
||||||
|
vel = {x=0, y=0, z=0}
|
||||||
|
self.object:setacceleration({x=0, y=0, z=0})
|
||||||
|
self.punch = true
|
||||||
|
else
|
||||||
|
-- If the direction changed
|
||||||
|
if dir.x ~= 0 and self.old_dir.z ~= 0 then
|
||||||
|
vel.x = dir.x * math.abs(vel.z)
|
||||||
|
vel.z = 0
|
||||||
|
pos.z = math.floor(pos.z + 0.5)
|
||||||
|
self.punch = true
|
||||||
|
end
|
||||||
|
if dir.z ~= 0 and self.old_dir.x ~= 0 then
|
||||||
|
vel.z = dir.z * math.abs(vel.x)
|
||||||
|
vel.x = 0
|
||||||
|
pos.x = math.floor(pos.x + 0.5)
|
||||||
|
self.punch = true
|
||||||
|
end
|
||||||
|
-- Up, down?
|
||||||
|
if dir.y ~= self.old_dir.y then
|
||||||
|
vel.y = dir.y * (math.abs(vel.x) + math.abs(vel.z))
|
||||||
|
pos = vector.round(pos)
|
||||||
|
self.punch = true
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Slow down or speed up..
|
||||||
|
local acc = dir.y * -1.8
|
||||||
|
|
||||||
|
local speed_mod = tonumber(minetest.get_meta(pos):get_string("cart_acceleration"))
|
||||||
|
if speed_mod and speed_mod ~= 0 then
|
||||||
|
if speed_mod > 0 then
|
||||||
|
for _,v in ipairs({"x","y","z"}) do
|
||||||
|
if math.abs(vel[v]) >= max_vel then
|
||||||
|
speed_mod = 0
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
acc = acc + (speed_mod * 8)
|
||||||
|
else
|
||||||
|
acc = acc - 0.4
|
||||||
|
-- Handbrake
|
||||||
|
if ctrl and ctrl.down then
|
||||||
|
acc = acc - 0.8
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local new_acc = {
|
||||||
|
x = dir.x * acc,
|
||||||
|
y = dir.y * acc,
|
||||||
|
z = dir.z * acc
|
||||||
|
}
|
||||||
|
|
||||||
|
self.object:setacceleration(new_acc)
|
||||||
|
end
|
||||||
|
|
||||||
|
self.old_pos = vector.new(pos)
|
||||||
|
self.old_dir = vector.new(dir)
|
||||||
|
self.old_switch = last_switch
|
||||||
|
|
||||||
|
-- Limits
|
||||||
|
for _,v in ipairs({"x","y","z"}) do
|
||||||
|
if math.abs(vel[v]) > max_vel then
|
||||||
|
vel[v] = boost_cart:get_sign(vel[v]) * max_vel
|
||||||
|
self.punch = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if dir.x < 0 then
|
||||||
|
self.object:setyaw(math.pi / 2)
|
||||||
|
elseif dir.x > 0 then
|
||||||
|
self.object:setyaw(3 * math.pi / 2)
|
||||||
|
elseif dir.z < 0 then
|
||||||
|
self.object:setyaw(math.pi)
|
||||||
|
elseif dir.z > 0 then
|
||||||
|
self.object:setyaw(0)
|
||||||
|
end
|
||||||
|
|
||||||
|
if dir.y == -1 then
|
||||||
|
self.object:set_animation({x=1, y=1}, 1, 0)
|
||||||
|
elseif dir.y == 1 then
|
||||||
|
self.object:set_animation({x=2, y=2}, 1, 0)
|
||||||
|
else
|
||||||
|
self.object:set_animation({x=0, y=0}, 1, 0)
|
||||||
|
end
|
||||||
|
if self.punch then
|
||||||
|
self.object:setvelocity(vel)
|
||||||
|
self.object:setpos(pos)
|
||||||
|
end
|
||||||
|
self.punch = false
|
||||||
|
end
|
||||||
|
|
||||||
|
minetest.register_entity(":carts:cart", boost_cart.cart)
|
||||||
|
minetest.register_craftitem(":carts:cart", {
|
||||||
|
description = "Cart",
|
||||||
|
inventory_image = minetest.inventorycube("cart_top.png", "cart_side.png", "cart_side.png"),
|
||||||
|
wield_image = "cart_side.png",
|
||||||
|
on_place = function(itemstack, placer, pointed_thing)
|
||||||
|
if not pointed_thing.type == "node" then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
if boost_cart:is_rail(pointed_thing.under) then
|
||||||
|
minetest.add_entity(pointed_thing.under, "carts:cart")
|
||||||
|
elseif boost_cart:is_rail(pointed_thing.above) then
|
||||||
|
minetest.add_entity(pointed_thing.above, "carts:cart")
|
||||||
|
else return end
|
||||||
|
|
||||||
|
itemstack:take_item()
|
||||||
|
return itemstack
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "carts:cart",
|
||||||
|
recipe = {
|
||||||
|
{"default:steel_ingot", "", "default:steel_ingot"},
|
||||||
|
{"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"},
|
||||||
|
},
|
||||||
|
})
|
BIN
mods/boost_cart/models/cart.png
Normal file
After Width: | Height: | Size: 216 B |
339
mods/boost_cart/models/cart.x
Normal file
@ -0,0 +1,339 @@
|
|||||||
|
xof 0303txt 0032
|
||||||
|
|
||||||
|
Frame Root {
|
||||||
|
FrameTransformMatrix {
|
||||||
|
1.000000, 0.000000, 0.000000, 0.000000,
|
||||||
|
0.000000, 0.000000, 1.000000, 0.000000,
|
||||||
|
0.000000, 1.000000,-0.000000, 0.000000,
|
||||||
|
0.000000, 0.000000, 0.000000, 1.000000;;
|
||||||
|
}
|
||||||
|
Frame Cube {
|
||||||
|
FrameTransformMatrix {
|
||||||
|
5.000000, 0.000000,-0.000000, 0.000000,
|
||||||
|
-0.000000, 3.535534, 3.535534, 0.000000,
|
||||||
|
0.000000,-3.535534, 3.535534, 0.000000,
|
||||||
|
0.000000,-3.000000, 3.000000, 1.000000;;
|
||||||
|
}
|
||||||
|
Mesh { //Cube_001 Mesh
|
||||||
|
72;
|
||||||
|
-1.000000; 1.000000;-1.000000;,
|
||||||
|
-1.000000;-1.000000;-1.000000;,
|
||||||
|
1.000000;-1.000000;-1.000000;,
|
||||||
|
1.000000; 1.000000;-1.000000;,
|
||||||
|
-0.833334;-1.000000; 1.000000;,
|
||||||
|
-1.000000;-1.000000; 1.000000;,
|
||||||
|
-1.000000;-0.833333; 1.000000;,
|
||||||
|
-0.833334;-0.833333; 1.000000;,
|
||||||
|
-1.000000;-1.000000;-1.000000;,
|
||||||
|
-1.000000;-1.000000; 1.000000;,
|
||||||
|
0.999999;-1.000001; 1.000000;,
|
||||||
|
1.000000;-1.000000;-1.000000;,
|
||||||
|
0.999999;-1.000001; 1.000000;,
|
||||||
|
0.833332;-1.000000; 1.000000;,
|
||||||
|
0.833333;-0.833334; 1.000000;,
|
||||||
|
1.000000;-0.833334; 1.000000;,
|
||||||
|
0.833332;-1.000000; 1.000000;,
|
||||||
|
-0.833334;-1.000000; 1.000000;,
|
||||||
|
-0.833334;-0.833333; 1.000000;,
|
||||||
|
0.833333;-0.833334; 1.000000;,
|
||||||
|
1.000000; 0.833333; 1.000000;,
|
||||||
|
0.833334; 0.833333; 1.000000;,
|
||||||
|
0.833334; 1.000000; 1.000000;,
|
||||||
|
1.000000; 0.999999; 1.000000;,
|
||||||
|
1.000000;-0.833334; 1.000000;,
|
||||||
|
0.833333;-0.833334; 1.000000;,
|
||||||
|
0.833334; 0.833333; 1.000000;,
|
||||||
|
1.000000; 0.833333; 1.000000;,
|
||||||
|
0.833334; 0.833333; 1.000000;,
|
||||||
|
-0.833333; 0.833333; 1.000000;,
|
||||||
|
-0.833333; 1.000000; 1.000000;,
|
||||||
|
0.833334; 1.000000; 1.000000;,
|
||||||
|
0.833334; 0.833333;-0.800000;,
|
||||||
|
-0.833333; 0.833333;-0.800000;,
|
||||||
|
-0.833333; 0.833333; 1.000000;,
|
||||||
|
0.833334; 0.833333; 1.000000;,
|
||||||
|
-0.833333; 0.833333; 1.000000;,
|
||||||
|
-1.000000; 0.833333; 1.000000;,
|
||||||
|
-1.000000; 1.000000; 1.000000;,
|
||||||
|
-0.833333; 1.000000; 1.000000;,
|
||||||
|
-0.833334;-0.833333; 1.000000;,
|
||||||
|
-1.000000;-0.833333; 1.000000;,
|
||||||
|
-1.000000; 0.833333; 1.000000;,
|
||||||
|
-0.833333; 0.833333; 1.000000;,
|
||||||
|
0.833333;-0.833334;-0.800000;,
|
||||||
|
-0.833334;-0.833333;-0.800000;,
|
||||||
|
-0.833333; 0.833333;-0.800000;,
|
||||||
|
0.833334; 0.833333;-0.800000;,
|
||||||
|
-0.833333; 0.833333;-0.800000;,
|
||||||
|
-0.833334;-0.833333;-0.800000;,
|
||||||
|
-0.833334;-0.833333; 1.000000;,
|
||||||
|
-0.833333; 0.833333; 1.000000;,
|
||||||
|
-0.833334;-0.833333;-0.800000;,
|
||||||
|
0.833333;-0.833334;-0.800000;,
|
||||||
|
0.833333;-0.833334; 1.000000;,
|
||||||
|
-0.833334;-0.833333; 1.000000;,
|
||||||
|
0.833333;-0.833334;-0.800000;,
|
||||||
|
0.833334; 0.833333;-0.800000;,
|
||||||
|
0.833334; 0.833333; 1.000000;,
|
||||||
|
0.833333;-0.833334; 1.000000;,
|
||||||
|
-1.000000; 1.000000;-1.000000;,
|
||||||
|
-1.000000; 1.000000; 1.000000;,
|
||||||
|
-1.000000;-1.000000; 1.000000;,
|
||||||
|
-1.000000;-1.000000;-1.000000;,
|
||||||
|
-1.000000; 1.000000; 1.000000;,
|
||||||
|
-1.000000; 1.000000;-1.000000;,
|
||||||
|
1.000000; 1.000000;-1.000000;,
|
||||||
|
1.000000; 0.999999; 1.000000;,
|
||||||
|
1.000000;-1.000000;-1.000000;,
|
||||||
|
0.999999;-1.000001; 1.000000;,
|
||||||
|
1.000000; 0.999999; 1.000000;,
|
||||||
|
1.000000; 1.000000;-1.000000;;
|
||||||
|
18;
|
||||||
|
4;0;1;2;3;,
|
||||||
|
4;4;5;6;7;,
|
||||||
|
4;8;9;10;11;,
|
||||||
|
4;12;13;14;15;,
|
||||||
|
4;16;17;18;19;,
|
||||||
|
4;20;21;22;23;,
|
||||||
|
4;24;25;26;27;,
|
||||||
|
4;28;29;30;31;,
|
||||||
|
4;32;33;34;35;,
|
||||||
|
4;36;37;38;39;,
|
||||||
|
4;40;41;42;43;,
|
||||||
|
4;44;45;46;47;,
|
||||||
|
4;48;49;50;51;,
|
||||||
|
4;52;53;54;55;,
|
||||||
|
4;56;57;58;59;,
|
||||||
|
4;60;61;62;63;,
|
||||||
|
4;64;65;66;67;,
|
||||||
|
4;68;69;70;71;;
|
||||||
|
MeshNormals { //Cube_001 Normals
|
||||||
|
72;
|
||||||
|
0.000000; 0.000000;-1.000000;,
|
||||||
|
0.000000; 0.000000;-1.000000;,
|
||||||
|
0.000000; 0.000000;-1.000000;,
|
||||||
|
0.000000; 0.000000;-1.000000;,
|
||||||
|
0.000000;-0.000000; 1.000000;,
|
||||||
|
0.000000;-0.000000; 1.000000;,
|
||||||
|
0.000000;-0.000000; 1.000000;,
|
||||||
|
0.000000;-0.000000; 1.000000;,
|
||||||
|
-0.000000;-1.000000;-0.000000;,
|
||||||
|
-0.000000;-1.000000;-0.000000;,
|
||||||
|
-0.000000;-1.000000;-0.000000;,
|
||||||
|
-0.000000;-1.000000;-0.000000;,
|
||||||
|
0.000000;-0.000000; 1.000000;,
|
||||||
|
0.000000;-0.000000; 1.000000;,
|
||||||
|
0.000000;-0.000000; 1.000000;,
|
||||||
|
0.000000;-0.000000; 1.000000;,
|
||||||
|
0.000000;-0.000000; 1.000000;,
|
||||||
|
0.000000;-0.000000; 1.000000;,
|
||||||
|
0.000000;-0.000000; 1.000000;,
|
||||||
|
0.000000;-0.000000; 1.000000;,
|
||||||
|
0.000000;-0.000000; 1.000000;,
|
||||||
|
0.000000;-0.000000; 1.000000;,
|
||||||
|
0.000000;-0.000000; 1.000000;,
|
||||||
|
0.000000;-0.000000; 1.000000;,
|
||||||
|
0.000000;-0.000000; 1.000000;,
|
||||||
|
0.000000;-0.000000; 1.000000;,
|
||||||
|
0.000000;-0.000000; 1.000000;,
|
||||||
|
0.000000;-0.000000; 1.000000;,
|
||||||
|
0.000000;-0.000000; 1.000000;,
|
||||||
|
0.000000;-0.000000; 1.000000;,
|
||||||
|
0.000000;-0.000000; 1.000000;,
|
||||||
|
0.000000;-0.000000; 1.000000;,
|
||||||
|
-0.000000;-1.000000; 0.000000;,
|
||||||
|
-0.000000;-1.000000; 0.000000;,
|
||||||
|
-0.000000;-1.000000; 0.000000;,
|
||||||
|
-0.000000;-1.000000; 0.000000;,
|
||||||
|
0.000000;-0.000000; 1.000000;,
|
||||||
|
0.000000;-0.000000; 1.000000;,
|
||||||
|
0.000000;-0.000000; 1.000000;,
|
||||||
|
0.000000;-0.000000; 1.000000;,
|
||||||
|
0.000000;-0.000000; 1.000000;,
|
||||||
|
0.000000;-0.000000; 1.000000;,
|
||||||
|
0.000000;-0.000000; 1.000000;,
|
||||||
|
0.000000;-0.000000; 1.000000;,
|
||||||
|
0.000000;-0.000000; 1.000000;,
|
||||||
|
0.000000;-0.000000; 1.000000;,
|
||||||
|
0.000000;-0.000000; 1.000000;,
|
||||||
|
0.000000;-0.000000; 1.000000;,
|
||||||
|
1.000000;-0.000000; 0.000000;,
|
||||||
|
1.000000;-0.000000; 0.000000;,
|
||||||
|
1.000000;-0.000000; 0.000000;,
|
||||||
|
1.000000;-0.000000; 0.000000;,
|
||||||
|
0.000000; 1.000000; 0.000000;,
|
||||||
|
0.000000; 1.000000; 0.000000;,
|
||||||
|
0.000000; 1.000000; 0.000000;,
|
||||||
|
0.000000; 1.000000; 0.000000;,
|
||||||
|
-1.000000; 0.000000; 0.000000;,
|
||||||
|
-1.000000; 0.000000; 0.000000;,
|
||||||
|
-1.000000; 0.000000; 0.000000;,
|
||||||
|
-1.000000; 0.000000; 0.000000;,
|
||||||
|
-1.000000; 0.000000;-0.000000;,
|
||||||
|
-1.000000; 0.000000;-0.000000;,
|
||||||
|
-1.000000; 0.000000;-0.000000;,
|
||||||
|
-1.000000; 0.000000;-0.000000;,
|
||||||
|
0.000000; 1.000000; 0.000000;,
|
||||||
|
0.000000; 1.000000; 0.000000;,
|
||||||
|
0.000000; 1.000000; 0.000000;,
|
||||||
|
0.000000; 1.000000; 0.000000;,
|
||||||
|
1.000000;-0.000000; 0.000000;,
|
||||||
|
1.000000;-0.000000; 0.000000;,
|
||||||
|
1.000000;-0.000000; 0.000000;,
|
||||||
|
1.000000;-0.000000; 0.000000;;
|
||||||
|
18;
|
||||||
|
4;0;1;2;3;,
|
||||||
|
4;4;5;6;7;,
|
||||||
|
4;8;9;10;11;,
|
||||||
|
4;12;13;14;15;,
|
||||||
|
4;16;17;18;19;,
|
||||||
|
4;20;21;22;23;,
|
||||||
|
4;24;25;26;27;,
|
||||||
|
4;28;29;30;31;,
|
||||||
|
4;32;33;34;35;,
|
||||||
|
4;36;37;38;39;,
|
||||||
|
4;40;41;42;43;,
|
||||||
|
4;44;45;46;47;,
|
||||||
|
4;48;49;50;51;,
|
||||||
|
4;52;53;54;55;,
|
||||||
|
4;56;57;58;59;,
|
||||||
|
4;60;61;62;63;,
|
||||||
|
4;64;65;66;67;,
|
||||||
|
4;68;69;70;71;;
|
||||||
|
} //End of Cube_001 Normals
|
||||||
|
MeshMaterialList { //Cube_001 Material List
|
||||||
|
1;
|
||||||
|
18;
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0;;
|
||||||
|
Material Material {
|
||||||
|
0.640000; 0.640000; 0.640000; 1.000000;;
|
||||||
|
96.078431;
|
||||||
|
0.500000; 0.500000; 0.500000;;
|
||||||
|
0.000000; 0.000000; 0.000000;;
|
||||||
|
TextureFilename {"cart.png";}
|
||||||
|
}
|
||||||
|
} //End of Cube_001 Material List
|
||||||
|
MeshTextureCoords { //Cube_001 UV Coordinates
|
||||||
|
72;
|
||||||
|
0.000000; 0.500000;,
|
||||||
|
0.500000; 0.500000;,
|
||||||
|
0.500000; 1.000000;,
|
||||||
|
0.000000; 1.000000;,
|
||||||
|
0.031250; 0.500000;,
|
||||||
|
-0.000000; 0.500000;,
|
||||||
|
-0.000000; 0.468750;,
|
||||||
|
0.031250; 0.468750;,
|
||||||
|
0.500000; 0.500000;,
|
||||||
|
0.500000; 0.000000;,
|
||||||
|
1.000000; 0.000000;,
|
||||||
|
1.000000; 0.500000;,
|
||||||
|
0.468750; 0.468750;,
|
||||||
|
0.500000; 0.468750;,
|
||||||
|
0.500000; 0.500000;,
|
||||||
|
0.468750; 0.500000;,
|
||||||
|
0.031250; 0.468750;,
|
||||||
|
0.468750; 0.468750;,
|
||||||
|
0.468750; 0.500000;,
|
||||||
|
0.031250; 0.500000;,
|
||||||
|
0.468750; 0.000000;,
|
||||||
|
0.500000; 0.000000;,
|
||||||
|
0.500000; 0.031250;,
|
||||||
|
0.468750; 0.031250;,
|
||||||
|
0.468750; 0.031250;,
|
||||||
|
0.500000; 0.031250;,
|
||||||
|
0.500000; 0.468750;,
|
||||||
|
0.468750; 0.468750;,
|
||||||
|
0.468750; 0.031250;,
|
||||||
|
0.031250; 0.031250;,
|
||||||
|
0.031250; 0.000000;,
|
||||||
|
0.468750; 0.000000;,
|
||||||
|
1.000000; 0.500000;,
|
||||||
|
0.500000; 0.500000;,
|
||||||
|
0.500000; 0.000000;,
|
||||||
|
1.000000; 0.000000;,
|
||||||
|
0.031250; 0.031250;,
|
||||||
|
0.000000; 0.031250;,
|
||||||
|
0.000000; 0.000000;,
|
||||||
|
0.031250; 0.000000;,
|
||||||
|
0.031250; 0.468750;,
|
||||||
|
-0.000000; 0.468750;,
|
||||||
|
0.000000; 0.031250;,
|
||||||
|
0.031250; 0.031250;,
|
||||||
|
0.000000; 0.500000;,
|
||||||
|
0.500000; 0.500000;,
|
||||||
|
0.500000; 1.000000;,
|
||||||
|
0.000000; 1.000000;,
|
||||||
|
1.000000; 0.500000;,
|
||||||
|
0.500000; 0.500000;,
|
||||||
|
0.500000; 0.000000;,
|
||||||
|
1.000000; 0.000000;,
|
||||||
|
1.000000; 0.500000;,
|
||||||
|
0.500000; 0.500000;,
|
||||||
|
0.500000; 0.000000;,
|
||||||
|
1.000000; 0.000000;,
|
||||||
|
1.000000; 0.500000;,
|
||||||
|
0.500000; 0.500000;,
|
||||||
|
0.500000; 0.000000;,
|
||||||
|
1.000000; 0.000000;,
|
||||||
|
0.500000; 0.500000;,
|
||||||
|
0.500000; 0.000000;,
|
||||||
|
1.000000; 0.000000;,
|
||||||
|
1.000000; 0.500000;,
|
||||||
|
1.000000; 0.000000;,
|
||||||
|
1.000000; 0.500000;,
|
||||||
|
0.500000; 0.500000;,
|
||||||
|
0.500000; 0.000000;,
|
||||||
|
0.500000; 0.500000;,
|
||||||
|
0.500000; 0.000000;,
|
||||||
|
1.000000; 0.000000;,
|
||||||
|
1.000000; 0.500000;;
|
||||||
|
} //End of Cube_001 UV Coordinates
|
||||||
|
} //End of Cube_001 Mesh
|
||||||
|
} //End of Cube
|
||||||
|
} //End of Root Frame
|
||||||
|
AnimationSet {
|
||||||
|
Animation {
|
||||||
|
{Cube}
|
||||||
|
AnimationKey { //Position
|
||||||
|
2;
|
||||||
|
4;
|
||||||
|
0;3; 0.000000, 0.000000, 0.000000;;,
|
||||||
|
1;3; 0.000000, 3.000000, 3.000000;;,
|
||||||
|
2;3; 0.000000,-3.000000, 3.000000;;,
|
||||||
|
3;3; 0.000000,-3.000000, 3.000000;;;
|
||||||
|
}
|
||||||
|
AnimationKey { //Rotation
|
||||||
|
0;
|
||||||
|
4;
|
||||||
|
0;4; -1.000000, 0.000000, 0.000000, 0.000000;;,
|
||||||
|
1;4; -0.923880,-0.382683,-0.000000, 0.000000;;,
|
||||||
|
2;4; -0.923880, 0.382683, 0.000000, 0.000000;;,
|
||||||
|
3;4; -0.923880, 0.382683, 0.000000, 0.000000;;;
|
||||||
|
}
|
||||||
|
AnimationKey { //Scale
|
||||||
|
1;
|
||||||
|
4;
|
||||||
|
0;3; 5.000000, 5.000000, 5.000000;;,
|
||||||
|
1;3; 5.000000, 5.000000, 5.000000;;,
|
||||||
|
2;3; 5.000000, 5.000000, 5.000000;;,
|
||||||
|
3;3; 5.000000, 5.000000, 5.000000;;;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} //End of AnimationSet
|
133
mods/boost_cart/rails.lua
Normal file
@ -0,0 +1,133 @@
|
|||||||
|
minetest.register_node(":default:rail", {
|
||||||
|
description = "Rail",
|
||||||
|
drawtype = "raillike",
|
||||||
|
tiles = {"default_rail.png", "default_rail_curved.png", "default_rail_t_junction.png", "default_rail_crossing.png"},
|
||||||
|
inventory_image = "default_rail.png",
|
||||||
|
wield_image = "default_rail.png",
|
||||||
|
paramtype = "light",
|
||||||
|
sunlight_propagates = true,
|
||||||
|
is_ground_content = true,
|
||||||
|
walkable = false,
|
||||||
|
selection_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
|
||||||
|
},
|
||||||
|
groups = {dig_immediate = 2, attached_node = 1, rail = 1, connect_to_raillike = 1},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Copper rail
|
||||||
|
minetest.register_node(":carts:copperrail", {
|
||||||
|
description = "Bronze rail",
|
||||||
|
drawtype = "raillike",
|
||||||
|
tiles = {"carts_rail_cp.png", "carts_rail_curved_cp.png", "carts_rail_t_junction_cp.png", "carts_rail_crossing_cp.png"},
|
||||||
|
inventory_image = "carts_rail_cp.png",
|
||||||
|
wield_image = "carts_rail_cp.png",
|
||||||
|
paramtype = "light",
|
||||||
|
is_ground_content = true,
|
||||||
|
walkable = false,
|
||||||
|
selection_box = {
|
||||||
|
type = "fixed",
|
||||||
|
-- but how to specify the dimensions for curved and sideways rails?
|
||||||
|
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
|
||||||
|
},
|
||||||
|
groups = {dig_immediate = 2, attached_node = 1, rail = 1, connect_to_raillike = 1},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "carts:copperrail 12",
|
||||||
|
recipe = {
|
||||||
|
{"default:bronze_ingot", "group:stick", "default:bronze_ingot"},
|
||||||
|
{"default:bronze_ingot", "group:stick", "default:bronze_ingot"},
|
||||||
|
{"default:bronze_ingot", "group:stick", "default:bronze_ingot"},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Speed up
|
||||||
|
|
||||||
|
minetest.register_node(":carts:powerrail", {
|
||||||
|
description = "Powered rail",
|
||||||
|
drawtype = "raillike",
|
||||||
|
tiles = {"carts_rail_pwr.png", "carts_rail_curved_pwr.png", "carts_rail_t_junction_pwr.png", "carts_rail_crossing_pwr.png"},
|
||||||
|
inventory_image = "carts_rail_pwr.png",
|
||||||
|
wield_image = "carts_rail_pwr.png",
|
||||||
|
paramtype = "light",
|
||||||
|
is_ground_content = true,
|
||||||
|
walkable = false,
|
||||||
|
selection_box = {
|
||||||
|
type = "fixed",
|
||||||
|
-- but how to specify the dimensions for curved and sideways rails?
|
||||||
|
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
|
||||||
|
},
|
||||||
|
groups = {dig_immediate = 2, attached_node = 1, rail = 1, connect_to_raillike = 1},
|
||||||
|
|
||||||
|
after_place_node = function(pos, placer, itemstack)
|
||||||
|
if not mesecon then
|
||||||
|
minetest.get_meta(pos):set_string("cart_acceleration", "0.5")
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
|
||||||
|
mesecons = {
|
||||||
|
effector = {
|
||||||
|
action_on = function(pos, node)
|
||||||
|
minetest.get_meta(pos):set_string("cart_acceleration", "0.5")
|
||||||
|
end,
|
||||||
|
|
||||||
|
action_off = function(pos, node)
|
||||||
|
minetest.get_meta(pos):set_string("cart_acceleration", "0")
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "carts:powerrail 6",
|
||||||
|
recipe = {
|
||||||
|
{"default:steel_ingot", "default:mese_crystal_fragment", "default:steel_ingot"},
|
||||||
|
{"default:steel_ingot", "group:stick", "default:steel_ingot"},
|
||||||
|
{"default:steel_ingot", "default:mese_crystal_fragment", "default:steel_ingot"},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node(":carts:brakerail", {
|
||||||
|
description = "Brake rail",
|
||||||
|
drawtype = "raillike",
|
||||||
|
tiles = {"carts_rail_brk.png", "carts_rail_curved_brk.png", "carts_rail_t_junction_brk.png", "carts_rail_crossing_brk.png"},
|
||||||
|
inventory_image = "carts_rail_brk.png",
|
||||||
|
wield_image = "carts_rail_brk.png",
|
||||||
|
paramtype = "light",
|
||||||
|
is_ground_content = true,
|
||||||
|
walkable = false,
|
||||||
|
selection_box = {
|
||||||
|
type = "fixed",
|
||||||
|
-- but how to specify the dimensions for curved and sideways rails?
|
||||||
|
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
|
||||||
|
},
|
||||||
|
groups = {dig_immediate = 2, attached_node = 1, rail = 1, connect_to_raillike = 1},
|
||||||
|
|
||||||
|
after_place_node = function(pos, placer, itemstack)
|
||||||
|
if not mesecon then
|
||||||
|
minetest.get_meta(pos):set_string("cart_acceleration", "-0.2")
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
|
||||||
|
mesecons = {
|
||||||
|
effector = {
|
||||||
|
action_on = function(pos, node)
|
||||||
|
minetest.get_meta(pos):set_string("cart_acceleration", "-0.2")
|
||||||
|
end,
|
||||||
|
|
||||||
|
action_off = function(pos, node)
|
||||||
|
minetest.get_meta(pos):set_string("cart_acceleration", "0")
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "carts:brakerail 6",
|
||||||
|
recipe = {
|
||||||
|
{"default:steel_ingot", "default:coal_lump", "default:steel_ingot"},
|
||||||
|
{"default:steel_ingot", "group:stick", "default:steel_ingot"},
|
||||||
|
{"default:steel_ingot", "default:coal_lump", "default:steel_ingot"},
|
||||||
|
}
|
||||||
|
})
|
BIN
mods/boost_cart/textures/cart_bottom.png
Normal file
After Width: | Height: | Size: 114 B |
BIN
mods/boost_cart/textures/cart_side.png
Normal file
After Width: | Height: | Size: 147 B |
BIN
mods/boost_cart/textures/cart_top.png
Normal file
After Width: | Height: | Size: 131 B |
BIN
mods/boost_cart/textures/carts_rail_brk.png
Normal file
After Width: | Height: | Size: 3.7 KiB |