Actions

Template

JourneyMaterials: Difference between revisions

From Dune Awakening DB

Created page with "<includeonly><!-- Template:JourneyMaterials (Optimized) --> <!-- Get and aggregate all materials for this journey --> {{#get_external_data:source=externaldb |from=data_journey_task_components jtc |join on=data_journey_tasks.id=jtc.task_id,data_journey_objectives.id=data_journey_tasks.objective_id |data=Component=jtc.component_name,Type=jtc.component_type,Qty=SUM(jtc.qty_needed) |cache=yes |where=data_journey_objectives.journey_id={{{id|{{{1|}}}}}} |group by=jtc.com..."
 
mNo edit summary
Line 1: Line 1:
<includeonly><!-- Template:JourneyMaterials (Optimized) -->
<includeonly><!-- Template:JourneyMaterials (Tiered Display) -->
<!-- Get and aggregate all materials for this journey -->
<!-- Get materials from the tiered view -->
{{#get_external_data:source=externaldb
{{#get_external_data:source=externaldb
  |from=data_journey_task_components jtc
  |from=vw_recipe_inputs_by_level v
  |join on=data_journey_tasks.id=jtc.task_id,data_journey_objectives.id=data_journey_tasks.objective_id
  |join on=data_journey_task_components.component_name=v.root_item,data_journey_tasks.id=data_journey_task_components.task_id,data_journey_objectives.id=data_journey_tasks.objective_id
  |data=Component=jtc.component_name,Type=jtc.component_type,Qty=SUM(jtc.qty_needed)
  |data=Level=v.level,ItemLabel=v.item_label,TotalQty=v.total_qty,RootItem=v.root_item
  |cache=yes
  |cache=yes
  |where=data_journey_objectives.journey_id={{{id|{{{1|}}}}}}
  |where=data_journey_objectives.journey_id={{{id|{{{1|}}}}}}
  |group by=jtc.component_name, jtc.component_type
  |group by=v.root_item,v.level,v.item_label,v.total_qty
  |order by=jtc.component_name
  |order by=v.root_item,v.level,v.item_label
}}
}}


<!-- Count total materials -->
<div class="materials-container">
{{#vardefine:mat_count|0}}
<!-- Initialize variables -->
{{#for_external_table:|{{#vardefine:mat_count|{{#expr:{{#var:mat_count}}+1}}}}}}
{{#vardefine:current_level|0}}
{{#vardefine:tier_open|false}}


<div class="materials-progress">
<!-- Loop through materials -->
     <span class="materials-progress-text">Materials Collected</span>
{{#for_external_table:|
    <span class="materials-progress-count">0/{{#var:mat_count}}</span>
    <!-- Check if we need to start a new tier -->
    {{#ifeq:{{{Level}}}|{{#var:current_level}}||
        <!-- Close previous tier if open -->
        {{#ifeq:{{#var:tier_open}}|true|</div>|}}
       
        <!-- Start new tier -->
        <div class="materials-tier level-{{{Level}}}">
            <div class="tier-header">{{#switch:{{{Level}}}
                |1=Direct Materials Required
                |2=Components for Level 1 Materials 
                |3=Base Resources Needed
                |#default=Level {{{Level}}} Materials
            }}</div>
        {{#vardefine:tier_open|true}}
        {{#vardefine:current_level|{{{Level}}}}}
    }}
   
     <!-- Display material -->
    <div class="material-item">
        <span class="material-icon">
            {{#ifexist:File:{{#replace:{{{ItemLabel}}}| |_}}_-_Icon.png
            |[[File:{{#replace:{{{ItemLabel}}}| |_}}_-_Icon.png|20px|link=]]
            |
            }}
        </span>
        <span class="material-name">{{{ItemLabel}}}</span>
        <span class="material-qty">{{{TotalQty}}}</span>
    </div>
}}
 
<!-- Close last tier -->
{{#ifeq:{{#var:tier_open}}|true|</div>|}}
 
<!-- Summary -->
<div class="materials-summary">
    <p>Materials are shown in tiers. Level 1 are direct requirements, subsequent levels show components needed to craft those items.</p>
</div>
</div>
<div class="materials-list">
    <div class="material-category">
        <div class="material-category-title">Required Materials</div>
        {{#vardefine:mat_index|0}}
        {{#for_external_table:|
            <div class="material-item" data-material-index="{{#var:mat_index}}">
                <div class="material-checkbox"></div>
                <div class="material-icon">
                    {{#ifexist:File:{{#replace:{{{Component}}}| |_}}_-_Icon.png
                    |[[File:{{#replace:{{{Component}}}| |_}}_-_Icon.png|20px|link=]]
                    |⚙️
                    }}
                </div>
                <div class="material-name">[[{{{Component}}}]]</div>
                <div class="material-qty">{{{Qty}}}</div>
            </div>
            {{#vardefine:mat_index|{{#expr:{{#var:mat_index}}+1}}}}
        }}
    </div>
</div>
</div>
</includeonly><noinclude>
</includeonly><noinclude>
{{Documentation}}
{{Documentation}}
</noinclude>
</noinclude>

Revision as of 01:34, 31 May 2025