SHOW:
|
|
- or go back to the newest paste.
| 1 | -- ui_itm_cooking | |
| 2 | -- ponney68 | |
| 3 | --[[ | |
| 4 | Copyright (C) 2012 Alundaio | |
| 5 | This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License-]] | |
| 6 | --]] | |
| 7 | ------------------------------------------------------------------- | |
| 8 | class "load_item" (CUIListBoxItem) | |
| 9 | function load_item:__init(height) super(height) | |
| 10 | self.file_name = "filename" | |
| 11 | ||
| 12 | self:SetTextColor(GetARGB(255, 170, 170, 170)) | |
| 13 | ||
| 14 | self.fn = self:GetTextItem() | |
| 15 | self.fn:SetFont(GetFontLetterica18Russian()) | |
| 16 | self.fn:SetEllipsis(true) | |
| 17 | end | |
| 18 | ||
| 19 | function load_item:__finalize() | |
| 20 | end | |
| 21 | ||
| 22 | ------------------------------------------------------------------- | |
| 23 | class "cooking_ui" (CUIScriptWnd) | |
| 24 | ||
| 25 | function cooking_ui:__init(owner,section) super() | |
| 26 | self.owner = owner | |
| 27 | self.section = section | |
| 28 | ||
| 29 | self.use_parts = alun_utils.read_from_ini(nil,section,"cooking_use_parts","bool",false) | |
| 30 | self.cooking_type = alun_utils.read_from_ini(nil,section,"cooking_type","string","weapon") | |
| 31 | ||
| 32 | self.cooking_only = alun_utils.parse_list(nil,section,"cooking_only",true) | |
| 33 | self.cooking_refuse = alun_utils.parse_list(nil,section,"cooking_refuse",true) | |
| 34 | ||
| 35 | self.parts_include = alun_utils.parse_list(nil,section,"cooking_parts_include",true) | |
| 36 | self.parts_exclude = alun_utils.parse_list(nil,section,"cooking_parts_exclude",true) | |
| 37 | ||
| 38 | self.use_actor_effects = alun_utils.read_from_ini(nil,section,"cooking_use_actor_effects","bool",false) | |
| 39 | ||
| 40 | self:InitControls() | |
| 41 | self:InitCallBacks() | |
| 42 | end | |
| 43 | ||
| 44 | function cooking_ui:__finalize() | |
| 45 | end | |
| 46 | ||
| 47 | function cooking_ui:FillList() | |
| 48 | self.list_box:RemoveAll() | |
| 49 | ||
| 50 | local function fill_list(actor,obj) | |
| 51 | if (obj) and (self.cooking_only and self.cooking_only[obj:section()]) or (self.cooking_refuse == nil) or (self.cooking_refuse[obj:section()] == nil) then | |
| 52 | if (self.cooking_type == "fuel" and alun_utils.item_is_explosive(obj)) then | |
| 53 | ||
| 54 | self:AddItemToList(obj,self.list_box) | |
| 55 | ||
| 56 | end | |
| 57 | end | |
| 58 | end | |
| 59 | ||
| 60 | db.actor:iterate_inventory(fill_list,db.actor) | |
| 61 | end | |
| 62 | ||
| 63 | function cooking_ui:FillPartsList() | |
| 64 | self.list_box_parts:RemoveAll() | |
| 65 | ||
| 66 | if self.list_box:GetSize()==0 then return end | |
| 67 | ||
| 68 | local item = self.list_box:GetSelectedItem() | |
| 69 | if not (item) then | |
| 70 | return | |
| 71 | end | |
| 72 | ||
| 73 | local obj = level.object_by_id(item.item_id) | |
| 74 | local function fill_list(actor,itm) | |
| 75 | if (itm and itm:id() ~= item.item_id) then | |
| 76 | if (self.parts_include and self.parts_include[itm:section()]) or (self.parts_exclude == nil and string.find(obj:section(),itm:section())) or (self.parts_exclude and self.parts_exclude[itm:section()] == nil and string.find(obj:section(),itm:section())) then | |
| 77 | self:AddItemToList(itm,self.list_box_parts,alun_utils.read_from_ini(nil,itm:section(),"float",nil)) | |
| 78 | end | |
| 79 | end | |
| 80 | end | |
| 81 | ||
| 82 | db.actor:iterate_inventory(fill_list,db.actor) | |
| 83 | end | |
| 84 | ||
| 85 | function cooking_ui:InitControls() | |
| 86 | self:SetWndRect (Frect():set(0,0,1024,768)) | |
| 87 | ||
| 88 | self:SetAutoDelete(true) | |
| 89 | ||
| 90 | self.xml = CScriptXmlInit() | |
| 91 | local ctrl | |
| 92 | self.xml:ParseFile ("ui_itm_main.xml")
| |
| 93 | ||
| 94 | ctrl = CUIWindow() | |
| 95 | self.xml:InitWindow ("itm_cooking:file_item:main",0,ctrl)
| |
| 96 | ||
| 97 | self.file_item_main_sz = vector2():set(ctrl:GetWidth(),ctrl:GetHeight()) | |
| 98 | ||
| 99 | self.xml:InitWindow ("itm_cooking:file_item:fn",0,ctrl)
| |
| 100 | self.file_item_fn_sz = vector2():set(ctrl:GetWidth(),ctrl:GetHeight()) | |
| 101 | ||
| 102 | self.xml:InitWindow ("itm_cooking:file_item:fd",0,ctrl)
| |
| 103 | self.file_item_fd_sz = vector2():set(ctrl:GetWidth(),ctrl:GetHeight()) | |
| 104 | ||
| 105 | self.form = self.xml:InitStatic("itm_cooking:form",self)
| |
| 106 | --self.form:SetWndPos(vector2():set(device().width/2-(self.form:GetWidth()+70), device().height/2 - self.form:GetHeight())) | |
| 107 | self.form:SetWndPos(vector2():set(0, 0)) | |
| 108 | ||
| 109 | -- Background for forms | |
| 110 | --self.xml:InitStatic("itm_cooking:form:list_background",self.form)
| |
| 111 | ||
| 112 | if (self.use_parts) then | |
| 113 | --self.xml:InitStatic("itm_cooking:form:list_parts_background",self.form)
| |
| 114 | end | |
| 115 | ||
| 116 | -- Item picture | |
| 117 | self.picture = self.xml:InitStatic("itm_cooking:form:icon",self.form)
| |
| 118 | self.picture_parts = self.xml:InitStatic("itm_cooking:form:icon_parts",self.form)
| |
| 119 | ||
| 120 | -- cooking tool picture | |
| 121 | self.pic = self.xml:InitStatic("itm_cooking:form:icon_tool",self.form)
| |
| 122 | ||
| 123 | local inv_grid_width = alun_utils.read_from_ini(ini,self.section,"inv_grid_width","float",0) | |
| 124 | local inv_grid_height = alun_utils.read_from_ini(ini,self.section,"inv_grid_height","float",0) | |
| 125 | local inv_grid_x = alun_utils.read_from_ini(ini,self.section,"inv_grid_x","float",0) | |
| 126 | local inv_grid_y = alun_utils.read_from_ini(ini,self.section,"inv_grid_y","float",0) | |
| 127 | ||
| 128 | local x1 = inv_grid_x*50 | |
| 129 | local y1 = inv_grid_y*50 | |
| 130 | ||
| 131 | local w = inv_grid_width*50 | |
| 132 | local h = inv_grid_height*50 | |
| 133 | ||
| 134 | local x2 = x1 + w | |
| 135 | local y2 = y1 + h | |
| 136 | ||
| 137 | local w,h = w,h | |
| 138 | if (utils.is_widescreen()) then | |
| 139 | w,h = w/1.5,h/1.2 | |
| 140 | else | |
| 141 | w,h = w/1.3,h/1.3 | |
| 142 | end | |
| 143 | self.pic:InitTexture("ui\\ui_icon_equipment")
| |
| 144 | self.pic:SetTextureRect(Frect():set(x1,y1,x2,y2)) | |
| 145 | self.pic:SetWndSize(vector2():set(w,h)) | |
| 146 | ||
| 147 | if not (self.pic.x) then | |
| 148 | local pos = self.pic:GetWndPos() | |
| 149 | local posform = self.form:GetWndPos() | |
| 150 | self.pic.x = pos.x + posform.x | |
| 151 | self.pic.y = pos.y + posform.y | |
| 152 | end | |
| 153 | ||
| 154 | self.pic:SetWndPos(vector2():set(self.pic.x-w/2, self.pic.y-h/2)) | |
| 155 | ||
| 156 | -- Caption | |
| 157 | self.caption_parts = self.xml:InitTextWnd("itm_cooking:form:caption_parts",self.form)
| |
| 158 | self.caption_cooking = self.xml:InitTextWnd("itm_cooking:form:caption_cooking",self.form)
| |
| 159 | ||
| 160 | -- List Box | |
| 161 | self.xml:InitFrame ("itm_cooking:form:list_frame",self.form)
| |
| 162 | ||
| 163 | self.list_box = self.xml:InitListBox("itm_cooking:form:list",self.form)
| |
| 164 | ||
| 165 | self.list_box:ShowSelectedItem (true) | |
| 166 | self:Register (self.list_box, "list_window") | |
| 167 | ||
| 168 | if (self.use_parts) then | |
| 169 | -- Parts List Box | |
| 170 | self.list_pos = self.list_box:GetWndPos() | |
| 171 | ||
| 172 | self.list_box_parts = self.xml:InitListBox("itm_cooking:form:list_parts",self.form)
| |
| 173 | --self.list_box_parts:SetWndPos(vector2():set(self.list_pos.x+self.list_box:GetWidth()+5, self.list_pos.y)) | |
| 174 | ||
| 175 | local frame = self.xml:InitFrame("itm_cooking:form:list_frame_parts",self.form)
| |
| 176 | --frame:SetWndPos(vector2():set(self.list_pos.x+self.list_box:GetWidth()+5, self.list_pos.y)) | |
| 177 | ||
| 178 | self.list_box_parts:ShowSelectedItem(true) | |
| 179 | self:Register(self.list_box_parts, "list_window_parts") | |
| 180 | else | |
| 181 | --self.form:SetWndSize(vector2():set(self.list_box:GetWidth()+35, self.form:GetHeight())) | |
| 182 | end | |
| 183 | -- Button cooking | |
| 184 | ctrl = self.xml:Init3tButton("itm_cooking:form:btn_cooking", self.form)
| |
| 185 | self:Register (ctrl, "button_cooking") | |
| 186 | ||
| 187 | -- Button Cancel | |
| 188 | ctrl = self.xml:Init3tButton ("itm_cooking:form:btn_cancel", self.form)
| |
| 189 | self:Register (ctrl, "button_back") | |
| 190 | end | |
| 191 | ||
| 192 | function cooking_ui:InitCallBacks() | |
| 193 | self:AddCallback("button_cooking", ui_events.BUTTON_CLICKED, self.OnButton_cooking, self)
| |
| 194 | self:AddCallback("button_back", ui_events.BUTTON_CLICKED, self.OnButton_back_clicked, self)
| |
| 195 | ||
| 196 | self:AddCallback("list_window", ui_events.LIST_ITEM_CLICKED, self.OnListItemClicked, self)
| |
| 197 | self:AddCallback("list_window", ui_events.WINDOW_LBUTTON_DB_CLICK, self.OnListItemDbClicked, self)
| |
| 198 | ||
| 199 | self:AddCallback("list_window_parts", ui_events.LIST_ITEM_CLICKED, self.OnPartsListItemClicked, self)
| |
| 200 | self:AddCallback("list_window_parts", ui_events.WINDOW_LBUTTON_DB_CLICK, self.OnPartsListItemDbClicked, self)
| |
| 201 | end | |
| 202 | ||
| 203 | function cooking_ui:OnPartsListItemClicked() | |
| 204 | if self.list_box_parts:GetSize()==0 then return end | |
| 205 | ||
| 206 | local item = self.list_box_parts:GetSelectedItem() | |
| 207 | if not (item) then | |
| 208 | self.picture_parts:SetTextureRect(Frect():set(0,0,0,0)) | |
| 209 | self.caption_parts:SetText("")
| |
| 210 | return | |
| 211 | end | |
| 212 | ||
| 213 | local se_item = item.item_id and alife():object(item.item_id) | |
| 214 | if (se_item == nil or not db.actor:object(se_item:section_name())) then | |
| 215 | self.list_box_parts:RemoveItem(item) | |
| 216 | return | |
| 217 | end | |
| 218 | ||
| 219 | local sec = se_item:section_name() | |
| 220 | ||
| 221 | local w,h = item.width,item.height | |
| 222 | if (utils.is_widescreen()) then | |
| 223 | w,h = item.width/1.5,item.height/1.2 | |
| 224 | else | |
| 225 | w,h = item.width/1.2,item.height/1.2 | |
| 226 | end | |
| 227 | self.picture_parts:InitTexture("ui\\ui_icon_equipment")
| |
| 228 | self.picture_parts:SetTextureRect(Frect():set(item.x1,item.y1,item.x2,item.y2)) | |
| 229 | self.picture_parts:SetWndSize(vector2():set(w,h)) | |
| 230 | ||
| 231 | if not (self.picture_parts.x) then | |
| 232 | local pos = self.picture_parts:GetWndPos() | |
| 233 | self.picture_parts.x = pos.x | |
| 234 | self.picture_parts.y = pos.y | |
| 235 | end | |
| 236 | ||
| 237 | self.picture_parts:SetWndPos(vector2():set(self.picture_parts.x-w/2, self.picture_parts.y-h/2)) | |
| 238 | ||
| 239 | - | self.caption_parts:SetText("Selected")
|
| 239 | + | self.caption_parts:SetText(string.format("Selected (x%d)",self:GetPartCount(sec)))
|
| 240 | ||
| 241 | end | |
| 242 | ||
| 243 | function cooking_ui:OnPartsListItemDbClicked() | |
| 244 | self:OnButton_cooking() | |
| 245 | end | |
| 246 | ||
| 247 | function cooking_ui:OnListItemClicked() | |
| 248 | if self.list_box:GetSize()==0 then return end | |
| 249 | ||
| 250 | local item = self.list_box:GetSelectedItem() | |
| 251 | ||
| 252 | if not (item) then | |
| 253 | self.picture:SetTextureRect(Frect():set(0,0,0,0)) | |
| 254 | return | |
| 255 | end | |
| 256 | ||
| 257 | local se_item = alife():object(item.item_id) | |
| 258 | if (se_item == nil or not db.actor:object(se_item:section_name())) then | |
| 259 | self.list_box:RemoveItem(item) | |
| 260 | return | |
| 261 | end | |
| 262 | ||
| 263 | local w,h = item.width,item.height | |
| 264 | if (utils.is_widescreen()) then | |
| 265 | w,h = item.width/1.5,item.height/1.2 | |
| 266 | else | |
| 267 | w,h = item.width/1.2,item.height/1.2 | |
| 268 | end | |
| 269 | self.picture:InitTexture("ui\\ui_icon_equipment")
| |
| 270 | self.picture:SetTextureRect(Frect():set(item.x1,item.y1,item.x2,item.y2)) | |
| 271 | self.picture:SetWndSize(vector2():set(w,h)) | |
| 272 | ||
| 273 | if not (self.picture.x) then | |
| 274 | local pos = self.picture:GetWndPos() | |
| 275 | self.picture.x = pos.x | |
| 276 | self.picture.y = pos.y | |
| 277 | end | |
| 278 | ||
| 279 | self.picture:SetWndPos(vector2():set(self.picture.x-w/2, self.picture.y-h/2)) | |
| 280 | - | self.caption_cooking:SetText("Selected")
|
| 280 | + | |
| 281 | self.caption_cooking:SetText(string.format("Selected (x%d)",self:GetFuelCharges(se_item)))
| |
| 282 | ||
| 283 | if (self.use_parts) then | |
| 284 | self.picture_parts:SetTextureRect(Frect():set(0,0,0,0)) | |
| 285 | self.caption_parts:SetText("")
| |
| 286 | self:FillPartsList() | |
| 287 | end | |
| 288 | end | |
| 289 | ||
| 290 | function cooking_ui:OnButton_back_clicked() | |
| 291 | alife():create(self.section,db.actor:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id()) | |
| 292 | self:HideDialog() | |
| 293 | end | |
| 294 | ||
| 295 | function cooking_ui:OnKeyboard(dik, keyboard_action) | |
| 296 | CUIScriptWnd.OnKeyboard(self,dik,keyboard_action) | |
| 297 | if (keyboard_action == ui_events.WINDOW_KEY_PRESSED) then | |
| 298 | if (dik == DIK_keys.DIK_RETURN) then | |
| 299 | ||
| 300 | elseif (dik == DIK_keys.DIK_ESCAPE) then | |
| 301 | self:OnButton_back_clicked() | |
| 302 | end | |
| 303 | end | |
| 304 | return true | |
| 305 | end | |
| 306 | ||
| 307 | - | function cooking_ui:GetPartCount(part) |
| 307 | + | |
| 308 | function cooking_ui:GetPartCount(part_name) | |
| 309 | local cnt = 0 | |
| 310 | ||
| 311 | local function countparts(npc, item) | |
| 312 | if item:section() == part_name then | |
| 313 | cnt = cnt + 1 | |
| 314 | end | |
| 315 | end | |
| 316 | ||
| 317 | db.actor:iterate_inventory(countparts, nil) | |
| 318 | ||
| 319 | alun_utils.printf("Counted %d %s",cnt,part_name);
| |
| 320 | ||
| 321 | return cnt | |
| 322 | end | |
| 323 | ||
| 324 | function cooking_ui:GetFuelCharges(fuel_item) | |
| 325 | -- fuel_name begins with fuel type, and optionally has a 2-8 on the end indicating reduced charges | |
| 326 | local fuel_name = fuel_item:section_name() | |
| 327 | local last_char = fuel_name:byte(fuel_name:len()) | |
| 328 | local base_charges = 1 | |
| 329 | local charge_adjust = 0 | |
| 330 | ||
| 331 | if(last_char > 49) and (last_char < 57) then | |
| 332 | charge_adjust = last_char - 49 | |
| 333 | end | |
| 334 | ||
| 335 | if(alun_utils.startsWith(fuel_name,"kerosene")) then base_charges = 5 end | |
| 336 | if(alun_utils.startsWith(fuel_name,"charcoal")) then base_charges = 3 end | |
| 337 | if(alun_utils.startsWith(fuel_name,"explo_jerrycan_fuel")) then base_charges = 8 end | |
| 338 | if(alun_utils.startsWith(fuel_name,"explo_balon_gas")) then base_charges = 8 end | |
| 339 | ||
| 340 | return base_charges - charge_adjust | |
| 341 | end | |
| 342 | ||
| 343 | function cooking_ui:MakeFuelCharges(fuel_item,charges) | |
| 344 | -- fuel_name begins with fuel type, and optionally has a 2-8 on the end indicating reduced charges, or _empty | |
| 345 | local fuel_name = fuel_item:section_name() | |
| 346 | local last_char = fuel_name:byte(fuel_name:len()) | |
| 347 | local base_charges = 1 | |
| 348 | ||
| 349 | if(last_char > 49) and (last_char < 57) then | |
| 350 | fuel_name = fuel_name:sub(1,fuel_name:len()-1) | |
| 351 | end | |
| 352 | ||
| 353 | if(fuel_name == "kerosene") then base_charges = 5 end | |
| 354 | if(fuel_name == "charcoal") then base_charges = 3 end | |
| 355 | if(fuel_name == "explo_jerrycan_fuel") then base_charges = 8 end | |
| 356 | if(fuel_name == "explo_balon_gas") then base_charges = 8 end | |
| 357 | ||
| 358 | if (charges > 0) then | |
| 359 | fuel_name = string.format("%s%d",fuel_name,base_charges + 1 - charges)
| |
| 360 | else | |
| 361 | fuel_name = string.format("%s%s",fuel_name,"_empty")
| |
| 362 | end | |
| 363 | ||
| 364 | alife():create(fuel_name, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) | |
| 365 | end | |
| 366 | ||
| 367 | function cooking_ui:ConsumeFuel(fuel_item, charges) | |
| 368 | local c = self:GetFuelCharges(fuel_item) - charges | |
| 369 | local fuel_name = fuel_item:section_name() | |
| 370 | ||
| 371 | if(c > 0 or (alun_utils.startsWith(fuel_name,"explo_jerrycan_fuel") or alun_utils.startsWith(fuel_name,"explo_balon_gas"))) then | |
| 372 | self:MakeFuelCharges(fuel_item,c) | |
| 373 | end | |
| 374 | ||
| 375 | alife():release(fuel_item,true) | |
| 376 | end | |
| 377 | ||
| 378 | function cooking_ui:ConsumePart(part, count) | |
| 379 | local part_name = part:section_name() | |
| 380 | local cnt = 0 | |
| 381 | ||
| 382 | local function consumeparts(npc, item) | |
| 383 | if cnt < count and item:section() == part_name then | |
| 384 | alife():release(alife():object(item:id()),true) | |
| 385 | cnt = cnt + 1 | |
| 386 | end | |
| 387 | end | |
| 388 | ||
| 389 | db.actor:iterate_inventory(consumeparts, nil) | |
| 390 | end | |
| 391 | ||
| 392 | function cooking_ui:CreateMeal(part_name,count) | |
| 393 | for i=1,count,1 do | |
| 394 | alife():create(part_name, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) | |
| 395 | end | |
| 396 | end | |
| 397 | -- end Drengor - multi-cook | |
| 398 | ||
| 399 | function cooking_ui:OnButton_cooking() | |
| 400 | index = self.list_box_parts:GetSelectedIndex() | |
| 401 | if (index ~= -1) then | |
| 402 | item = self.list_box_parts:GetItemByIndex(index) | |
| 403 | local se_parts = item and item.item_id and alife():object(item.item_id) | |
| 404 | if not (se_parts) then | |
| 405 | return | |
| 406 | end | |
| 407 | end | |
| 408 | ||
| 409 | local index = self.list_box:GetSelectedIndex() | |
| 410 | if index == -1 then return end | |
| 411 | local item = self.list_box:GetItemByIndex(index) | |
| 412 | ||
| 413 | local obj = item and level.object_by_id(item.item_id) | |
| 414 | - | item = self.list_box_parts:GetItemByIndex(index) |
| 414 | + | |
| 415 | - | local se_parts = item and item.item_id and alife():object(item.item_id) |
| 415 | + | |
| 416 | - | local sec = se_parts:section_name() |
| 416 | + | |
| 417 | return | |
| 418 | - | -- Drengor - multi-cook |
| 418 | + | |
| 419 | - | local part_count = self:GetPartCount(se_parts) |
| 419 | + | |
| 420 | - | local fuel_charges = self:GetFuelCharges(se_obj) |
| 420 | + | |
| 421 | - | local cook_count = 1 |
| 421 | + | |
| 422 | index = self.list_box_parts:GetSelectedIndex() | |
| 423 | - | if(part_count >= fuel_charges) then cook_count = fuel_charges end |
| 423 | + | |
| 424 | - | if(fuel_charges > part_count) then cook_count = part_count end |
| 424 | + | |
| 425 | - | -- end Drengor - multi-cook |
| 425 | + | local sec = se_parts:section_name() |
| 426 | ||
| 427 | if (se_parts) then | |
| 428 | ||
| 429 | -- Drengor - multi-cook | |
| 430 | local part_count = self:GetPartCount(sec) | |
| 431 | local fuel_charges = self:GetFuelCharges(se_obj) | |
| 432 | - | index = self.list_box_parts:GetSelectedIndex() |
| 432 | + | local cook_count = part_count |
| 433 | ||
| 434 | if(part_count >= fuel_charges) then cook_count = fuel_charges end | |
| 435 | -- end Drengor - multi-cook | |
| 436 | ||
| 437 | - | local sec = se_parts:section_name() |
| 437 | + | |
| 438 | if self.section =="fieldcooker" then | |
| 439 | alife():create("fieldcooker", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())
| |
| 440 | end | |
| 441 | if self.section =="wood_stove" then | |
| 442 | alife():create("wood_stove", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())
| |
| 443 | end | |
| 444 | -- End ponney68 | |
| 445 | ||
| 446 | -- Drengor - multi-cook | |
| 447 | -- mutant_part_tushkano_meat | |
| 448 | if(sec=="mutant_part_tushkano_meat")then self:CreateMeal("meat_tushkano",cook_count) end
| |
| 449 | -- mutant_part_flesh_meat | |
| 450 | if(sec=="mutant_part_flesh_meat")then self:CreateMeal("meat_flesh",cook_count) end
| |
| 451 | -- mutant_part_boar_chop | |
| 452 | if(sec=="mutant_part_boar_chop")then self:CreateMeal("meat_boar",cook_count) end
| |
| 453 | -- mutant_part_dog_meat | |
| 454 | if(sec=="mutant_part_dog_meat")then self:CreateMeal("meat_dog",cook_count) end
| |
| 455 | -- mutant_part_psevdodog_meat | |
| 456 | if(sec=="mutant_part_psevdodog_meat")then self:CreateMeal("meat_pseudodog",cook_count) end
| |
| 457 | -- mutant_part_krovosos_meat | |
| 458 | if(sec=="mutant_part_krovosos_meat")then self:CreateMeal("meat_bloodsucker",cook_count) end
| |
| 459 | -- mutant_part_snork_hand | |
| 460 | if(sec=="mutant_part_snork_hand")then self:CreateMeal("meat_snork",cook_count) end
| |
| 461 | -- mutant_part_chimera_meat | |
| 462 | if(sec=="mutant_part_chimera_meat")then self:CreateMeal("meat_chimera",cook_count) end
| |
| 463 | -- mutant_part_crow_beak | |
| 464 | if(sec=="mutant_part_crow_beak")then self:CreateMeal("drink_crow",cook_count) end
| |
| 465 | ||
| 466 | self:ConsumeFuel(se_obj,cook_count) | |
| 467 | self:ConsumePart(se_parts,cook_count) | |
| 468 | -- end Drengor - multi-cook | |
| 469 | end | |
| 470 | end | |
| 471 | end | |
| 472 | ||
| 473 | self:HideDialog() | |
| 474 | ||
| 475 | if (self.use_actor_effects and actor_effects) then | |
| 476 | actor_effects.use_item(self.section.."_dummy") | |
| 477 | level_weathers.get_weather_manager():forced_weather_change() | |
| 478 | end | |
| 479 | end | |
| 480 | ||
| 481 | function cooking_ui:AddItemToList(item,listbox) | |
| 482 | ||
| 483 | local _itm = load_item(self.file_item_main_sz.y) | |
| 484 | local sec = item and item:section() | |
| 485 | local inv_name = item and game.translate_string(alun_utils.read_from_ini(nil,sec,"inv_name","string","error")) or "none" | |
| 486 | ||
| 487 | _itm:SetWndSize (self.file_item_main_sz) | |
| 488 | ||
| 489 | _itm.fn:SetWndPos(vector2():set(0,0)) | |
| 490 | _itm.fn:SetWndSize (self.file_item_fn_sz) | |
| 491 | _itm.fn:SetText (inv_name) | |
| 492 | ||
| 493 | if (item) then | |
| 494 | _itm.item_id = item:id() | |
| 495 | ||
| 496 | local inv_grid_width = alun_utils.read_from_ini(ini,sec,"inv_grid_width","float",0) | |
| 497 | local inv_grid_height = alun_utils.read_from_ini(ini,sec,"inv_grid_height","float",0) | |
| 498 | local inv_grid_x = alun_utils.read_from_ini(ini,sec,"inv_grid_x","float",0) | |
| 499 | local inv_grid_y = alun_utils.read_from_ini(ini,sec,"inv_grid_y","float",0) | |
| 500 | ||
| 501 | _itm.x1 = inv_grid_x*50 | |
| 502 | _itm.y1 = inv_grid_y*50 | |
| 503 | ||
| 504 | _itm.width = inv_grid_width*50 | |
| 505 | _itm.height = inv_grid_height*50 | |
| 506 | ||
| 507 | _itm.x2 = _itm.x1 + _itm.width | |
| 508 | _itm.y2 = _itm.y1 + _itm.height | |
| 509 | end | |
| 510 | ||
| 511 | --[[ | |
| 512 | _itm.picture = self.xml:InitStatic("itm_cooking:form:picture",self.form)
| |
| 513 | _itm.picture:InitTexture("ui\\ui_icon_equipment")
| |
| 514 | _itm.picture:SetTextureRect(Frect():set(_itm.x1,_itm.y1,_itm.x2,_itm.y2)) | |
| 515 | _itm.picture:SetWndSize(vector2():set(inv_grid_width*50,inv_grid_height*50)) | |
| 516 | --]] | |
| 517 | ||
| 518 | listbox:AddExistingItem(_itm) | |
| 519 | end |