-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathFactory.java
More file actions
153 lines (120 loc) · 7.61 KB
/
Factory.java
File metadata and controls
153 lines (120 loc) · 7.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
import java.util.*;
import processing.core.PImage;
/**
* This class contains the creation logic for Actions and Entities
*/
public final class Factory {
private static final double TREE_ANIMATION_MAX = 0.600;
private static final double TREE_ANIMATION_MIN = 0.050;
private static final double TREE_ACTION_MAX = 1.400;
private static final double TREE_ACTION_MIN = 1.000;
private static final int TREE_HEALTH_MAX = 3;
private static final int TREE_HEALTH_MIN = 1;
private static final double SAPLING_ACTION_ANIMATION_PERIOD = 1.000; // have to be in sync since grows and gains health at same time
private static final int SAPLING_HEALTH_LIMIT = 5;
//new variables for project 4
private static final double BABYCOW_ACTION_ANIMATION_PERIOD = 1.000;
private static final int BABYCOW_HEALTH_LIMIT = 5;
private static final double BABYPIG_ACTION_ANIMATION_PERIOD = 1.000;
private static final int BABYPIG_HEALTH_LIMIT = 5;
private static final double GROWN_COW_ANIMATION_MAX = 0.600;
private static final double GROWN_COW_ACTION_MAX = 1.400;
private static final int GROWN_COW_HEALTH_MAX = 3;
private static final double GROWN_PIG_ANIMATION_MAX = 0.600;
private static final double GROWN_PIG_ACTION_MAX = 1.400;
private static final int GROWN_PIG_HEALTH_MAX = 3;
public static final int FARMER_ACTION_PERIOD = 0;
public static final int FARMER_ANIMATION_PERIOD = 1;
public static final int FARMER_LIMIT = 1;
public static final int MAX_WOLVES = 5;
public static Action createAnimationAction(AnimationEntity entity, int repeatCount) {
return new Animation(entity, repeatCount);
}
public static Action createActivityAction(ActivityEntity entity, WorldModel world, ImageStore imageStore) {
return new Activity(entity, world, imageStore);
}
public static House createHouse(String id, Point position, List<PImage> images) {
return new House(id, position, images);
}
public static Obstacle createObstacle(String id, Point position, double animationPeriod, List<PImage> images) {
return new Obstacle(id, position, animationPeriod, images);
}
public static Tree createTree(String id, Point position, double actionPeriod, double animationPeriod, int health, List<PImage> images) {
return new Tree(id, position, images, animationPeriod, actionPeriod, health, 0);
}
public static Tree createTreeWithDefaults(String id, Point position, List<PImage> images) {
return new Tree(id, position, images, Factory.getNumFromRange(TREE_ACTION_MAX, TREE_ACTION_MIN), Factory.getNumFromRange(TREE_ANIMATION_MAX, TREE_ANIMATION_MIN), Factory.getIntFromRange(TREE_HEALTH_MAX, TREE_HEALTH_MIN), 0);
}
private static int getIntFromRange(int max, int min) {
Random rand = new Random();
return min + rand.nextInt(max-min);
}
private static double getNumFromRange(double max, double min) {
Random rand = new Random();
return min + rand.nextDouble() * (max - min);
}
public static Stump createStump(String id, Point position, List<PImage> images) {
return new Stump(id, position, images);
}
// health starts at 0 and builds up until ready to convert to Tree
public static Sapling createSapling(String id, Point position, List<PImage> images) {
return new Sapling(id, position, images, SAPLING_ACTION_ANIMATION_PERIOD, SAPLING_ACTION_ANIMATION_PERIOD, 0, SAPLING_HEALTH_LIMIT);
}
public static Fairy createFairy(String id, Point position, double actionPeriod, double animationPeriod, List<PImage> images) {
return new Fairy(id, position, animationPeriod, actionPeriod, images);
}
// need resource count, though it always starts at 0
public static PersonSearching createPersonSearching(String id, Point position, double actionPeriod, double animationPeriod, int resourceLimit, List<PImage> images) {
return new PersonSearching(id, position, animationPeriod, actionPeriod, resourceLimit, images);
}
// don't technically need resource count ... full
public static PersonFull createPersonFull(String id, Point position, double actionPeriod, double animationPeriod, int resourceLimit, List<PImage> images) {
return new PersonFull(id, position, animationPeriod, actionPeriod, resourceLimit, images);
}
//new create functions for project 4
public static BabyCow createBabyCow(String id, Point position, List<PImage> images) {
return new BabyCow(id, position, images, BABYCOW_ACTION_ANIMATION_PERIOD, BABYCOW_ACTION_ANIMATION_PERIOD, 0, BABYCOW_HEALTH_LIMIT);
}
public static BabyPig createBabyPig(String id, Point position, List<PImage> images) {
return new BabyPig(id, position, images, BABYPIG_ACTION_ANIMATION_PERIOD, BABYPIG_ACTION_ANIMATION_PERIOD, 0, BABYPIG_HEALTH_LIMIT);
}
public static Steak createSteak(String id, Point position, List<PImage> images) {
return new Steak(id, position, images);
}
public static GrownCow createGrownCowWithDefaults(String id, Point position, List<PImage> images) {
return new GrownCow(id, position, images, Factory.GROWN_COW_ACTION_MAX, Factory.GROWN_COW_ANIMATION_MAX, Factory.GROWN_COW_HEALTH_MAX, 0);
}
public static Bacon createBacon(String id, Point position, List<PImage> images) {
return new Bacon(id, position, images);
}
public static GrownPig createGrownPigWithDefaults(String id, Point position, List<PImage> images) {
return new GrownPig(id, position, images, Factory.GROWN_PIG_ACTION_MAX, Factory.GROWN_PIG_ANIMATION_MAX, Factory.GROWN_PIG_HEALTH_MAX, 0);
}
public static FarmerSearching createFarmerSearching(String id, Point position, double animationPeriod, double actionPeriod, int resourceLimit, List<PImage> images) {
return new FarmerSearching(id, position, animationPeriod, actionPeriod, resourceLimit, images);
}
public static FarmerFull createFarmerFull(String id, Point position, double animationPeriod, double actionPeriod, int resourceLimit, List<PImage> images) {
return new FarmerFull(id, position, animationPeriod, actionPeriod, resourceLimit, images);
}
public static WolfSearching createWolfSearching(String id, Point position, double actionPeriod, double animationPeriod, int resourceLimit, List<PImage> images) {
return new WolfSearching(id, position, animationPeriod, actionPeriod, resourceLimit, images);
}
public static WolfFull createWolfFull(String id, Point position, double actionPeriod, double animationPeriod, int resourceLimit, List<PImage> images) {
return new WolfFull(id, position, animationPeriod, actionPeriod, resourceLimit, images);
}
public static Fence createFence(String id, Point position, List<PImage> images) {
return new Fence(id, position, images);
}
public static Barn createBarn(String id, Point position, List<PImage> images) {
return new Barn(id, position, images);
}
public static Vet createCowVet(String id, Point position, double actionPeriod, double animationPeriod, List<PImage> images) {
return new Vet(id, position, animationPeriod, actionPeriod, images);
}
public static GrownPig createGrownPig(String id, Point position, double actionPeriod, double animationPeriod, int health, List<PImage> images) {
return new GrownPig(id, position, images, animationPeriod, actionPeriod, health, 0);
}
public static GrownCow createGrownCow(String id, Point position, double actionPeriod, double animationPeriod, int health, List<PImage> images) {
return new GrownCow(id, position, images, animationPeriod, actionPeriod, health, 0);
}
}