(Game) techno-craft!

Post Reply
User avatar
snakevenom
Member
Posts: 119
Joined: Sat Sep 22, 2012 12:56
Location: worthing

(Game) techno-craft!

by snakevenom » Post

i am currently working on a game based around technology that is from the future and present day, i would not mind some people helping me on this project and i could use some experienced people from the community.

this will be released soon!

progress
  • created a basic working game!
  • added technology mods
  • added decorative blocks
  • interactive
    stuff, ufo's, boats, carts.
  • added basic server stuff, protectors ect.
  • added various blocks and items
  • added 2 biomes, snow and jungle
  • added canyons mod
  • added realbadangels technic creative inventory
note: most of the additions to this mod will be in the default folder as it is easier for me to update it quicker.


contributers:
likwid h-craft
snakevenom

download: 0.1.1 http://www.mediafire.com/?pyz5ao2l60xv75t
texture pack is purebdcraft official
website for purebdcraft http://bdcraft.net/download-bdcraft-tex ... estbdcraft

installation: unzip the package to minetest/games/


WARNING: Not for slow computers however i will release a downgraded version for slower computers.



whats new:
1. added more Uu matter compatibility, you can now make diamonds from them!!!
2.improved stability
3. a few bugfixes
Last edited by snakevenom on Sat Mar 30, 2013 14:11, edited 1 time in total.

User avatar
Likwid H-Craft
Member
Posts: 1113
Joined: Sun Jan 06, 2013 14:20
Location: Lost in Crypt

by Likwid H-Craft » Post

Hey do you think my, Power mod will, be future like?

Oh and if someone know how make this code work I think we can have a blender :)

Code: Select all

-- Minetest 0.4 mod: blender

--
-- Crafting definition
--

minetest.register_craft({
    output = 'blender:blade',
    recipe = {
        {'', 'default:steel_ingot', ''},
        {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'},
        {'', 'default:steel_ingot', ''},
    }
})

--
-- Powers
--

minetest.register_craft({
    type = "power",
    recipe = "power:lighting_orb",
    powertime = 10,
})

--
-- Node definitions
--

blender.blender_inactive_formspec =
    "size[8,1]"..
    "image[2,2;1,1;default_furnace_fire_bg.png]"..
    "list[current_name;power;2,3;1,1;]"..
    "list[current_name;src;2,1;1,1;]"..
    "list[current_name;dst;5,1;1,1;]"..
    "list[current_player;main;0,5;8,1;]"

minetest.register_node("blender:blender", {
    description = "Blender",
    tiles = {"default_furnace_top.png", "default_furnace_bottom.png", "default_furnace_side.png",
        "default_furnace_side.png", "default_furnace_side.png", "default_furnace_front.png"},
    paramtype2 = "facedir",
    groups = {cracky=2},
    legacy_facedir_simple = true,
    on_construct = function(pos)
        local meta = minetest.env:get_meta(pos)
        meta:set_string("formspec", blender.blender_inactive_formspec)
        meta:set_string("infotext", "Blender")
        local inv = meta:get_inventory()
        inv:set_size("power", 1)
        inv:set_size("src", 1)
        inv:set_size("dst", 1)
    end,
    can_dig = function(pos,player)
        local meta = minetest.env:get_meta(pos);
        local inv = meta:get_inventory()
        if not inv:is_empty("power") then
            return false
        elseif not inv:is_empty("dst") then
            return false
        elseif not inv:is_empty("src") then
            return false
        end
        return true
    end,
})

minetest.register_node("blender:blender_active", {
    description = "Blender",
    tiles = {"default_furnace_top.png", "default_furnace_bottom.png", "default_furnace_side.png",
        "default_furnace_side.png", "default_furnace_side.png", "default_furnace_front_active.png"},
    paramtype2 = "facedir",
    light_source = 0,
    drop = "blender:blender",
    groups = {cracky=2, not_in_creative_inventory=1},
    legacy_facedir_simple = true,
    on_construct = function(pos)
        local meta = minetest.env:get_meta(pos)
        meta:set_string("formspec", blender.blender_inactive_formspec)
        meta:set_string("infotext", "Blender");
        local inv = meta:get_inventory()
        inv:set_size("power", 1)
        inv:set_size("src", 1)
        inv:set_size("dst", 1)
    end,
    can_dig = function(pos,player)
        local meta = minetest.env:get_meta(pos);
        local inv = meta:get_inventory()
        if not inv:is_empty("power") then
            return false
        elseif not inv:is_empty("dst") then
            return false
        elseif not inv:is_empty("src") then
            return false
        end
        return true
    end,
})

function hacky_swap_node(pos,name)
    local node = minetest.env:get_node(pos)
    local meta = minetest.env:get_meta(pos)
    local meta0 = meta:to_table()
    if node.name == name then
        return
    end
    node.name = name
    local meta0 = meta:to_table()
    minetest.env:set_node(pos,node)
    meta = minetest.env:get_meta(pos)
    meta:from_table(meta0)
end

minetest.register_abm({
    nodenames = {"blender:blender","blender:blender_active"},
    interval = 1.0,
    chance = 1,
    action = function(pos, node, active_object_count, active_object_count_wider)
        local meta = minetest.env:get_meta(pos)
        for i, name in ipairs({
                "power_totaltime",
                "power_time",
                "src_totaltime",
                "src_time"
        }) do
            if meta:get_string(name) == "" then
                meta:set_float(name, 0.0)
            end
        end

        local inv = meta:get_inventory()

        local srclist = inv:get_list("src")
        local cooked = nil
        
        if srclist then
            cooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist})
        end
        
        local was_active = false
        
        if meta:get_float("power_time") < meta:get_float("power_totaltime") then
            was_active = true
            meta:set_float("power_time", meta:get_float("power_time") + 1)
            meta:set_float("src_time", meta:get_float("src_time") + 1)
            if cooked and cooked.item and meta:get_float("src_time") >= cooked.time then
                -- check if there's room for output in "dst" list
                if inv:room_for_item("dst",cooked.item) then
                    -- Put result in "dst" list
                    inv:add_item("dst", cooked.item)
                    -- take stuff from "src" list
                    srcstack = inv:get_stack("src", 1)
                    srcstack:take_item()
                    inv:set_stack("src", 1, srcstack)
                else
                    print("Could not insert '"..cooked.item:to_string().."'")
                end
                meta:set_string("src_time", 0)
            end
        end
        
        if meta:get_float("power_time") < meta:get_float("power_totaltime") then
            local percent = math.floor(meta:get_float("power_time") /
                    meta:get_float("power_totaltime") * 100)
            meta:set_string("infotext","Blender active: "..percent.."Watts")
            hacky_swap_node(pos,"blender:blender_active")
            meta:set_string("formspec",
                "size[8,1]"..
                "image[2,2;1,1;default_furnace_fire_bg.png^[lowpart:"..
                        (100-percent)..":default_furnace_fire_fg.png]"..
                "list[current_name;power;2,3;1,1;]"..
                "list[current_name;src;2,1;1,1;]"..
                "list[current_name;dst;5,1;1,1;]"..
                "list[current_player;main;0,5;8,1;]")
            return
        end

        local power = nil
        local cooked = nil
        local powerlist = inv:get_list("power")
        local srclist = inv:get_list("src")
        
        if srclist then
            cooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist})
        end
        if powerlist then
            power = minetest.get_craft_result({method = "power", width = 1, items = powerlist})
        end

        if power.time <= 0 then
            meta:set_string("infotext","Blender out of power")
            hacky_swap_node(pos,"blender:blender")
            meta:set_string("formspec", blender.blender_inactive_formspec)
            return
        end

        if cooked.item:is_empty() then
            if was_active then
                meta:set_string("infotext","Blender is empty")
                hacky_swap_node(pos,"blender:blender")
                meta:set_string("formspec", blender.blender_inactive_formspec)
            end
            return
        end

        meta:set_string("power_totaltime", power.time)
        meta:set_string("power_time", 0)
        
        local stack = inv:get_stack("power", 1)
        stack:take_item()
        inv:set_stack("power", 1, stack)
    end,
})

--
-- Crafting items
--

minetest.register_craftitem("blender:blade", {
    description = "Blender Blade",
    inventory_image = "blade.png",
})

-- END
My Domain's/others:
http://likwidtest.hj.cx/ (Not Done)

User avatar
snakevenom
Member
Posts: 119
Joined: Sat Sep 22, 2012 12:56
Location: worthing

by snakevenom » Post

Likwid H-Craft wrote:Hey do you think my, Power mod will, be future like?

Oh and if someone know how make this code work I think we can have a blender :)

Code: Select all

-- Minetest 0.4 mod: blender

--
-- Crafting definition
--

minetest.register_craft({
    output = 'blender:blade',
    recipe = {
        {'', 'default:steel_ingot', ''},
        {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'},
        {'', 'default:steel_ingot', ''},
    }
})

--
-- Powers
--

minetest.register_craft({
    type = "power",
    recipe = "power:lighting_orb",
    powertime = 10,
})

--
-- Node definitions
--

blender.blender_inactive_formspec =
    "size[8,1]"..
    "image[2,2;1,1;default_furnace_fire_bg.png]"..
    "list[current_name;power;2,3;1,1;]"..
    "list[current_name;src;2,1;1,1;]"..
    "list[current_name;dst;5,1;1,1;]"..
    "list[current_player;main;0,5;8,1;]"

minetest.register_node("blender:blender", {
    description = "Blender",
    tiles = {"default_furnace_top.png", "default_furnace_bottom.png", "default_furnace_side.png",
        "default_furnace_side.png", "default_furnace_side.png", "default_furnace_front.png"},
    paramtype2 = "facedir",
    groups = {cracky=2},
    legacy_facedir_simple = true,
    on_construct = function(pos)
        local meta = minetest.env:get_meta(pos)
        meta:set_string("formspec", blender.blender_inactive_formspec)
        meta:set_string("infotext", "Blender")
        local inv = meta:get_inventory()
        inv:set_size("power", 1)
        inv:set_size("src", 1)
        inv:set_size("dst", 1)
    end,
    can_dig = function(pos,player)
        local meta = minetest.env:get_meta(pos);
        local inv = meta:get_inventory()
        if not inv:is_empty("power") then
            return false
        elseif not inv:is_empty("dst") then
            return false
        elseif not inv:is_empty("src") then
            return false
        end
        return true
    end,
})

minetest.register_node("blender:blender_active", {
    description = "Blender",
    tiles = {"default_furnace_top.png", "default_furnace_bottom.png", "default_furnace_side.png",
        "default_furnace_side.png", "default_furnace_side.png", "default_furnace_front_active.png"},
    paramtype2 = "facedir",
    light_source = 0,
    drop = "blender:blender",
    groups = {cracky=2, not_in_creative_inventory=1},
    legacy_facedir_simple = true,
    on_construct = function(pos)
        local meta = minetest.env:get_meta(pos)
        meta:set_string("formspec", blender.blender_inactive_formspec)
        meta:set_string("infotext", "Blender");
        local inv = meta:get_inventory()
        inv:set_size("power", 1)
        inv:set_size("src", 1)
        inv:set_size("dst", 1)
    end,
    can_dig = function(pos,player)
        local meta = minetest.env:get_meta(pos);
        local inv = meta:get_inventory()
        if not inv:is_empty("power") then
            return false
        elseif not inv:is_empty("dst") then
            return false
        elseif not inv:is_empty("src") then
            return false
        end
        return true
    end,
})

function hacky_swap_node(pos,name)
    local node = minetest.env:get_node(pos)
    local meta = minetest.env:get_meta(pos)
    local meta0 = meta:to_table()
    if node.name == name then
        return
    end
    node.name = name
    local meta0 = meta:to_table()
    minetest.env:set_node(pos,node)
    meta = minetest.env:get_meta(pos)
    meta:from_table(meta0)
end

minetest.register_abm({
    nodenames = {"blender:blender","blender:blender_active"},
    interval = 1.0,
    chance = 1,
    action = function(pos, node, active_object_count, active_object_count_wider)
        local meta = minetest.env:get_meta(pos)
        for i, name in ipairs({
                "power_totaltime",
                "power_time",
                "src_totaltime",
                "src_time"
        }) do
            if meta:get_string(name) == "" then
                meta:set_float(name, 0.0)
            end
        end

        local inv = meta:get_inventory()

        local srclist = inv:get_list("src")
        local cooked = nil
        
        if srclist then
            cooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist})
        end
        
        local was_active = false
        
        if meta:get_float("power_time") < meta:get_float("power_totaltime") then
            was_active = true
            meta:set_float("power_time", meta:get_float("power_time") + 1)
            meta:set_float("src_time", meta:get_float("src_time") + 1)
            if cooked and cooked.item and meta:get_float("src_time") >= cooked.time then
                -- check if there's room for output in "dst" list
                if inv:room_for_item("dst",cooked.item) then
                    -- Put result in "dst" list
                    inv:add_item("dst", cooked.item)
                    -- take stuff from "src" list
                    srcstack = inv:get_stack("src", 1)
                    srcstack:take_item()
                    inv:set_stack("src", 1, srcstack)
                else
                    print("Could not insert '"..cooked.item:to_string().."'")
                end
                meta:set_string("src_time", 0)
            end
        end
        
        if meta:get_float("power_time") < meta:get_float("power_totaltime") then
            local percent = math.floor(meta:get_float("power_time") /
                    meta:get_float("power_totaltime") * 100)
            meta:set_string("infotext","Blender active: "..percent.."Watts")
            hacky_swap_node(pos,"blender:blender_active")
            meta:set_string("formspec",
                "size[8,1]"..
                "image[2,2;1,1;default_furnace_fire_bg.png^[lowpart:"..
                        (100-percent)..":default_furnace_fire_fg.png]"..
                "list[current_name;power;2,3;1,1;]"..
                "list[current_name;src;2,1;1,1;]"..
                "list[current_name;dst;5,1;1,1;]"..
                "list[current_player;main;0,5;8,1;]")
            return
        end

        local power = nil
        local cooked = nil
        local powerlist = inv:get_list("power")
        local srclist = inv:get_list("src")
        
        if srclist then
            cooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist})
        end
        if powerlist then
            power = minetest.get_craft_result({method = "power", width = 1, items = powerlist})
        end

        if power.time <= 0 then
            meta:set_string("infotext","Blender out of power")
            hacky_swap_node(pos,"blender:blender")
            meta:set_string("formspec", blender.blender_inactive_formspec)
            return
        end

        if cooked.item:is_empty() then
            if was_active then
                meta:set_string("infotext","Blender is empty")
                hacky_swap_node(pos,"blender:blender")
                meta:set_string("formspec", blender.blender_inactive_formspec)
            end
            return
        end

        meta:set_string("power_totaltime", power.time)
        meta:set_string("power_time", 0)
        
        local stack = inv:get_stack("power", 1)
        stack:take_item()
        inv:set_stack("power", 1, stack)
    end,
})

--
-- Crafting items
--

minetest.register_craftitem("blender:blade", {
    description = "Blender Blade",
    inventory_image = "blade.png",
})

-- END

seems like this would be good for the game, maybe we could arrange something?

User avatar
Likwid H-Craft
Member
Posts: 1113
Joined: Sun Jan 06, 2013 14:20
Location: Lost in Crypt

by Likwid H-Craft » Post

The problem is the blender won't work I tryed make it work but didn't work it says minetest.register_craft type = "power" is not a craft type so how do I make it one so, we can have it work the power...

Edit:Oh and if didn't Notice I used furnace as the early texture build until I get the code working...

Heres the real textures

Off/On
Image
Image

Mese
Image

Blade
Image
Last edited by Likwid H-Craft on Fri Mar 29, 2013 16:32, edited 1 time in total.
My Domain's/others:
http://likwidtest.hj.cx/ (Not Done)

User avatar
snakevenom
Member
Posts: 119
Joined: Sat Sep 22, 2012 12:56
Location: worthing

by snakevenom » Post

Likwid H-Craft wrote:The problem is the blender won't work I tryed make it work but didn't work it says minetest.register_craft type = "power" is not a craft type so how do I make it one so, we can have it work the power...

Edit:Oh and if didn't Notice I used furnace as the early texture build until I get the code working...

Heres the real textures

Off/On
Image
Image

Mese
Image

Blade
Image
hmm, i do not know how to make it a craft type or what the source of the problem is.
Last edited by snakevenom on Fri Mar 29, 2013 16:51, edited 1 time in total.

User avatar
Likwid H-Craft
Member
Posts: 1113
Joined: Sun Jan 06, 2013 14:20
Location: Lost in Crypt

by Likwid H-Craft » Post

I will ask Adam see if he know how...
My Domain's/others:
http://likwidtest.hj.cx/ (Not Done)

User avatar
snakevenom
Member
Posts: 119
Joined: Sat Sep 22, 2012 12:56
Location: worthing

by snakevenom » Post

Likwid H-Craft wrote:I will ask Adam see if he know how...
Yeah probably best bet, i will add you to the contributers list.

User avatar
Likwid H-Craft
Member
Posts: 1113
Joined: Sun Jan 06, 2013 14:20
Location: Lost in Crypt

by Likwid H-Craft » Post

Well I send it to him hope he know how do it, and reads it :)

Btw I am right now making a Minetest Quiz the program is batch the only, program I know how make a Fast Game or Quiz so far this what I got done...

/!\ The code will be updated when needed /!\
(So make sure check so how much I did.)

Code: Select all

@echo off
Title Quiz
color 8

:info1
cls
echo Enter Name!
echo XXXXXXXXXXX
set /p name=
goto info2

:info2
cls
echo Enter Number!
echo XXXXXXXXXXXXX
echo 1-2-3-4-5-6-7
echo XXXXXXXXXXXXX
set /p number=
goto info3

:test1
cls
echo Is this your name?
echo XXXXXXXXXXXXXXXXXX
echo Check: %name%
echo -------------
set /p type=
if %type% == yes goto test2
if %type% == No goto info1
goto test1

:test2
cls
echo Is this your Number?
echo XXXXXXXXXXXXXXXXXXXX
echo Check: %number%
echo -------------
set /p type=
if %type% == yes goto menu1
if %type% == No goto info2
goto test2

:menu1
cls
echo Welcome to # Quiz!
echo Version 0.1.0
echo
Last edited by Likwid H-Craft on Fri Mar 29, 2013 17:25, edited 1 time in total.
My Domain's/others:
http://likwidtest.hj.cx/ (Not Done)

User avatar
snakevenom
Member
Posts: 119
Joined: Sat Sep 22, 2012 12:56
Location: worthing

by snakevenom » Post

Likwid H-Craft wrote:Well I send it to him hope he know how do it, and reads it :)

Btw I am right now making a Minetest Quiz the program is batch the only, program I know how make a Fast Game or Quiz so far this what I got done...

/!\ The code will be updated when needed /!\
(So make sure check so how much I did.)

Code: Select all

@echo off
Title Quiz
color 8

:info1
cls
echo Enter Name!
echo XXXXXXXXXXX
set /p name=
goto info2

:info2
cls
echo Enter Number!
echo XXXXXXXXXXXXX
echo 1-2-3-4-5-6-7
echo XXXXXXXXXXXXX
set /p number=
goto info3

:test1
cls
echo Is this your name?
echo XXXXXXXXXXXXXXXXXX
echo Check: %name%
echo -------------
set /p type=
if %type% == yes goto test2
if %type% == No goto info1
goto test1

:test2
cls
echo Is this your Number?
echo XXXXXXXXXXXXXXXXXXXX
echo Check: %number%
echo -------------
set /p type=
if %type% == yes goto menu1
if %type% == No goto info2
goto test2

:menu1
cls
echo Welcome to # Quiz!
echo Version 0.1.0
echo
nice+1
Last edited by snakevenom on Fri Mar 29, 2013 17:48, edited 1 time in total.

User avatar
Likwid H-Craft
Member
Posts: 1113
Joined: Sun Jan 06, 2013 14:20
Location: Lost in Crypt

by Likwid H-Craft » Post

Yeah but it will be longer then you see now and, so as I finish version 0.1.0 I will add it in a new topic.

Hope get alot of hits on it :)
My Domain's/others:
http://likwidtest.hj.cx/ (Not Done)

User avatar
snakevenom
Member
Posts: 119
Joined: Sat Sep 22, 2012 12:56
Location: worthing

by snakevenom » Post

new version 0.1.1 up for release soon
add's- extended Uu matter functionality
-possibly weather (i am having a few problems)

edit:
Released! and now playable by you

no weather yet but i am working on a advanced weather system soon using jeija's weather mod.
Last edited by snakevenom on Sun Mar 31, 2013 16:07, edited 1 time in total.

Post Reply

Who is online

Users browsing this forum: No registered users and 31 guests