~fossgalaxy/adastra/github-track

« back to all changes in this revision

Viewing changes to src/adastra/client/SectorModel.java

  • Committer: Joseph Walton-Rivers
  • Date: 2011-05-18 20:28:37 UTC
  • Revision ID: git-v1:fc4450529b286ffb87b351c478d3a39135d91d8f
UIĀ andĀ movement

Show diffs side-by-side

added added

removed removed

Lines of Context:
7
7
import adastra.engine.Asset;
8
8
import adastra.engine.Sector;
9
9
import adastra.engine.AbilityI;
 
10
import adastra.engine.CompositeEvent;
 
11
import adastra.engine.EventI;
10
12
import adastra.engine.SectorListener;
11
13
import java.awt.Point;
12
14
import java.util.ArrayList;
25
27
    private AbilityI selectedAbility;
26
28
    private Map<String, AbilityI> abilies;
27
29
    private List<SectorModelListener> listeners;
 
30
    private CompositeEvent events;
 
31
    private boolean compostite;
28
32
  
29
33
    public SectorModel(){
30
34
        this.selectedSector = null;
32
36
        this.selectedAbility = null;
33
37
        this.abilies = new HashMap<String, AbilityI>();
34
38
        this.listeners = new ArrayList<SectorModelListener>();
 
39
        this.compostite = false;
35
40
    }
36
41
    
37
42
    public void addSectorListener(SectorModelListener l){
55
60
    public void setAsset(Asset a){
56
61
        this.selectedAsset = a;
57
62
        setAbility(null);
 
63
        events = null;
58
64
        abilies.clear();
59
65
        
60
66
        //TODO add player support
79
85
            this.selectedAbility = null;
80
86
        }
81
87
    }
82
 
    
 
88
 
 
89
    public void toggleCompostite(){
 
90
        if(selectedAsset == null){
 
91
            return;
 
92
        }
 
93
 
 
94
        if(compostite){
 
95
            compostite = false;
 
96
            events = null;
 
97
        }else{
 
98
            compostite = true;
 
99
            events = new CompositeEvent(selectedAsset, this);
 
100
            selectedAsset.setEvent(events);
 
101
        }
 
102
        fireOrdersChanged();
 
103
    }
 
104
 
83
105
    public void giveOrder(Point p){
84
106
        if(selectedAbility != null){
85
 
            selectedAsset.setEvent(selectedAbility.fireEvent(selectedAsset, p));
 
107
            EventI event = selectedAbility.fireEvent(selectedAsset, p);
 
108
            if(compostite){
 
109
                events.addEvent(event);
 
110
                selectedAsset.setEvent(events);
 
111
            }else{
 
112
                selectedAsset.setEvent(event);
 
113
            }
86
114
            fireOrdersChanged();
87
115
        }
88
116
    }
106
134
        }
107
135
    }
108
136
    
109
 
    protected void fireOrdersChanged(){
 
137
    public void fireOrdersChanged(){
110
138
                for(SectorModelListener l : listeners){
111
139
            l.ordersChanged();
112
140
        }