package world ;
import java.awt.Color ;
import java.awt.Graphics2D ;
import java.awt.Point ;
import java.awt.geom.Point2D ;
import java.awt.image.BufferedImage ;
import main.Render ;
public class Chunk implements ScreenComponent{
private volatile Village village;
private volatile int biome, resources;
public static final int BIOME_BARREN = 0 , BIOME_FOREST = 1 ;
public static final int RSRCE_NOTHING = 0 , RSRCE_WOOD = 1 ;
public static final int NUM_RSRCE_TYPES = 1 , NUM_BIOMES = 2 ;
/** stores the resource type associated with a specific biome */
private static final int [ ] biomeRsrceType = { RSRCE_NOTHING, RSRCE_WOOD} ;
/** the length of the chunk in buildings. ie. the number of buildings per chunk*/
public static final int lengthOfChunk = 16 ;
public Chunk
( int biome,
int initResources,
Point loc
) { this .loc = loc;
this .setBiome ( biome) ;
this .setResources ( initResources) ;
}
public void addVillage( Village v)
{
this .village = v;
}
public void update( )
{
}
@Override
{
if ( Render.drawChunkBoundaries )
{
if ( village == null )
{
gI.
setColor ( Color .
black ) ; }
else
{
gI.setColor ( Village.chunkBoundColor ) ;
}
gI.drawRect ( 0 , 0 , Chunk.getPixelLength ( ) - 1 , Chunk.getPixelLength ( ) - 1 ) ;
}
if ( village != null )
{
gI.drawImage ( village.draw ( ( int ) ( getX( ) - village.getX ( ) + village.getRelativeChunkCenter ( ) .getX ( ) ) , ( int ) ( getY( ) - village.getY ( ) + village.getRelativeChunkCenter ( ) .getY ( ) ) ) , 0 , 0 , Chunk.getPixelLength ( ) , Chunk.getPixelLength ( ) , null ) ;
}
return image;
}
public void setResources( int resources) { this .resources = resources; }
public int getBiome( ) { return biome; }
public void setBiome( int biome) { this .biome = biome; }
public int getRsrceType( ) { return biomeRsrceType[ this .getBiome ( ) ] ; }
public int getNumRsrces( ) { return resources; }
public static int getPixelLength( ) { return lengthOfChunk* Building.lengthOfBuilding ; }
public void harvest( int quantity, Villager villager)
{
resources -= quantity;
villager.getProffession ( ) .setRsrceQuantity ( villager.getProffession ( ) .getRsrceQuantity ( ) + quantity) ;
}
public boolean hasVillage( ) { return village != null ; }
public Village getVillage( ) { return village; }
/**
* returns the coordinates of this chunk relative to the origin (measured in chunks
* @return the coordinates of this chunk
*/
public Point getCoords
( ) { return loc
; } public int getX( ) { return loc.x ; }
public int getY( ) { return loc.y ; }
}
cGFja2FnZSB3b3JsZDsKCmltcG9ydCBqYXZhLmF3dC5Db2xvcjsKaW1wb3J0IGphdmEuYXd0LkdyYXBoaWNzMkQ7CmltcG9ydCBqYXZhLmF3dC5Qb2ludDsKaW1wb3J0IGphdmEuYXd0Lmdlb20uUG9pbnQyRDsKaW1wb3J0IGphdmEuYXd0LmltYWdlLkJ1ZmZlcmVkSW1hZ2U7CgppbXBvcnQgbWFpbi5SZW5kZXI7CgpwdWJsaWMgY2xhc3MgQ2h1bmsgaW1wbGVtZW50cyBTY3JlZW5Db21wb25lbnR7Cglwcml2YXRlIGZpbmFsIFBvaW50IGxvYzsKCQoJcHJpdmF0ZSB2b2xhdGlsZSBWaWxsYWdlIHZpbGxhZ2U7CgkKCXByaXZhdGUgdm9sYXRpbGUgaW50IGJpb21lLCByZXNvdXJjZXM7CglwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCSU9NRV9CQVJSRU4gPSAwLCBCSU9NRV9GT1JFU1QgPSAxOwoJcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUlNSQ0VfTk9USElORyA9IDAsIFJTUkNFX1dPT0QgID0gMTsKCXB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5VTV9SU1JDRV9UWVBFUyA9IDEsIE5VTV9CSU9NRVMgPSAyOwoJLyoqIHN0b3JlcyB0aGUgcmVzb3VyY2UgdHlwZSBhc3NvY2lhdGVkIHdpdGggYSBzcGVjaWZpYyBiaW9tZSAqLwoJcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50W10gYmlvbWVSc3JjZVR5cGUgPSB7UlNSQ0VfTk9USElORywgUlNSQ0VfV09PRH07CgoJLyoqIHRoZSBsZW5ndGggb2YgdGhlIGNodW5rIGluIGJ1aWxkaW5ncy4gaWUuIHRoZSBudW1iZXIgb2YgYnVpbGRpbmdzIHBlciBjaHVuayovCglwdWJsaWMgc3RhdGljIGZpbmFsIGludCBsZW5ndGhPZkNodW5rID0gMTY7CgoJcHVibGljIENodW5rKGludCBiaW9tZSwgaW50IGluaXRSZXNvdXJjZXMsIFBvaW50IGxvYykgewoJCXRoaXMubG9jID0gbG9jOwoJCXRoaXMuc2V0QmlvbWUoYmlvbWUpOwoJCXRoaXMuc2V0UmVzb3VyY2VzKGluaXRSZXNvdXJjZXMpOwoJfQoJCglwdWJsaWMgdm9pZCBhZGRWaWxsYWdlKFZpbGxhZ2UgdikKCXsKCQl0aGlzLnZpbGxhZ2UgPSB2OwoJfQoJCglwdWJsaWMgdm9pZCB1cGRhdGUoKQoJewoJCQoJfQoJCglAT3ZlcnJpZGUKCXB1YmxpYyBCdWZmZXJlZEltYWdlIGRyYXcoKQoJewoJCUJ1ZmZlcmVkSW1hZ2UgaW1hZ2UgPSBuZXcgQnVmZmVyZWRJbWFnZShDaHVuay5nZXRQaXhlbExlbmd0aCgpLCBDaHVuay5nZXRQaXhlbExlbmd0aCgpLCBCdWZmZXJlZEltYWdlLlRZUEVfSU5UX0FSR0IpOwoJCUdyYXBoaWNzMkQgZ0kgPSBpbWFnZS5jcmVhdGVHcmFwaGljcygpOwoJCWlmIChSZW5kZXIuZHJhd0NodW5rQm91bmRhcmllcykKCQl7CgkJCWlmICh2aWxsYWdlID09IG51bGwpCgkJCXsKCQkJCWdJLnNldENvbG9yKENvbG9yLmJsYWNrKTsKCQkJfQoJCQllbHNlCgkJCXsKCQkJCWdJLnNldENvbG9yKFZpbGxhZ2UuY2h1bmtCb3VuZENvbG9yKTsKCQkJfQoJCQlnSS5kcmF3UmVjdCgwLCAwLCBDaHVuay5nZXRQaXhlbExlbmd0aCgpLTEsIENodW5rLmdldFBpeGVsTGVuZ3RoKCktMSk7CgkJfQoJCQoJCWlmICh2aWxsYWdlICE9IG51bGwpCgkJewoJCQlnSS5kcmF3SW1hZ2UodmlsbGFnZS5kcmF3KChpbnQpKGdldFgoKS12aWxsYWdlLmdldFgoKSt2aWxsYWdlLmdldFJlbGF0aXZlQ2h1bmtDZW50ZXIoKS5nZXRYKCkpLCAoaW50KShnZXRZKCktdmlsbGFnZS5nZXRZKCkrdmlsbGFnZS5nZXRSZWxhdGl2ZUNodW5rQ2VudGVyKCkuZ2V0WSgpKSksIDAsIDAsIENodW5rLmdldFBpeGVsTGVuZ3RoKCksIENodW5rLmdldFBpeGVsTGVuZ3RoKCksIG51bGwpOwoJCX0KCQlyZXR1cm4gaW1hZ2U7Cgl9CgkKCXB1YmxpYyB2b2lkIHNldFJlc291cmNlcyhpbnQgcmVzb3VyY2VzKSB7dGhpcy5yZXNvdXJjZXMgPSByZXNvdXJjZXM7fQoKCXB1YmxpYyBpbnQgZ2V0QmlvbWUoKSB7cmV0dXJuIGJpb21lO30KCXB1YmxpYyB2b2lkIHNldEJpb21lKGludCBiaW9tZSkge3RoaXMuYmlvbWUgPSBiaW9tZTt9CgkKCXB1YmxpYyBpbnQgZ2V0UnNyY2VUeXBlKCkge3JldHVybiBiaW9tZVJzcmNlVHlwZVt0aGlzLmdldEJpb21lKCldO30KCQoJcHVibGljIGludCBnZXROdW1Sc3JjZXMoKSB7cmV0dXJuIHJlc291cmNlczt9CgkKCXB1YmxpYyBzdGF0aWMgaW50IGdldFBpeGVsTGVuZ3RoKCl7cmV0dXJuIGxlbmd0aE9mQ2h1bmsqQnVpbGRpbmcubGVuZ3RoT2ZCdWlsZGluZzt9CgkKCXB1YmxpYyB2b2lkIGhhcnZlc3QoaW50IHF1YW50aXR5LCBWaWxsYWdlciB2aWxsYWdlcikKCXsKCQlyZXNvdXJjZXMgLT0gcXVhbnRpdHk7CgkJdmlsbGFnZXIuZ2V0UHJvZmZlc3Npb24oKS5zZXRSc3JjZVF1YW50aXR5KHZpbGxhZ2VyLmdldFByb2ZmZXNzaW9uKCkuZ2V0UnNyY2VRdWFudGl0eSgpICsgcXVhbnRpdHkpOwoJfQoJCglwdWJsaWMgYm9vbGVhbiBoYXNWaWxsYWdlKCkgeyByZXR1cm4gdmlsbGFnZSAhPSBudWxsOyB9CglwdWJsaWMgVmlsbGFnZSBnZXRWaWxsYWdlKCkgeyByZXR1cm4gdmlsbGFnZTsgfQoKCS8qKgoJICogcmV0dXJucyB0aGUgY29vcmRpbmF0ZXMgb2YgdGhpcyBjaHVuayByZWxhdGl2ZSB0byB0aGUgb3JpZ2luIChtZWFzdXJlZCBpbiBjaHVua3MKCSAqIEByZXR1cm4gdGhlIGNvb3JkaW5hdGVzIG9mIHRoaXMgY2h1bmsKCSAqLwoJcHVibGljIFBvaW50IGdldENvb3JkcygpIHsgcmV0dXJuIGxvYzsgfSAgIAoJcHVibGljIGludCBnZXRYKCkgeyByZXR1cm4gbG9jLng7IH0KCXB1YmxpYyBpbnQgZ2V0WSgpIHsgcmV0dXJuIGxvYy55OyB9Cn0K
compilation info
Main.java:11: error: class Chunk is public, should be declared in a file named Chunk.java
public class Chunk implements ScreenComponent{
^
Main.java:9: error: package main does not exist
import main.Render;
^
Main.java:11: error: cannot find symbol
public class Chunk implements ScreenComponent{
^
symbol: class ScreenComponent
Main.java:14: error: cannot find symbol
private volatile Village village;
^
symbol: class Village
location: class Chunk
Main.java:32: error: cannot find symbol
public void addVillage(Village v)
^
symbol: class Village
location: class Chunk
Main.java:78: error: cannot find symbol
public void harvest(int quantity, Villager villager)
^
symbol: class Villager
location: class Chunk
Main.java:85: error: cannot find symbol
public Village getVillage() { return village; }
^
symbol: class Village
location: class Chunk
Main.java:42: error: method does not override or implement a method from a supertype
@Override
^
Main.java:47: error: cannot find symbol
if (Render.drawChunkBoundaries)
^
symbol: variable Render
location: class Chunk
Main.java:47: error: illegal start of type
if (Render.drawChunkBoundaries)
^
Main.java:55: error: cannot find symbol
gI.setColor(Village.chunkBoundColor);
^
symbol: variable Village
location: class Chunk
Main.java:76: error: cannot find symbol
public static int getPixelLength(){return lengthOfChunk*Building.lengthOfBuilding;}
^
symbol: variable Building
location: class Chunk
12 errors
stdout