Add 3 more lua scripts.
							parent
							
								
									c97e3bca0c
								
							
						
					
					
						commit
						6ca5a03008
					
				| @ -0,0 +1,16 @@ | |||||||
|  | -- Deletes ALL items not held by units, buildings or jobs. | ||||||
|  | -- | ||||||
|  | -- Intended solely for lag investigation. | ||||||
|  | 
 | ||||||
|  | local count = 0 | ||||||
|  | 
 | ||||||
|  | for _,v in ipairs(df.global.world.items.all) do | ||||||
|  |     if not (v.flags.in_building or v.flags.construction or v.flags.in_job | ||||||
|  |             or dfhack.items.getGeneralRef(v,df.general_ref_type.UNIT_HOLDER))  then | ||||||
|  |         count = count + 1 | ||||||
|  |         v.flags.forbid = true | ||||||
|  |         v.flags.garbage_collect = true | ||||||
|  |     end | ||||||
|  | end | ||||||
|  | 
 | ||||||
|  | print('Deletion requested: '..count) | ||||||
| @ -0,0 +1,29 @@ | |||||||
|  | -- Remove uninteresting dead units from the unit list. | ||||||
|  | 
 | ||||||
|  | local units = df.global.world.units.active | ||||||
|  | local dwarf_race = df.global.ui.race_id | ||||||
|  | local dwarf_civ = df.global.ui.civ_id | ||||||
|  | local count = 0 | ||||||
|  | 
 | ||||||
|  | for i=#units-1,0,-1 do | ||||||
|  |     local unit = units[i] | ||||||
|  |     local flags1 = unit.flags1 | ||||||
|  |     local flags2 = unit.flags2 | ||||||
|  |     if flags1.dead and unit.race ~= dwarf_race then | ||||||
|  |         local remove = false | ||||||
|  |         if flags2.slaughter then | ||||||
|  |             remove = true | ||||||
|  |         elseif not unit.name.has_name then | ||||||
|  |             remove = true | ||||||
|  |         elseif unit.civ_id ~= dwarf_civ and | ||||||
|  |                not (flags1.merchant or flags1.diplomat) then | ||||||
|  |             remove = true | ||||||
|  |         end | ||||||
|  |         if remove then | ||||||
|  |             count = count + 1 | ||||||
|  |             units:erase(i) | ||||||
|  |         end | ||||||
|  |     end | ||||||
|  | end | ||||||
|  | 
 | ||||||
|  | print('Units removed from active: '..count) | ||||||
| @ -0,0 +1,49 @@ | |||||||
|  | -- Reset item temperature to the value of their tile. | ||||||
|  | 
 | ||||||
|  | local count = 0 | ||||||
|  | local types = {} | ||||||
|  | 
 | ||||||
|  | local function update_temp(item,btemp) | ||||||
|  |     if item.temperature ~= btemp then | ||||||
|  |         count = count + 1 | ||||||
|  |         local tid = item:getType() | ||||||
|  |         types[tid] = (types[tid] or 0) + 1 | ||||||
|  |     end | ||||||
|  |     item.temperature = btemp | ||||||
|  |     item.temperature_fraction = 0 | ||||||
|  | 
 | ||||||
|  |     if item.contaminants then | ||||||
|  |         for _,c in ipairs(item.contaminants) do | ||||||
|  |             c.temperature = btemp | ||||||
|  |             c.temperature_fraction = 0 | ||||||
|  |         end | ||||||
|  |     end | ||||||
|  | 
 | ||||||
|  |     for _,sub in ipairs(dfhack.items.getContainedItems(item)) do | ||||||
|  |         update_temp(sub,btemp) | ||||||
|  |     end | ||||||
|  | 
 | ||||||
|  |     item:checkTemperatureDamage() | ||||||
|  | end | ||||||
|  | 
 | ||||||
|  | local last_frame = df.global.world.frame_counter-1 | ||||||
|  | 
 | ||||||
|  | for _,item in ipairs(df.global.world.items.all) do | ||||||
|  |     if item.flags.on_ground and df.item_actual:is_instance(item) and | ||||||
|  |        item.temp_updated_frame == last_frame then | ||||||
|  |         local pos = item.pos | ||||||
|  |         local block = dfhack.maps.getTileBlock(pos) | ||||||
|  |         if block then | ||||||
|  |             update_temp(item, block.temperature_1[pos.x%16][pos.y%16]) | ||||||
|  |         end | ||||||
|  |     end | ||||||
|  | end | ||||||
|  | 
 | ||||||
|  | print('Items updated: '..count) | ||||||
|  | 
 | ||||||
|  | local tlist = {} | ||||||
|  | for k,_ in pairs(types) do tlist[#tlist+1] = k end | ||||||
|  | table.sort(tlist, function(a,b) return types[a] > types[b] end) | ||||||
|  | for _,k in ipairs(tlist) do | ||||||
|  |     print('    '..df.item_type[k]..':', types[k]) | ||||||
|  | end | ||||||
		Loading…
	
		Reference in New Issue