diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 4315d067d..201607f1e 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -32,6 +32,11 @@
android:screenOrientation="sensorLandscape"
android:name=".MCLauncherActivity"
android:configChanges="keyboardHidden|orientation|screenSize"/>
+
+
0) {
@@ -526,8 +526,8 @@ public class MainActivity extends Activity implements OnTouchListener, OnClickLi
builder.append("XPos=" + x + "\n");
builder.append("YPos=" + y + "\n\n");
- builder.append("MovingX=" + getMoving(x, true) + "\n");
- builder.append("MovingY=" + getMoving(y, false) + "\n");
+ builder.append("MovingX=" + getMoving(e.getX(), true) + "\n");
+ builder.append("MovingY=" + getMoving(e.getY(), false) + "\n");
debugText.setText(builder.toString());
}
@@ -1245,12 +1245,4 @@ public class MainActivity extends Activity implements OnTouchListener, OnClickLi
}
return hotbarKeys[((x - barx) / mcscale(20)) % 9];
}
-
- private class SingleTapConfirm extends SimpleOnGestureListener
- {
- @Override
- public boolean onSingleTapUp(MotionEvent event) {
- return true;
- }
- }
}
diff --git a/app/src/main/java/net/kdt/pojavlaunch/SingleTapConfirm.java b/app/src/main/java/net/kdt/pojavlaunch/SingleTapConfirm.java
new file mode 100644
index 000000000..bd82eb77f
--- /dev/null
+++ b/app/src/main/java/net/kdt/pojavlaunch/SingleTapConfirm.java
@@ -0,0 +1,12 @@
+package net.kdt.pojavlaunch;
+
+import android.view.*;
+import android.view.GestureDetector.*;
+
+public class SingleTapConfirm extends SimpleOnGestureListener
+{
+ @Override
+ public boolean onSingleTapUp(MotionEvent event) {
+ return true;
+ }
+}
diff --git a/app/src/main/java/net/kdt/pojavlaunch/value/customcontrols/ControlButton.java b/app/src/main/java/net/kdt/pojavlaunch/value/customcontrols/ControlButton.java
new file mode 100644
index 000000000..2710a6345
--- /dev/null
+++ b/app/src/main/java/net/kdt/pojavlaunch/value/customcontrols/ControlButton.java
@@ -0,0 +1,19 @@
+package net.kdt.pojavlaunch.value.customcontrols;
+import net.kdt.pojavlaunch.*;
+
+public class ControlButton
+{
+ // Concept...
+ public String name;
+ public float x;
+ public float y;
+ public int lwjglKeycode;
+ public boolean holdCtrl;
+ public boolean holdAlt;
+ public boolean holdShift;
+ // public boolean hold
+
+ public void execute(MainActivity act, boolean isDown) {
+ act.sendKeyPress(lwjglKeycode, isDown);
+ }
+}
diff --git a/app/src/main/java/net/kdt/pojavlaunch/value/customcontrols/ControlView.java b/app/src/main/java/net/kdt/pojavlaunch/value/customcontrols/ControlView.java
new file mode 100644
index 000000000..b23f822e7
--- /dev/null
+++ b/app/src/main/java/net/kdt/pojavlaunch/value/customcontrols/ControlView.java
@@ -0,0 +1,73 @@
+package net.kdt.pojavlaunch.value.customcontrols;
+
+import android.content.*;
+import android.view.*;
+import android.view.View.*;
+import android.widget.*;
+import net.kdt.pojavlaunch.*;
+
+public class ControlView extends Button implements OnTouchListener
+{
+ private GestureDetector mGestureDetector;
+ private View.OnClickListener mClickListener;
+ private ControlButton mProperties;
+
+ public ControlView(Context ctx, ControlButton properties) {
+ super(ctx);
+
+ setOnTouchListener(this);
+ mGestureDetector = new GestureDetector(ctx, new SingleTapConfirm());
+ mProperties = properties;
+
+ setText(properties.name);
+ setTranslationX(moveX = properties.x);
+ setTranslationY(moveY = properties.y);
+ }
+
+ @Override
+ public void setTranslationX(float x)
+ {
+ super.setTranslationX(x);
+ mProperties.x = x;
+ }
+
+ @Override
+ public void setTranslationY(float y) {
+ super.setTranslationY(y);
+ mProperties.y = y;
+ }
+
+ private float moveX, moveY;
+ private float downX, downY;
+ @Override
+ public boolean onTouch(View view, MotionEvent event) {
+ if (mGestureDetector.onTouchEvent(event)) {
+ mClickListener.onClick(view);
+ return true;
+ }
+
+ switch (event.getActionMasked()) {
+ case MotionEvent.ACTION_DOWN:
+ downX = event.getX();
+ downY = event.getY();
+ break;
+ case MotionEvent.ACTION_UP:
+ case MotionEvent.ACTION_MOVE:
+ moveX += event.getX() - downX;
+ moveY += event.getY() - downY;
+
+ setTranslationX(moveX);
+ setTranslationY(moveY);
+ break;
+ }
+
+ return false;
+ }
+
+ @Override
+ public void setOnClickListener(View.OnClickListener l) {
+ // super.setOnClickListener(p1);
+
+ mClickListener = l;
+ }
+}
diff --git a/app/src/main/java/net/kdt/pojavlaunch/value/customcontrols/ControlsLayout.java b/app/src/main/java/net/kdt/pojavlaunch/value/customcontrols/ControlsLayout.java
new file mode 100644
index 000000000..191df1092
--- /dev/null
+++ b/app/src/main/java/net/kdt/pojavlaunch/value/customcontrols/ControlsLayout.java
@@ -0,0 +1,21 @@
+package net.kdt.pojavlaunch.value.customcontrols;
+import android.widget.*;
+import android.content.*;
+import android.util.*;
+
+public class ControlsLayout extends FrameLayout
+{
+ public ControlsLayout(Context ctx) {
+ super(ctx);
+ }
+
+ public ControlsLayout(Context ctx, AttributeSet attrs) {
+ super(ctx, attrs);
+ }
+
+ public void loadLayout(CustomControls controlLayout) {
+ for (ControlButton button : controlLayout.button) {
+ addView(new ControlView(getContext(), button));
+ }
+ }
+}
diff --git a/app/src/main/java/net/kdt/pojavlaunch/value/customcontrols/CustomControls.java b/app/src/main/java/net/kdt/pojavlaunch/value/customcontrols/CustomControls.java
new file mode 100644
index 000000000..7d3cf42fc
--- /dev/null
+++ b/app/src/main/java/net/kdt/pojavlaunch/value/customcontrols/CustomControls.java
@@ -0,0 +1,6 @@
+package net.kdt.pojavlaunch.value.customcontrols;
+
+public class CustomControls
+{
+ public ControlButton[] button = new ControlButton[]{};
+}