diff --git a/mods/cottages/nodes_historic.lua b/mods/cottages/nodes_historic.lua index d71ac99e..be4974b7 100644 --- a/mods/cottages/nodes_historic.lua +++ b/mods/cottages/nodes_historic.lua @@ -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, diff --git a/mods/cottages/textures/cottages_feldweg.png b/mods/cottages/textures/cottages_feldweg.png new file mode 100644 index 00000000..65456a82 Binary files /dev/null and b/mods/cottages/textures/cottages_feldweg.png differ diff --git a/mods/default/nodes.lua b/mods/default/nodes.lua index c369ae76..924cfbae 100644 --- a/mods/default/nodes.lua +++ b/mods/default/nodes.lua @@ -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, diff --git a/mods/es/crafting.lua b/mods/es/crafting.lua index c4d57da2..81f28d6e 100644 --- a/mods/es/crafting.lua +++ b/mods/es/crafting.lua @@ -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 diff --git a/mods/es/nodes-bad.lua b/mods/es/nodes-bad.lua deleted file mode 100644 index 3986e5ad..00000000 --- a/mods/es/nodes-bad.lua +++ /dev/null @@ -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, }, -}) diff --git a/mods/es/nodes-good.lua b/mods/es/nodes-good.lua deleted file mode 100644 index 7a9c4de7..00000000 --- a/mods/es/nodes-good.lua +++ /dev/null @@ -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", -}) diff --git a/mods/es/nodes-org.lua b/mods/es/nodes-org.lua deleted file mode 100644 index 7a9c4de7..00000000 --- a/mods/es/nodes-org.lua +++ /dev/null @@ -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", -}) diff --git a/mods/es/nodes.lua b/mods/es/nodes.lua index 2dc223a3..b1da1f63 100644 --- a/mods/es/nodes.lua +++ b/mods/es/nodes.lua @@ -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(), }) diff --git a/mods/esmobs/esanimal.lua b/mods/esmobs/esanimal.lua index 321b8ad4..0aaf709e 100644 --- a/mods/esmobs/esanimal.lua +++ b/mods/esmobs/esanimal.lua @@ -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) diff --git a/mods/esmobs/esbadplayer2.lua b/mods/esmobs/esbadplayer2.lua index de4cb39e..a86de8ee 100644 --- a/mods/esmobs/esbadplayer2.lua +++ b/mods/esmobs/esbadplayer2.lua @@ -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) diff --git a/mods/esmobs/esmonster.lua b/mods/esmobs/esmonster.lua index 7ebaff0c..b62cfbdf 100644 --- a/mods/esmobs/esmonster.lua +++ b/mods/esmobs/esmonster.lua @@ -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) diff --git a/mods/esmobs/esnpc.lua b/mods/esmobs/esnpc.lua index a564115a..03e917f3 100644 --- a/mods/esmobs/esnpc.lua +++ b/mods/esmobs/esnpc.lua @@ -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) diff --git a/mods/esmobs/esnpc2.lua b/mods/esmobs/esnpc2.lua index 86a08274..64b8b0e6 100644 --- a/mods/esmobs/esnpc2.lua +++ b/mods/esmobs/esnpc2.lua @@ -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) diff --git a/mods/esmobs/init.lua b/mods/esmobs/init.lua index 4d5a9e86..77368a0f 100644 --- a/mods/esmobs/init.lua +++ b/mods/esmobs/init.lua @@ -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. diff --git a/mods/esmobs/mcmobs.lua b/mods/esmobs/mcmobs.lua deleted file mode 100644 index 5e734436..00000000 --- a/mods/esmobs/mcmobs.lua +++ /dev/null @@ -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 - - 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 diff --git a/mods/esmobs/mcmonster.lua b/mods/esmobs/mcmonster.lua index ae91e37d..26d3d516 100644 --- a/mods/esmobs/mcmonster.lua +++ b/mods/esmobs/mcmonster.lua @@ -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) diff --git a/mods/esmobs/mtmonster.lua b/mods/esmobs/mtmonster.lua index 51238308..6e04d1ba 100644 --- a/mods/esmobs/mtmonster.lua +++ b/mods/esmobs/mtmonster.lua @@ -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) diff --git a/mods/esmobs/spawner.lua b/mods/esmobs/spawner.lua index 43f896b7..953a6899 100644 --- a/mods/esmobs/spawner.lua +++ b/mods/esmobs/spawner.lua @@ -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 diff --git a/mods/esmobs/zmastermoblist.lua b/mods/esmobs/zmastermoblist.lua index 92289ed5..986fe3a6 100644 --- a/mods/esmobs/zmastermoblist.lua +++ b/mods/esmobs/zmastermoblist.lua @@ -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)