Austin Schuh | e89fa2d | 2019-08-14 20:24:23 -0700 | [diff] [blame^] | 1 | import java.nio.ByteBuffer; |
| 2 | import MyGame.Example.Monster; |
| 3 | import MyGame.Example.Stat; |
| 4 | import com.google.flatbuffers.FlatBufferBuilder; |
| 5 | |
| 6 | class GameFactory { |
| 7 | public static Monster createMonster(String monsterName, short nestedMonsterHp, short nestedMonsterMana) { |
| 8 | FlatBufferBuilder builder = new FlatBufferBuilder(); |
| 9 | |
| 10 | int name_offset = builder.createString(monsterName); |
| 11 | Monster.startMonster(builder); |
| 12 | Monster.addName(builder, name_offset); |
| 13 | Monster.addHp(builder, nestedMonsterHp); |
| 14 | Monster.addMana(builder, nestedMonsterMana); |
| 15 | int monster_offset = Monster.endMonster(builder); |
| 16 | Monster.finishMonsterBuffer(builder, monster_offset); |
| 17 | |
| 18 | ByteBuffer buffer = builder.dataBuffer(); |
| 19 | Monster monster = Monster.getRootAsMonster(buffer); |
| 20 | return monster; |
| 21 | } |
| 22 | |
| 23 | public static Monster createMonsterFromStat(Stat stat, int seqNo) { |
| 24 | FlatBufferBuilder builder = new FlatBufferBuilder(); |
| 25 | int name_offset = builder.createString(stat.id() + " No." + seqNo); |
| 26 | Monster.startMonster(builder); |
| 27 | Monster.addName(builder, name_offset); |
| 28 | int monster_offset = Monster.endMonster(builder); |
| 29 | Monster.finishMonsterBuffer(builder, monster_offset); |
| 30 | Monster monster = Monster.getRootAsMonster(builder.dataBuffer()); |
| 31 | return monster; |
| 32 | } |
| 33 | |
| 34 | public static Stat createStat(String greeting, long val, int count) { |
| 35 | FlatBufferBuilder builder = new FlatBufferBuilder(); |
| 36 | int statOffset = Stat.createStat(builder, builder.createString(greeting), val, count); |
| 37 | builder.finish(statOffset); |
| 38 | Stat stat = Stat.getRootAsStat(builder.dataBuffer()); |
| 39 | return stat; |
| 40 | } |
| 41 | |
| 42 | } |