-
Notifications
You must be signed in to change notification settings - Fork 3
/
Ore.java
42 lines (33 loc) · 1.42 KB
/
Ore.java
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
import processing.core.PImage;
import java.util.List;
import java.util.Random;
public class Ore extends ScheduleActivity implements Entity, Actor{
private static final String BLOB_ID_SUFFIX = " -- blob";
private static final int BLOB_PERIOD_SCALE = 4;
private static final int BLOB_ANIMATION_MIN = 50;
private static final int BLOB_ANIMATION_MAX = 150;
private static final Random rand = new Random();
public Ore(String id, Point position, List<PImage> images, int actionPeriod){
super(id,position,images, actionPeriod);
}
public void executeActivity(WorldModel world,
ImageStore imageStore, EventScheduler scheduler)
{
Point pos = this.position; // store current position before removing
world.removeEntity(this);
scheduler.unscheduleAllEvents(this);
OreBlob blob = Create.createOreBlob(this.id + BLOB_ID_SUFFIX,
this.actionPeriod / BLOB_PERIOD_SCALE,
BLOB_ANIMATION_MIN +
rand.nextInt(BLOB_ANIMATION_MAX - BLOB_ANIMATION_MIN),
imageStore.getImageList(Functions.BLOB_KEY),pos);
world.addEntity(blob);
VirtualWorld.scheduleActions(world, scheduler, imageStore);
}
public List<PImage> getImages(){
return images;
}
public void nextImage() {
this.imageIndex = (this.imageIndex + 1) % this.images.size();
}
}