change some bits!

This commit is contained in:
maikerumine 2016-02-02 20:56:36 -05:00
parent c290b6663f
commit c1dc6614ce
19 changed files with 88 additions and 2629 deletions

View File

@ -35,7 +35,7 @@ minetest.register_node("cottages:wagon_wheel", {
-- a nice dirt road for small villages or paths to fields
minetest.register_node("cottages:feldweg", {
description = S("dirt road"),
tiles = {"default_stone_brick.png","default_dirt.png", "default_dirt.png^default_grass_side.png"},
tiles = {"cottages_feldweg.png","default_dirt.png", "default_dirt.png^default_grass_side.png"},
paramtype2 = "facedir",
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
legacy_facedir_simple = true,

Binary file not shown.

After

Width:  |  Height:  |  Size: 750 B

View File

@ -836,7 +836,7 @@ minetest.register_node("default:cactus", {
tiles = {"default_cactus_top.png", "default_cactus_top.png",
"default_cactus_side.png"},
paramtype2 = "facedir",
groups = {snappy = 1, choppy = 3, flammable = 2},
groups = {snappy = 1, choppy = 3, flammable = 2, fall_damage_add_percent = 1000},
sounds = default.node_sound_wood_defaults(),
on_place = minetest.rotate_node,

View File

@ -325,6 +325,12 @@ minetest.register_craftitem("es:purpellium_dust", {
inventory_image = "dye_violet.png",
})
minetest.register_craft({
type = "shapeless",
output = "es:mud",
recipe = {"es:dry_dirt","default:water_flowing"},
})
--Weapon &Tool Crafting:
--SWORDS

View File

@ -1,870 +0,0 @@
--Extreme Survival created by maikerumine
-- Minetest 0.4.13 mod: "Extreme Survival"
-- namespace: es
--https://github.com/maikerumine
--License:
--~~~~~~~~
--Code:
--(c) Copyright 2015 maikerumine; modified zlib-License
--see "LICENSE.txt" for details.
--Media(if not stated differently):
--(c) Copyright (2014-2015) maikerumine; CC-BY-SA 3.0
--tweaks and overrides
--rnd code
--cactus tweaks
local function hurt_cactus() -- cactus tweak
local name = "default:cactus"
local table = minetest.registered_nodes[name];
local table2 = {};
for i,v in pairs(table) do table2[i] = v end
table2.groups.disable_jump = 1
table2.damage_per_second = 5
minetest.register_node(":"..name, table2)
end
hurt_cactus();
--TECHNIC NODES
minetest.register_node( "es:granite", {
description = "Granite",
tiles = { "technic_granite.png" },
is_ground_content = true,
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node( "es:marble", {
description = "Marble",
tiles = { "technic_marble.png" },
is_ground_content = true,
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node( "es:marble_bricks", {
description = "Marble Bricks",
tiles = { "technic_marble_bricks.png" },
is_ground_content = true,
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
})
--NOW WE ADD SOME RADIOACTIVITY FROM THE TECHNIC MOD
--20151206 DECIDED TO EVENTUALLY MOVE THIS INTO THE RADIATION HUD.
--MOVED AND TESTING NEW RADIATION HUD.
--KEEPING THIS CODE FOR POSSIBLE HUD FAILURE.
--UPDATE: Hud never worked like it should.
----------------------------------------
if not vector.length_square then
vector.length_square = function (v)
return v.x*v.x + v.y*v.y + v.z*v.z
end
end
-- radioactivity
-- Radiation resistance represents the extent to which a material
-- attenuates radiation passing through it; i.e., how good a radiation
-- shield it is. This is identified per node type. For materials that
-- exist in real life, the radiation resistance value that this system
-- uses for a node type consisting of a solid cube of that material is the
-- (approximate) number of halvings of ionising radiation that is achieved
-- by a metre of the material in real life. This is approximately
-- proportional to density, which provides a good way to estimate it.
-- Homogeneous mixtures of materials have radiation resistance computed
-- by a simple weighted mean. Note that the amount of attenuation that
-- a material achieves in-game is not required to be (and is not) the
-- same as the attenuation achieved in real life.
--
-- Radiation resistance for a node type may be specified in the node
-- definition, under the key "radiation_resistance". As an interim
-- measure, until node definitions widely include this, this code
-- knows a bunch of values for particular node types in several mods,
-- and values for groups of node types. The node definition takes
-- precedence if it specifies a value. Nodes for which no value at
-- all is known are taken to provide no radiation resistance at all;
-- this is appropriate for the majority of node types. Only node types
-- consisting of a fairly homogeneous mass of material should report
-- non-zero radiation resistance; anything with non-uniform geometry
-- or complex internal structure should show no radiation resistance.
-- Fractional resistance values are permitted; two significant figures
-- is the recommended precision.
local default_radiation_resistance_per_node = {
["default:brick"] = 13,
["default:bronzeblock"] = 45,
["default:clay"] = 15,
["default:coalblock"] = 9.6,
["default:cobble"] = 15,
["default:copperblock"] = 46,
["default:desert_cobble"] = 15,
["default:desert_sand"] = 10,
["default:desert_stone"] = 17,
["default:desert_stonebrick"] = 17,
["default:diamondblock"] = 24,
["default:dirt"] = 8.2,
["default:dirt_with_grass"] = 8.2,
["default:dry_dirt"] = 8.2,
["default:dirt_with_dry_grass"] = 8.2,
["default:dirt_with_grass_footsteps"] = 8.2,
["default:dirt_with_snow"] = 8.2,
["default:glass"] = 17,
["default:goldblock"] = 170,
["default:gravel"] = 10,
["default:ice"] = 5.6,
["default:lava_flowing"] = 8.5,
["default:lava_source"] = 17,
["default:mese"] = 21,
["default:mossycobble"] = 15,
["default:nyancat"] = 1000,
["default:nyancat_rainbow"] = 1000,
["default:obsidian"] = 18,
["default:obsidian_glass"] = 18,
["default:sand"] = 10,
["default:sandstone"] = 15,
["default:sandstonebrick"] = 15,
["default:snowblock"] = 1.7,
["default:steelblock"] = 40,
["default:stone"] = 17,
["default:stone_with_coal"] = 16,
["default:stone_with_copper"] = 20,
["default:stone_with_diamond"] = 18,
["default:stone_with_gold"] = 34,
["default:stone_with_iron"] = 20,
["default:stone_with_mese"] = 17,
["default:stonebrick"] = 17,
["default:water_flowing"] = 2.8,
["default:water_source"] = 5.6,
["farming:desert_sand_soil"] = 10,
["farming:desert_sand_soil_wet"] = 10,
["farming:soil"] = 8.2,
["farming:soil_wet"] = 8.2,
["glooptest:akalin_crystal_glass"] = 21,
["glooptest:akalinblock"] = 40,
["glooptest:alatro_crystal_glass"] = 21,
["glooptest:alatroblock"] = 40,
["glooptest:amethystblock"] = 18,
["glooptest:arol_crystal_glass"] = 21,
["glooptest:crystal_glass"] = 21,
["glooptest:emeraldblock"] = 19,
["glooptest:heavy_crystal_glass"] = 21,
["glooptest:mineral_akalin"] = 20,
["glooptest:mineral_alatro"] = 20,
["glooptest:mineral_amethyst"] = 17,
["glooptest:mineral_arol"] = 20,
["glooptest:mineral_desert_coal"] = 16,
["glooptest:mineral_desert_iron"] = 20,
["glooptest:mineral_emerald"] = 17,
["glooptest:mineral_kalite"] = 20,
["glooptest:mineral_ruby"] = 18,
["glooptest:mineral_sapphire"] = 18,
["glooptest:mineral_talinite"] = 20,
["glooptest:mineral_topaz"] = 18,
["glooptest:reinforced_crystal_glass"] = 21,
["glooptest:rubyblock"] = 27,
["glooptest:sapphireblock"] = 27,
["glooptest:talinite_crystal_glass"] = 21,
["glooptest:taliniteblock"] = 40,
["glooptest:topazblock"] = 24,
["mesecons_extrawires:mese_powered"] = 21,
["moreblocks:cactus_brick"] = 13,
["moreblocks:cactus_checker"] = 8.5,
["moreblocks:circle_stone_bricks"] = 17,
["moreblocks:clean_glass"] = 17,
["moreblocks:coal_checker"] = 9.0,
["moreblocks:coal_glass"] = 17,
["moreblocks:coal_stone"] = 17,
["moreblocks:coal_stone_bricks"] = 17,
["moreblocks:glow_glass"] = 17,
["moreblocks:grey_bricks"] = 15,
["moreblocks:iron_checker"] = 11,
["moreblocks:iron_glass"] = 17,
["moreblocks:iron_stone"] = 17,
["moreblocks:iron_stone_bricks"] = 17,
["moreblocks:plankstone"] = 9.3,
["moreblocks:split_stone_tile"] = 15,
["moreblocks:split_stone_tile_alt"] = 15,
["moreblocks:stone_tile"] = 15,
["moreblocks:super_glow_glass"] = 17,
["moreblocks:tar"] = 7.0,
["moreblocks:wood_tile"] = 1.7,
["moreblocks:wood_tile_center"] = 1.7,
["moreblocks:wood_tile_down"] = 1.7,
["moreblocks:wood_tile_flipped"] = 1.7,
["moreblocks:wood_tile_full"] = 1.7,
["moreblocks:wood_tile_left"] = 1.7,
["moreblocks:wood_tile_right"] = 1.7,
["moreblocks:wood_tile_up"] = 1.7,
["moreores:mineral_mithril"] = 18,
["moreores:mineral_silver"] = 21,
["moreores:mineral_tin"] = 19,
["moreores:mithril_block"] = 26,
["moreores:silver_block"] = 53,
["moreores:tin_block"] = 37,
["snow:snow_brick"] = 2.8,
["technic:brass_block"] = 43,
["technic:carbon_steel_block"] = 40,
["technic:cast_iron_block"] = 40,
["technic:chernobylite_block"] = 40,
["technic:chromium_block"] = 37,
["technic:corium_flowing"] = 40,
["technic:corium_source"] = 80,
["technic:granite"] = 18,
["technic:marble"] = 18,
["technic:marble_bricks"] = 18,
["technic:mineral_chromium"] = 19,
["technic:mineral_uranium"] = 71,
["technic:mineral_zinc"] = 19,
["technic:stainless_steel_block"] = 40,
["technic:uranium_block"] = 500,
["technic:zinc_block"] = 36,
["tnt:tnt"] = 11,
["tnt:tnt_burning"] = 11,
}
local default_radiation_resistance_per_group = {
concrete = 16,
tree = 3.4,
wood = 1.7,
}
local cache_radiation_resistance = {}
local function node_radiation_resistance(nodename)
local eff = cache_radiation_resistance[nodename]
if eff then return eff end
local def = minetest.registered_nodes[nodename] or {groups={}}
eff = def.radiation_resistance or default_radiation_resistance_per_node[nodename]
if not eff then
for g, v in pairs(def.groups) do
if v > 0 and default_radiation_resistance_per_group[g] then
eff = default_radiation_resistance_per_group[g]
break
end
end
end
if not eff then eff = 0 end
cache_radiation_resistance[nodename] = eff
return eff
end
-- Radioactive nodes cause damage to nearby players. The damage
-- effect depends on the intrinsic strength of the radiation source,
-- the distance between the source and the player, and the shielding
-- effect of the intervening material. These determine a rate of damage;
-- total damage caused is the integral of this over time.
--
-- In the absence of effective shielding, for a specific source the
-- damage rate varies realistically in inverse proportion to the square
-- of the distance. (Distance is measured to the player's abdomen,
-- not to the nominal player position which corresponds to the foot.)
-- However, if the player is inside a non-walkable (liquid or gaseous)
-- radioactive node, the nominal distance could go to zero, yielding
-- infinite damage. In that case, the player's body is displacing the
-- radioactive material, so the effective distance should remain non-zero.
-- We therefore apply a lower distance bound of sqrt(0.75) m, which is
-- the maximum distance one can get from the node centre within the node.
--
-- A radioactive node is identified by being in the "radioactive" group,
-- and the group value signifies the strength of the radiation source.
-- The group value is the distance in metres from a node at which an
-- unshielded player will be damaged by 0.25 HP/s. Or, equivalently, it
-- is half the square root of the damage rate in HP/s that an unshielded
-- player 1 m away will take.
--
-- Shielding is assessed by sampling every 0.25 m along the path
-- from the source to the player, ignoring the source node itself.
-- The summed radiation resistance values from the sampled nodes yield
-- a measure of the total amount of radiation resistance on the path.
-- As in reality, shielding causes exponential attenuation of radiation.
-- However, the effect is scaled down relative to real life: each
-- metre-point of shielding, corresponding to a real-life halving of
-- radiation, reduces radiation by 0.01 nepers (a factor of about 1.01).
-- This scales down the difference between shielded and unshielded safe
-- distances, avoiding the latter becoming impractically large.
--
-- Damage is processed at rates down to 0.25 HP/s, which in the absence of
-- shielding is attained at the distance specified by the "radioactive"
-- group value. Computed damage rates below 0.25 HP/s result in no
-- damage at all to the player. This gives the player an opportunity
-- to be safe, and limits the range at which source/player interactions
-- need to be considered.
local assumed_abdomen_offset = vector.new(0, 1, 0)
local assumed_abdomen_offset_length = vector.length(assumed_abdomen_offset)
minetest.register_abm({
nodenames = {"group:radioactive"},
interval = 1,
chance = 1,
action = function (pos, node)
local strength = minetest.registered_nodes[node.name].groups.radioactive
for _, o in ipairs(minetest.get_objects_inside_radius(pos, strength + assumed_abdomen_offset_length)) do
if o:is_player() then
local rel = vector.subtract(vector.add(o:getpos(), assumed_abdomen_offset), pos)
local dist_sq = vector.length_square(rel)
local dist = math.sqrt(dist_sq)
local dirstep = dist == 0 and vector.new(0,0,0) or vector.divide(rel, dist*4)
local intpos = pos
local resistance = 0
for intdist = 0.25, dist, 0.25 do
intpos = vector.add(intpos, dirstep)
local intnodepos = vector.round(intpos)
if not vector.equals(intnodepos, pos) then
resistance = resistance + node_radiation_resistance(minetest.get_node(intnodepos).name)
end
end
local dmg_rate = 0.25 * strength*strength * math.exp(-0.0025*resistance) / math.max(0.75, dist_sq)
if dmg_rate >= 0.25 then
local dmg_int = math.floor(dmg_rate)
if math.random() < dmg_rate-dmg_int then
dmg_int = dmg_int + 1
end
if dmg_int > 0 then
o:set_hp(math.max(o:get_hp() - dmg_int, 0))
end
end
end
end
end,
})
--ES Node Definition
minetest.register_node("es:stone_with_emerald", {
description = "Emerald Ore",
tiles = {"default_stone.png^emerald_ore.png"},
is_ground_content = true,
groups = {cracky=1},
drop = "es:emerald_crystal",
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("es:stone_with_ruby", {
description = "Ruby Ore",
tiles = {"default_stone.png^ruby_ore.png"},
is_ground_content = true,
groups = {cracky=1},
drop = "es:ruby_crystal",
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("es:stone_with_aikerum", {
description = "Aikerum Ore",
tiles = {"default_stone.png^aikerum_ore.png"},
is_ground_content = true,
groups = {cracky=1,level = 2},
drop = "es:aikerum_crystal",
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("es:stone_with_infinium", {
description = "Infinium Ore - Slightly Radioactive",
tiles = {"default_stone.png^infinium_ore.png"},
is_ground_content = true,
groups = {cracky=1,level = 2, radioactive = (state == "source" and 2 or 2)},
drop = "es:infinium_goo",
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("es:stone_with_purpellium", {
description = "Purlellium Ore - Oddly interesting",
tiles = {"default_stone.png^purpellium_ore.png"},
is_ground_content = true,
groups = {cracky=2,level = 2, radioactive = (state == "source" and 2 or 2)},
drop = "es:purpellium_lump",
sounds = default.node_sound_stone_defaults(),
})
--Emerald located at -1000
minetest.register_node("es:emeraldblock", {
description = "Emerald Block",
tiles = {"emerald_block.png"},
is_ground_content = true,
groups = {cracky=1,level=2},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_craftitem("es:emerald_crystal", {
description = "Emerald Crystal",
inventory_image = "emerald.png",
})
--Ruby located at -3000
minetest.register_node("es:rubyblock", {
description = "Ruby Block",
tiles = {"ruby_block.png"},
is_ground_content = true,
groups = {cracky=1,level=2},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_craftitem("es:ruby_crystal", {
description = "Ruby Crystal",
inventory_image = "ruby.png",
})
--Aikerum located at -4000
minetest.register_node("es:aikerumblock", {
description = "Aikerum Block",
tiles = {"aikerum_block.png"},
is_ground_content = true,
groups = {cracky=1,level=2},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_craftitem("es:aikerum_crystal", {
description = "Aikerum Crystal",
inventory_image = "aikerum.png",
})
--Infinium located at -4300
minetest.register_node("es:infiniumblock", {
description = "infinium Block",
tiles = {"infinium_block.png"},
is_ground_content = true,
groups = {cracky=1,level=2},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_craftitem("es:infinium_goo", {
description = "Infinium Goo--Need to craft with vessel to contain.",
inventory_image = "infinium.png",
})
minetest.register_craftitem("es:infinium_ingot", {
description = "Infinium Ingot--TBD CRAFTING Special Armour and Lab Equipment",
--inventory_image = "infinium_ingot.png",
inventory_image = "infinium_ingot.png",
})
minetest.register_craftitem("es:infinium_container", {
description = "Infinium Container--Cook to get Infinium Ingot",
inventory_image = "infinium_container.png",
})
--Purpellium located at -4000
minetest.register_node("es:purpelliumblock", {
description = "Purpellium Block",
tiles = {"purpellium_block.png"},
is_ground_content = true,
groups = {cracky=1,level=2},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_craftitem("es:purpellium_lump", {
description = "Purpellium Lump",
inventory_image = "purpellium_lump.png",
})
minetest.register_craftitem("es:purpellium_ingot", {
description = "Purpellium Ingot",
inventory_image = "purpellium_ingot.png",
})
--BONEBLOCK
minetest.register_node("es:boneblock", {
description = "Bone Blox",
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},
}),
})
--INPERVIOUS NODES CANNOT BREAK- Great for prison walls.
minetest.register_node("es:hgglass", {
description = "High Density Glass",
drawtype = "glasslike_framed_optional",
tiles = {"default_glass.png", "default_glass_detail.png"},
inventory_image = minetest.inventorycube("default_glass.png"),
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
groups = {immortal=1,cracky=0,not_in_creative_inventory = 1},
sounds = default.node_sound_glass_defaults(),
})
minetest.register_node("es:steelblock", {
description = "High Density Steel Block",
tiles = {"default_steel_block.png"},
is_ground_content = false,
groups = {immortal=1,cracky=0,not_in_creative_inventory = 1},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("es:stoneblock", {
description = "High Density Stone Block",
tiles = {"default_stone.png"},
is_ground_content = false,
groups = {immortal=1,cracky=0,not_in_creative_inventory = 1},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("es:sandstonebrick", {
description = "High Density Sandstone Brick",
tiles = {"default_stone_brick.png^[colorize:#CCCC99:150"},
is_ground_content = false,
groups = {immortal=1,cracky=0,not_in_creative_inventory = 1},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("es:stonebrick", {
description = "High Density Stone Brick",
tiles = {"default_stone_brick.png"},
is_ground_content = false,
groups = {immortal=1,cracky=0,not_in_creative_inventory = 1},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("es:junglewood", {
description = "High Density Junglewood Planks",
tiles = {"default_junglewood.png"},
is_ground_content = false,
groups = {immortal=1,cracky=0,not_in_creative_inventory = 1},
sounds = default.node_sound_wood_defaults(),
})
--A simple way to store your cookable Mese, and it gives off light!
minetest.register_node("es:messymese", {
description = "Messy MESE Block",
tiles = {"default_clay.png^bubble.png^mese_cook_mese_crystal.png"},
light_source = 14,
is_ground_content = true,
groups = {cracky=1,level=2},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("es:what", {
description = "The What Block - Dig for random gift",
drawtype = "glasslike_framed_optional^bubble.png",
tiles = {"default_glass.png^bubble.png", "default_glass_detail.png^bubble.png"},
inventory_image = minetest.inventorycube("default_glass.png"),
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
groups = {crumbly=3,},
drop = {
max_items = 2,
items = {
{items = {'es:what'}, rarity = 80},
{items = {'es:sword_aikerum'}, rarity = 50},
{items = {'es:sword_ruby'}, rarity = 40},
{items = {'es:sword_emerald'}, rarity = 30},
{items = {'es:pick_aikerum'}, rarity = 50},
{items = {'es:pick_ruby'}, rarity = 40},
{items = {'es:pick_emerald'}, rarity = 30},
{items = {'farming:bread 20'}, rarity = 3},
{items = {'default:cobble 10'}, rarity = 3},
{items = {'default:gold_lump 10'}, rarity = 10},
{items = {'default:iron_lump 10'}, rarity = 5},
{items = {'default:apple 10'}, rarity = 5},
{items = {'default:coal_lump 10'}, rarity = 1},
{items = {'es:depleted_uranium_ingot 3'}}
}
},
sounds = default.node_sound_glass_defaults(),
})
--Default addons as they should be. I changed ore generation to keep unique for compatibility.
--Dry dirt added
minetest.register_node("es:dry_dirt", {
description = "Some dry dirt",
tiles = {"default_dry_dirt.png"},
--tiles = {"dry_dirt.png"},
groups = {crumbly = 3},
drop = 'es:dry_dirt',
sounds = default.node_sound_dirt_defaults({
footstep = {name = "default_grass_footstep", gain = 0.25},
}),
})
minetest.register_node("es:stone_with_mese", {
description = "Cookable Mese Ore",
tiles = {"default_stone.png^default_mineral_mese.png"},
paramtype = "light",
groups = {cracky = 1},
drop = "es:mesecook_crystal",
sounds = default.node_sound_stone_defaults(),
light_source = 1,
})
minetest.register_node("es:desert_stone_with_gold", {
description = "Gold Ore",
tiles = {"default_desert_stone.png^default_mineral_gold.png"},
groups = {cracky = 2},
drop = "default:gold_lump",
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("es:desert_stone_with_iron", {
description = "Iron Ore",
tiles = {"default_desert_stone.png^default_mineral_iron.png"},
groups = {cracky = 2},
drop = 'default:iron_lump',
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("es:desert_stone_with_coal", {
description = "Coal Ore",
tiles = {"default_desert_stone.png^default_mineral_coal.png"},
groups = {cracky = 3},
drop = 'default:coal_lump',
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("es:depleted_uranium", {
description = "Depleted Uranium Ore RADIOACTIVE",
tiles = {"default_stone.png^uranium_ore.png"},
groups = {cracky = 3, radioactive = (state == "source" and 3 or 2)},
drop = 'es:depleted_uranium_lump',
sounds = default.node_sound_stone_defaults(),
light_source = 12,
})
minetest.register_craftitem("es:depleted_uranium_lump", {
description = "Depleted Uranium use for long term fuel, first cook the lump into an ingot, then use ingot for fuel.",
inventory_image = "uranium_lump.png",
})
--ES CUSTOM LIQUIDS:
minetest.register_node("es:toxic_water_source", {
description = "Toxic_Water Source",
inventory_image = minetest.inventorycube("es_toxic_water.png"),
drawtype = "liquid",
tiles = {
{
name = "es_toxic_water_source_animated.png",
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 2.0,
},
},
},
special_tiles = {
-- New-style water source material (mostly unused)
{
name = "es_toxic_water_source_animated.png",
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 2.0,
},
backface_culling = false,
},
},
alpha = 240,
paramtype = "light",
walkable = false,
pointable = false,
diggable = false,
buildable_to = true,
is_ground_content = false,
drop = "",
drowning = 1,
liquidtype = "source",
liquid_alternative_flowing = "es:toxic_water_flowing",
liquid_alternative_source = "es:toxic_water_source",
liquid_viscosity =3,
damage_per_second = 3*2,
post_effect_color = {a = 255, r = 30, g = 60, b = 90},
groups = {water = 3, liquid = 3, puts_out_fire = 1, radioactive = (state == "source" and 2 or 2),},
})
--NOTES:
-- radioactive = (state == "source" and 32 or 16),
--THIS IS DEFAULT SETTING FROM TECHNIC
minetest.register_node("es:toxic_water_flowing", {
description = "Toxic_Flowing Water",
inventory_image = minetest.inventorycube("es_toxic_water.png"),
drawtype = "flowingliquid",
tiles = {"es_toxic_water.png"},
special_tiles = {
{
name = "es_toxic_water_flowing_animated.png",
backface_culling = false,
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 0.8,
},
},
{
name = "es_toxic_water_flowing_animated.png",
backface_culling = true,
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 0.8,
},
},
},
alpha = 240,
paramtype = "light",
paramtype2 = "flowingliquid",
walkable = false,
pointable = false,
diggable = false,
buildable_to = true,
is_ground_content = false,
drop = "",
drowning = 1,
liquidtype = "flowing",
liquid_alternative_flowing = "es:toxic_water_flowing",
liquid_alternative_source = "es:toxic_water_source",
liquid_viscosity = 2,
damage_per_second = 2*2,
post_effect_color = {a = 255, r = 30, g = 60, b = 90},
groups = {water = 3, liquid = 3, puts_out_fire = 1,
not_in_creative_inventory = 1, radioactive = (state == "source" and 2 or 2),},
})
--[[--FOR REF
-- Quicksand (old style, sinking inside shows black instead of yellow effect,
-- works ok with noclip enabled though)
minetest.register_node("ethereal:quicksand", {
description = "Quicksand",
tiles = {"default_sand.png"},
drop = "default:sand",
liquid_viscosity = 15,
liquidtype = "source",
liquid_alternative_flowing = "ethereal:quicksand",
liquid_alternative_source = "ethereal:quicksand",
liquid_renewable = false,
liquid_range = 0,
drowning = 1,
walkable = false,
climbable = false,
post_effect_color = { r=230, g=210, b=160, a=245 },
groups = {crumbly=3, falling_node=1, sand=1, liquid=3, disable_jump=1},
sounds = default.node_sound_sand_defaults(),
})
]]
minetest.register_node("es:mud_source", {
description = "Mud Source",
inventory_image = minetest.inventorycube("es_mud.png"),
drawtype = "liquid",
tiles = {"es_mud.png"},
--[[ tiles = {
{
name = "default_mud_source_animated.png",
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 2.0,
},
},
},
special_tiles = {
-- New-style water source material (mostly unused)
{
name = "default_mud_source_animated.png",
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 2.0,
},
backface_culling = false,
},
},]]
alpha = 255,
paramtype = "light",
walkable = false,
pointable = false,
diggable = false,
buildable_to = true,
is_ground_content = false,
drop = "",
drowning = 1,
--damage_per_second = 3*2,
liquidtype = "source",
liquid_alternative_flowing = "es:mud_flowing",
liquid_alternative_source = "es:mud_source",
liquid_viscosity = 18,
post_effect_color = {a = 255, r = 43, g = 23, b = 9},
groups = {water = 3, liquid = 3, puts_out_fire = 1, },
})
minetest.register_node("es:mud_flowing", {
description = "Flowing mud",
inventory_image = minetest.inventorycube("es_mud.png"),
drawtype = "liquid",--change to liquid for a solid look
tiles = {"es_mud.png"},
special_tiles = {
{
name = "es_mud_flowing_animated.png",
backface_culling = false,
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 0.8,
},
},
{
name = "es_mud_flowing_animated.png",
backface_culling = true,
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 0.8,
},
},
},
alpha = 250,
paramtype = "light",
paramtype2 = "flowingliquid",
walkable = false,
pointable = false,
diggable = false,
buildable_to = true,
is_ground_content = false,
drop = "",
drowning = 1,
--damage_per_second = 3*2,
liquidtype = "flowing",
liquid_alternative_flowing = "es:mud_flowing",
liquid_alternative_source = "es:mud_source",
liquid_viscosity = 19,
post_effect_color = {a = 255, r = 43, g = 23, b = 9},
groups = {water = 3, liquid = 3, puts_out_fire = 1,
not_in_creative_inventory = 1, },
})

View File

@ -1,625 +0,0 @@
--Extreme Survival created by maikerumine
-- Minetest 0.4.13 mod: "Extreme Survival"
-- namespace: es
--https://github.com/maikerumine
--License:
--~~~~~~~~
--Code:
--(c) Copyright 2015 maikerumine; modified zlib-License
--see "LICENSE.txt" for details.
--Media(if not stated differently):
--(c) Copyright (2014-2015) maikerumine; CC-BY-SA 3.0
--tweaks and overrides
--rnd code
--cactus tweaks
local function hurt_cactus() -- cactus tweak
local name = "default:cactus"
local table = minetest.registered_nodes[name];
local table2 = {};
for i,v in pairs(table) do table2[i] = v end
table2.groups.disable_jump = 1
table2.damage_per_second = 5
minetest.register_node(":"..name, table2)
end
hurt_cactus();
--TECHNIC NODES
minetest.register_node( "es:granite", {
description = "Granite",
tiles = { "technic_granite.png" },
--tiles = { "default_coal_block.png^[colorize:#696969:142^(default_acacia_leaves.png^[colorize:#5E2612:152)" },
is_ground_content = true,
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node( "es:marble", {
description = "Marble",
tiles = { "technic_marble.png" },
--tiles = {"default_sand.png^[colorize:#CDB79E:142^(default_acacia_leaves.png^[colorize:#CDB79E:152)"},
is_ground_content = true,
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node( "es:marble_bricks", {
description = "Marble Bricks",
tiles = { "technic_marble_bricks.png" },
--tiles = {"default_sandstone_brick.png^[colorize:#CDB79E:182^(default_acacia_leaves.png^[colorize:#CDB79E:152)" },
is_ground_content = true,
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
})
--NOW WE ADD SOME RADIOACTIVITY FROM THE TECHNIC MOD
--20151206 DECIDED TO EVENTUALLY MOVE THIS INTO THE RADIATION HUD.
--MOVED AND TESTING NEW RADIATION HUD.
--KEEPING THIS CODE FOR POSSIBLE HUD FAILURE.
--UPDATE: Hud never worked like it should.
----------------------------------------
if not vector.length_square then
vector.length_square = function (v)
return v.x*v.x + v.y*v.y + v.z*v.z
end
end
-- radioactivity
-- Radiation resistance represents the extent to which a material
-- attenuates radiation passing through it; i.e., how good a radiation
-- shield it is. This is identified per node type. For materials that
-- exist in real life, the radiation resistance value that this system
-- uses for a node type consisting of a solid cube of that material is the
-- (approximate) number of halvings of ionising radiation that is achieved
-- by a metre of the material in real life. This is approximately
-- proportional to density, which provides a good way to estimate it.
-- Homogeneous mixtures of materials have radiation resistance computed
-- by a simple weighted mean. Note that the amount of attenuation that
-- a material achieves in-game is not required to be (and is not) the
-- same as the attenuation achieved in real life.
--
-- Radiation resistance for a node type may be specified in the node
-- definition, under the key "radiation_resistance". As an interim
-- measure, until node definitions widely include this, this code
-- knows a bunch of values for particular node types in several mods,
-- and values for groups of node types. The node definition takes
-- precedence if it specifies a value. Nodes for which no value at
-- all is known are taken to provide no radiation resistance at all;
-- this is appropriate for the majority of node types. Only node types
-- consisting of a fairly homogeneous mass of material should report
-- non-zero radiation resistance; anything with non-uniform geometry
-- or complex internal structure should show no radiation resistance.
-- Fractional resistance values are permitted; two significant figures
-- is the recommended precision.
local default_radiation_resistance_per_node = {
["default:brick"] = 13,
["default:bronzeblock"] = 45,
["default:clay"] = 15,
["default:coalblock"] = 9.6,
["default:cobble"] = 15,
["default:copperblock"] = 46,
["default:desert_cobble"] = 15,
["default:desert_sand"] = 10,
["default:desert_stone"] = 17,
["default:desert_stonebrick"] = 17,
["default:diamondblock"] = 24,
["default:dirt"] = 8.2,
["default:dirt_with_grass"] = 8.2,
["default:dry_dirt"] = 8.2,
["default:dirt_with_dry_grass"] = 8.2,
["default:dirt_with_grass_footsteps"] = 8.2,
["default:dirt_with_snow"] = 8.2,
["default:glass"] = 17,
["default:goldblock"] = 170,
["default:gravel"] = 10,
["default:ice"] = 5.6,
["default:lava_flowing"] = 8.5,
["default:lava_source"] = 17,
["default:mese"] = 21,
["default:mossycobble"] = 15,
["default:nyancat"] = 1000,
["default:nyancat_rainbow"] = 1000,
["default:obsidian"] = 18,
["default:obsidian_glass"] = 18,
["default:sand"] = 10,
["default:sandstone"] = 15,
["default:sandstonebrick"] = 15,
["default:snowblock"] = 1.7,
["default:steelblock"] = 40,
["default:stone"] = 17,
["default:stone_with_coal"] = 16,
["default:stone_with_copper"] = 20,
["default:stone_with_diamond"] = 18,
["default:stone_with_gold"] = 34,
["default:stone_with_iron"] = 20,
["default:stone_with_mese"] = 17,
["default:stonebrick"] = 17,
["default:water_flowing"] = 2.8,
["default:water_source"] = 5.6,
["farming:desert_sand_soil"] = 10,
["farming:desert_sand_soil_wet"] = 10,
["farming:soil"] = 8.2,
["farming:soil_wet"] = 8.2,
["glooptest:akalin_crystal_glass"] = 21,
["glooptest:akalinblock"] = 40,
["glooptest:alatro_crystal_glass"] = 21,
["glooptest:alatroblock"] = 40,
["glooptest:amethystblock"] = 18,
["glooptest:arol_crystal_glass"] = 21,
["glooptest:crystal_glass"] = 21,
["glooptest:emeraldblock"] = 19,
["glooptest:heavy_crystal_glass"] = 21,
["glooptest:mineral_akalin"] = 20,
["glooptest:mineral_alatro"] = 20,
["glooptest:mineral_amethyst"] = 17,
["glooptest:mineral_arol"] = 20,
["glooptest:mineral_desert_coal"] = 16,
["glooptest:mineral_desert_iron"] = 20,
["glooptest:mineral_emerald"] = 17,
["glooptest:mineral_kalite"] = 20,
["glooptest:mineral_ruby"] = 18,
["glooptest:mineral_sapphire"] = 18,
["glooptest:mineral_talinite"] = 20,
["glooptest:mineral_topaz"] = 18,
["glooptest:reinforced_crystal_glass"] = 21,
["glooptest:rubyblock"] = 27,
["glooptest:sapphireblock"] = 27,
["glooptest:talinite_crystal_glass"] = 21,
["glooptest:taliniteblock"] = 40,
["glooptest:topazblock"] = 24,
["mesecons_extrawires:mese_powered"] = 21,
["moreblocks:cactus_brick"] = 13,
["moreblocks:cactus_checker"] = 8.5,
["moreblocks:circle_stone_bricks"] = 17,
["moreblocks:clean_glass"] = 17,
["moreblocks:coal_checker"] = 9.0,
["moreblocks:coal_glass"] = 17,
["moreblocks:coal_stone"] = 17,
["moreblocks:coal_stone_bricks"] = 17,
["moreblocks:glow_glass"] = 17,
["moreblocks:grey_bricks"] = 15,
["moreblocks:iron_checker"] = 11,
["moreblocks:iron_glass"] = 17,
["moreblocks:iron_stone"] = 17,
["moreblocks:iron_stone_bricks"] = 17,
["moreblocks:plankstone"] = 9.3,
["moreblocks:split_stone_tile"] = 15,
["moreblocks:split_stone_tile_alt"] = 15,
["moreblocks:stone_tile"] = 15,
["moreblocks:super_glow_glass"] = 17,
["moreblocks:tar"] = 7.0,
["moreblocks:wood_tile"] = 1.7,
["moreblocks:wood_tile_center"] = 1.7,
["moreblocks:wood_tile_down"] = 1.7,
["moreblocks:wood_tile_flipped"] = 1.7,
["moreblocks:wood_tile_full"] = 1.7,
["moreblocks:wood_tile_left"] = 1.7,
["moreblocks:wood_tile_right"] = 1.7,
["moreblocks:wood_tile_up"] = 1.7,
["moreores:mineral_mithril"] = 18,
["moreores:mineral_silver"] = 21,
["moreores:mineral_tin"] = 19,
["moreores:mithril_block"] = 26,
["moreores:silver_block"] = 53,
["moreores:tin_block"] = 37,
["snow:snow_brick"] = 2.8,
["technic:brass_block"] = 43,
["technic:carbon_steel_block"] = 40,
["technic:cast_iron_block"] = 40,
["technic:chernobylite_block"] = 40,
["technic:chromium_block"] = 37,
["technic:corium_flowing"] = 40,
["technic:corium_source"] = 80,
["technic:granite"] = 18,
["technic:marble"] = 18,
["technic:marble_bricks"] = 18,
["technic:mineral_chromium"] = 19,
["technic:mineral_uranium"] = 71,
["technic:mineral_zinc"] = 19,
["technic:stainless_steel_block"] = 40,
["technic:uranium_block"] = 500,
["technic:zinc_block"] = 36,
["tnt:tnt"] = 11,
["tnt:tnt_burning"] = 11,
}
local default_radiation_resistance_per_group = {
concrete = 16,
tree = 3.4,
wood = 1.7,
}
local cache_radiation_resistance = {}
local function node_radiation_resistance(nodename)
local eff = cache_radiation_resistance[nodename]
if eff then return eff end
local def = minetest.registered_nodes[nodename] or {groups={}}
eff = def.radiation_resistance or default_radiation_resistance_per_node[nodename]
if not eff then
for g, v in pairs(def.groups) do
if v > 0 and default_radiation_resistance_per_group[g] then
eff = default_radiation_resistance_per_group[g]
break
end
end
end
if not eff then eff = 0 end
cache_radiation_resistance[nodename] = eff
return eff
end
-- Radioactive nodes cause damage to nearby players. The damage
-- effect depends on the intrinsic strength of the radiation source,
-- the distance between the source and the player, and the shielding
-- effect of the intervening material. These determine a rate of damage;
-- total damage caused is the integral of this over time.
--
-- In the absence of effective shielding, for a specific source the
-- damage rate varies realistically in inverse proportion to the square
-- of the distance. (Distance is measured to the player's abdomen,
-- not to the nominal player position which corresponds to the foot.)
-- However, if the player is inside a non-walkable (liquid or gaseous)
-- radioactive node, the nominal distance could go to zero, yielding
-- infinite damage. In that case, the player's body is displacing the
-- radioactive material, so the effective distance should remain non-zero.
-- We therefore apply a lower distance bound of sqrt(0.75) m, which is
-- the maximum distance one can get from the node centre within the node.
--
-- A radioactive node is identified by being in the "radioactive" group,
-- and the group value signifies the strength of the radiation source.
-- The group value is the distance in metres from a node at which an
-- unshielded player will be damaged by 0.25 HP/s. Or, equivalently, it
-- is half the square root of the damage rate in HP/s that an unshielded
-- player 1 m away will take.
--
-- Shielding is assessed by sampling every 0.25 m along the path
-- from the source to the player, ignoring the source node itself.
-- The summed radiation resistance values from the sampled nodes yield
-- a measure of the total amount of radiation resistance on the path.
-- As in reality, shielding causes exponential attenuation of radiation.
-- However, the effect is scaled down relative to real life: each
-- metre-point of shielding, corresponding to a real-life halving of
-- radiation, reduces radiation by 0.01 nepers (a factor of about 1.01).
-- This scales down the difference between shielded and unshielded safe
-- distances, avoiding the latter becoming impractically large.
--
-- Damage is processed at rates down to 0.25 HP/s, which in the absence of
-- shielding is attained at the distance specified by the "radioactive"
-- group value. Computed damage rates below 0.25 HP/s result in no
-- damage at all to the player. This gives the player an opportunity
-- to be safe, and limits the range at which source/player interactions
-- need to be considered.
local assumed_abdomen_offset = vector.new(0, 1, 0)
local assumed_abdomen_offset_length = vector.length(assumed_abdomen_offset)
minetest.register_abm({
nodenames = {"group:radioactive"},
interval = 1,
chance = 1,
action = function (pos, node)
local strength = minetest.registered_nodes[node.name].groups.radioactive
for _, o in ipairs(minetest.get_objects_inside_radius(pos, strength + assumed_abdomen_offset_length)) do
if o:is_player() then
local rel = vector.subtract(vector.add(o:getpos(), assumed_abdomen_offset), pos)
local dist_sq = vector.length_square(rel)
local dist = math.sqrt(dist_sq)
local dirstep = dist == 0 and vector.new(0,0,0) or vector.divide(rel, dist*4)
local intpos = pos
local resistance = 0
for intdist = 0.25, dist, 0.25 do
intpos = vector.add(intpos, dirstep)
local intnodepos = vector.round(intpos)
if not vector.equals(intnodepos, pos) then
resistance = resistance + node_radiation_resistance(minetest.get_node(intnodepos).name)
end
end
local dmg_rate = 0.25 * strength*strength * math.exp(-0.0025*resistance) / math.max(0.75, dist_sq)
if dmg_rate >= 0.25 then
local dmg_int = math.floor(dmg_rate)
if math.random() < dmg_rate-dmg_int then
dmg_int = dmg_int + 1
end
if dmg_int > 0 then
o:set_hp(math.max(o:get_hp() - dmg_int, 0))
end
end
end
end
end,
})
--ES Node Definition
minetest.register_node("es:stone_with_emerald", {
description = "Emerald Ore",
tiles = {"default_stone.png^(default_mineral_mese.png^[colorize:#008000:134)"},
is_ground_content = true,
groups = {cracky=1},
drop = "es:emerald_crystal",
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("es:stone_with_ruby", {
description = "Ruby Ore",
tiles = {"default_stone.png^(default_mineral_mese.png^[colorize:#FF0000:144)"},
is_ground_content = true,
groups = {cracky=1},
drop = "es:ruby_crystal",
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("es:stone_with_aikerum", {
description = "Aikerum Ore",
tiles = {"default_stone.png^(default_mineral_mese.png^[colorize:#0000FF:134)"},
is_ground_content = true,
groups = {cracky=1,level = 2},
drop = "es:aikerum_crystal",
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("es:stone_with_infinium", {
description = "Infinium Ore - Slightly Radioactive",
tiles = {"default_stone.png^infinium_ore.png"},
is_ground_content = true,
groups = {cracky=1,level = 2, radioactive = (state == "source" and 2 or 2)},
drop = "es:infinium_goo",
sounds = default.node_sound_stone_defaults(),
})
--Emerald located at -1000
minetest.register_node("es:emeraldblock", {
description = "Emerald Block",
tiles = {"default_diamond_block.png^[colorize:#008000:134"},
is_ground_content = true,
groups = {cracky=1,level=2},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_craftitem("es:emerald_crystal", {
description = "Emerald Crystal",
inventory_image = "default_diamond.png^[colorize:#008000:134",
})
--Ruby located at -3000
minetest.register_node("es:rubyblock", {
description = "Ruby Block",
tiles = {"default_diamond_block.png^[colorize:#FF0000:194"},
is_ground_content = true,
groups = {cracky=1,level=2},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_craftitem("es:ruby_crystal", {
description = "Ruby Crystal",
inventory_image = "default_diamond.png^[colorize:#FF0000:144",
})
--Aikerum located at -4000
minetest.register_node("es:aikerumblock", {
description = "Aikerum Block",
tiles = {"default_diamond_block.png^[colorize:#0000FF:134"},
is_ground_content = true,
groups = {cracky=1,level=2},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_craftitem("es:aikerum_crystal", {
description = "Aikerum Crystal",
inventory_image = "default_diamond.png^[colorize:#0000FF:134",
})
--Infinium located at -4300
minetest.register_node("es:infiniumblock", {
description = "infinium Block",
tiles = {"infinium_block.png"},
is_ground_content = true,
groups = {cracky=1,level=2},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_craftitem("es:infinium_goo", {
description = "Infinium Goo--Need to craft with vessel to contain.",
inventory_image = "infinium.png",
})
minetest.register_craftitem("es:infinium_ingot", {
description = "Infinium Ingot--TBD CRAFTING Special Armour and Lab Equipment",
--inventory_image = "infinium_ingot.png",
inventory_image = "default_steel_ingot.png^[colorize:#B0171F:215",
})
minetest.register_craftitem("es:infinium_container", {
description = "Infinium Container--Cook to get Infinium Ingot",
inventory_image = "infinium_container.png",
})
--BONEBLOCK
minetest.register_node("es:boneblock", {
description = "Bone Blox",
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},
}),
})
--INPERVIOUS NODES CANNOT BREAK- Great for prison walls.
minetest.register_node("es:hgglass", {
description = "High Density Glass",
drawtype = "glasslike_framed_optional",
tiles = {"default_glass.png", "default_glass_detail.png"},
inventory_image = minetest.inventorycube("default_glass.png"),
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
groups = {immortal=1,cracky=0,not_in_creative_inventory = 1},
sounds = default.node_sound_glass_defaults(),
})
minetest.register_node("es:steelblock", {
description = "High Density Steel Block",
tiles = {"default_steel_block.png"},
is_ground_content = false,
groups = {immortal=1,cracky=0,not_in_creative_inventory = 1},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("es:stoneblock", {
description = "High Density Stone Block",
tiles = {"default_stone.png"},
is_ground_content = false,
groups = {immortal=1,cracky=0,not_in_creative_inventory = 1},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("es:sandstonebrick", {
description = "High Density Sandstone Brick",
tiles = {"default_sandstone_brick.png"},
is_ground_content = false,
groups = {immortal=1,cracky=0,not_in_creative_inventory = 1},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("es:stonebrick", {
description = "High Density Stone Brick",
tiles = {"default_stone_brick.png"},
is_ground_content = false,
groups = {immortal=1,cracky=0,not_in_creative_inventory = 1},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("es:junglewood", {
description = "High Density Junglewood Planks",
tiles = {"default_junglewood.png"},
is_ground_content = false,
groups = {immortal=1,cracky=0,not_in_creative_inventory = 1},
sounds = default.node_sound_wood_defaults(),
})
--A simple way to store your cookable Mese, and it gives off light!
minetest.register_node("es:messymese", {
description = "Messy MESE Block",
tiles = {"default_clay.png^bubble.png^mese_cook_mese_crystal.png"},
light_source = 14,
is_ground_content = true,
groups = {cracky=1,level=2},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("es:what", {
description = "The What Block - Dig for random gift",
drawtype = "glasslike_framed_optional^bubble.png",
tiles = {"default_glass.png^bubble.png", "default_glass_detail.png^bubble.png"},
inventory_image = minetest.inventorycube("default_glass.png"),
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
groups = {crumbly=3,},
drop = {
max_items = 2,
items = {
{items = {'es:what'}, rarity = 80},
{items = {'es:sword_aikerum'}, rarity = 50},
{items = {'es:sword_ruby'}, rarity = 40},
{items = {'es:sword_emerald'}, rarity = 30},
{items = {'es:pick_aikerum'}, rarity = 50},
{items = {'es:pick_ruby'}, rarity = 40},
{items = {'es:pick_emerald'}, rarity = 30},
{items = {'farming:bread 20'}, rarity = 3},
{items = {'default:cobble 10'}, rarity = 3},
{items = {'default:gold_lump 10'}, rarity = 10},
{items = {'default:iron_lump 10'}, rarity = 5},
{items = {'default:apple 10'}, rarity = 5},
{items = {'default:coal_lump 10'}, rarity = 1},
{items = {'es:depleted_uranium_ingot 3'}}
}
},
sounds = default.node_sound_glass_defaults(),
})
--Default addons as they should be. I changed ore generation to keep unique for compatibility.
--Dry dirt added
minetest.register_node("es:dry_dirt", {
description = "Some dry dirt",
--tiles = {"default_dry_dirt.png"},
tiles = {"default_dirt.png^[colorize:#B8860B:95"},
groups = {crumbly = 3},
drop = 'es:dry_dirt',
sounds = default.node_sound_dirt_defaults({
footstep = {name = "default_grass_footstep", gain = 0.25},
}),
})
minetest.register_node("es:stone_with_mese", {
description = "Cookable Mese Ore",
tiles = {"default_stone.png^(default_mineral_mese.png^[colorize:#F0E68C:195)"},
paramtype = "light",
groups = {cracky = 1},
drop = "es:mesecook_crystal",
sounds = default.node_sound_stone_defaults(),
light_source = 1,
})
minetest.register_node("es:desert_stone_with_gold", {
description = "Gold Ore",
tiles = {"default_desert_stone.png^default_mineral_gold.png"},
groups = {cracky = 2},
drop = "default:gold_lump",
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("es:desert_stone_with_iron", {
description = "Iron Ore",
tiles = {"default_desert_stone.png^default_mineral_iron.png"},
groups = {cracky = 2},
drop = 'default:iron_lump',
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("es:desert_stone_with_coal", {
description = "Coal Ore",
tiles = {"default_desert_stone.png^default_mineral_coal.png"},
groups = {cracky = 3},
drop = 'default:coal_lump',
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("es:depleted_uranium", {
description = "Depleted Uranium Ore RADIOACTIVE",
tiles = {"default_stone.png^(default_mineral_gold.png^[colorize:#00FF00:195)"},
groups = {cracky = 3, radioactive = (state == "source" and 3 or 2)},
drop = 'es:depleted_uranium_lump',
sounds = default.node_sound_stone_defaults(),
light_source = 1,
})
minetest.register_craftitem("es:depleted_uranium_lump", {
description = "Depleted Uranium use for long term fuel, first cook the lump into an ingot, then use ingot for fuel.",
inventory_image = "default_mineral_mese.png^[colorize:#7CFC00:195",
})

View File

@ -1,625 +0,0 @@
--Extreme Survival created by maikerumine
-- Minetest 0.4.13 mod: "Extreme Survival"
-- namespace: es
--https://github.com/maikerumine
--License:
--~~~~~~~~
--Code:
--(c) Copyright 2015 maikerumine; modified zlib-License
--see "LICENSE.txt" for details.
--Media(if not stated differently):
--(c) Copyright (2014-2015) maikerumine; CC-BY-SA 3.0
--tweaks and overrides
--rnd code
--cactus tweaks
local function hurt_cactus() -- cactus tweak
local name = "default:cactus"
local table = minetest.registered_nodes[name];
local table2 = {};
for i,v in pairs(table) do table2[i] = v end
table2.groups.disable_jump = 1
table2.damage_per_second = 5
minetest.register_node(":"..name, table2)
end
hurt_cactus();
--TECHNIC NODES
minetest.register_node( "es:granite", {
description = "Granite",
tiles = { "technic_granite.png" },
--tiles = { "default_coal_block.png^[colorize:#696969:142^(default_acacia_leaves.png^[colorize:#5E2612:152)" },
is_ground_content = true,
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node( "es:marble", {
description = "Marble",
tiles = { "technic_marble.png" },
--tiles = {"default_sand.png^[colorize:#CDB79E:142^(default_acacia_leaves.png^[colorize:#CDB79E:152)"},
is_ground_content = true,
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node( "es:marble_bricks", {
description = "Marble Bricks",
tiles = { "technic_marble_bricks.png" },
--tiles = {"default_sandstone_brick.png^[colorize:#CDB79E:182^(default_acacia_leaves.png^[colorize:#CDB79E:152)" },
is_ground_content = true,
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
})
--NOW WE ADD SOME RADIOACTIVITY FROM THE TECHNIC MOD
--20151206 DECIDED TO EVENTUALLY MOVE THIS INTO THE RADIATION HUD.
--MOVED AND TESTING NEW RADIATION HUD.
--KEEPING THIS CODE FOR POSSIBLE HUD FAILURE.
--UPDATE: Hud never worked like it should.
----------------------------------------
if not vector.length_square then
vector.length_square = function (v)
return v.x*v.x + v.y*v.y + v.z*v.z
end
end
-- radioactivity
-- Radiation resistance represents the extent to which a material
-- attenuates radiation passing through it; i.e., how good a radiation
-- shield it is. This is identified per node type. For materials that
-- exist in real life, the radiation resistance value that this system
-- uses for a node type consisting of a solid cube of that material is the
-- (approximate) number of halvings of ionising radiation that is achieved
-- by a metre of the material in real life. This is approximately
-- proportional to density, which provides a good way to estimate it.
-- Homogeneous mixtures of materials have radiation resistance computed
-- by a simple weighted mean. Note that the amount of attenuation that
-- a material achieves in-game is not required to be (and is not) the
-- same as the attenuation achieved in real life.
--
-- Radiation resistance for a node type may be specified in the node
-- definition, under the key "radiation_resistance". As an interim
-- measure, until node definitions widely include this, this code
-- knows a bunch of values for particular node types in several mods,
-- and values for groups of node types. The node definition takes
-- precedence if it specifies a value. Nodes for which no value at
-- all is known are taken to provide no radiation resistance at all;
-- this is appropriate for the majority of node types. Only node types
-- consisting of a fairly homogeneous mass of material should report
-- non-zero radiation resistance; anything with non-uniform geometry
-- or complex internal structure should show no radiation resistance.
-- Fractional resistance values are permitted; two significant figures
-- is the recommended precision.
local default_radiation_resistance_per_node = {
["default:brick"] = 13,
["default:bronzeblock"] = 45,
["default:clay"] = 15,
["default:coalblock"] = 9.6,
["default:cobble"] = 15,
["default:copperblock"] = 46,
["default:desert_cobble"] = 15,
["default:desert_sand"] = 10,
["default:desert_stone"] = 17,
["default:desert_stonebrick"] = 17,
["default:diamondblock"] = 24,
["default:dirt"] = 8.2,
["default:dirt_with_grass"] = 8.2,
["default:dry_dirt"] = 8.2,
["default:dirt_with_dry_grass"] = 8.2,
["default:dirt_with_grass_footsteps"] = 8.2,
["default:dirt_with_snow"] = 8.2,
["default:glass"] = 17,
["default:goldblock"] = 170,
["default:gravel"] = 10,
["default:ice"] = 5.6,
["default:lava_flowing"] = 8.5,
["default:lava_source"] = 17,
["default:mese"] = 21,
["default:mossycobble"] = 15,
["default:nyancat"] = 1000,
["default:nyancat_rainbow"] = 1000,
["default:obsidian"] = 18,
["default:obsidian_glass"] = 18,
["default:sand"] = 10,
["default:sandstone"] = 15,
["default:sandstonebrick"] = 15,
["default:snowblock"] = 1.7,
["default:steelblock"] = 40,
["default:stone"] = 17,
["default:stone_with_coal"] = 16,
["default:stone_with_copper"] = 20,
["default:stone_with_diamond"] = 18,
["default:stone_with_gold"] = 34,
["default:stone_with_iron"] = 20,
["default:stone_with_mese"] = 17,
["default:stonebrick"] = 17,
["default:water_flowing"] = 2.8,
["default:water_source"] = 5.6,
["farming:desert_sand_soil"] = 10,
["farming:desert_sand_soil_wet"] = 10,
["farming:soil"] = 8.2,
["farming:soil_wet"] = 8.2,
["glooptest:akalin_crystal_glass"] = 21,
["glooptest:akalinblock"] = 40,
["glooptest:alatro_crystal_glass"] = 21,
["glooptest:alatroblock"] = 40,
["glooptest:amethystblock"] = 18,
["glooptest:arol_crystal_glass"] = 21,
["glooptest:crystal_glass"] = 21,
["glooptest:emeraldblock"] = 19,
["glooptest:heavy_crystal_glass"] = 21,
["glooptest:mineral_akalin"] = 20,
["glooptest:mineral_alatro"] = 20,
["glooptest:mineral_amethyst"] = 17,
["glooptest:mineral_arol"] = 20,
["glooptest:mineral_desert_coal"] = 16,
["glooptest:mineral_desert_iron"] = 20,
["glooptest:mineral_emerald"] = 17,
["glooptest:mineral_kalite"] = 20,
["glooptest:mineral_ruby"] = 18,
["glooptest:mineral_sapphire"] = 18,
["glooptest:mineral_talinite"] = 20,
["glooptest:mineral_topaz"] = 18,
["glooptest:reinforced_crystal_glass"] = 21,
["glooptest:rubyblock"] = 27,
["glooptest:sapphireblock"] = 27,
["glooptest:talinite_crystal_glass"] = 21,
["glooptest:taliniteblock"] = 40,
["glooptest:topazblock"] = 24,
["mesecons_extrawires:mese_powered"] = 21,
["moreblocks:cactus_brick"] = 13,
["moreblocks:cactus_checker"] = 8.5,
["moreblocks:circle_stone_bricks"] = 17,
["moreblocks:clean_glass"] = 17,
["moreblocks:coal_checker"] = 9.0,
["moreblocks:coal_glass"] = 17,
["moreblocks:coal_stone"] = 17,
["moreblocks:coal_stone_bricks"] = 17,
["moreblocks:glow_glass"] = 17,
["moreblocks:grey_bricks"] = 15,
["moreblocks:iron_checker"] = 11,
["moreblocks:iron_glass"] = 17,
["moreblocks:iron_stone"] = 17,
["moreblocks:iron_stone_bricks"] = 17,
["moreblocks:plankstone"] = 9.3,
["moreblocks:split_stone_tile"] = 15,
["moreblocks:split_stone_tile_alt"] = 15,
["moreblocks:stone_tile"] = 15,
["moreblocks:super_glow_glass"] = 17,
["moreblocks:tar"] = 7.0,
["moreblocks:wood_tile"] = 1.7,
["moreblocks:wood_tile_center"] = 1.7,
["moreblocks:wood_tile_down"] = 1.7,
["moreblocks:wood_tile_flipped"] = 1.7,
["moreblocks:wood_tile_full"] = 1.7,
["moreblocks:wood_tile_left"] = 1.7,
["moreblocks:wood_tile_right"] = 1.7,
["moreblocks:wood_tile_up"] = 1.7,
["moreores:mineral_mithril"] = 18,
["moreores:mineral_silver"] = 21,
["moreores:mineral_tin"] = 19,
["moreores:mithril_block"] = 26,
["moreores:silver_block"] = 53,
["moreores:tin_block"] = 37,
["snow:snow_brick"] = 2.8,
["technic:brass_block"] = 43,
["technic:carbon_steel_block"] = 40,
["technic:cast_iron_block"] = 40,
["technic:chernobylite_block"] = 40,
["technic:chromium_block"] = 37,
["technic:corium_flowing"] = 40,
["technic:corium_source"] = 80,
["technic:granite"] = 18,
["technic:marble"] = 18,
["technic:marble_bricks"] = 18,
["technic:mineral_chromium"] = 19,
["technic:mineral_uranium"] = 71,
["technic:mineral_zinc"] = 19,
["technic:stainless_steel_block"] = 40,
["technic:uranium_block"] = 500,
["technic:zinc_block"] = 36,
["tnt:tnt"] = 11,
["tnt:tnt_burning"] = 11,
}
local default_radiation_resistance_per_group = {
concrete = 16,
tree = 3.4,
wood = 1.7,
}
local cache_radiation_resistance = {}
local function node_radiation_resistance(nodename)
local eff = cache_radiation_resistance[nodename]
if eff then return eff end
local def = minetest.registered_nodes[nodename] or {groups={}}
eff = def.radiation_resistance or default_radiation_resistance_per_node[nodename]
if not eff then
for g, v in pairs(def.groups) do
if v > 0 and default_radiation_resistance_per_group[g] then
eff = default_radiation_resistance_per_group[g]
break
end
end
end
if not eff then eff = 0 end
cache_radiation_resistance[nodename] = eff
return eff
end
-- Radioactive nodes cause damage to nearby players. The damage
-- effect depends on the intrinsic strength of the radiation source,
-- the distance between the source and the player, and the shielding
-- effect of the intervening material. These determine a rate of damage;
-- total damage caused is the integral of this over time.
--
-- In the absence of effective shielding, for a specific source the
-- damage rate varies realistically in inverse proportion to the square
-- of the distance. (Distance is measured to the player's abdomen,
-- not to the nominal player position which corresponds to the foot.)
-- However, if the player is inside a non-walkable (liquid or gaseous)
-- radioactive node, the nominal distance could go to zero, yielding
-- infinite damage. In that case, the player's body is displacing the
-- radioactive material, so the effective distance should remain non-zero.
-- We therefore apply a lower distance bound of sqrt(0.75) m, which is
-- the maximum distance one can get from the node centre within the node.
--
-- A radioactive node is identified by being in the "radioactive" group,
-- and the group value signifies the strength of the radiation source.
-- The group value is the distance in metres from a node at which an
-- unshielded player will be damaged by 0.25 HP/s. Or, equivalently, it
-- is half the square root of the damage rate in HP/s that an unshielded
-- player 1 m away will take.
--
-- Shielding is assessed by sampling every 0.25 m along the path
-- from the source to the player, ignoring the source node itself.
-- The summed radiation resistance values from the sampled nodes yield
-- a measure of the total amount of radiation resistance on the path.
-- As in reality, shielding causes exponential attenuation of radiation.
-- However, the effect is scaled down relative to real life: each
-- metre-point of shielding, corresponding to a real-life halving of
-- radiation, reduces radiation by 0.01 nepers (a factor of about 1.01).
-- This scales down the difference between shielded and unshielded safe
-- distances, avoiding the latter becoming impractically large.
--
-- Damage is processed at rates down to 0.25 HP/s, which in the absence of
-- shielding is attained at the distance specified by the "radioactive"
-- group value. Computed damage rates below 0.25 HP/s result in no
-- damage at all to the player. This gives the player an opportunity
-- to be safe, and limits the range at which source/player interactions
-- need to be considered.
local assumed_abdomen_offset = vector.new(0, 1, 0)
local assumed_abdomen_offset_length = vector.length(assumed_abdomen_offset)
minetest.register_abm({
nodenames = {"group:radioactive"},
interval = 1,
chance = 1,
action = function (pos, node)
local strength = minetest.registered_nodes[node.name].groups.radioactive
for _, o in ipairs(minetest.get_objects_inside_radius(pos, strength + assumed_abdomen_offset_length)) do
if o:is_player() then
local rel = vector.subtract(vector.add(o:getpos(), assumed_abdomen_offset), pos)
local dist_sq = vector.length_square(rel)
local dist = math.sqrt(dist_sq)
local dirstep = dist == 0 and vector.new(0,0,0) or vector.divide(rel, dist*4)
local intpos = pos
local resistance = 0
for intdist = 0.25, dist, 0.25 do
intpos = vector.add(intpos, dirstep)
local intnodepos = vector.round(intpos)
if not vector.equals(intnodepos, pos) then
resistance = resistance + node_radiation_resistance(minetest.get_node(intnodepos).name)
end
end
local dmg_rate = 0.25 * strength*strength * math.exp(-0.0025*resistance) / math.max(0.75, dist_sq)
if dmg_rate >= 0.25 then
local dmg_int = math.floor(dmg_rate)
if math.random() < dmg_rate-dmg_int then
dmg_int = dmg_int + 1
end
if dmg_int > 0 then
o:set_hp(math.max(o:get_hp() - dmg_int, 0))
end
end
end
end
end,
})
--ES Node Definition
minetest.register_node("es:stone_with_emerald", {
description = "Emerald Ore",
tiles = {"default_stone.png^(default_mineral_mese.png^[colorize:#008000:134)"},
is_ground_content = true,
groups = {cracky=1},
drop = "es:emerald_crystal",
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("es:stone_with_ruby", {
description = "Ruby Ore",
tiles = {"default_stone.png^(default_mineral_mese.png^[colorize:#FF0000:144)"},
is_ground_content = true,
groups = {cracky=1},
drop = "es:ruby_crystal",
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("es:stone_with_aikerum", {
description = "Aikerum Ore",
tiles = {"default_stone.png^(default_mineral_mese.png^[colorize:#0000FF:134)"},
is_ground_content = true,
groups = {cracky=1,level = 2},
drop = "es:aikerum_crystal",
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("es:stone_with_infinium", {
description = "Infinium Ore - Slightly Radioactive",
tiles = {"default_stone.png^infinium_ore.png"},
is_ground_content = true,
groups = {cracky=1,level = 2, radioactive = (state == "source" and 2 or 2)},
drop = "es:infinium_goo",
sounds = default.node_sound_stone_defaults(),
})
--Emerald located at -1000
minetest.register_node("es:emeraldblock", {
description = "Emerald Block",
tiles = {"default_diamond_block.png^[colorize:#008000:134"},
is_ground_content = true,
groups = {cracky=1,level=2},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_craftitem("es:emerald_crystal", {
description = "Emerald Crystal",
inventory_image = "default_diamond.png^[colorize:#008000:134",
})
--Ruby located at -3000
minetest.register_node("es:rubyblock", {
description = "Ruby Block",
tiles = {"default_diamond_block.png^[colorize:#FF0000:194"},
is_ground_content = true,
groups = {cracky=1,level=2},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_craftitem("es:ruby_crystal", {
description = "Ruby Crystal",
inventory_image = "default_diamond.png^[colorize:#FF0000:144",
})
--Aikerum located at -4000
minetest.register_node("es:aikerumblock", {
description = "Aikerum Block",
tiles = {"default_diamond_block.png^[colorize:#0000FF:134"},
is_ground_content = true,
groups = {cracky=1,level=2},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_craftitem("es:aikerum_crystal", {
description = "Aikerum Crystal",
inventory_image = "default_diamond.png^[colorize:#0000FF:134",
})
--Infinium located at -4300
minetest.register_node("es:infiniumblock", {
description = "infinium Block",
tiles = {"infinium_block.png"},
is_ground_content = true,
groups = {cracky=1,level=2},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_craftitem("es:infinium_goo", {
description = "Infinium Goo--Need to craft with vessel to contain.",
inventory_image = "infinium.png",
})
minetest.register_craftitem("es:infinium_ingot", {
description = "Infinium Ingot--TBD CRAFTING Special Armour and Lab Equipment",
--inventory_image = "infinium_ingot.png",
inventory_image = "default_steel_ingot.png^[colorize:#B0171F:215",
})
minetest.register_craftitem("es:infinium_container", {
description = "Infinium Container--Cook to get Infinium Ingot",
inventory_image = "infinium_container.png",
})
--BONEBLOCK
minetest.register_node("es:boneblock", {
description = "Bone Blox",
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},
}),
})
--INPERVIOUS NODES CANNOT BREAK- Great for prison walls.
minetest.register_node("es:hgglass", {
description = "High Density Glass",
drawtype = "glasslike_framed_optional",
tiles = {"default_glass.png", "default_glass_detail.png"},
inventory_image = minetest.inventorycube("default_glass.png"),
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
groups = {immortal=1,cracky=0,not_in_creative_inventory = 1},
sounds = default.node_sound_glass_defaults(),
})
minetest.register_node("es:steelblock", {
description = "High Density Steel Block",
tiles = {"default_steel_block.png"},
is_ground_content = false,
groups = {immortal=1,cracky=0,not_in_creative_inventory = 1},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("es:stoneblock", {
description = "High Density Stone Block",
tiles = {"default_stone.png"},
is_ground_content = false,
groups = {immortal=1,cracky=0,not_in_creative_inventory = 1},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("es:sandstonebrick", {
description = "High Density Sandstone Brick",
tiles = {"default_sandstone_brick.png"},
is_ground_content = false,
groups = {immortal=1,cracky=0,not_in_creative_inventory = 1},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("es:stonebrick", {
description = "High Density Stone Brick",
tiles = {"default_stone_brick.png"},
is_ground_content = false,
groups = {immortal=1,cracky=0,not_in_creative_inventory = 1},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("es:junglewood", {
description = "High Density Junglewood Planks",
tiles = {"default_junglewood.png"},
is_ground_content = false,
groups = {immortal=1,cracky=0,not_in_creative_inventory = 1},
sounds = default.node_sound_wood_defaults(),
})
--A simple way to store your cookable Mese, and it gives off light!
minetest.register_node("es:messymese", {
description = "Messy MESE Block",
tiles = {"default_clay.png^bubble.png^mese_cook_mese_crystal.png"},
light_source = 14,
is_ground_content = true,
groups = {cracky=1,level=2},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("es:what", {
description = "The What Block - Dig for random gift",
drawtype = "glasslike_framed_optional^bubble.png",
tiles = {"default_glass.png^bubble.png", "default_glass_detail.png^bubble.png"},
inventory_image = minetest.inventorycube("default_glass.png"),
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
groups = {crumbly=3,},
drop = {
max_items = 2,
items = {
{items = {'es:what'}, rarity = 80},
{items = {'es:sword_aikerum'}, rarity = 50},
{items = {'es:sword_ruby'}, rarity = 40},
{items = {'es:sword_emerald'}, rarity = 30},
{items = {'es:pick_aikerum'}, rarity = 50},
{items = {'es:pick_ruby'}, rarity = 40},
{items = {'es:pick_emerald'}, rarity = 30},
{items = {'farming:bread 20'}, rarity = 3},
{items = {'default:cobble 10'}, rarity = 3},
{items = {'default:gold_lump 10'}, rarity = 10},
{items = {'default:iron_lump 10'}, rarity = 5},
{items = {'default:apple 10'}, rarity = 5},
{items = {'default:coal_lump 10'}, rarity = 1},
{items = {'es:depleted_uranium_ingot 3'}}
}
},
sounds = default.node_sound_glass_defaults(),
})
--Default addons as they should be. I changed ore generation to keep unique for compatibility.
--Dry dirt added
minetest.register_node("es:dry_dirt", {
description = "Some dry dirt",
--tiles = {"default_dry_dirt.png"},
tiles = {"default_dirt.png^[colorize:#B8860B:95"},
groups = {crumbly = 3},
drop = 'es:dry_dirt',
sounds = default.node_sound_dirt_defaults({
footstep = {name = "default_grass_footstep", gain = 0.25},
}),
})
minetest.register_node("es:stone_with_mese", {
description = "Cookable Mese Ore",
tiles = {"default_stone.png^(default_mineral_mese.png^[colorize:#F0E68C:195)"},
paramtype = "light",
groups = {cracky = 1},
drop = "es:mesecook_crystal",
sounds = default.node_sound_stone_defaults(),
light_source = 1,
})
minetest.register_node("es:desert_stone_with_gold", {
description = "Gold Ore",
tiles = {"default_desert_stone.png^default_mineral_gold.png"},
groups = {cracky = 2},
drop = "default:gold_lump",
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("es:desert_stone_with_iron", {
description = "Iron Ore",
tiles = {"default_desert_stone.png^default_mineral_iron.png"},
groups = {cracky = 2},
drop = 'default:iron_lump',
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("es:desert_stone_with_coal", {
description = "Coal Ore",
tiles = {"default_desert_stone.png^default_mineral_coal.png"},
groups = {cracky = 3},
drop = 'default:coal_lump',
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("es:depleted_uranium", {
description = "Depleted Uranium Ore RADIOACTIVE",
tiles = {"default_stone.png^(default_mineral_gold.png^[colorize:#00FF00:195)"},
groups = {cracky = 3, radioactive = (state == "source" and 3 or 2)},
drop = 'es:depleted_uranium_lump',
sounds = default.node_sound_stone_defaults(),
light_source = 1,
})
minetest.register_craftitem("es:depleted_uranium_lump", {
description = "Depleted Uranium use for long term fuel, first cook the lump into an ingot, then use ingot for fuel.",
inventory_image = "default_mineral_mese.png^[colorize:#7CFC00:195",
})

View File

@ -376,7 +376,7 @@ minetest.register_node("es:stone_with_purpellium", {
description = "Purlellium Ore - Oddly interesting",
tiles = {"default_stone.png^purpellium_ore.png"},
is_ground_content = true,
groups = {cracky=2,level = 2, radioactive = (state == "source" and 2 or 2)},
groups = {cracky=2,level = 2,fall_damage_add_percent = -1000, radioactive = (state == "source" and 2 or 2)},
drop = "es:purpellium_lump",
sounds = default.node_sound_stone_defaults(),
})
@ -764,10 +764,10 @@ minetest.register_node("es:mud", {
liquid_alternative_source = "es:mud",
liquid_renewable = false,
liquid_range = 0,
drowning = 1,
drowning = 3,
walkable = false,
climbable = false,
post_effect_color = { r=230, g=210, b=160, a=245 },
post_effect_color = { a = 255, r = 43, g = 23, b = 9 },
groups = {crumbly=3, falling_node=1, sand=1, liquid=3, disable_jump=1},
sounds = default.node_sound_sand_defaults(),
})

View File

@ -8,12 +8,12 @@
--bp:register_spawn("esmobs:rat", {"default:dirt_with_grass", "default:stone"}, 20, -1, 10000, 2, 31000)
bp:register_spawn("esmobs:sheep", {"default:dirt_with_grass", "ethereal:green_dirt"}, 20, 10, 45000, 1, 31000)
--bp:register_spawn("esmobs:sheep2", {"default:dirt_with_grass"}, 20, 12, 18000, 2, 31000)
bp:register_spawn("esmobs:pig", {"default:dirt_with_grass"}, 20, 12, 48000, 1, 31000)
bp:register_spawn("esmobs:cow", {"default:dirt_with_grass"}, 20, 12, 41000, 1, 31000)
--bp:register_spawn("esmobs:pig", {"default:dirt_with_grass"}, 20, 12, 48000, 1, 31000)
--bp:register_spawn("esmobs:cow", {"default:dirt_with_grass"}, 20, 12, 41000, 1, 31000)
bp:register_spawn("esmobs:chicken", {"default:dirt_with_grass"}, 20, 12, 47000, 2, 31000)
bp:register_spawn("esmobs:horse", {"default:dirt_with_dry_grass"}, 20, 12, 49000, 1, 31000)
--bp:register_spawn("esmobs:horse", {"default:dirt_with_dry_grass"}, 20, 12, 49000, 1, 31000)
--bp:register_spawn("esmobs:horse2", {"default:dirt_with_dry_grass"}, 20, 12, 49000, 1, 31000)
--bp:register_spawn("esmobs:horse3", {"default:desert_sand"}, 20, 8, 39000, 12, 41000)
bp:register_spawn("esmobs:horse3", {"default:desert_sand"}, 20, 8, 39000, 12, 41000)
--bp:register_spawn("esmobs:chickoboo", {"default:dirt_with_grass", "ethereal:bamboo_dirt"}, 15, 10, 22000, 1, 31000)

View File

@ -5,5 +5,5 @@
--REFERENCE
--function (mod_name_here):spawn_specific(name, nodes, neighbors, min_light, max_light, interval, chance, active_object_count, min_height, max_height)
bp:register_spawn("esmobs:Jasmine", {"default:obsidian","es:infiniumblock","es:stone_with_infinium","default:cobble"}, 9, -1, 34000, 1, 31000)
bp:register_spawn("esmobs:Jasmine", {"default:obsidian","es:infiniumblock","es:stone_with_infinium","default:cobble"}, 7, -1, 34000, 1, 31000)
bp:register_spawn("esmobs:Infinium_Monster", {"default:dirt_with_grass","default:stone","meru:stone", "default:stonebrick","default:cobble"}, 9, -1, 34000, 1, 30000)

View File

@ -8,17 +8,17 @@
--function bp:spawn_specific(name, nodes, neighbors, min_light, max_light, interval, chance, active_object_count, min_height, max_height)
--function (mod_name_here):spawn_specific(name, nodes, neighbors, min_light, max_light, interval, chance, active_object_count, min_height, max_height)
bp:register_spawn("esmobs:spider", {"default:stone" ,"default:cobble","group:crumbly", "group:cracky", "group:choppy", "group:snappy"}, 6, 0, 24000, 1, 71)
bp:register_spawn("esmobs:applmons", {"default:stone","nether:rack", "esmobs:cursed_stone"}, 6, -1, 4000, 3, -30)
bp:register_spawn("esmobs:herobrines_bloody_ghost", {"default:stone","default:desert_sand","nether:brick", "bedrock2:bedrock"}, 4, -1, 22000, 1, 10)
bp:register_spawn("esmobs:applmons", {"default:stone","nether:rack", "esmobs:cursed_stone"}, 6, -1, 4000, 5, -30)
--bp:register_spawn("esmobs:herobrines_bloody_ghost", {"default:stone","default:desert_sand","nether:brick", "bedrock2:bedrock"}, 4, -1, 22000, 1, 10)
--bp:spawn_specific("esmobs:bomber", {"air"},{"air"}, 0, 6, 30, 25000, 1, 90, 20)
bp:register_spawn("esmobs:bone_monster", {"default:stone_with_iron","bones:bones","esmobs:bones", "bedrock2:bedrock","default:stone"},6, -1, 7000, 3, 30)
bp:register_spawn("esmobs:icemon", {"default:ice"}, 8, 1, 14000, 1, 3100)
bp:register_spawn("esmobs:icemon", {"default:ice"}, 5, -1, 4000, 1, 3100)
bp:register_spawn("esmobs:snowmon", {"default:snow","default:snowblock","default:snow_block", "default:dirt_with_snow"}, 5, -1, 24000, 1, 31000)
--bp:register_spawn("esmobs:watermon", {"default:water_source","default:water_flowing"}, 5, -1, 14000, 5, -120)
bp:spawn_specific("esmobs:bloco", {"default:stone"}, {"default:stone"}, 5, 10, 30, 22000, 1, -31000, -20)
--bp:spawn_specific("esmobs:bloco", {"default:stone"}, {"default:stone"}, 5, 10, 30, 22000, 1, -31000, -20)
--bp:spawn_specific("esmobs:blocod", {"default:dirt"}, {"default:dirt_with_grass"}, 13, 20, 30, 25000, 1, -31000, 20)
bp:register_spawn("esmobs:dirt", {"default:dirt_with_grass","default:stone", "default:stonebrick","default:cobble"}, 5, 0, 16000, 1, 500)
--bp:register_spawn("esmobs:dirt", {"default:dirt_with_grass","default:stone", "default:stonebrick","default:cobble"}, 5, 0, 16000, 1, 500)
bp:register_spawn("esmobs:dirt2", {"default:dirt_with_grass","default:stone", "default:stonebrick","default:cobble"}, 5, 0, 6000, 2, -100)
bp:register_spawn("esmobs:stone_monster", {"default:stone","bedrock2:bedrock"}, 5, 0, 6000, 2, 500)
bp:register_spawn("esmobs:stone_monster2", {"default:stone","bedrock2:bedrock"}, 9, -1, 4000, 3, 500)
bp:register_spawn("esmobs:stone_monster", {"default:stone","bedrock2:bedrock"}, 5, -1, 6000, 2, 500)
bp:register_spawn("esmobs:stone_monster2", {"default:stone","bedrock2:bedrock"}, 5, -1, 4000, 3, -500)
--bp:spawn_specific("esmobs:phoenix", {"air"},{"air"}, 2, 9, 30, 35000, 1, 20, 220)

View File

@ -5,15 +5,15 @@
--REFERENCE
--function (mod_name_here):spawn_specific(name, nodes, neighbors, min_light, max_light, interval, chance, active_object_count, min_height, max_height)
bp:register_spawn("esmobs:Sam", {"default:dirt_with_grass","default:stone", "default:stonebrick","default:cobble"}, 12, 7, 24000, 1, 31000)
bp:register_spawn("esmobs:John", {"default:dirt_with_grass","default:stone", "default:stonebrick","default:cobble"}, 12, 7, 24000, 1, 31000)
--bp:register_spawn("esmobs:Sam", {"default:dirt_with_grass","default:stone", "default:stonebrick","default:cobble"}, 12, 7, 24000, 1, 31000)
--bp:register_spawn("esmobs:John", {"default:dirt_with_grass","default:stone", "default:stonebrick","default:cobble"}, 12, 7, 24000, 1, 31000)
bp:register_spawn("esmobs:Janette", {"default:dirt_with_grass","default:stone", "default:stonebrick","default:cobble"}, 12, 7, 24000, 1, 31000)
bp:register_spawn("esmobs:Crybaby", {"default:dirt_with_grass","default:stone", "default:stonebrick","default:cobble"}, 12, 7, 24000, 1, 31000)
--bp:register_spawn("esmobs:Crybaby", {"default:dirt_with_grass","default:stone", "default:stonebrick","default:cobble"}, 12, 7, 24000, 1, 31000)
bp:register_spawn("esmobs:SepiaSam", {"default:dirt_with_grass","default:stone", "default:stonebrick","default:cobble"}, 12, 7, 24000, 1, 31000)
bp:register_spawn("esmobs:OGSam", {"default:dirt_with_grass","default:stone", "default:stonebrick","default:cobble"}, 12, 7, 24000, 1, 31000)
bp:register_spawn("esmobs:Vanessa", {"default:dirt_with_grass","default:stone", "default:stonebrick","default:cobble"}, 12, 7, 24000, 1, 31000)
bp:register_spawn("esmobs:FemaleSam", {"default:dirt_with_grass","default:stone", "default:stonebrick","default:cobble"}, 12, 7, 24000, 1, 31000)
bp:register_spawn("esmobs:Battleboy", {"default:dirt_with_grass","default:stone", "default:stonebrick","default:cobble"}, 12, 7,24000, 1, 31000)
--bp:register_spawn("esmobs:OGSam", {"default:dirt_with_grass","default:stone", "default:stonebrick","default:cobble"}, 12, 7, 24000, 1, 31000)
--bp:register_spawn("esmobs:Vanessa", {"default:dirt_with_grass","default:stone", "default:stonebrick","default:cobble"}, 12, 7, 24000, 1, 31000)
--bp:register_spawn("esmobs:FemaleSam", {"default:dirt_with_grass","default:stone", "default:stonebrick","default:cobble"}, 12, 7, 24000, 1, 31000)
--bp:register_spawn("esmobs:Battleboy", {"default:dirt_with_grass","default:stone", "default:stonebrick","default:cobble"}, 12, 7,24000, 1, 31000)
--bp:register_spawn("esmobs:Wilbert", {"default:dirt_with_grass","default:snowblock","default:snow_block","default:stone", "default:stonebrick","default:cobble"}, 12, 7, 24000, 1, 31000)
--bp:register_spawn("esmobs:Thelma", {"default:dirt_with_grass","default:snowblock","default:snow_block","default:stone", "default:stonebrick","default:cobble"}, 12, 7, 24000, 1, 31000)
bp:register_spawn("esmobs:DrifterDan", {"default:dirt_with_grass","default:stone", "default:stonebrick","default:cobble"}, 12, 7,24000, 1, 31000)

View File

@ -5,6 +5,6 @@
--REFERENCE
--function (mod_name_here):spawn_specific(name, nodes, neighbors, min_light, max_light, interval, chance, active_object_count, min_height, max_height)
bp:register_spawn("esmobs:Candy", {"default:dirt_with_grass","default:stone", "default:stonebrick","default:cobble"}, 20, 10, 24000, 1, 31000)
bp:register_spawn("esmobs:Candy", {"default:dirt_with_grass","default:stone", "default:stonebrick","default:cobble"}, 7, -1, 24000, 1, 31000)
bp:register_spawn("esmobs:Infiniumman", {"default:dirt_with_grass","default:stone", "default:stonebrick","default:cobble"}, 20, 1, 34000, 1, 31000)
bp:register_spawn("esmobs:Maikerumine", {"default:dirt_with_grass","default:stone", "default:stonebrick","default:cobble"}, 20, 1, 34000, 1, 31000)

View File

@ -24,11 +24,11 @@ esmobs={}
dofile(minetest.get_modpath("esmobs").."/esanimal.lua")
dofile(minetest.get_modpath("esmobs").."/esnpc.lua")
dofile(minetest.get_modpath("esmobs").."/mtmonster.lua")
--dofile(minetest.get_modpath("esmobs").."/mcmonster.lua")
dofile(minetest.get_modpath("esmobs").."/mcmonster.lua")
dofile(minetest.get_modpath("esmobs").."/esbadplayer.lua")
dofile(minetest.get_modpath("esmobs").."/esmonster.lua")
--dofile(minetest.get_modpath("esmobs").."/esnpc2.lua")
--dofile(minetest.get_modpath("esmobs").."/esbadplayer2.lua")
dofile(minetest.get_modpath("esmobs").."/esnpc2.lua")
dofile(minetest.get_modpath("esmobs").."/esbadplayer2.lua")
--[[
--MOB SETTINGS leave this alone, use config file to change.

View File

@ -1,465 +0,0 @@
--esmobs v01.0
--maikerumine
--made for Extreme Survival game
--License for code WTFPL
--MCMOBS borrowed from stampy game
--[[
Notes
-----
cows: right-click with empty bucket gets milk
sheep: right-click gets wool
chicken: right-click to get an egg
Milk and eggs need a food mod to be installed.
Textures are from Faithful 32x32 pack (http://www.minecraftforum.net/topic/72747-faithful-32x32-pack-updateocelot-two-cats-new-saplings-ctm-17/)
Sounds are from the Minecraft Wiki (Freesound license)
=====Pig=====(at layer 1)
=====Cow=====(at layer 2)
=====Sheep=====(at layer 3)
Ver.0.3
Mesh by Morn76
Animation by Pavel_S
===Chicken===
Mesh and animation by Pavel_S
Meshes : Pig, Cow, Sheep
Armatures : Pig_Rig, Cow_Rig, Sheep_Rig
==Animation==
Optimized for 24fps.
(the last frame equal to first in each animation)
The first frame of each animation is default pose.
=List of animations :
standing (head bobbing slightly up and down) : 1-24
walking : 24-50
eating (head goes to the ground) : 50-79
eating cycle : 58-73
look around
right : 79-99
looking left pose : 89
left : 99-119
looking right pose : 109
hurt (quick half jump with legs slightly crossed) : 119-155
death (falls on left side) : 155-180
There is no delays for looking around and repeats for eating!
==Rig==
See Pig_Rig.png
==ChangeLog==
0.3
Added Cow, Sheep
Added Cow and Sheep animations
Fixed UVunwraps
Extended hurt and death animation
0.2
Added Pig animation
Fixed UVunwrap
=====Creeper=====
Ver.0.3
Mesh by Morn76
Animation by Pavel_S
Meshes : Creeper
Armatures : Creeper_Rig
==Animation==
Optimized for 24fps.
(the last frame equal to first in each animation)
The first frame of each animation is default pose.
=List of animations :
standing : 1-25
walking : 25-50
look around
right : 50-80
looking left pose : 65
left : 80-110
looking right pose : 95
hurt : 110-140
death : 140-190
=====Skeleton=====
Ver.0.3
Mesh by Morn76
Animation by Pavel_S
Meshes : Skeleton
Armatures : Skeleton_Rig
==Animation==
Optimized for 30fps.
(the last frame equal to first in each animation)
The first frame of each animation is default pose.
=List of animations :
standing (head bobbing slightly up and down) : 1-25
walking : 25-50
hurt (quick half jump with legs slightly crossed) : 85-117
death (falls on left side) : 117-146
=====Zombie=====
Mesh by Morn76
Animation by Pavel_S
1 - 24 - standing
24 - 48 - walking
48 - 64 - running
64 - 88 - hurm
88 - 120 - death
*******************************************************************************
Original "simple mobs" README follows
=== MOBS-MOD for MINETEST-C55 ===
by PilzAdam
Inroduction:
This mod adds some basic hostile and friendly mobs to the game.
How to install:
Unzip the archive an place it in minetest-base-directory/mods/minetest/
if you have a windows client or a linux run-in-place client. If you have
a linux system-wide instalation place it in ~/.minetest/mods/minetest/.
If you want to install this mod only in one world create the folder
worldmods/ in your worlddirectory.
For further information or help see:
http://wiki.minetest.com/wiki/Installing_Mods
How to use the mod:
See https://github.com/PilzAdam/mobs/wiki
For developers:
The API documentation is moved to https://github.com/PilzAdam/mobs/wiki/API
License:
Sourcecode: WTFPL (see below)
Grahpics: WTFPL (see below)
Models: WTFPL (by Pavel_S, see below)
See also:
http://minetest.net/
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004
Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. You just DO WHAT THE FUCK YOU WANT TO.
]]
--REFERENCE
--function (mod_name_here):spawn_specific(name, nodes, neighbors, min_light, max_light, interval, chance, active_object_count, min_height, max_height)
bp:register_mob("esmobs:creeper", {
type = "monster",
hp_max = 30,
damage = 2,
collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.6, 0.4},
textures = {"mcmobs_1.png"},
visual = "mesh",
visual_size = {x=.75, y=.75, z=.75},
mesh = "creeper.x",
makes_footstep_sound = false,
sounds = {
approach = "Fuse",
death = "Creeperdeath",
hurt = "Creeper4",
attack = "damage",
},
walk_velocity = 1.5,
run_velocity = 3,
damage = 1,
armor = 200,
maxdrops = 3,
drops = {
{name = "tnt:gunpowder",
chance = 1,
min = 0,
max = 2,},
{name = "farorb:farorb",
chance = 1,
min = 0,
max = 1,},
{name = "jdukebox:disc_1",
chance = 10,
min = 1,
max = 1,},
{name = "jdukebox:disc_2",
chance = 10,
min = 1,
max = 1,},
{name = "jdukebox:disc_3",
chance = 10,
min = 1,
max = 1,},
{name = "jdukebox:disc_4",
chance = 10,
min = 1,
max = 1,},
{name = "jdukebox:disc_5",
chance = 10,
min = 1,
max = 1,},
{name = "jdukebox:disc_6",
chance = 10,
min = 1,
max = 1,},
},
animation = {
speed_normal = 24,
speed_run = 48,
stand_start = 0,
stand_end = 23,
walk_start = 24,
walk_end = 49,
run_start = 24,
run_end = 49,
hurt_start = 110,
hurt_end = 139,
death_start = 140,
death_end = 189,
look_start = 50,
look_end = 108,
},
drawtype = "front",
water_damage = 1,
lava_damage = 5,
light_damage = 0,
view_range = 16,
attack_type = "explode",
})
bp:register_spawn("esmobs:creeper", {"group:crumbly", "group:cracky", "group:choppy", "group:snappy"}, 7, -1, 18000, 1, 31000)
bp:register_mob("esmobs:skeleton", {
type = "monster",
hp_max = 30,
collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.9, 0.4},
textures = {"mcmobs_2.png"},
visual = "mesh",
mesh = "skeleton.x",
makes_footstep_sound = true,
sounds = {
random = "skeleton1",
death = "skeletondeath",
hurt = "skeletonhurt1",
},
walk_velocity = 1.2,
run_velocity = 2.4,
damage = 1,
armor = 200,
drops = {
{name = "esmobs:arrow",
chance = 1,
min = 0,
max = 2,},
{name = "esmobs:bow_wood",
chance = 11,
min = 1,
max = 1,},
{name = "bones:bones",
chance = 1,
min = 0,
max = 2,},
},
animation = {
speed_normal = 30,
speed_run = 60,
stand_start = 0,
stand_end = 23,
walk_start = 24,
walk_end = 49,
run_start = 24,
run_end = 49,
hurt_start = 85,
hurt_end = 115,
death_start = 117,
death_end = 145,
shoot_start = 50,
shoot_end = 82,
},
drawtype = "front",
water_damage = 1,
lava_damage = 5,
light_damage = 1,
view_range = 16,
attack_type = "shoot",
arrow = "esmobs:arrow_entity",
--arrow = "throwing:arrow_entity",
--arrow = "esmobs:bonebullet",
shoot_interval = 2.5,
})
bp:register_spawn("esmobs:skeleton", {"group:crumbly", "group:cracky", "group:choppy", "group:snappy"}, 7, -1, 15000, 2, 31000)
-- from throwing mod by PilzAdam:
minetest.register_node("esmobs:arrow_box", {
drawtype = "nodebox",
node_box = {
type = "fixed",
fixed = {
-- Schaft
{-6.5/17, -1.5/17, -1.5/17, 6.5/17, 1.5/17, 1.5/17},
--Spitze
{-4.5/17, 2.5/17, 2.5/17, -3.5/17, -2.5/17, -2.5/17},
{-8.5/17, 0.5/17, 0.5/17, -6.5/17, -0.5/17, -0.5/17},
--Federn
{6.5/17, 1.5/17, 1.5/17, 7.5/17, 2.5/17, 2.5/17},
{7.5/17, -2.5/17, 2.5/17, 6.5/17, -1.5/17, 1.5/17},
{7.5/17, 2.5/17, -2.5/17, 6.5/17, 1.5/17, -1.5/17},
{6.5/17, -1.5/17, -1.5/17, 7.5/17, -2.5/17, -2.5/17},
{7.5/17, 2.5/17, 2.5/17, 8.5/17, 3.5/17, 3.5/17},
{8.5/17, -3.5/17, 3.5/17, 7.5/17, -2.5/17, 2.5/17},
{8.5/17, 3.5/17, -3.5/17, 7.5/17, 2.5/17, -2.5/17},
{7.5/17, -2.5/17, -2.5/17, 8.5/17, -3.5/17, -3.5/17},
}
},
tiles = {"throwing_arrow.png", "throwing_arrow.png", "throwing_arrow_back.png", "throwing_arrow_front.png", "throwing_arrow_2.png", "throwing_arrow.png"},
groups = {not_in_creative_inventory=1},
})
bp:register_mob("esmobs:zombie", {
type = "monster",
hp_max = 35,
collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.9, 0.4},
textures = {"mcmobs_3.png"},
visual = "mesh",
mesh = "zombie.x",
makes_footstep_sound = true,
sounds = {
random = "zombie1",
death = "zombiedeath",
hurt = "zombiehurt1",
attack = "damage",
},
walk_velocity = .8,
run_velocity = 1.6,
damage = 1,
armor = 200,
drops = {
{name = "esmobs:rotten_flesh",
chance = 1,
min = 1,
max = 1,},
{name = "default:steel_ingot",
chance = 3,
min = 0,
max = 2,},
{name = "default:shovel_steel",
chance = 4,
min = 1,
max = 1,},
{name = "default:sword_steel",
chance = 8,
min = 1,
max = 1,},
{name = "farming_plus:carrot_item",
chance = 10,
min = 1,
max = 1,},
{name = "farming_plus:potato_item",
chance = 10,
min = 1,
max = 1,},
},
animation = {
speed_normal = 24,
speed_run = 48,
stand_start = 0,
stand_end = 23,
walk_start = 24,
walk_end = 47,
run_start = 48,
run_end = 62,
hurt_start = 64,
hurt_end = 86,
death_start = 88,
death_end = 118,
},
drawtype = "front",
water_damage = 1,
lava_damage = 5,
light_damage = 1,
view_range = 16,
attack_type = "dogfight",
})
bp:register_spawn("esmobs:zombie", {"group:crumbly", "group:cracky", "group:choppy", "group:snappy"}, 7, -1, 17000, 1, 31000)
bp:register_mob("esmobs:pigman", {
type = "monster",
hp_max = 35,
collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.9, 0.4},
textures = {"mcmobs_4.png"},
visual = "mesh",
mesh = "zombie.x",
makes_footstep_sound = true,
walk_velocity = .8,
run_velocity = 1.6,
damage = 2,
armor = 400,
drops = {
{name = "esmobs:rotten_flesh",
chance = 1,
min = 1,
max = 1,},
{name = "default:gold_ingot",
chance = 13,
min = 0,
max = 2,},
{name = "default:sword_mese",
chance = 8,
min = 1,
max = 1,},
},
animation = {
speed_normal = 24,
speed_run = 48,
stand_start = 0,
stand_end = 23,
walk_start = 24,
walk_end = 47,
run_start = 48,
run_end = 62,
hurt_start = 64,
hurt_end = 86,
death_start = 88,
death_end = 118,
},
drawtype = "front",
water_damage = 1,
lava_damage = 5,
light_damage = 1,
view_range = 16,
attack_type = "dogfight",
})
bp:register_spawn("esmobs:pigman", {"nether:rack"}, 15, -1, 5000, 4, -1000)
bp:register_spawn("esmobs:pigman", {"nether:portal"}, 15, -1, 15000, 4, 31000)
-- nether compatibility
if not minetest.get_modpath("nether") then
minetest.register_alias("nether:netherrack", "default:sandstone")
minetest.register_alias("nether:portal", "default:sandstone")
end
if minetest.setting_get("log_mods") then
minetest.log("action", "MC-mobs loaded")
end

View File

@ -169,11 +169,11 @@ http://minetest.net/
--function (mod_name_here):spawn_specific(name, nodes, neighbors, min_light, max_light, interval, chance, active_object_count, min_height, max_height)
--bp:register_spawn("esmobs:spider", {"default:stone" ,"default:cobble","group:crumbly", "group:cracky", "group:choppy", "group:snappy"}, 6, 0, 14000, 1, 71)
bp:register_spawn("esmobs:creeper", {"group:crumbly", "group:cracky", "group:choppy", "group:snappy"}, 7, -1, 22000, 1, 31000)
--bp:register_spawn("esmobs:creeper", {"group:crumbly", "group:cracky", "group:choppy", "group:snappy"}, 7, -1, 22000, 1, 31000)
bp:register_spawn("esmobs:skeleton", {"group:crumbly", "group:cracky", "group:choppy", "group:snappy"}, 7, -1, 22000, 2, 31000)
bp:register_spawn("esmobs:zombie", {"group:crumbly", "group:cracky", "group:choppy", "group:snappy"}, 7, -1, 22000, 1, 31000)
--bp:register_spawn("esmobs:zombie", {"group:crumbly", "group:cracky", "group:choppy", "group:snappy"}, 7, -1, 22000, 1, 31000)
--bp:register_spawn("esmobs:pigman", {"nether:rack"}, 15, -1, 5000, 4, -1000)
bp:register_spawn("esmobs:pigman", {"nether:portal"}, 15, -1, 15000, 4, 31000)
--bp:register_spawn("esmobs:pigman", {"nether:portal"}, 15, -1, 15000, 4, 31000)

View File

@ -9,7 +9,7 @@
--bp:register_spawn("esmobs:dungeon_master", {"default:stone"}, 2, 0, 7000, 2, -70)
--bp:register_spawn("esmobs:tree_monster", {"default:leaves", "default:jungleleaves","default:dirt", "default:jungletree"}, 5, 0, 14000, 1, 31000)
--bp:register_spawn("esmobs:sand_monster", {"default:sand", "meru:stone","group:sand"},4, -1, 14000, 1, 31000)
bp:register_spawn("esmobs:stone_monster", {"default:stone", "bedrock2:bedrock"}, 5, 2, 9000, 10, 500)
bp:register_spawn("esmobs:oerkkii", "esmobs:cursed_stone", 4, -1, 2, 10, 500, -500)
--bp:register_spawn("esmobs:stone_monster", {"default:stone", "bedrock2:bedrock"}, 5, 2, 9000, 10, 500)
--bp:register_spawn("esmobs:oerkkii", "esmobs:cursed_stone", 4, -1, 2, 10, 500, -500)
--bp:register_spawn("esmobs:dirt", {"default:dirt_with_grass","default:stone", "default:stonebrick","default:cobble"}, 5, -1, 11000, 2, 500)

View File

@ -31,7 +31,43 @@ minetest.register_craft({
}
})
bp:register_spawn("esmobs:oerkkii", "esmobs:cursed_stone", 4, -1, 2, 2, 22, -500) --comment out to disable
--NPC SPAWNER
minetest.register_node("esmobs:blessed_stone", {
description = "Blessed Stone",
tiles = {
"default_diamond_block.png^tnt_smoke.png",
"default_diamond_block.png^tnt_smoke.png",
"default_diamond_block.png^tnt_smoke.png",
"default_diamond_block.png^tnt_smoke.png",
"default_diamond_block.png^tnt_smoke.png",
"default_diamond_block.png^tnt_smoke.png"
},
is_ground_content = false,
groups = {cracky=1, level=2},
drop = 'default:diamondblock',
sounds = default.node_sound_stone_defaults(),
})
minetest.register_craft({
output = 'esmobs:blessed_stone',
recipe = {
{'default:obsidian', 'default:obsidian', 'default:obsidian'},
{'default:obsidian', 'default:diamondblock', 'default:obsidian'},
{'default:obsidian', 'default:obsidian', 'default:obsidian'},
}
})
--bp:register_spawn("esmobs:dirt2", "esmobs:cursed_stone", 4, -1, 2, 40, 500, -500) --comment out to disable
--bp:register_spawn("esmobs:stone_monster2", "esmobs:cursed_stone", 4, -1, 2, 40, 500, -500) --comment out to disable
bp:register_spawn("esmobs:Jasmine", "esmobs:cursed_stone", 4, -1, 2, 10, 500, -500) --comment out to disable
--bp:register_spawn("esmobs:SepiaSam", "esmobs:blessed_stone", 4, -1, 2, 40, 500, -500) --comment out to disable
--bp:register_spawn("esmobs:Maikerumine", "esmobs:blessed_stone", 4, -1, 2, 40, 500, -500) --comment out to disable
bp:register_spawn("esmobs:Candy", "esmobs:blessed_stone", 4, -1, 2, 10, 500, -500) --comment out to disable
--bp:register_spawn("esmobs:oerkkii", "esmobs:cursed_stone", 4, -1, 2, 2, 22, -500) --comment out to disable
--bp:register_spawn("esmobs:herobrines_bloody_ghost", "esmobs:cursed_stone", 4, -1, 2, 1, 500, -500)
-- SPAWN EGGS

View File

@ -229,7 +229,7 @@ bp:register_mob("esmobs:sand_monster", {
},
})
--[[
-- Stone Monster by PilzAdam
bp:register_mob("esmobs:stone_monster", {
type = "monster",
@ -276,7 +276,7 @@ bp:register_mob("esmobs:stone_monster", {
})
]]
-- Oerkki by PilzAdam
@ -324,7 +324,7 @@ bp:register_mob("esmobs:oerkkii", {
replace_offset = -1,
})
--[[
bp:register_mob("esmobs:dirt", {
type = "monster",
@ -377,7 +377,7 @@ bp:register_mob("esmobs:dirt", {
attack = "mobs_stone_attack",
},
})
]]
---------------------------------------
--EXTREME SURVUVAL MOBS
---------------------------------------
@ -698,7 +698,9 @@ bp:register_mob("esmobs:bone_monster", {
{name = "bones:bones",
chance = 1, min = 3, max = 5,},
{name = "default:steelblock",
chance = 1, min = 0, max = 2,},
chance = 3, min = 0, max = 2,},
{name = "esmobs:feather",
chance = 1, min = 3, max = 9,},
},
water_damage = 4,
@ -3397,7 +3399,7 @@ bp:register_mob("esmobs:Jasmine", {
view_range = 18,
walk_velocity = 5,
run_velocity = 3.4,
damage = 4,
damage = 7,
drops = {
{name = "default:diamond_block",
chance = 5,
@ -3417,7 +3419,7 @@ bp:register_mob("esmobs:Jasmine", {
drawtype = "front",
water_damage = 10,
lava_damage = 50,
light_damage = 0,
light_damage = 70,
on_rightclick = function(self, clicker)
local item = clicker:get_wielded_item()
local_chat(clicker:getpos(),"Jasmine: Tame me now, come to me later, we will chat after I have cooled off.",3)
@ -4415,7 +4417,7 @@ bp:register_mob("esmobs:Vanessa", {
punch_start = 200, punch_end = 219,
},
sounds = {
war_cry = "mobs_fireball",
war_cry = "default_punch",
death = "mobs_slash_attack",
attack = "default_punch",
},
@ -5316,7 +5318,7 @@ bp:register_mob("esmobs:Candy", {
view_range = 25,
walk_velocity = 1.9,
run_velocity = 3.9,
damage = 5,
damage = 9,
drops = {
{name = "default:apple",
chance = 1,
@ -5336,7 +5338,7 @@ bp:register_mob("esmobs:Candy", {
drawtype = "front",
water_damage = 10,
lava_damage = 50,
light_damage = 0,
light_damage = 25,
on_rightclick = function(self, clicker)
local item = clicker:get_wielded_item()
local_chat(clicker:getpos(),"Candy Raver: My Ruby Sword will cut through anything, let's do it!",3)