many worldgen mods and gonna try technic now
This commit is contained in:
1 parent
bac6ac94a3
commit
548749cb1a
4811 files changed
+163271
-1
No files matched your search
@@ -0,0 +1,24 @@
|
||||
Sounds and textures are under various licenses, see the license.txt file in the /sounds and /textures directories for details.
|
||||
|
||||
License for Code
|
||||
----------------
|
||||
|
||||
Copyright (C) 2020 FaceDeer
|
||||
|
||||
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.
|
||||
@@ -0,0 +1,165 @@
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
hunter_statue = {}
|
||||
|
||||
-- override this to allow achievements to be recorded without requiring a dependency
|
||||
hunter_statue.player_punched = function(node_name, pos, player) end
|
||||
|
||||
local statue_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.5, -0.5, -0.5, 0.5, 95/64, 0.5},
|
||||
},
|
||||
}
|
||||
|
||||
local fourtyfivedegrees = math.pi/4
|
||||
local sixtydegrees = math.pi/3
|
||||
|
||||
local default_sounds
|
||||
if minetest.get_modpath("default") then
|
||||
default_sounds = default.node_sound_stone_defaults()
|
||||
end
|
||||
|
||||
local test_array = {
|
||||
{x=0,y=0,z=0},
|
||||
{x=0,y=-1,z=0},
|
||||
{x=0,y=1,z=0},
|
||||
{x=0,y=-2,z=0},
|
||||
{x=0,y=2,z=0},
|
||||
}
|
||||
|
||||
--statue_def = {
|
||||
-- description = name of statue type
|
||||
-- tiles = {}
|
||||
-- drop = ""
|
||||
-- sounds =
|
||||
-- groups = {}
|
||||
-- interval = 1
|
||||
-- chance = 1
|
||||
-- damage = 8
|
||||
-- knockback = 16
|
||||
-- tnt_vulnerable = false
|
||||
-- tnt_debris =
|
||||
-- hunters_allowed_here = -- function(pos)
|
||||
-- other_overrides =
|
||||
--}
|
||||
|
||||
hunter_statue.register_hunter_statue = function(node_name, statue_def)
|
||||
|
||||
local def = {
|
||||
description = statue_def.description or S("Hunter Statue"),
|
||||
-- _doc_items_longdesc = long_description,
|
||||
-- _doc_items_usagehelp = usage_help,
|
||||
drawtype = "mesh",
|
||||
mesh = "hunter_statue.obj",
|
||||
tiles = statue_def.tiles or {},
|
||||
paramtype2 = "facedir",
|
||||
drop = statue_def.drop or "",
|
||||
collision_box = statue_box,
|
||||
selection_box = statue_box,
|
||||
groups = statue_def.groups or {falling_node = 1},
|
||||
sounds = statue_def.sounds or default_sounds,
|
||||
}
|
||||
|
||||
if statue_def.tnt_vulnerable then
|
||||
def.on_blast = function(pos, intensity)
|
||||
if intensity >= 1.0 then
|
||||
minetest.set_node(pos, {name= statue_def.tnt_debris or "air"})
|
||||
minetest.check_for_falling(pos)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if statue_def.other_overrides then
|
||||
for k, v in pairs(statue_def.other_overrides) do
|
||||
def[k] = v
|
||||
end
|
||||
end
|
||||
|
||||
local knockback = statue_def.knockback or 16
|
||||
local damage = statue_def.damage or 8
|
||||
local hunters_allowed_here = statue_def.hunters_allowed_here
|
||||
|
||||
minetest.register_node(node_name, def)
|
||||
|
||||
minetest.register_abm({
|
||||
label = node_name .. " ABM",
|
||||
nodenames = {node_name},
|
||||
interval = statue_def.interval or 1.0,
|
||||
chance = statue_def.chance or 1,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
local players = minetest.get_connected_players()
|
||||
local nearest_distance = 50
|
||||
local nearest_player = nil
|
||||
local nearest_pos = nil
|
||||
for _, player in pairs(players) do
|
||||
local player_pos = player:get_pos()
|
||||
local player_distance = vector.distance(pos, player_pos)
|
||||
-- ignore far-away players
|
||||
if player_distance < 50 then
|
||||
local look_dir = player:get_look_dir()
|
||||
local statue_dir = vector.direction(player_pos, pos)
|
||||
local angle = vector.angle(look_dir, statue_dir)
|
||||
if angle < sixtydegrees then
|
||||
-- raycast test?
|
||||
-- a player is looking, do nothing
|
||||
return
|
||||
elseif player_distance < nearest_distance then
|
||||
nearest_distance = player_distance
|
||||
nearest_player = player
|
||||
nearest_pos = player_pos
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if nearest_player then
|
||||
if nearest_distance < 2 then
|
||||
local armour_multiplier = 1
|
||||
local fleshy_armour = nearest_player:get_armor_groups().fleshy
|
||||
if fleshy_armour then
|
||||
armour_multiplier = fleshy_armour/100
|
||||
end
|
||||
nearest_player:add_velocity(vector.multiply(vector.direction(pos, nearest_pos), knockback))
|
||||
nearest_player:set_hp(math.max(nearest_player:get_hp() - damage*armour_multiplier, 0))
|
||||
minetest.sound_play({name="hunter_statue_thud"}, {pos = nearest_pos})
|
||||
hunter_statue.player_punched(node_name, pos, nearest_player)
|
||||
return
|
||||
end
|
||||
local player_dir = vector.direction(pos, nearest_pos)
|
||||
local new_facedir = minetest.dir_to_facedir(player_dir)
|
||||
local new_pos = vector.round(vector.add(pos, player_dir))
|
||||
for _, add_pos in ipairs(test_array) do
|
||||
local test_base = vector.add(new_pos, add_pos)
|
||||
if hunters_allowed_here == nil or hunters_allowed_here(test_base) then
|
||||
local test_base_node = minetest.get_node(test_base)
|
||||
local test_base_node_def = minetest.registered_nodes[test_base_node.name]
|
||||
if test_base_node_def and test_base_node_def.buildable_to then
|
||||
local test_above = vector.add(test_base, {x=0, y=1, z=0})
|
||||
local test_above_node = minetest.get_node(test_above)
|
||||
local test_above_node_def = minetest.registered_nodes[test_above_node.name]
|
||||
if test_above_node_def and test_above_node_def.buildable_to then
|
||||
local test_below = vector.add(test_base, {x=0, y=-1, z=0})
|
||||
local test_below_node = minetest.get_node(test_below)
|
||||
local test_below_node_def = minetest.registered_nodes[test_below_node.name]
|
||||
if test_below_node_def and test_below_node_def.walkable then
|
||||
minetest.set_node(pos, {name="air"}) -- old location
|
||||
minetest.set_node(test_above, {name="air"}) -- some kind of filler node?
|
||||
node.param2 = new_facedir
|
||||
minetest.set_node(test_base, node)
|
||||
minetest.check_for_falling({x=pos.x, y=pos.y+1, z=pos.z})
|
||||
minetest.sound_play({name="hunter_statue_brick_step"}, {pos = pos, gain = 0.5})
|
||||
return
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
if node.param2 ~= new_facedir then
|
||||
node.param2 = new_facedir
|
||||
minetest.set_node(pos, node)
|
||||
minetest.sound_play({name="hunter_statue_turn_grind"}, {pos = pos, gain = 0.5})
|
||||
end
|
||||
end
|
||||
end,
|
||||
})
|
||||
end
|
||||
@@ -0,0 +1,6 @@
|
||||
# textdomain: hunter_statue
|
||||
|
||||
|
||||
### init.lua ###
|
||||
|
||||
Hunter Statue=
|
||||
@@ -0,0 +1,2 @@
|
||||
name=hunter_statue
|
||||
optional_depends = default
|
||||
@@ -0,0 +1,238 @@
|
||||
# Blender v2.83.1 OBJ File: 'statue.blend'
|
||||
# www.blender.org
|
||||
mtllib hunter_statue.mtl
|
||||
g Reaper_Cube.004
|
||||
v -0.321956 -0.499999 -0.232636
|
||||
v -0.321956 0.000000 -0.232636
|
||||
v 0.321956 -0.499999 -0.232636
|
||||
v 0.321956 0.000000 -0.232636
|
||||
v -0.321956 -0.499999 0.515897
|
||||
v -0.321956 0.000000 0.515897
|
||||
v 0.321956 -0.499999 0.515897
|
||||
v 0.321956 0.000000 0.515897
|
||||
v -0.510628 0.000000 -0.599906
|
||||
v -0.510628 0.450000 -0.599906
|
||||
v 0.510628 0.000000 -0.599906
|
||||
v 0.510628 0.450000 -0.599906
|
||||
v -0.510628 0.000000 0.192351
|
||||
v -0.510628 0.450000 0.192351
|
||||
v 0.510628 0.000000 0.192351
|
||||
v 0.510628 0.450000 0.192351
|
||||
v -0.614139 0.450000 -0.868622
|
||||
v -0.614139 1.355958 -0.868622
|
||||
v 0.614139 0.450000 -0.868622
|
||||
v 0.614139 1.355958 -0.868622
|
||||
v -0.614139 0.450000 -0.050000
|
||||
v -0.614139 1.355958 -0.050000
|
||||
v 0.614139 0.450000 -0.050000
|
||||
v 0.614139 1.355958 -0.050000
|
||||
v -0.319882 0.820354 -0.050000
|
||||
v -0.319882 1.499348 -0.050000
|
||||
v 0.319882 0.820354 -0.050000
|
||||
v 0.319882 1.499348 -0.050000
|
||||
v -0.319882 0.820354 0.720721
|
||||
v -0.319882 1.499348 0.720721
|
||||
v 0.319882 0.820354 0.720721
|
||||
v 0.319882 1.499348 0.720721
|
||||
v -0.176403 1.356000 -0.478804
|
||||
v -0.176403 1.600000 -0.478804
|
||||
v 0.176403 1.356000 -0.478804
|
||||
v 0.176403 1.600000 -0.478804
|
||||
v -0.176403 1.356000 0.313453
|
||||
v -0.176403 1.600000 0.313453
|
||||
v 0.176403 1.356000 0.313453
|
||||
v 0.176403 1.600000 0.313453
|
||||
v 0.070475 0.572531 0.557791
|
||||
v 0.095793 0.829035 0.587892
|
||||
v 0.219244 0.829035 0.587892
|
||||
v 0.095793 0.829035 0.689536
|
||||
v 0.219244 0.829035 0.689536
|
||||
v -0.219244 0.829035 0.689536
|
||||
v -0.095793 0.829035 0.689536
|
||||
v -0.219244 0.829035 0.587892
|
||||
v -0.095793 0.829035 0.587892
|
||||
v -0.070475 0.572531 0.557791
|
||||
vt 0.173459 -0.000938
|
||||
vt 0.173459 0.499061
|
||||
vt 0.818274 0.499061
|
||||
vt 0.818274 -0.000938
|
||||
vt 0.610319 -0.550000
|
||||
vt 0.610319 -0.050001
|
||||
vt -0.143234 -0.050001
|
||||
vt -0.143234 -0.550000
|
||||
vt 0.818274 -0.000938
|
||||
vt 0.818274 0.499061
|
||||
vt 0.173460 0.499061
|
||||
vt 0.173460 -0.000938
|
||||
vt -0.143234 -0.550000
|
||||
vt -0.143234 -0.050001
|
||||
vt 0.610319 -0.050001
|
||||
vt 0.610319 -0.550000
|
||||
vt 0.822407 0.736425
|
||||
vt 0.822407 -0.007708
|
||||
vt 0.177593 -0.007708
|
||||
vt 0.177592 0.736425
|
||||
vt 0.822407 -0.007708
|
||||
vt 0.822407 0.736425
|
||||
vt 0.177592 0.736425
|
||||
vt 0.177593 -0.007708
|
||||
vt -0.015476 0.499061
|
||||
vt -0.015476 0.949061
|
||||
vt 1.007210 0.949061
|
||||
vt 1.007210 0.499061
|
||||
vt 0.980052 -0.050001
|
||||
vt 0.980052 0.399999
|
||||
vt 0.182482 0.399999
|
||||
vt 0.182482 -0.050001
|
||||
vt 1.007210 0.499061
|
||||
vt 1.007210 0.949062
|
||||
vt -0.015476 0.949062
|
||||
vt -0.015476 0.499061
|
||||
vt 0.182482 -0.050001
|
||||
vt 0.182482 0.399999
|
||||
vt 0.980052 0.399999
|
||||
vt 0.980052 -0.050001
|
||||
vt 1.011343 0.975486
|
||||
vt 1.011343 0.187886
|
||||
vt -0.011343 0.187886
|
||||
vt -0.011343 0.975486
|
||||
vt 1.011343 0.187886
|
||||
vt 1.011343 0.975486
|
||||
vt -0.011343 0.975486
|
||||
vt -0.011343 0.187886
|
||||
vt -0.119133 0.949061
|
||||
vt -0.119133 1.855020
|
||||
vt 1.110867 1.855020
|
||||
vt 1.110867 0.949061
|
||||
vt 1.250569 0.399999
|
||||
vt 1.250569 1.305957
|
||||
vt 0.426458 1.305957
|
||||
vt 0.426458 0.399999
|
||||
vt 1.110867 0.949061
|
||||
vt 1.110867 1.855020
|
||||
vt -0.119133 1.855020
|
||||
vt -0.119133 0.949061
|
||||
vt 0.426458 0.399999
|
||||
vt 0.426458 1.305957
|
||||
vt 1.250569 1.305957
|
||||
vt 1.250569 0.399999
|
||||
vt 1.115000 1.149370
|
||||
vt 1.115000 0.335561
|
||||
vt -0.115000 0.335561
|
||||
vt -0.115000 1.149370
|
||||
vt 1.115000 0.335561
|
||||
vt 1.115000 1.149370
|
||||
vt -0.115000 1.149370
|
||||
vt -0.115000 0.335561
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 1.000000
|
||||
vt 1.000000 1.000000
|
||||
vt 1.000000 0.000000
|
||||
vt 0.426458 0.770354
|
||||
vt 0.426458 1.449347
|
||||
vt -0.349431 1.449347
|
||||
vt -0.349431 0.770354
|
||||
vt -0.349431 0.770354
|
||||
vt -0.349431 1.449347
|
||||
vt 0.426458 1.449347
|
||||
vt 0.426458 0.770354
|
||||
vt 0.820330 0.625561
|
||||
vt 0.820330 -0.140630
|
||||
vt 0.179670 -0.140630
|
||||
vt 0.179670 0.625561
|
||||
vt 0.820330 -0.140630
|
||||
vt 0.820330 0.625561
|
||||
vt 0.179670 0.625561
|
||||
vt 0.179670 -0.140630
|
||||
vt 0.319217 1.855062
|
||||
vt 0.319217 2.099062
|
||||
vt 0.672517 2.099062
|
||||
vt 0.672517 1.855062
|
||||
vt 0.858137 1.306000
|
||||
vt 0.858137 1.550000
|
||||
vt 0.060568 1.550000
|
||||
vt 0.060568 1.306000
|
||||
vt 0.672517 1.855062
|
||||
vt 0.672517 2.099062
|
||||
vt 0.319217 2.099062
|
||||
vt 0.319217 1.855062
|
||||
vt 0.060568 1.306000
|
||||
vt 0.060568 1.550000
|
||||
vt 0.858137 1.550000
|
||||
vt 0.858137 1.306000
|
||||
vt 0.676650 0.111690
|
||||
vt 0.676650 0.899290
|
||||
vt 0.323350 0.899290
|
||||
vt 0.323350 0.111690
|
||||
vt 1.000000 0.000000
|
||||
vt 1.000000 1.000000
|
||||
vt 0.000000 1.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.507514 0.568833
|
||||
vt 0.719681 0.996319
|
||||
vt 0.617273 0.996319
|
||||
vt 0.502794 0.996319
|
||||
vt 0.369114 0.996319
|
||||
vt 0.289050 0.996319
|
||||
vt 0.507514 0.568833
|
||||
vt 0.369114 0.996319
|
||||
vt 0.502794 0.996319
|
||||
vt 0.617273 0.996319
|
||||
vt 0.719681 0.996319
|
||||
vt 0.289050 0.996319
|
||||
vn -0.0000 0.0000 -1.0000
|
||||
vn 1.0000 0.0000 -0.0000
|
||||
vn -0.0000 0.0000 1.0000
|
||||
vn -1.0000 0.0000 0.0000
|
||||
vn 0.0000 -1.0000 -0.0000
|
||||
vn 0.0000 1.0000 0.0000
|
||||
vn 0.0000 0.1166 -0.9932
|
||||
vn 0.8650 -0.5017 0.0000
|
||||
vn 0.0000 -0.4569 0.8895
|
||||
vn -0.9952 0.0982 0.0000
|
||||
vn -0.8650 -0.5017 0.0000
|
||||
vn 0.9952 0.0982 0.0000
|
||||
g Reaper_Cube.004_Body
|
||||
usemtl Body
|
||||
s off
|
||||
f 1/1/1 2/2/1 4/3/1 3/4/1
|
||||
f 3/5/2 4/6/2 8/7/2 7/8/2
|
||||
f 7/9/3 8/10/3 6/11/3 5/12/3
|
||||
f 5/13/4 6/14/4 2/15/4 1/16/4
|
||||
f 3/17/5 7/18/5 5/19/5 1/20/5
|
||||
f 8/21/6 4/22/6 2/23/6 6/24/6
|
||||
f 9/25/1 10/26/1 12/27/1 11/28/1
|
||||
f 11/29/2 12/30/2 16/31/2 15/32/2
|
||||
f 15/33/3 16/34/3 14/35/3 13/36/3
|
||||
f 13/37/4 14/38/4 10/39/4 9/40/4
|
||||
f 11/41/5 15/42/5 13/43/5 9/44/5
|
||||
f 16/45/6 12/46/6 10/47/6 14/48/6
|
||||
f 17/49/1 18/50/1 20/51/1 19/52/1
|
||||
f 19/53/2 20/54/2 24/55/2 23/56/2
|
||||
f 23/57/3 24/58/3 22/59/3 21/60/3
|
||||
f 21/61/4 22/62/4 18/63/4 17/64/4
|
||||
f 19/65/5 23/66/5 21/67/5 17/68/5
|
||||
f 24/69/6 20/70/6 18/71/6 22/72/6
|
||||
f 25/73/1 26/74/1 28/75/1 27/76/1
|
||||
f 27/77/2 28/78/2 32/79/2 31/80/2
|
||||
f 29/81/4 30/82/4 26/83/4 25/84/4
|
||||
f 27/85/5 31/86/5 29/87/5 25/88/5
|
||||
f 32/89/6 28/90/6 26/91/6 30/92/6
|
||||
f 33/93/1 34/94/1 36/95/1 35/96/1
|
||||
f 35/97/2 36/98/2 40/99/2 39/100/2
|
||||
f 39/101/3 40/102/3 38/103/3 37/104/3
|
||||
f 37/105/4 38/106/4 34/107/4 33/108/4
|
||||
f 40/109/6 36/110/6 34/111/6 38/112/6
|
||||
g Reaper_Cube.004_Face
|
||||
usemtl Face
|
||||
f 31/113/3 32/114/3 30/115/3 29/116/3
|
||||
g Reaper_Cube.004_Fangs
|
||||
usemtl Fangs
|
||||
f 41/117/7 42/118/7 43/119/7
|
||||
f 41/117/8 43/119/8 45/120/8
|
||||
f 41/117/9 45/120/9 44/121/9
|
||||
f 41/117/10 44/121/10 42/122/10
|
||||
f 50/123/9 47/124/9 46/125/9
|
||||
f 50/123/11 46/125/11 48/126/11
|
||||
f 50/123/7 48/126/7 49/127/7
|
||||
f 50/123/12 49/128/12 47/124/12
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,3 @@
|
||||
hunter_statue_brick_step and hunter_statue_turn_grind are all from https://freesound.org/people/nebulousflynn/sounds/234360/ by nebulousflynn under Creative Commons BY 3.0
|
||||
|
||||
hunter_statue_thud are from https://freesound.org/people/yummy9987/sounds/494930/ under the CC0 license
|
||||
Reference in new issue
Block a user