1
2
3
4
5
6 package cz.cuni.amis.pogamut.udk.t3dgenerator.elements.kismet;
7
8 import cz.cuni.amis.pogamut.unreal.t3dgenerator.annotations.UnrealChildCollection;
9 import cz.cuni.amis.pogamut.unreal.t3dgenerator.annotations.UnrealProperty;
10 import java.util.ArrayList;
11 import java.util.Collection;
12 import java.util.List;
13
14
15
16
17
18 public class Sequence extends AbstractKismetObject{
19
20 @UnrealProperty
21 @UnrealChildCollection()
22 private List<AbstractKismetObject> sequenceObjects;
23
24 public Sequence(String[] inputLinkNames, String[] outputLinkNames, String[] variableLinkNames) {
25 this("Engine.Default__Sequence",inputLinkNames, outputLinkNames, variableLinkNames);
26 sequenceObjects = new ArrayList<AbstractKismetObject>();
27 }
28
29 public Sequence(String archetypeName, String[] inputLinkNames, String[] outputLinkNames, String[] variableLinkNames) {
30 super("Sequence", archetypeName, inputLinkNames, outputLinkNames, variableLinkNames);
31
32 for(int i = 0; i < inputLinkNames.length; i++){
33 getInputLink(inputLinkNames[i]).setDescription(inputLinkNames[i]);
34 }
35 for(int i = 0; i < outputLinkNames.length; i++){
36 getOutputLink(outputLinkNames[i]).setDescription(outputLinkNames[i]);
37 }
38 for(int i = 0; i < variableLinkNames.length; i++){
39 getVariableLink(variableLinkNames[i]).setDescription(variableLinkNames[i]);
40 }
41 }
42
43 public void addSequenceObject(AbstractKismetObject object){
44 if(object.getParentSequence() != null){
45 throw new IllegalArgumentException("Object can be inserted to a sequence only once.");
46 }
47 object.setParentSequence(this);
48 sequenceObjects.add(object);
49 }
50
51 public void addSequenceObjects(Collection<? extends AbstractKismetObject> objects){
52 for(AbstractKismetObject obj : objects){
53 addSequenceObject(obj);
54 }
55 }
56
57 public List<AbstractKismetObject> getSequenceObjects() {
58 return sequenceObjects;
59 }
60
61
62
63
64 }