Merge pull request #1 from NathanSalapat/dev

Fixing master, I hope.
master
Nathan Salapat 2014-12-03 20:54:00 -06:00
commit e84241157c
16 changed files with 847 additions and 136 deletions

View File

@ -5,6 +5,13 @@ campfire inventory image from Esteban on the minetest forum licensed CC by SA
Kindling inventory image created by modifying Esteban's campfire image.
Lighter image created by me with Blender.
Code:
Torch rotation by addi, shamelessly copied from the 3d_torches mod.
Code:
3d torch code and nodebox's from Carbone, by Calinou CC0 1.0 Will be replaced with mesh torches once I figure that bit out.
Inspiration:
Napiophelios, from the forum, who gave me some really good ideas from the old campfire mod, which I didn't even know about.
Sound Effects:
Sparker sound from BroAsis on Freesound. https://www.freesound.org/people/BroAsis/sounds/106853/

View File

@ -1,5 +1,25 @@
11-22-14:
Changed a couple textures.
Currently using nodeboxes for torches, so they are no longer invisible.
11-19-14:
Campfires are working altogether now. Craft kindling and add some fuel to it, and then click on it with the lighter until it starts on fire.
11-12-14:
Removed the ABM for torches, and replaced the two nodes with just one.
Tweaked the lighter, it should last longer and light fires faster. Added a sparking sound effect as well.
The lighter takes damage every time it is used, regardless of if it starts a fire, or is used on kindling.
11-11-14:
Charcoal blocks are now flammable.
11-08-14:
Added a kindling that will created contained fire.
Updated the lighter to turn the two different kindling into the two different fires.
11-05-14:
Corrected the texture for the Charcoal Block.
Added recipe to turn charcoal block back into charcoal lumps.
11-04-14:
Added recipe for fire that uses torch and kindling.

481
init.lua
View File

@ -1,66 +1,183 @@
-- A couple variables used throughout.
percent = 100
-- GUI related stuff
default.gui_bg = 'bgcolor[#080808BB;true]'
default.gui_bg_img = 'background[5,5;1,1;gui_formbg.png;true]'
default.gui_slots = 'listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]'
more_fire = {}
function default.get_hotbar_bg(x,y)
local out = ''
for i=0,7,1 do
out = out ..'image['..x+i..','..y..';1,1;gui_hb_bg.png]'
end
return out
end
function more_fire.campfire(pos, percent, item_percent)
local formspec =
'size[8,6.75]'..
default.gui_bg..
default.gui_bg_img..
default.gui_slots..
'background[5,5;1,1;campfire_active.png;true]'..
'list[current_name;fuel;1,1.5;1,1;]'..
'list[current_player;main;0,2.75;8,1;]'..
'list[current_player;main;0,4;8,3;8]'..
default.get_hotbar_bg(0,2.75)
return formspec
end
function more_fire.get_campfire_formspec(pos, percent)
local meta = minetest.get_meta(pos)local inv = meta:get_inventory()
local fuellist = inv:get_list('fuel')
if fuellist then
end
return more_fire.campfire(pos, percent, item_percent)
end
function burn(pointed_thing) --kindling doesn't always start from the first spark
ignite_chance = math.random(5)
if ignite_chance == 1 then
minetest.env:swap_node(pointed_thing.under, {name = 'more_fire:campfire'})
else --do nothing
if ignite_chance == 1
and string.find(minetest.get_node(pointed_thing.under).name, 'more_fire:kindling_contained')
then
minetest.swap_node(pointed_thing.under, {name = 'more_fire:embers_contained'})
elseif ignite_chance == 1
and string.find(minetest.get_node(pointed_thing.under).name, 'more_fire:kindling')
then
minetest.swap_node(pointed_thing.under, {name = 'more_fire:embers'})
else --Do nothing
end
end
-- Copied from the 3d_torch mod, changed a few things, and removed a couple lines.
local function placeTorch(itemstack, placer, pointed_thing)
if pointed_thing.type ~= "node" then
return itemstack
end
local p0 = pointed_thing.under
local p1 = pointed_thing.above
local param2 = 0
-- formspecs
more_fire.embers_formspec =
'size[8,6.75]'..
default.gui_bg..
default.gui_bg_img..
default.gui_slots..
'listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]'..
'background[5,5;1,1;campfire_inactive.png;true]'..
'list[current_name;fuel;1,1.5;1,1;]'..
'list[current_player;main;0,2.75;8,1;]'..
'list[current_player;main;0,4;8,3;8]'..
default.get_hotbar_bg(0,2.75)
local dir = {
x = p1.x - p0.x,
y = p1.y - p0.y,
z = p1.z - p0.z
}
param2 = minetest.dir_to_facedir(dir,false)
local correct_rotation={
[0]=3,
[1]=0,
[2]=1,
[3]=2
}
if p0.y<p1.y then
--place torch on floor
minetest.add_node(p1, {name="more_fire:torch"})
else
--place torch on wall
minetest.add_node(p1, {name="more_fire:torch_wall",param2=correct_rotation[param2]})
--return minetest.item_place(itemstack, placer, pointed_thing, param2)
end
itemstack:take_item()
return itemstack
end
-- abm that converts the already placed torches to the 3d ones copied from the 3d_torches mod
minetest.register_abm({
nodenames = {"default:torch"},
interval = 1,
-- ABMs
minetest.register_abm({ -- Controls non-contained fire
nodenames = {'more_fire:embers','more_fire:campfire'},
interval = 1.0,
chance = 1,
action = function(pos, node)
local convert_facedir={
[2]=2,
[3]=0,
[4]=1,
[5]=3
}
print(node.param2)
if node.param2 == 1 then
minetest.swap_node(pos, {name="more_fire:torch"})
else
minetest.swap_node(pos, {name="more_fire:torch_wall",param2=convert_facedir[node.param2]})
action = function(pos, node, active_object_count, active_object_count_wider)
local meta = minetest.env:get_meta(pos)
for i, name in ipairs({
'fuel_totaltime',
'fuel_time',
}) do
if meta:get_string(name) == '' then
meta:set_float(name, 5.0)
end
end
end,
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
local was_active = false
if meta:get_float('fuel_time') < meta:get_float('fuel_totaltime') then
was_active = true
meta:set_float('fuel_time', meta:get_float('fuel_time') + 0.25)
end
if meta:get_float('fuel_time') < meta:get_float('fuel_totaltime') then
minetest.sound_play({name='fire_small'},{gain=0.07},
{loop=true})
local percent = math.floor(meta:get_float('fuel_time') /
meta:get_float('fuel_totaltime') * 100)
meta:set_string('infotext','Campfire active: '..percent..'%')
minetest.swap_node(pos, {name = 'more_fire:campfire'})
meta:set_string('formspec',
'size[8,6.75]'..
default.gui_bg..
default.gui_slots..
'background[5,5;1,1;campfire_active.png;true]'..
'list[current_name;fuel;1,1.5;1,1;]'..
'list[current_player;main;0,2.75;8,1;]'..
'list[current_player;main;0,4;8,3;8]')
return
end
local fuel = nil
local fuellist = inv:get_list('fuel')
if fuellist then
fuel = minetest.get_craft_result({method = 'fuel', width = 1, items = fuellist})
end
if fuel.time <= 0 then
meta:set_string('infotext','Put more wood on the fire!')
minetest.swap_node(pos, {name = 'more_fire:embers'})
meta:set_string('formspec', more_fire.embers_formspec)
return
end
meta:set_string('fuel_totaltime', fuel.time)
meta:set_string('fuel_time', 0)
local stack = inv:get_stack('fuel', 1)
stack:take_item()
inv:set_stack('fuel', 1, stack)
end,
})
minetest.register_abm({ -- Controls the contained fires.
nodenames = {'more_fire:embers_contained', 'more_fire:campfire_contained'},
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({
'fuel_totaltime',
'fuel_time',
}) do
if meta:get_string(name) == '' then
meta:set_float(name, 0.0)
end
end
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
local was_active = false
if meta:get_float('fuel_time') < meta:get_float('fuel_totaltime') then
was_active = true
meta:set_float('fuel_time', meta:get_float('fuel_time') + 0.25)
end
if meta:get_float('fuel_time') < meta:get_float('fuel_totaltime') then
minetest.sound_play({name='fire_small'},{gain=0.07},
{loop=true})
local percent = math.floor(meta:get_float('fuel_time') /
meta:get_float('fuel_totaltime') * 100)
meta:set_string('infotext','Campfire active: '..percent..'%')
minetest.swap_node(pos, {name = 'more_fire:campfire_contained'})
meta:set_string('formspec',
'size[8,6.75]'..
default.gui_bg..
default.gui_slots..
'background[5,5;1,1;campfire_active.png;true]'..
'list[current_name;fuel;1,1.5;1,1;]'..
'list[current_player;main;0,2.75;8,1;]'..
'list[current_player;main;0,4;8,3;8]')
return
end
local fuel = nil
local fuellist = inv:get_list('fuel')
if fuellist then
fuel = minetest.get_craft_result({method = 'fuel', width = 1, items = fuellist})
end
if fuel.time <= 0 then
meta:set_string('infotext','Put more wood on the fire!')
minetest.swap_node(pos, {name = 'more_fire:embers_contained'})
meta:set_string('formspec', more_fire.embers_formspec)
return
end
meta:set_string('fuel_totaltime', fuel.time)
meta:set_string('fuel_time', 0)
local stack = inv:get_stack('fuel', 1)
stack:take_item()
inv:set_stack('fuel', 1, stack)
end,
})
-- node definitions
@ -82,63 +199,108 @@ minetest.register_node(':default:gravel', {
}
},
sounds = default.node_sound_dirt_defaults({
footstep = {name="default_gravel_footstep", gain=0.45},
footstep = {name='default_gravel_footstep', gain=0.45},
}),
})
minetest.register_node('more_fire:torch', {
description = 'Torch',
drawtype = 'mesh',
mesh = 'more_fire_torch.obj',
tiles = {'more_fire_torch.png'},
inventory_image = 'default_torch_on_floor.png',
wield_image = 'default_torch_on_floor.png',
paramtype = 'light',
paramtype2 = 'facedir',
minetest.register_node(":default:torch", {
description = "Torch",
drawtype = "nodebox",
tiles = {
{name = "default_torch_new_top.png", animation = {type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 3.0}},
{name = "default_torch_new_bottom.png", animation = {type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 3.0}},
{name = "default_torch_new_side.png", animation = {type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 3.0}},
},
inventory_image = "default_torch_new_inv.png",
wield_image = "default_torch_new_inv.png",
wield_scale = {x = 1, y = 1, z = 1.25},
paramtype = "light",
paramtype2 = "wallmounted",
sunlight_propagates = true,
is_ground_content = false,
walkable = false,
light_source = LIGHT_MAX-1,
groups = {choppy=2,dig_immediate=3,flammable=1,attached_node=1,hot=2},
drop = 'default:torch',
sounds = default.node_sound_defaults(),
selection_box = {
type = "fixed",
fixed = {-1/11, -1/2, -1/11, 1/11, 1/3, 1/11},
light_source = LIGHT_MAX - 1,
node_box = {
type = "wallmounted",
wall_top = {-0.0625, -0.0625, -0.0625, 0.0625, 0.5 , 0.0625},
wall_bottom = {-0.0625, -0.5 , -0.0625, 0.0625, 0.0625, 0.0625},
wall_side = {-0.5 , -0.5 , -0.0625, -0.375, 0.0625, 0.0625},
},
})
minetest.register_node('more_fire:torch_wall', {
description = 'Torch',
drawtype = 'mesh',
mesh = 'more_fire_torch_wall.obj',
tiles = {'more_fire_torch.png'},
inventory_image = 'default_torch_on_floor.png',
wield_image = 'default_torch_on_floor.png',
paramtype = 'light',
paramtype2 = 'facedir',
sunlight_propagates = true,
is_ground_content = false,
walkable = false,
light_source = LIGHT_MAX-1,
groups = {choppy=2,dig_immediate=3,flammable=1,attached_node=1,hot=2},
drop = 'default:torch',
sounds = default.node_sound_defaults(),
selection_box = {
type = "fixed",
fixed = {-0.5, -0.3, -0.1, -0.5+0.3, 0.3, 0.1},
type = "wallmounted",
wall_top = {-0.05, -0.05, -0.25, 0.25, 0.5 , 0.25},
wall_bottom = {-0.25, -0.5 , -0.25, 0.25, 0.0625, 0.25},
wall_side = {-0.25, -0.5 , -0.25, -0.5, 0.0625, 0.25},
},
groups = {choppy = 2, dig_immediate = 3, flammable = 1, attached_node = 1, hot = 2},
sounds = default.node_sound_wood_defaults(),
})
minetest.register_node('more_fire:charcoal_block', {
description = 'Charcoal Block',
tiles = {'more_fire_charcoal_block.png'},
is_ground_content = true,
groups = {oddly_breakable_by_hand=2,cracky=3},
groups = {oddly_breakable_by_hand=2,cracky=3,flammable=1,},
})
minetest.register_node('more_fire:kindling', {
description = 'Kindling',
drawtype = 'mesh',
mesh = 'more_fire_kindling.obj',
tiles = {'more_fire_campfire_logs.png'},
inventory_image = 'more_fire_kindling.png',
wield_image = 'more_fire_kindling.png',
walkable = false,
is_ground_content = true,
groups = {dig_immediate=2, flammable=1,},
paramtype = 'light',
selection_box = {
type = 'fixed',
fixed = { -0.48, -0.5, -0.48, 0.48, -0.5, 0.48 },
},
on_construct = function(pos)
local meta = minetest.env:get_meta(pos)
meta:set_string('formspec', more_fire.embers_formspec)
local inv = meta:get_inventory()
inv:set_size('fuel', 4)
end,
})
minetest.register_node('more_fire:embers', {
description = 'Campfire',
drawtype = 'mesh',
mesh = 'more_fire_kindling.obj',
tiles = {'more_fire_campfire_logs.png'},
inventory_image = 'more_fire_campfire.png',
wield_image = 'more_fire_campfire.png',
walkable = false,
is_ground_content = true,
groups = {dig_immediate=3, flammable=1,},
paramtype = 'light',
drop = 'more_fire:kindling',
selection_box = {
type = 'fixed',
fixed = { -0.48, -0.5, -0.48, 0.48, -0.5, 0.48 },
},
on_construct = function(pos)
local meta = minetest.env:get_meta(pos)
meta:set_string('formspec', more_fire.embers_formspec)
meta:set_string('infotext', 'Campfire');
local inv = meta:get_inventory()
inv:set_size('fuel', 4)
end,
can_dig = function(pos, player)
local meta = minetest.get_meta(pos);
local inv = meta:get_inventory()
if not inv:is_empty('fuel') then
return false
end
return true
end,
})
minetest.register_node('more_fire:campfire', {
description = 'Campfire',
description = 'Burning Campfire',
drawtype = 'mesh',
mesh = 'more_fire_campfire.obj',
tiles = {
@ -148,13 +310,82 @@ minetest.register_node('more_fire:campfire', {
paramtype = 'light',
walkable = false,
damage_per_second = 1,
drop = 'more_fire:charcoal',
light_source = 14,
is_ground_content = true,
groups = {cracky=2,hot=2,attached_node=1,dig_immediate=3,igniter=1},
groups = {cracky=2,hot=2,attached_node=1,igniter=1,not_in_creative_inventory=1},
selection_box = {
type = 'fixed',
fixed = { -0.48, -0.5, -0.48, 0.48, -0.5, 0.48 },
},
can_dig = function(pos,player)
local meta = minetest.env:get_meta(pos);
local inv = meta:get_inventory()
if not inv:is_empty('fuel') then
return false
end
return true
end,
get_staticdata = function(self)
end,
})
minetest.register_node('more_fire:contained_fire', {
minetest.register_node('more_fire:kindling_contained', {
description = 'Contained Kindling',
drawtype = 'mesh',
mesh = 'more_fire_kindling_contained.obj',
tiles = {'more_fire_campfire_logs.png'},
inventory_image = 'more_fire_kindling_contained.png',
wield_image = 'more_fire_kindling.png',
walkable = false,
is_ground_content = true,
groups = {dig_immediate=3,flammable=1},
paramtype = 'light',
selection_box = {
type = 'fixed',
fixed = { -0.48, -0.5, -0.48, 0.48, -0.5, 0.48 },
},
on_construct = function(pos)
local meta = minetest.env:get_meta(pos)
meta:set_string('formspec', more_fire.embers_formspec)
local inv = meta:get_inventory()
inv:set_size('fuel', 4)
end,
})
minetest.register_node('more_fire:embers_contained', {
description = 'Contained Campfire',
drawtype = 'mesh',
mesh = 'more_fire_kindling_contained.obj',
tiles = {'more_fire_campfire_logs.png'},
walkable = false,
is_ground_content = true,
groups = {dig_immediate=3, flammable=1, not_in_creative_inventory=1},
paramtype = 'light',
drop = 'more_fire:kindling_contained',
inventory_image = 'more_fire_campfire_contained.png',
wield_image = 'more_fire_campfire_contained.png',
selection_box = {
type = 'fixed',
fixed = { -0.48, -0.5, -0.48, 0.48, -0.5, 0.48 },
},
on_construct = function(pos)
local meta = minetest.env:get_meta(pos)
meta:set_string('formspec', more_fire.embers_formspec)
meta:set_string('infotext', 'Campfire');
local inv = meta:get_inventory()
inv:set_size('fuel', 4)
end,
can_dig = function(pos, player)
local meta = minetest.get_meta(pos);
local inv = meta:get_inventory()
if not inv:is_empty('fuel') then
return false
end
return true
end,
})
minetest.register_node('more_fire:campfire_contained', {
description = 'Contained Campfire',
drawtype = 'mesh',
mesh = 'more_fire_contained_campfire.obj',
@ -168,20 +399,21 @@ minetest.register_node('more_fire:contained_fire', {
drop = 'more_fire:charcoal',
light_source = 14,
is_ground_content = true,
groups = {cracky=2,hot=2,attached_node=1,dig_immediate=3},
})
minetest.register_node('more_fire:kindling', {
description = 'Kindling',
drawtype = 'mesh',
mesh = 'more_fire_kindling.obj',
tiles = {'more_fire_campfire_logs.png'},
inventory_image = 'more_fire_kindling.png',
wield_image = 'more_fire_kindling.png',
walkable = false,
is_ground_content = true,
groups = {dig_immediate=3,flammable=1},
paramtype = 'light',
groups = {cracky=2,hot=2,attached_node=1,dig_immediate=3,not_in_creative_inventory=1},
selection_box = {
type = 'fixed',
fixed = { -0.48, -0.5, -0.48, 0.48, -0.5, 0.48 },
},
can_dig = function(pos,player)
local meta = minetest.env:get_meta(pos);
local inv = meta:get_inventory()
if not inv:is_empty('fuel') then
return false
end
return true
end,
get_staticdata = function(self)
end,
})
-- craft items
@ -212,7 +444,14 @@ minetest.register_craft({
})
minetest.register_craft({
output = 'more_fire:campfire 1',
output = 'more_fire:charcoal 9',
recipe = {
{'more_fire:charcoal_block'}
}
})
minetest.register_craft({
output = 'more_fire:embers 1',
recipe = {
{'more_fire:kindling'},
{'default:torch'},
@ -220,7 +459,7 @@ minetest.register_craft({
})
minetest.register_craft({
output = 'more_fire:campfire 1',
output = 'more_fire:embers 1',
recipe = {
{'', '', ''},
{'default:stick', 'default:torch', 'default:stick'},
@ -229,10 +468,9 @@ minetest.register_craft({
})
minetest.register_craft({
output = 'more_fire:contained_fire 1',
output = 'more_fire:embers_contained 1',
recipe = {
{'default:cobble', 'default:cobble', 'default:cobble'},
{'default:cobble', 'more_fire:campfire', 'default:cobble'},
{'', 'more_fire:embers', ''},
{'default:cobble', 'default:cobble', 'default:cobble'},
}
})
@ -251,6 +489,14 @@ minetest.register_craft({
recipe = {'group:stick', 'group:wood', 'group:flammable', 'group:flammable'},
})
minetest.register_craft({
output = 'more_fire:kindling_contained 1',
recipe = {
{'','more_fire:kindling', ''},
{'default:cobble','default:cobble','default:cobble'},
}
})
minetest.register_craft({
type = 'shapeless',
output = 'more_fire:lighter 1',
@ -286,15 +532,16 @@ minetest.register_tool('more_fire:lighter', {
full_punch_interval = 1.0,
max_drop_level = 0,
groupcaps = {
flammable = {uses = 80, maxlevel = 1},
flammable = {uses = 200, maxlevel = 1},
}
},
on_use = function(itemstack, user, pointed_thing, pos)
minetest.sound_play("spark", {gain = 1.0, max_hear_distance = 32, loop = false })
if pointed_thing.type == 'node'
and string.find(minetest.get_node(pointed_thing.under).name, 'more_fire:kindling')
then
burn(pointed_thing)
itemstack:add_wear(65535/80)
itemstack:add_wear(65535/200)
return itemstack
end
end,

Binary file not shown.

View File

@ -1,7 +1,5 @@
# Blender v2.71 (sub 6) OBJ File: 'campfire.blend'
# Blender v2.72 (sub 2) OBJ File: 'campfire.blend'
# www.blender.org
mtllib more_fire_campfire.mtl
o Flames.001_Cube.004
v 0.353153 -0.337287 0.000000
v -0.366847 -0.337287 0.000000
v -0.366847 0.382713 -0.000000
@ -19,12 +17,10 @@ vt 1.000000 0.000000
vt 1.000000 1.000000
vt 0.000000 1.000000
g Flames.001_Cube.004_Fire
usemtl Fire
s off
f 4/1 5/2 7/3 6/4
f 8/1 9/2 11/3 10/4
f 1/1 2/2 3/3 12/4
o Campfire_Cube.003
v 0.151217 -0.347540 0.439253
v 0.151217 -0.207593 0.411057
v 0.008458 -0.207593 0.411057
@ -97,8 +93,7 @@ vt 0.005089 0.207467
vt 0.005089 0.007570
vt 0.991734 0.007570
vt 0.991734 0.207467
g Campfire_Cube.003_Flames
usemtl Flames
g Campfire_Cube.003_Logs-Stone
s off
f 20/5 19/6 18/7 17/8
f 14/9 13/10 17/11 18/12

View File

@ -1,7 +1,5 @@
# Blender v2.71 (sub 6) OBJ File: 'campfire.blend'
# Blender v2.72 (sub 2) OBJ File: 'campfire.blend'
# www.blender.org
mtllib more_fire_contained_campfire.mtl
o Flames_Cube.001
v 0.353153 -0.337287 0.000000
v -0.366847 -0.337287 0.000000
v -0.366847 0.382713 -0.000000
@ -19,12 +17,10 @@ vt 1.000000 0.000000
vt 1.000000 1.000000
vt 0.000000 1.000000
g Flames_Cube.001_Fire
usemtl Fire
s off
f 4/1 5/2 7/3 6/4
f 8/1 9/2 11/3 10/4
f 1/1 2/2 3/3 12/4
o Contained_Fire_Cube.000
v 0.109850 -0.357143 0.305314
v 0.109850 -0.248233 0.283371
v -0.001248 -0.248233 0.283371
@ -363,7 +359,6 @@ vt 0.312500 0.625000
vt 0.031250 0.625000
vt 0.023438 0.968750
g Contained_Fire_Cube.000_Logs-Stone
usemtl Logs-Stone
s off
f 20/5 17/6 18/7 19/8
f 14/9 18/10 17/11 13/12

View File

@ -1,7 +1,5 @@
# Blender v2.71 (sub 6) OBJ File: 'campfire.blend'
# Blender v2.72 (sub 2) OBJ File: 'campfire.blend'
# www.blender.org
mtllib more_fire_kindling.mtl
o Campfire_Cube.003
v 0.151217 -0.347540 0.439253
v 0.151217 -0.207593 0.411057
v 0.008458 -0.207593 0.411057
@ -74,7 +72,7 @@ vt 0.005089 0.207467
vt 0.005089 0.007570
vt 0.991734 0.007570
vt 0.991734 0.207467
usemtl Logs-Stone
g Campfire_Cube.003_Logs-Stone
s off
f 8/1 7/2 6/3 5/4
f 2/5 1/6 5/7 6/8

View File

@ -0,0 +1,449 @@
# Blender v2.72 (sub 2) OBJ File: 'campfire.blend'
# www.blender.org
v 0.109850 -0.357143 0.305314
v 0.109850 -0.248233 0.283371
v -0.001248 -0.248233 0.283371
v -0.001248 -0.357143 0.305314
v 0.109850 -0.496446 -0.364085
v 0.109850 -0.387536 -0.386027
v -0.001248 -0.387536 -0.386027
v -0.001248 -0.496446 -0.364085
v -0.334643 -0.485504 0.341245
v -0.334643 -0.374406 0.341245
v -0.353935 -0.374406 0.231834
v -0.353935 -0.485504 0.231834
v 0.359953 -0.485504 0.218768
v 0.359953 -0.374406 0.218768
v 0.340661 -0.374406 0.109358
v 0.340661 -0.485504 0.109358
v 0.018164 -0.357143 0.301082
v 0.011785 -0.248233 0.280088
v -0.094515 -0.248233 0.312387
v -0.088135 -0.357143 0.333382
v -0.182852 -0.496446 -0.360470
v -0.189231 -0.387536 -0.381465
v -0.295531 -0.387536 -0.349165
v -0.289151 -0.496446 -0.328171
v 0.189974 -0.355916 0.191649
v 0.189974 -0.302392 0.170182
v 0.133356 -0.306469 0.160018
v 0.133356 -0.359992 0.181485
v 0.259497 -0.489722 -0.141961
v 0.259497 -0.436199 -0.163429
v 0.202879 -0.440275 -0.173592
v 0.202879 -0.493798 -0.152125
v -0.333520 -0.486619 0.041843
v -0.333494 -0.428951 0.041848
v -0.313267 -0.428956 -0.012156
v -0.313293 -0.486624 -0.012161
v 0.009327 -0.486782 0.170255
v 0.009353 -0.429115 0.170259
v 0.029580 -0.429120 0.116255
v 0.029554 -0.486787 0.116251
v -0.202316 -0.326105 -0.084912
v -0.202294 -0.269280 -0.094738
v -0.224779 -0.278320 -0.147066
v -0.224801 -0.335144 -0.137240
v 0.134814 -0.350553 -0.225553
v 0.134835 -0.293728 -0.235379
v 0.112350 -0.302768 -0.287707
v 0.112328 -0.359592 -0.277881
v 0.153727 -0.495469 0.450886
v 0.130774 -0.495469 0.303732
v 0.277929 -0.495469 0.280779
v 0.300881 -0.495469 0.427933
v 0.153727 -0.389072 0.450886
v 0.130774 -0.389072 0.303732
v 0.277929 -0.389072 0.280779
v 0.300881 -0.389072 0.427933
v -0.416606 -0.495469 -0.045338
v -0.416606 -0.495469 -0.194272
v -0.267672 -0.495469 -0.194272
v -0.267672 -0.495469 -0.045338
v -0.416606 -0.395652 -0.045338
v -0.416606 -0.395652 -0.194272
v -0.267672 -0.395652 -0.194272
v -0.267672 -0.395652 -0.045338
v -0.378793 -0.495469 0.237564
v -0.480454 -0.495469 0.128724
v -0.371615 -0.495469 0.027062
v -0.269953 -0.495469 0.135902
v -0.378793 -0.365755 0.237564
v -0.480454 -0.365755 0.128724
v -0.371615 -0.365755 0.027062
v -0.269953 -0.365755 0.135902
v -0.134183 -0.495469 -0.320969
v -0.194093 -0.495469 -0.417106
v -0.090445 -0.495469 -0.465129
v -0.030535 -0.495469 -0.368992
v -0.134183 -0.346536 -0.320969
v -0.194093 -0.346536 -0.417106
v -0.090445 -0.346536 -0.465129
v -0.030535 -0.346536 -0.368992
v 0.175251 -0.495469 -0.228071
v 0.133971 -0.495469 -0.371169
v 0.277070 -0.495469 -0.412449
v 0.318350 -0.495469 -0.269350
v 0.175251 -0.380117 -0.228071
v 0.133971 -0.380117 -0.371169
v 0.277070 -0.380117 -0.412449
v 0.318350 -0.380117 -0.269350
v 0.251956 -0.495469 0.058110
v 0.281764 -0.495469 -0.087810
v 0.427684 -0.495469 -0.058002
v 0.397876 -0.495469 0.087918
v 0.251956 -0.422654 0.058110
v 0.281764 -0.422654 -0.087810
v 0.427684 -0.422654 -0.058002
v 0.397876 -0.422654 0.087918
v -0.232717 -0.495469 0.492217
v -0.255669 -0.495469 0.345062
v -0.108515 -0.495469 0.322110
v -0.085563 -0.495469 0.469264
v -0.232717 -0.382356 0.492217
v -0.255669 -0.382356 0.345062
v -0.108515 -0.382356 0.322110
v -0.085563 -0.382356 0.469264
v -0.033985 -0.495469 0.350689
v 0.113554 -0.495469 0.371024
v 0.101929 -0.495469 0.455372
v -0.045610 -0.495469 0.435037
v -0.033985 -0.346536 0.350689
v 0.113554 -0.346536 0.371024
v 0.101929 -0.346536 0.455372
v -0.045610 -0.346536 0.435037
v 0.339073 -0.495469 0.300291
v 0.404643 -0.495469 0.166568
v 0.481092 -0.495469 0.204054
v 0.415522 -0.495469 0.337777
v 0.339073 -0.409221 0.300291
v 0.404643 -0.409221 0.166568
v 0.481092 -0.409221 0.204054
v 0.415522 -0.409221 0.337777
v -0.359990 -0.495469 0.467998
v -0.461166 -0.495469 0.358706
v -0.398683 -0.495469 0.300864
v -0.297508 -0.495469 0.410156
v -0.359990 -0.409788 0.467998
v -0.461166 -0.409788 0.358706
v -0.398683 -0.409788 0.300864
v -0.297508 -0.409788 0.410156
v -0.413457 -0.495469 -0.313766
v -0.368533 -0.495469 -0.455763
v -0.287353 -0.495469 -0.430081
v -0.332277 -0.495469 -0.288084
v -0.413457 -0.409221 -0.313766
v -0.368533 -0.409221 -0.455763
v -0.287353 -0.409221 -0.430081
v -0.332277 -0.409221 -0.288084
v 0.037431 -0.495469 -0.491183
v 0.185487 -0.495469 -0.475036
v 0.176256 -0.495469 -0.390393
v 0.028200 -0.495469 -0.406539
v 0.037431 -0.398994 -0.491183
v 0.185487 -0.398994 -0.475036
v 0.176256 -0.398994 -0.390393
v 0.028200 -0.398994 -0.406539
vt 0.343750 0.203125
vt 0.156250 0.203125
vt 0.156250 0.406250
vt 0.343750 0.406250
vt 0.015625 0.453125
vt 1.000000 0.453125
vt 1.000000 0.250000
vt 0.015625 0.250000
vt 0.015625 0.328125
vt 1.000000 0.328125
vt 1.000000 0.140625
vt 0.015625 0.140625
vt 0.781250 0.250000
vt 0.578125 0.250000
vt 0.578125 0.437500
vt 0.781250 0.437500
vt 0.015625 0.468750
vt 1.000000 0.468750
vt 1.000000 0.265625
vt 0.015625 0.265625
vt 0.015625 0.343750
vt 1.000000 0.343750
vt 0.921875 0.218750
vt 0.718750 0.218750
vt 0.718750 0.421875
vt 0.921875 0.421875
vt 0.000000 0.343750
vt 0.984375 0.343750
vt 0.984375 0.140625
vt 0.000000 0.140625
vt 0.000000 0.312500
vt 1.000000 0.312500
vt 1.000000 0.109375
vt 0.000000 0.109375
vt 0.828125 0.203125
vt 0.625000 0.203125
vt 0.625000 0.406250
vt 0.828125 0.406250
vt 0.015625 0.390625
vt 1.000000 0.390625
vt 1.000000 0.187500
vt 0.015625 0.187500
vt 0.000000 0.296875
vt 1.000000 0.296875
vt 1.000000 0.093750
vt 0.000000 0.093750
vt 0.343750 0.218750
vt 0.140625 0.218750
vt 0.140625 0.406250
vt 0.002609 0.212891
vt 0.989254 0.212891
vt 0.989254 0.012994
vt 0.002609 0.012994
vt 0.010050 0.219323
vt 0.996695 0.219323
vt 0.996695 0.019426
vt 0.010050 0.019426
vt 0.593750 0.234375
vt 0.406250 0.234375
vt 0.406250 0.437500
vt 0.593750 0.437500
vt 0.010050 0.228781
vt 0.996695 0.228781
vt 0.996695 0.028884
vt 0.010050 0.028884
vt 0.005089 0.207467
vt 0.991734 0.207467
vt 0.991734 0.007570
vt 0.005089 0.007570
vt 0.625000 0.187500
vt 0.421875 0.187500
vt 0.421875 0.390625
vt 0.625000 0.390625
vt 0.796875 0.093750
vt 0.593750 0.093750
vt 0.593750 0.296875
vt 0.796875 0.296875
vt 0.640625 0.031250
vt 0.437500 0.031250
vt 0.437500 0.234375
vt 0.640625 0.234375
vt 0.984375 0.031250
vt 0.781250 0.031250
vt 0.781250 0.234375
vt 0.984375 0.234375
vt 0.687500 0.125000
vt 0.484375 0.125000
vt 0.484375 0.328125
vt 0.687500 0.328125
vt 0.328125 0.046875
vt 0.125000 0.046875
vt 0.125000 0.250000
vt 0.328125 0.250000
vt 0.140625 0.781250
vt 0.250000 0.781250
vt 0.250000 0.625000
vt 0.140625 0.625000
vt 0.453125 0.843750
vt 0.531250 0.843750
vt 0.531250 0.718750
vt 0.453125 0.718750
vt 0.421875 0.718750
vt 0.265625 0.718750
vt 0.265625 0.937500
vt 0.421875 0.937500
vt 0.500000 0.609375
vt 0.500000 1.000000
vt 0.734375 1.000000
vt 0.734375 0.609375
vt 1.000000 0.953125
vt 1.000000 0.875000
vt 0.859375 0.875000
vt 0.859375 0.953125
vt 0.750000 0.531250
vt 0.562500 0.531250
vt 0.562500 0.765625
vt 0.750000 0.765625
vt 0.082031 0.968750
vt 0.136719 0.968750
vt 0.136719 0.882812
vt 0.082031 0.882812
vt 0.781250 0.921875
vt 0.781250 0.796875
vt 0.609375 0.796875
vt 0.609375 0.921875
vt 0.359375 0.718750
vt 0.484375 0.718750
vt 0.484375 0.500000
vt 0.359375 0.500000
vt 0.058594 0.882812
vt 0.058594 0.968750
vt 0.117188 0.968750
vt 0.117188 0.882812
vt 0.023438 0.925781
vt 0.078125 0.925781
vt 0.078125 0.839844
vt 0.023438 0.839844
vt 0.578125 0.828125
vt 0.468750 0.828125
vt 0.468750 1.000000
vt 0.578125 1.000000
vt 0.078125 0.750000
vt 0.234375 0.750000
vt 0.234375 0.546875
vt 0.078125 0.546875
vt 0.750000 0.906250
vt 0.953125 0.906250
vt 0.953125 0.546875
vt 0.750000 0.546875
vt 0.406250 0.500000
vt 0.250000 0.500000
vt 0.250000 0.703125
vt 0.406250 0.703125
vt 0.531250 0.890625
vt 0.718750 0.890625
vt 0.718750 0.609375
vt 0.531250 0.609375
vt 0.125000 1.000000
vt 0.250000 1.000000
vt 0.250000 0.828125
vt 0.125000 0.828125
vt 0.515625 0.671875
vt 0.328125 0.671875
vt 0.328125 0.953125
vt 0.515625 0.953125
vt 0.296875 0.984375
vt 0.484375 0.984375
vt 0.484375 0.703125
vt 0.296875 0.703125
vt 0.500000 0.703125
vt 0.609375 0.703125
vt 0.609375 0.500000
vt 0.500000 0.500000
vt 0.082031 0.796875
vt 0.023438 0.796875
vt 0.023438 0.882812
vt 0.703125 1.000000
vt 0.984375 1.000000
vt 0.984375 0.625000
vt 0.703125 0.625000
vt 0.718750 0.687500
vt 0.843750 0.687500
vt 0.843750 0.546875
vt 0.718750 0.546875
vt 0.042969 0.859375
vt 0.101562 0.859375
vt 0.101562 0.773438
vt 0.042969 0.773438
vt 0.031250 0.984375
vt 0.312500 0.984375
vt 0.312500 0.625000
vt 0.031250 0.625000
vt 0.023438 0.968750
g Contained_Fire_Cube.000_Logs-Stone
s off
f 8/1 5/2 6/3 7/4
f 2/5 6/6 5/7 1/8
f 3/9 7/10 6/11 2/12
f 1/13 4/14 3/15 2/16
f 1/17 5/18 8/19 4/20
f 4/21 8/22 7/11 3/12
f 16/23 13/24 14/25 15/26
f 10/27 14/28 13/29 9/30
f 11/31 15/32 14/33 10/34
f 9/35 12/36 11/37 10/38
f 9/39 13/40 16/41 12/42
f 12/43 16/44 15/45 11/46
f 24/47 21/48 22/49 23/4
f 18/50 22/51 21/52 17/53
f 19/54 23/55 22/56 18/57
f 17/58 20/59 19/60 18/61
f 17/62 21/63 24/64 20/65
f 20/66 24/67 23/68 19/69
f 32/70 29/71 30/72 31/73
f 26/50 30/51 29/52 25/53
f 27/54 31/55 30/56 26/57
f 25/74 28/75 27/76 26/77
f 25/62 29/63 32/64 28/65
f 28/66 32/67 31/68 27/69
f 40/78 37/79 38/80 39/81
f 34/50 38/51 37/52 33/53
f 35/54 39/55 38/56 34/57
f 33/82 36/83 35/84 34/85
f 33/62 37/63 40/64 36/65
f 36/66 40/67 39/68 35/69
f 48/86 45/87 46/88 47/89
f 42/50 46/51 45/52 41/53
f 43/54 47/55 46/56 42/57
f 41/90 44/91 43/92 42/93
f 41/62 45/63 48/64 44/65
f 44/66 48/67 47/68 43/69
f 53/94 49/95 50/96 54/97
f 54/98 50/99 51/100 55/101
f 55/102 51/103 52/104 56/105
f 56/106 52/107 49/108 53/109
f 49/110 52/111 51/112 50/113
f 56/114 53/115 54/116 55/117
f 61/118 57/119 58/120 62/121
f 62/122 58/123 59/124 63/125
f 63/126 59/127 60/128 64/129
f 64/130 60/131 57/132 61/133
f 57/134 60/135 59/136 58/137
f 64/138 61/139 62/140 63/141
f 69/118 65/119 66/120 70/121
f 70/142 66/143 67/144 71/145
f 71/146 67/147 68/148 72/149
f 72/130 68/131 65/132 69/133
f 65/134 68/135 67/136 66/137
f 72/150 69/151 70/152 71/153
f 77/118 73/119 74/120 78/121
f 78/154 74/155 75/156 79/157
f 79/158 75/159 76/160 80/161
f 80/130 76/131 73/132 77/133
f 73/134 76/135 75/136 74/137
f 80/162 77/163 78/164 79/165
f 85/118 81/119 82/120 86/121
f 86/166 82/167 83/168 87/169
f 87/170 83/171 84/172 88/173
f 88/130 84/131 81/132 85/133
f 81/134 84/135 83/136 82/137
f 88/174 85/175 86/176 87/121
f 93/118 89/119 90/120 94/121
f 94/177 90/178 91/179 95/180
f 95/181 91/182 92/183 96/184
f 96/130 92/131 89/132 93/133
f 89/134 92/135 91/136 90/137
f 96/174 93/175 94/176 95/121
f 101/118 97/119 98/120 102/121
f 102/185 98/186 99/187 103/188
f 103/189 99/190 100/191 104/192
f 104/130 100/131 97/132 101/133
f 97/134 100/135 99/136 98/137
f 104/174 101/175 102/176 103/121
f 109/118 105/119 106/120 110/121
f 110/185 106/186 107/187 111/188
f 111/193 107/118 108/121 112/176
f 112/130 108/131 105/132 109/133
f 105/134 108/135 107/136 106/137
f 112/174 109/175 110/176 111/121
f 117/118 113/119 114/120 118/121
f 118/185 114/186 115/187 119/188
f 119/193 115/118 116/121 120/176
f 120/130 116/131 113/132 117/133
f 113/134 116/135 115/136 114/137
f 120/174 117/175 118/176 119/121
f 125/118 121/119 122/120 126/121
f 126/185 122/186 123/187 127/188
f 127/193 123/118 124/121 128/176
f 128/130 124/131 121/132 125/133
f 121/134 124/135 123/136 122/137
f 128/174 125/175 126/176 127/121
f 133/118 129/119 130/120 134/121
f 134/185 130/186 131/187 135/188
f 135/193 131/118 132/121 136/176
f 136/130 132/131 129/132 133/133
f 129/134 132/135 131/136 130/137
f 136/174 133/175 134/176 135/121
f 141/118 137/119 138/120 142/121
f 142/185 138/186 139/187 143/188
f 143/193 139/118 140/121 144/176
f 144/130 140/131 137/132 141/133
f 137/134 140/135 139/136 138/137
f 144/174 141/175 142/176 143/121

BIN
sounds/spark.ogg Normal file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 354 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 357 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 782 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 786 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 769 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 718 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 687 B