Skip to content
This repository was archived by the owner on Jan 8, 2023. It is now read-only.

Commit 0dcc3d7

Browse files
committed
Meta helpers
1 parent 36ae9af commit 0dcc3d7

File tree

4 files changed

+60
-0
lines changed

4 files changed

+60
-0
lines changed

src/main/java/io/github/spair/byond/dmi/Dmi.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,4 +110,12 @@ public boolean isHasDuplicates() {
110110
public boolean isStateOverflow() {
111111
return states.size() > MAX_STATES;
112112
}
113+
114+
public int getSpritesWidth() {
115+
return metadata.getSpritesWidth();
116+
}
117+
118+
public int getSpritesHeight() {
119+
return metadata.getSpritesHeight();
120+
}
113121
}

src/main/java/io/github/spair/byond/dmi/DmiState.java

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,34 @@ public String getName() {
2424
return meta.getName();
2525
}
2626

27+
public int getDirs() {
28+
return meta.getDirs();
29+
}
30+
31+
public int getFrames() {
32+
return meta.getFrames();
33+
}
34+
35+
public double[] getDelay() {
36+
return meta.getDelay();
37+
}
38+
39+
public boolean hasLoop() {
40+
return meta.isLoop();
41+
}
42+
43+
public boolean isMovement() {
44+
return meta.isMovement();
45+
}
46+
47+
public boolean hasRewind() {
48+
return meta.isRewind();
49+
}
50+
51+
public double[] getHotspot() {
52+
return meta.getHotspot();
53+
}
54+
2755
public void addSprite(final DmiSprite sprite) {
2856
List<DmiSprite> spriteList = sprites.computeIfAbsent(sprite.getDir(), k -> new ArrayList<>());
2957
spriteList.add(sprite);

src/test/java/io/github/spair/byond/dmi/DmiStateTest.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,4 +56,19 @@ public void testGetSpriteWithIllegalFrame() {
5656
DmiState dmiState = new DmiState();
5757
dmiState.getSprite(SpriteDir.SOUTH, 0);
5858
}
59+
60+
@Test
61+
public void testGetMetaProperties() {
62+
DmiState dmiState = new DmiState();
63+
dmiState.setMeta(new DmiMetaEntry("state", 4, 1, null, false, false, false, null));
64+
65+
assertEquals("state", dmiState.getName());
66+
assertEquals(4, dmiState.getDirs());
67+
assertEquals(1, dmiState.getFrames());
68+
assertNull(dmiState.getDelay());
69+
assertFalse(dmiState.hasLoop());
70+
assertFalse(dmiState.isMovement());
71+
assertFalse(dmiState.hasRewind());
72+
assertNull(dmiState.getHotspot());
73+
}
5974
}

src/test/java/io/github/spair/byond/dmi/DmiTest.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,4 +119,13 @@ public void testHasState() {
119119
assertTrue(dmi.hasState("state"));
120120
assertFalse(dmi.hasState("1234567890"));
121121
}
122+
123+
@Test
124+
public void testGetSpritesProperties() {
125+
Dmi dmi = new Dmi();
126+
dmi.setMetadata(new DmiMeta(32, 64, null));
127+
128+
assertEquals(32, dmi.getSpritesWidth());
129+
assertEquals(64, dmi.getSpritesHeight());
130+
}
122131
}

0 commit comments

Comments
 (0)