From 7bf400fcddc916a84e3e3b23899e7e3dcfc69b7a Mon Sep 17 00:00:00 2001 From: hamed Date: Thu, 28 Feb 2013 13:40:32 +0330 Subject: [PATCH] smexy map editor --- src/javachallenge/graphics/MapEditor.java | 6 ++++++ src/javachallenge/graphics/components/MapPanel.java | 8 +++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/javachallenge/graphics/MapEditor.java b/src/javachallenge/graphics/MapEditor.java index 9923758..cf33e74 100644 --- a/src/javachallenge/graphics/MapEditor.java +++ b/src/javachallenge/graphics/MapEditor.java @@ -141,6 +141,12 @@ public void onControlClick(int x, int y) { map.getFlagLocations().add(new Point(x, y)); mapEditor.getMapPanel().addToContainer(flag, 2); } + @Override + public void onControlEnter(int x, int y) { + int type = (mapEditor.getMapPanel().getMap().getBlockType(new Point (x, y)).ordinal() + 1) % blockTypes; + mapEditor.getMapPanel().setBlock(x, y, type); + mapEditor.getMapPanel().getMap().setBlockType(new Point (x, y), BlockType.values()[type]); + } }); scanner.close(); } diff --git a/src/javachallenge/graphics/components/MapPanel.java b/src/javachallenge/graphics/components/MapPanel.java index 560f6be..ecc54ff 100644 --- a/src/javachallenge/graphics/components/MapPanel.java +++ b/src/javachallenge/graphics/components/MapPanel.java @@ -77,7 +77,10 @@ public void mouseMoved(MouseEvent e) { if (position.equals(lastPosition)) return; lastPosition = position; if (insideMap(position)) - onEnter(position.getX(), position.getY()); + if (e.isControlDown()) + onControlEnter(position.getX(), position.getY()); + else + onEnter(position.getX(), position.getY()); } public void mouseDragged(MouseEvent e) {} }); @@ -133,6 +136,9 @@ public void onEnter(int x, int y) { public void onControlClick(int x, int y) { onClick(x, y); } + public void onControlEnter(int x, int y) { + onEnter(x, y); + } public boolean insideMap (Position position) { return position.getX() >= 0 && position.getY() >= 0 &&