-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathEntity.java
148 lines (115 loc) · 3.07 KB
/
Entity.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
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
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Base class for all game entities
*
* @author (your name)
* @version (a version number or a date)
*/
public abstract class Entity extends Actor
{
/**
* Initial entity location
*/
private Location initialLocation;
/**
* Sprite sheet file
*/
private String spriteSheet = "sprites.png";
/**
* Sprite block size.
*/
private int blockSize = 32;
private String name;
private String scriptObject;
/**
* Set if this entity is visible on the current world.
*/
private boolean visible;
private int x;
private int y;
public abstract void reset();
public void act() {
if(getInitialLocation() == null) {
setInitialLocation(getLocation());
}
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
public void setVisible(boolean visible) {
this.visible = visible;
}
public boolean isVisible() {
return this.visible;
}
public void show() {
this.visible = true;
}
public void hide() {
this.visible = false;
}
public void setScriptObject(String scriptObject) {
this.scriptObject = scriptObject;
}
public String getScriptObject() {
if (scriptObject == null) return name;
return scriptObject;
}
public void setSpriteSheet(String spriteSheet) {
this.spriteSheet = spriteSheet;
}
public String getSpriteSheet() {
return this.spriteSheet;
}
public void setBlockSize(int blockSize) {
this.blockSize = blockSize;
}
public int getBlockSize() {
return this.blockSize;
}
public void setSprite(int id) {
setImage(SpriteSheetManager.getSprite(spriteSheet, id, blockSize));
}
public void setSprite(String spriteSheet, int id, int blockSize) {
setImage(SpriteSheetManager.getSprite(spriteSheet, id, blockSize));
}
public int getX() {
if(getWorld() == null) {
return x;
}
return super.getX();
}
public int getY() {
if(getWorld() == null) {
return y;
}
return super.getY();
}
public void setX(int x) {
super.setLocation(x, getY());
this.x = x;
}
public void setY(int y) {
super.setLocation(getX(), y);
this.y = y;
}
public void setLocation(int x, int y) {
this.x = x;
this.y = y;
super.setLocation(x, y);
}
public Location getLocation() {
return new Location(getX(), getY());
}
public Location getInitialLocation() {
return this.initialLocation;
}
public void setInitialLocation(Location initialLocation) {
this.initialLocation = initialLocation;
setX(initialLocation.getX());
setY(initialLocation.getY());
}
}