diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/CactusModels.java b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/CactusModels.java
deleted file mode 100644
index cda012e..0000000
--- a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/CactusModels.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package org.ntlab.radishforandroidstudio.cactusClient.models;
-
-import org.ntlab.radishforandroidstudio.framework.gameMain.GameBaseModel;
-import org.ntlab.radishforandroidstudio.framework.gameMain.GameBaseModelManager;
-import org.ntlab.radishforandroidstudio.framework.gameMain.OnlineModel;
-
-/**
- * モデルを管理する
- *
- * singleton
- *
- * @author s.iwatani
- */
-public class CactusModels extends GameBaseModelManager implements OnlineModel {
- private String instanceId = "";
-
- public CactusModels() {
- super();
- }
-
- public void setInstanceId(String id) {
- for (GameBaseModel model : models) {
- model.setInstanceId(id);
- }
- for (GameBaseModel model : nextAddModels) {
- model.setInstanceId(id);
- }
- instanceId = id;
- }
-
- @Override
- public void onResponse(String response) {
-
- }
-}
diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/CactusRepository.java b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/CactusRepository.java
new file mode 100644
index 0000000..961c027
--- /dev/null
+++ b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/CactusRepository.java
@@ -0,0 +1,40 @@
+package org.ntlab.radishforandroidstudio.cactusClient.models;
+
+import org.ntlab.radishforandroidstudio.framework.gameMain.GameBaseModel;
+import org.ntlab.radishforandroidstudio.framework.gameMain.GameModelContainer;
+import org.ntlab.radishforandroidstudio.framework.gameMain.OnlineModel;
+
+/**
+ * モデルを管理する
+ *
+ * singleton
+ *
+ * @author s.iwatani
+ */
+public class CactusRepository extends GameModelContainer implements OnlineModel {
+ private String instanceId = "";
+
+ public CactusRepository() {
+ super();
+ }
+
+ public void setInstanceId(String id) {
+ for (GameBaseModel model : models) {
+ model.setInstanceId(id);
+ }
+ for (GameBaseModel model : nextAddModels) {
+ model.setInstanceId(id);
+ }
+ instanceId = id;
+ }
+
+ @Override
+ public void update(double interval) {
+ super.update(interval);
+ }
+
+ @Override
+ public void onResponse(String response) {
+
+ }
+}
diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/UpdateBoundary.java b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/UpdateBoundary.java
new file mode 100644
index 0000000..f1776d1
--- /dev/null
+++ b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/UpdateBoundary.java
@@ -0,0 +1,11 @@
+package org.ntlab.radishforandroidstudio.cactusClient.models;
+
+public interface UpdateBoundary {
+
+ /**
+ * モデルの状態を更新する
+
+ * @param interval 前回の更新からの時間差
+ */
+ void onUpdate(double interval);
+}
diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/UpdateUsecase.java b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/UpdateUsecase.java
new file mode 100644
index 0000000..177af6f
--- /dev/null
+++ b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/UpdateUsecase.java
@@ -0,0 +1,11 @@
+package org.ntlab.radishforandroidstudio.cactusClient.models;
+
+public class UpdateUsecase implements UpdateBoundary {
+ CactusRepository cactusRepository;
+
+ @Override
+ public void onUpdate(double interval) {
+ cactusRepository.update(interval);
+
+ }
+}
diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/viewModels/test b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/viewModels/test
deleted file mode 100644
index d75fa73..0000000
--- a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/viewModels/test
+++ /dev/null
@@ -1,96 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/views/PlayerFragment.java b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/views/PlayerFragment.java
index 778275a..f3a8517 100644
--- a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/views/PlayerFragment.java
+++ b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/views/PlayerFragment.java
@@ -13,7 +13,7 @@
import org.ntlab.radishforandroidstudio.R;
import org.ntlab.radishforandroidstudio.cactusClient.models.BulletsModel;
-import org.ntlab.radishforandroidstudio.cactusClient.models.CactusModels;
+import org.ntlab.radishforandroidstudio.cactusClient.models.CactusRepository;
import org.ntlab.radishforandroidstudio.cactusClient.models.MovableObjectModel;
import org.ntlab.radishforandroidstudio.cactusClient.models.OtherPlayerCharactersModel;
import org.ntlab.radishforandroidstudio.cactusClient.models.OwnBulletsModel;
@@ -51,7 +51,7 @@
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- modelManager = new CactusModels();
+ modelManager = new CactusRepository();
modelManager.setFragment(this);
modelManager.setUniverse(universe);
diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/framework/gameMain/GameBaseModelManager.java b/app/src/main/java/org/ntlab/radishforandroidstudio/framework/gameMain/GameBaseModelManager.java
deleted file mode 100644
index d4f617a..0000000
--- a/app/src/main/java/org/ntlab/radishforandroidstudio/framework/gameMain/GameBaseModelManager.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package org.ntlab.radishforandroidstudio.framework.gameMain;
-
-import org.ntlab.radishforandroidstudio.framework.model3D.Universe;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-public abstract class GameBaseModelManager implements GameBaseModel {
- protected ArrayList models = new ArrayList<>();
- protected ArrayList nextAddModels = new ArrayList<>();
- protected ArrayList nextRemoveModels = new ArrayList<>();
- public void setFragment(RealTime3DFragment fragment) {
- this.fragment = fragment;
- }
-
- public void setUniverse(Universe universe) {
- this.universe = universe;
- }
-
- protected RealTime3DFragment fragment = null;
- protected Universe universe = null;
-
- protected GameBaseModelManager() {
- }
-
- /**
- * GameBaseModelを追加
- * instanceIDのセットなどは実行されないことを注意
- *
- * @param model 追加したいGameBaseModel
- */
- public void addModel(GameBaseModel model) {
- nextAddModels.add(model);
- }
-
- public void removeModel(GameBaseModel model) { nextRemoveModels.add(model); }
-
- /**
- * モデルの状態を更新する
- *
- * @author s.iwatani
- * @param interval 前回の更新からの時間差
- */
- @Override
- public void update(double interval) {
- for (GameBaseModel model: models) {
- model.update(interval);
- }
-
- for (GameBaseModel model : nextAddModels) {
- models.add(model);
- }
- nextAddModels.clear();
-
- // モデルの消去
- Iterator it = nextRemoveModels.iterator();
- while(it.hasNext()) {
- GameBaseModel model = it.next();
- for(GameBaseModel removeModel : nextRemoveModels) {
- if (model.equals(removeModel)) {
- it.remove();
- break;
- }
- }
- }
- nextRemoveModels.clear();
- }
-}
diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/framework/gameMain/GameModelContainer.java b/app/src/main/java/org/ntlab/radishforandroidstudio/framework/gameMain/GameModelContainer.java
new file mode 100644
index 0000000..1a61029
--- /dev/null
+++ b/app/src/main/java/org/ntlab/radishforandroidstudio/framework/gameMain/GameModelContainer.java
@@ -0,0 +1,71 @@
+package org.ntlab.radishforandroidstudio.framework.gameMain;
+
+import org.ntlab.radishforandroidstudio.framework.model3D.Universe;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+
+public abstract class GameModelContainer implements GameBaseModel {
+ protected ArrayList models = new ArrayList<>();
+ protected ArrayList nextAddModels = new ArrayList<>();
+ protected ArrayList nextRemoveModels = new ArrayList<>();
+
+ public void setFragment(RealTime3DFragment fragment) {
+ this.fragment = fragment;
+ }
+
+ public void setUniverse(Universe universe) {
+ this.universe = universe;
+ }
+
+ protected RealTime3DFragment fragment = null;
+ protected Universe universe = null;
+
+ protected GameModelContainer() {
+ }
+
+ /**
+ * GameBaseModelを追加
+ * instanceIDのセットなどは実行されないことを注意
+ *
+ * @param model 追加したいGameBaseModel
+ */
+ public void addModel(GameBaseModel model) {
+ nextAddModels.add(model);
+ }
+
+ public void removeModel(GameBaseModel model) {
+ nextRemoveModels.add(model);
+ }
+
+ /**
+ * モデルの状態を更新する
+ *
+ * @param interval 前回の更新からの時間差
+ * @author s.iwatani
+ */
+ @Override
+ public void update(double interval) {
+ for (GameBaseModel model : models) {
+ model.update(interval);
+ }
+
+ for (GameBaseModel model : nextAddModels) {
+ models.add(model);
+ }
+ nextAddModels.clear();
+
+ // モデルの消去
+ Iterator it = nextRemoveModels.iterator();
+ while (it.hasNext()) {
+ GameBaseModel model = it.next();
+ for (GameBaseModel removeModel : nextRemoveModels) {
+ if (model.equals(removeModel)) {
+ it.remove();
+ break;
+ }
+ }
+ }
+ nextRemoveModels.clear();
+ }
+}
diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/framework/gameMain/RealTime3DFragment.java b/app/src/main/java/org/ntlab/radishforandroidstudio/framework/gameMain/RealTime3DFragment.java
index fcc442e..c71e549 100644
--- a/app/src/main/java/org/ntlab/radishforandroidstudio/framework/gameMain/RealTime3DFragment.java
+++ b/app/src/main/java/org/ntlab/radishforandroidstudio/framework/gameMain/RealTime3DFragment.java
@@ -10,7 +10,7 @@
import android.widget.LinearLayout;
import org.ntlab.radishforandroidstudio.R;
-import org.ntlab.radishforandroidstudio.cactusClient.models.CactusModels;
+import org.ntlab.radishforandroidstudio.cactusClient.models.UpdateBoundary;
import org.ntlab.radishforandroidstudio.framework.RWT.RWTSurfaceView;
import org.ntlab.radishforandroidstudio.framework.model3D.Universe;
import org.ntlab.radishforandroidstudio.framework.view3D.Camera3D;
@@ -20,7 +20,8 @@
protected Camera3D camera;
protected RWTSurfaceView view;
protected View parentView = null;
- protected GameBaseModelManager modelManager = null;
+ protected GameModelContainer modelManager = null;
+ protected UpdateBoundary updateBoundary;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
@@ -50,12 +51,15 @@
}
universe.update(interval);
camera.adjust(interval);
+ updateBoundary.onUpdate(interval);
view.requestRender();
}
protected void progress(long interval) {
}
+
+
public Universe getUniverse() {
return universe;
}