diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser
index 9867642..c1bde53 100644
--- a/.idea/caches/build_file_checksums.ser
+++ b/.idea/caches/build_file_checksums.ser
Binary files differ
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 795735f..18e6d9e 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -29,10 +29,11 @@
android:theme="@style/SplashTheme">
+
-
\ No newline at end of file
+
diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/Cactus.java b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/Cactus.java
index 9ade637..8e7ce84 100644
--- a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/Cactus.java
+++ b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/Cactus.java
@@ -5,8 +5,8 @@
import android.app.Application;
import android.os.Bundle;
-import org.ntlab.radishforandroidstudio.cactusClient.models.Account;
-import org.ntlab.radishforandroidstudio.cactusClient.models.URIAddressedAccount;
+import org.ntlab.radishforandroidstudio.cactusClient.models.account.Account;
+import org.ntlab.radishforandroidstudio.cactusClient.models.account.URIAddressedAccount;
public class Cactus extends Application {
diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/connections/test.txt b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/connections/test.txt
deleted file mode 100644
index 2839ac9..0000000
--- a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/connections/test.txt
+++ /dev/null
@@ -1 +0,0 @@
-ここに、??connection.javaをいれるぅ
\ No newline at end of file
diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/controller/bullet/BulletsModel.java b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/controller/bullet/BulletsModel.java
new file mode 100644
index 0000000..6d4f4ef
--- /dev/null
+++ b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/controller/bullet/BulletsModel.java
@@ -0,0 +1,149 @@
+package org.ntlab.radishforandroidstudio.cactusClient.controller.bullet;
+
+import android.content.res.Resources;
+
+import net.arnx.jsonic.JSON;
+import net.arnx.jsonic.TypeReference;
+
+import org.ntlab.radishforandroidstudio.cactusClient.connections.BulletGetConnection;
+import org.ntlab.radishforandroidstudio.cactusClient.models.bullet.Bullet;
+import org.ntlab.radishforandroidstudio.cactusClient.models.bullet.OtherPlayerBullet;
+import org.ntlab.radishforandroidstudio.framework.gameMain.OnlineModel;
+import org.ntlab.radishforandroidstudio.framework.model3D.ModelFactory;
+import org.ntlab.radishforandroidstudio.framework.model3D.Object3D;
+import org.ntlab.radishforandroidstudio.framework.model3D.Property3D;
+import org.ntlab.radishforandroidstudio.framework.model3D.Universe;
+import org.ntlab.radishforandroidstudio.java3d.Appearance;
+import org.ntlab.radishforandroidstudio.java3d.Material;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+public class BulletsModel implements OnlineModel {
+ private Universe universe;
+ private Resources resources;
+ private BulletGetConnection con;
+ private int nextConnectRenaimdTime = 0;
+ static final private int CONNECT_INTERVAL = 100;
+ private Map visibleBullets = new HashMap<>();
+ private Map playerVisibleBullets = new HashMap<>();
+ private String instanceId;
+ private String playerId;
+
+ private Set bulletsSet;
+
+ public enum BulletType {
+ Normal
+ }
+
+ public BulletsModel(Resources fragment, Universe universe) {
+ this.universe = universe;
+ this.resources = fragment;
+ }
+
+ @Override
+ public void setInstanceId(String id) {
+ this.instanceId = id;
+ }
+
+ public void setPlayerId(String id) {
+ playerId = id;
+ }
+
+ /**
+ * 玉の状態を更新する
+ *
+ * @author s.iwatani
+ * @param interval 前回の更新からの時間差
+ */
+ @Override
+ public void update(double interval) {
+ nextConnectRenaimdTime -= interval;
+ if (nextConnectRenaimdTime <= 0 && instanceId != null) {
+ nextConnectRenaimdTime = CONNECT_INTERVAL;
+ con = new BulletGetConnection(instanceId);
+ con.setCallBack(this);
+ con.doGet();
+ }
+ }
+
+ @Override
+ public void onResponse(String response) {
+ Map lastVisibleBullets = new HashMap<>(visibleBullets);
+ Map lastPlayerVisibleBullets = new HashMap<>(playerVisibleBullets);
+ visibleBullets.clear();
+ JSON json = new JSON();
+ if (!response.equals("{}")) {
+ ArrayList