dfhack/plugins/ruby/job.rb

36 lines
1.1 KiB
Ruby

2012-06-24 09:30:26 -06:00
module DFHack
class << self
# link a job to the world
2017-11-24 22:59:59 -07:00
# allocate & set job.id, allocate a JobListLink, link to job & world.jobs.list
2012-06-24 09:30:26 -06:00
def job_link(job)
2017-11-24 22:59:59 -07:00
lastjob = world.jobs.list
2012-06-24 09:30:26 -06:00
lastjob = lastjob.next while lastjob.next
joblink = JobListLink.cpp_new
joblink.prev = lastjob
joblink.item = job
job.list_link = joblink
job.id = df.job_next_id
df.job_next_id += 1
lastjob.next = joblink
end
# attach an item to a job, flag item in_job
def job_attachitem(job, item, role=:Hauled, filter_idx=-1)
if role != :TargetContainer
item.flags.in_job = true
end
itemlink = SpecificRef.cpp_new
itemlink.type = :JOB
itemlink.job = job
item.specific_refs << itemlink
joblink = JobItemRef.cpp_new
joblink.item = item
joblink.role = role
joblink.job_item_idx = filter_idx
job.items << joblink
end
end
end