Fixed a few minor bugs with scrolling in editor
This commit is contained in:
@@ -306,6 +306,10 @@ public class Control extends Module{
|
|||||||
|
|
||||||
triggerUpdateInput();
|
triggerUpdateInput();
|
||||||
|
|
||||||
|
for(InputHandler inputHandler : inputs){
|
||||||
|
inputHandler.updateController();
|
||||||
|
}
|
||||||
|
|
||||||
if(!state.is(State.menu)){
|
if(!state.is(State.menu)){
|
||||||
for(InputHandler input : inputs){
|
for(InputHandler input : inputs){
|
||||||
input.update();
|
input.update();
|
||||||
|
|||||||
@@ -4,13 +4,17 @@ import com.badlogic.gdx.files.FileHandle;
|
|||||||
import com.badlogic.gdx.graphics.Color;
|
import com.badlogic.gdx.graphics.Color;
|
||||||
import com.badlogic.gdx.graphics.Pixmap;
|
import com.badlogic.gdx.graphics.Pixmap;
|
||||||
import com.badlogic.gdx.graphics.g2d.TextureRegion;
|
import com.badlogic.gdx.graphics.g2d.TextureRegion;
|
||||||
|
import com.badlogic.gdx.math.Vector2;
|
||||||
import com.badlogic.gdx.utils.Align;
|
import com.badlogic.gdx.utils.Align;
|
||||||
import com.badlogic.gdx.utils.Disposable;
|
import com.badlogic.gdx.utils.Disposable;
|
||||||
import com.badlogic.gdx.utils.ObjectMap;
|
import com.badlogic.gdx.utils.ObjectMap;
|
||||||
import io.anuke.mindustry.content.blocks.Blocks;
|
import io.anuke.mindustry.content.blocks.Blocks;
|
||||||
import io.anuke.mindustry.core.Platform;
|
import io.anuke.mindustry.core.Platform;
|
||||||
import io.anuke.mindustry.game.Team;
|
import io.anuke.mindustry.game.Team;
|
||||||
import io.anuke.mindustry.io.*;
|
import io.anuke.mindustry.io.Map;
|
||||||
|
import io.anuke.mindustry.io.MapIO;
|
||||||
|
import io.anuke.mindustry.io.MapMeta;
|
||||||
|
import io.anuke.mindustry.io.MapTileData;
|
||||||
import io.anuke.mindustry.ui.dialogs.FileChooser;
|
import io.anuke.mindustry.ui.dialogs.FileChooser;
|
||||||
import io.anuke.mindustry.ui.dialogs.FloatingDialog;
|
import io.anuke.mindustry.ui.dialogs.FloatingDialog;
|
||||||
import io.anuke.mindustry.world.Block;
|
import io.anuke.mindustry.world.Block;
|
||||||
@@ -23,7 +27,6 @@ import io.anuke.ucore.core.Timers;
|
|||||||
import io.anuke.ucore.function.Listenable;
|
import io.anuke.ucore.function.Listenable;
|
||||||
import io.anuke.ucore.graphics.Pixmaps;
|
import io.anuke.ucore.graphics.Pixmaps;
|
||||||
import io.anuke.ucore.input.Input;
|
import io.anuke.ucore.input.Input;
|
||||||
import io.anuke.ucore.scene.Element;
|
|
||||||
import io.anuke.ucore.scene.actions.Actions;
|
import io.anuke.ucore.scene.actions.Actions;
|
||||||
import io.anuke.ucore.scene.builders.build;
|
import io.anuke.ucore.scene.builders.build;
|
||||||
import io.anuke.ucore.scene.builders.label;
|
import io.anuke.ucore.scene.builders.label;
|
||||||
@@ -223,11 +226,18 @@ public class MapEditorDialog extends Dialog implements Disposable{
|
|||||||
build.end();
|
build.end();
|
||||||
|
|
||||||
tapped(() -> {
|
tapped(() -> {
|
||||||
Element e = Core.scene.hit(Graphics.mouse().x, Graphics.mouse().y, true);
|
|
||||||
if(e == null || !e.isDescendantOf(pane)) Core.scene.setScrollFocus(null);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
update(() -> {
|
update(() -> {
|
||||||
|
Vector2 v = pane.stageToLocalCoordinates(Graphics.mouse());
|
||||||
|
|
||||||
|
if(v.x >= 0 && v.y >= 0 && v.x <= pane.getWidth() && v.y <= pane.getHeight()){
|
||||||
|
Core.scene.setScrollFocus(pane);
|
||||||
|
}else{
|
||||||
|
Core.scene.setScrollFocus(null);
|
||||||
|
}
|
||||||
|
|
||||||
if(Core.scene != null && Core.scene.getKeyboardFocus() == this){
|
if(Core.scene != null && Core.scene.getKeyboardFocus() == this){
|
||||||
doInput();
|
doInput();
|
||||||
}
|
}
|
||||||
@@ -360,7 +370,7 @@ public class MapEditorDialog extends Dialog implements Disposable{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasPane(){
|
public boolean hasPane(){
|
||||||
return Core.scene.getScrollFocus() == pane;
|
return Core.scene.getScrollFocus() == pane || Core.scene.getKeyboardFocus() != this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void build(){
|
public void build(){
|
||||||
|
|||||||
@@ -42,8 +42,6 @@ public class DesktopInput extends InputHandler{
|
|||||||
@Override
|
@Override
|
||||||
public void update(){
|
public void update(){
|
||||||
|
|
||||||
updateController();
|
|
||||||
|
|
||||||
if(player.isDead()) return;
|
if(player.isDead()) return;
|
||||||
|
|
||||||
if(Inputs.keyRelease(section, "select") && recipe != null){
|
if(Inputs.keyRelease(section, "select") && recipe != null){
|
||||||
@@ -213,7 +211,8 @@ public class DesktopInput extends InputHandler{
|
|||||||
return controlling;
|
return controlling;
|
||||||
}
|
}
|
||||||
|
|
||||||
void updateController(){
|
@Override
|
||||||
|
public void updateController(){
|
||||||
boolean mousemove = Gdx.input.getDeltaX() > 1 || Gdx.input.getDeltaY() > 1;
|
boolean mousemove = Gdx.input.getDeltaX() > 1 || Gdx.input.getDeltaY() > 1;
|
||||||
|
|
||||||
if(KeyBinds.getSection(section).device.type == DeviceType.controller && (!mousemove || player.playerIndex > 0)){
|
if(KeyBinds.getSection(section).device.type == DeviceType.controller && (!mousemove || player.playerIndex > 0)){
|
||||||
|
|||||||
@@ -57,6 +57,7 @@ public abstract class InputHandler extends InputAdapter{
|
|||||||
public int getBlockEndY(){ return Mathf.sclb(Graphics.world(getCursorEndX(), getCursorEndY()).y, tilesize, round2()); }
|
public int getBlockEndY(){ return Mathf.sclb(Graphics.world(getCursorEndX(), getCursorEndY()).y, tilesize, round2()); }
|
||||||
public void resetCursor(){}
|
public void resetCursor(){}
|
||||||
public boolean isCursorVisible(){ return false; }
|
public boolean isCursorVisible(){ return false; }
|
||||||
|
public void updateController(){}
|
||||||
|
|
||||||
public float mouseAngle(float x, float y){
|
public float mouseAngle(float x, float y){
|
||||||
return Graphics.world(getMouseX(), getMouseY()).sub(x, y).angle();
|
return Graphics.world(getMouseX(), getMouseY()).sub(x, y).angle();
|
||||||
|
|||||||
Reference in New Issue
Block a user