moved map object to new package. still needs love, though (tempDist & stuff)

master
flying sheep 2013-04-06 00:05:46 +02:00
parent bae368b8dc
commit 7a8f7e1ea3
15 changed files with 126 additions and 66 deletions

View File

@ -2,8 +2,7 @@ package MoF;
import amidst.map.MapMarkers;
import amidst.map.Stronghold;
import amidst.map.*;
import java.awt.Color;
import java.awt.Graphics2D;
@ -20,7 +19,7 @@ public class ChunkManager extends Thread
private Object b;
public float[] a;
public long seed;
public Stronghold[] strongholds;
public MapObjectStronghold[] strongholds;
private Stack<Fragment> queue;
private MapGenVillage villageFinder;
private MapGenNetherhold netherholdFinder;
@ -28,7 +27,7 @@ public class ChunkManager extends Thread
private boolean active;
private static Class<?> iBiome, iCache, s12w03a;
private Method getData, clearCache;
private List<Player> players;
private List<MapObjectPlayer> players;
private static boolean firstRun = true;
private SkinManager m;
public ChunkManager(long seed) {
@ -81,7 +80,7 @@ public class ChunkManager extends Thread
this.seed = seed;
strongholds = new MapGenStronghold().a(seed, this);
queue = new Stack<Fragment>();
players = new ArrayList<Player>();
players = new ArrayList<MapObjectPlayer>();
active = true;
villageFinder = new MapGenVillage();
netherholdFinder = new MapGenNetherhold(seed);
@ -153,19 +152,19 @@ public class ChunkManager extends Thread
}
private void getPlayerData(Fragment frag) {
for (Player p : players) {
for (MapObjectPlayer p : players) {
if (frag.isInside(p.x, p.y)) {
frag.addMapObject(p);
}
}
}
public void addPlayer(Player p) {
public void addPlayer(MapObjectPlayer p) {
players.add(p);
m.addPlayer(p);
}
public void setPlayerData(List<Player> ar) {
public void setPlayerData(List<MapObjectPlayer> ar) {
players = ar;
for (Player player : ar)
for (MapObjectPlayer player : ar)
m.addPlayer(player);
}
@ -195,7 +194,7 @@ public class ChunkManager extends Thread
for (int y = 0; y < fs; y++) {
for (int x = 0; x < fs; x++) {
if (netherholdFinder.checkChunk((frag.x*fs) + (x), (frag.y*fs) + (y))) {
frag.addMapObject(new NetherMapObject((frag.x*ls) + (x << 4), (frag.y*ls) + (y << 4)));
frag.addMapObject(new MapObjectNether((frag.x*ls) + (x << 4), (frag.y*ls) + (y << 4)));
}
}
}
@ -211,8 +210,6 @@ public class ChunkManager extends Thread
frag.addMapObject(new MapObject(type, (frag.x*ls) + (x << 4), (frag.y*ls) + (y << 4)));
}
}
}
}
@ -221,7 +218,7 @@ public class ChunkManager extends Thread
for (int i = 0; i < 3; i++) {
Point t = strongholds[i];
if (frag.isInside(t.x, t.y)) {
frag.addMapObject(new MapObject(MapMarkers.STRONGHOLD, t.x, t.y));
frag.addMapObject(new MapObjectStronghold(t.x, t.y));
}
}
}

View File

@ -2,6 +2,7 @@ package MoF;
import amidst.Options;
import amidst.map.MapMarkers;
import amidst.map.MapObject;
import java.awt.Color;
import java.awt.Graphics2D;
@ -105,13 +106,8 @@ public class Fragment extends BufferedImage {
}
public void addMapObject(MapObject m) {
int sX = m.x >> 2;
int sY = m.y >> 2;
int fs = Project.FRAGMENT_SIZE;
sX -= this.x * fs;
sY -= this.y * fs;
m.rx = sX;
m.ry = sY;
m.rx = (m.x >> 2) - (this.x * Project.FRAGMENT_SIZE);
m.ry = (m.y >> 2) - (this.y * Project.FRAGMENT_SIZE);
if (m.type == MapMarkers.STRONGHOLD) {
strongholdCount++;
} else if (m.type == MapMarkers.VILLAGE) {

View File

@ -1,5 +1,5 @@
package MoF;
import amidst.map.Stronghold;
import amidst.map.MapObjectStronghold;
import java.awt.Point;
import java.util.ArrayList;
@ -10,10 +10,10 @@ public class MapGenStronghold {
private Biome[] b = { Biome.d, Biome.f, Biome.e, Biome.h, Biome.g, Biome.n, Biome.o };
private Biome[] ab = { Biome.d, Biome.f, Biome.e, Biome.h, Biome.g, Biome.n, Biome.o, Biome.s, Biome.t, Biome.v };
private Biome[] ac = { Biome.d, Biome.f, Biome.e, Biome.h, Biome.g, Biome.n, Biome.o, Biome.s, Biome.t, Biome.v, Biome.w, Biome.x };
public Stronghold[] coords = new Stronghold[3];
public MapObjectStronghold[] coords = new MapObjectStronghold[3];
private Random c = new Random();
public static boolean reset0 = false;
protected Stronghold[] a(long seed, ChunkManager x) {
protected MapObjectStronghold[] a(long seed, ChunkManager x) {
int j;
c = new Random();
this.c.setSeed(seed);
@ -41,12 +41,12 @@ public class MapGenStronghold {
k = localPoint.x >> 4;
m = localPoint.y >> 4;
}
coords[j] = new Stronghold((k << 4), (m << 4));
coords[j] = new MapObjectStronghold((k << 4), (m << 4));
d1 += 6.283185307179586D / this.coords.length;
}
if (reset0)
coords[0] = new Stronghold(0, 0);
coords[0] = new MapObjectStronghold(0, 0);
return coords;
}

View File

@ -1,4 +1,6 @@
package MoF;
import amidst.map.MapObject;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;

View File

@ -2,6 +2,8 @@ package MoF;
import amidst.Options;
import amidst.map.MapObject;
import amidst.map.MapObjectPlayer;
import java.awt.Color;
import java.awt.Font;
@ -83,8 +85,8 @@ public class MapViewer extends JComponent implements MouseListener, MouseWheelLi
this.addMouseWheelListener(this);
menu = new JPopupMenu();
if (proj.saveLoaded) {
List<Player> pl = proj.save.getPlayers();
for (Player player : pl) {
List<MapObjectPlayer> pl = proj.save.getPlayers();
for (MapObjectPlayer player : pl) {
JMenuItem tj = new JMenuItem("Move " + player.getName() + " here.");
tj.addActionListener(new MapListener(this, player.getName()));

View File

@ -1,5 +1,7 @@
package MoF;
import amidst.map.MapObject;
public class PixelInfo {
private int biome, x, y;
private MapObject obj;

View File

@ -1,5 +1,8 @@
package MoF;
import amidst.map.MapObject;
import amidst.map.MapObjectPlayer;
import java.awt.BorderLayout;
import java.awt.Color;
import java.util.List;
@ -41,7 +44,7 @@ public class Project extends JPanel {
save = file;
Google.track("seed/file/" + this.seed);
List<Player> players = file.getPlayers();
List<MapObjectPlayer> players = file.getPlayers();
manager.setPlayerData(players);
}

View File

@ -1,5 +1,6 @@
package MoF;
import amidst.Util;
import amidst.map.MapObjectPlayer;
import amidst.nbt.Tag;
import amidst.nbt.TagCompound;
@ -51,11 +52,11 @@ public class SaveLoader {
}
private File file;
private List<Player> players;
private List<MapObjectPlayer> players;
public long seed;
private boolean multi;
private List<String> back;
public List<Player> getPlayers() {
public List<MapObjectPlayer> getPlayers() {
return players;
}
public void movePlayer(String name, int x, int y) {
@ -113,17 +114,17 @@ public class SaveLoader {
public SaveLoader(File f) {
file = f;
players = new ArrayList<Player>();
players = new ArrayList<MapObjectPlayer>();
back = new ArrayList<String>();
try {
TagCompound t = Tag.readFrom(new FileInputStream(f));
TagCompound pTag = (TagCompound) t.findTagByName("Player");
TagCompound pTag = (TagCompound) t.findTagByName("MapObjectPlayer");
seed = (Long) t.findTagByName("RandomSeed").getValue();
genType = Type.fromMixedCase((String) t.findTagByName("generatorName").getValue());
System.out.println("Gen Type: " + genType);
multi = pTag == null;
if (!multi) {
addPlayer("Player", pTag);
addPlayer("MapObjectPlayer", pTag);
} else {
File[] listing = new File(f.getParent(), "players").listFiles();
for (int i = 0; i < (listing != null ? listing.length : 0); i++) {
@ -141,6 +142,6 @@ public class SaveLoader {
Tag<Double>[] pa = (Tag[]) pos.getValue();
double x = pa[0].getValue();
double z = pa[2].getValue();
players.add(new Player(name, (int) x, (int) z));
players.add(new MapObjectPlayer(name, (int) x, (int) z));
}
}

View File

@ -1,5 +1,7 @@
package MoF;
import amidst.map.MapObjectPlayer;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
@ -11,14 +13,14 @@ import java.util.Stack;
import javax.imageio.ImageIO;
public class SkinManager extends Thread {
private Stack<Player> players;
private Stack<MapObjectPlayer> players;
public boolean active;
public SkinManager() {
players = new Stack<Player>();
players = new Stack<MapObjectPlayer>();
active = true;
}
public void addPlayer(Player p) {
public void addPlayer(MapObjectPlayer p) {
players.push(p);
}
public void run() {
@ -27,7 +29,7 @@ public class SkinManager extends Thread {
if (players.isEmpty()) {
Thread.sleep(50L);
} else {
Player p = players.pop();
MapObjectPlayer p = players.pop();
try {
URL url = new URL("http://s3.amazonaws.com/MinecraftSkins/" + p.getName() + ".png");
BufferedImage img = ImageIO.read(url);

View File

@ -3,6 +3,7 @@ package amidst.gui;
import MoF.*;
import amidst.Options;
import amidst.Util;
import amidst.map.MapObjectPlayer;
import amidst.resources.ResourceLoader;
import javax.swing.*;
@ -13,7 +14,6 @@ import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.List;
/** Structured menubar-creation to alleviate the huge mess that it would be elsewise
@ -60,7 +60,7 @@ public class AmidstMenu extends JMenuBar {
@Override
public void actionPerformed(ActionEvent arg0) {
if (window.curProject.saveLoaded)
for (Player player : window.curProject.save.getPlayers())
for (MapObjectPlayer player : window.curProject.save.getPlayers())
if (player.needSave) {
window.curProject.save.movePlayer(player.getName(), player.x, player.y);
player.needSave = false;
@ -140,7 +140,7 @@ public class AmidstMenu extends JMenuBar {
super("Find");
//add(new JMenuItem("Biome"));
//add(new JMenuItem("Village"));
add(new JMenuItem("Stronghold") {{
add(new JMenuItem("MapObjectStronghold") {{
setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F, InputEvent.CTRL_DOWN_MASK));
addActionListener(new ActionListener() {
@Override
@ -177,14 +177,14 @@ public class AmidstMenu extends JMenuBar {
});
}});
add(new JMenuItem("Player") {{
add(new JMenuItem("MapObjectPlayer") {{
addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
if (window.curProject.saveLoaded) {
List<Player> playerList = window.curProject.save.getPlayers();
Player[] players = playerList.toArray(new Player[playerList.size()]);
goToChosenPoint(players, "Player");
List<MapObjectPlayer> playerList = window.curProject.save.getPlayers();
MapObjectPlayer[] players = playerList.toArray(new MapObjectPlayer[playerList.size()]);
goToChosenPoint(players, "MapObjectPlayer");
}
}
});

View File

@ -1,4 +1,4 @@
package MoF;
package amidst.map;
import amidst.Options;
import amidst.map.MapMarkers;
@ -10,15 +10,15 @@ public class MapObject extends Point {
public MapMarkers type;
public int rx, ry;
public double localScale = 1.0;
public boolean selectable = true;
public double tempDist = 0;
protected JToggleButton.ToggleButtonModel model;
public MapObject(MapMarkers eType, int eX, int eY) {
public MapObject(MapMarkers eType, int x, int y) {
super(x, y);
type = eType;
x = eX;
y = eY;
model = Options.instance.showIcons;
}
public String getName() {
return type.toString();
}

View File

@ -0,0 +1,10 @@
package amidst.map;
import amidst.Options;
public class MapObjectNether extends MapObject {
public MapObjectNether(int eX, int eY) {
super(MapMarkers.NETHER_FORTRESS, eX, eY);
model = Options.instance.showNetherFortresses;
}
}

View File

@ -0,0 +1,47 @@
package amidst.map;
import java.awt.image.BufferedImage;
public class MapObjectPlayer extends MapObject {
private String name;
public boolean needSave;
private BufferedImage marker;
public MapObjectPlayer(String name, int x, int y) {
super(MapMarkers.PLAYER, x , y);
marker = type.image;
needSave = false;
this.setName(name);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getWidth() {
return (int)(marker.getWidth()*localScale*3);
}
public int getHeight() {
return (int)(marker.getHeight()*localScale*3);
}
public void setPosition(int x, int y) {
this.x = x;
this.y = y;
needSave = true;
}
@Override
public BufferedImage getImage() {
return marker;
}
public void setMarker(BufferedImage img) {
this.marker = img;
}
@Override
public String toString() {
return "MapObjectPlayer \"" + name + "\" at (" + x + ", " + y + ")";
}
}

View File

@ -0,0 +1,14 @@
package amidst.map;
/** Used mainly to be override its toString method for use in choices
*/
public class MapObjectStronghold extends MapObject {
public MapObjectStronghold(int x, int y) {
super(MapMarkers.STRONGHOLD, x, y);
}
@Override
public String toString() {
return "MapObjectStronghold at (" + x + ", " + y + ")";
}
}

View File

@ -1,16 +0,0 @@
package amidst.map;
import java.awt.*;
/** Used mainly to be override its toString method for use in choices
*/
public class Stronghold extends Point {
public Stronghold(int x, int y) {
super(x, y);
}
@Override
public String toString() {
return "Stronghold at (" + x + ", " + y + ")";
}
}