-- настраиваемые параметры timer,first_timer - время через которое потухнет печь и надо рубить дрова,
-- amount - кол-во повторений цикла топки
require( "scripts/game/deftasks.lua" );
require( "scripts/game/deftime.lua" );
-- class уровень
GameObject = {
-- основные параметры
    Params = {
        ID="house";
        image="house1",
        width=3;
        height=4;
        GridData = { 
            1, 1, 1, 1,
            1, 1, 1, 1,            
            1, 1, 1, 1,
            1, 1, 1, 1         
        };
        RandomTasks=0;
    };
    ActivePoints = { 
        heating = { 
                   { {}, 4,1,0,  0,  4,1,0 };
                   }; 
    };
    Objects = {};
    -- перечисление всех задач для обьекта
    Tasks = {
        --smoke_run = { FuncName="smokeRunTaskExecute",  skill_up = 0, not_need_action=1 };   
        --heating = { FuncName="heatingTaskExecute",  skill_up = 0, not_need_action=1 };   
    };
    -- перечисление всех триггеров для обьекта
    Triggers = {
        --need_firewood = {FuncName="NeedFirewoodTriger", NotRunWhen={}, timer={ 55 }, first_timer={ 35 }, amount=99, cur_value=0 }
    };
    --задачи которые начинают выполнятся после создания обьекта
    InitActiveTasks = {};
    --задачи которые обьект ожидает после создания обьекта
    InitExpectedTasks = {};
};
function GameObject:Get()
    return self;
end
function GetParams()
    aObj = GameObject:Get();   
    return aObj.Params;
end

function smokeRunTaskExecute()
--    local aTrigger = aObject.Triggers.need_firewood;
--    aTrigger.under_task = 0; --запустим триггер 
--    CPP_SetAnimState("normal"); --закурим
--    aTrigger.amount = aTrigger.amount - 1;
    return 0;
end

function heatingTaskExecute()
--    local aTrigger = aObject.Triggers.need_firewood;
--    aTrigger.under_task = 0; --запустим триггер 
--    CPP_SetAnimState("normal"); --закурим
--    aTrigger.amount = aTrigger.amount - 1;
--    CPP_RecursiveRun("warming_personage",0); --персонажи согрелись
    return 0;
end

function NeedFirewoodTriger()
--[[
    aObject = GameObject:Get();
    local aTrigger = aObject.Triggers.need_firewood;
    if (aTrigger.under_task == 1) then return; end
    if (aTrigger.amount <= 0) then return; end
    if ((not aTrigger.cur_value) or (aTrigger.cur_value == 0)) then
        aTrigger.cur_value = GetTriggerTimerRand(aTrigger);
        return;
    end
    aTrigger.cur_value = aTrigger.cur_value - 1;
    if (aTrigger.cur_value <= 0) then
        aTrigger.cur_value = 0;
        -- когда доступен триггер не должен работать
        aTrigger.under_task = 1;
        -- надо бы дров нарубить, прогорели поди
        CPP_OtherObjPutOnTopExpectedTasks("chopping","hackfirewood",1);
        CPP_SetAnimState("no_smoking");
        CPP_RecursiveRun("freezing_personage",0); --персонажи замерзли
    end
--]]
end

