Jump to content

  • Log In with Google      Sign In   
  • Create Account





More Than What I Expected

Posted by Shippou, in Non Code 04 March 2014 · 448 views

java map
An interesting thing has been going on the last couple days - a project I started out to just test map generation has taken a life of it's own.

The project was only going to last a day or so - just long enough to test item spawning on a map - , but for some reason it now looks more like a game "skeleton" than anything else.
As of when I posted this, the unnamed game has:
* Tree, rock, plant, and mining node generation based on type and rarity
* Player movement
* Map scrolling
* Collision detection
* Working item construct
* Working player construct
* Working inventory construct

Unfortunately the "game" lacks (these could be my "TODO" list) :
* GUI ( it's pure text output )
* Player actions ( mining, cutting trees, e.t.c. )
* Statistics
* Saving a player's state
* NPCs
* Looting system
* Server / Client
* Chat

Here is a peek at my spaghetti code - this class handles inventory ( and is the last one I worked on )
.
import java.util.ArrayList;
import java.util.List;


public class Inventory {
	
	InvItems ii;
	MakeItems mi;
	int selected;
	String dump;
	List<Integer> quantity;
	List<InvItems> iolist;

	
	public Inventory(InvItems i, MakeItems m){
		ii = i;
		mi = m;
		selected = 1;
		iolist = new ArrayList<InvItems>();
		quantity = new ArrayList<Integer>();
		iolist.add(ii); // < -- must have these 2 initialized for some reason
		quantity.add(0);
		
		//||\\
		addItem(mi.sample_food,5);
		addItem(mi.sample_tools,1);
		//||\\
	}
	
	public boolean checkFor(InvItems i, int num){
		int temp = iolist.size();
		for (int f = 1; f < temp; f++){
			if (i.getName().equals( iolist.get(f).getName() ) ){
				if (quantity.get(f) >= num){return true;}
				else {return false;}
				}
			}
		return false;
	}
	
	public void addItem(InvItems i, int num){
		boolean st = true;
		if (i.getStackable() == true ){
			int temp = iolist.size();
			for (int f = 1; f < temp; f ++){
				temp = iolist.size();
				if (iolist.get(f).getName().equals(i.getName() ) ){
					st = false;
					quantity.set(f, quantity.get(f) + num );
					break;
					} // <-- get name if
				else{}
				} // <-- for loop
			if (st == true){iolist.add(i);quantity.add(num);}
		} // <-- stackable if
		else{iolist.add(i);quantity.add(num);}
		}
	
	public boolean removeItems(InvItems i, int num){ 
		
		if (checkFor(i,num)){
			int temp = iolist.size();
			
			for (int f = 1; f < temp; f ++){
				if(i.getName().equals(iolist.get(f).getName() ) ) {
					if (quantity.get(f) - num == 0){
						iolist.remove(f);
						quantity.remove(f);
						return true;
					} 
					else{
						quantity.set(f, quantity.get(f) - num);
						if (selected >= iolist.size() ) {selected = 1;}
						return true;
					}
				} // <-- name
			} // <-- for loop
			return false;
		} // <-- check for
		else{return false;}
	}
	
	public String getInventory(){
		
		dump = "\n=== Inventory ===\n";
		int temp = iolist.size();
		for (int f = 1; f < temp; f ++){
			if (f == selected){dump += "[X]";}
			else{dump += "[=]";}
			dump += "[" + f + "] ";
			dump += iolist.get(f).getName() + " - " ;
			dump += quantity.get(f) + "\n" ;
		}
		return dump;
	}
	
	
	public boolean setSelected(int n){

		if (n >= iolist.size() || n == 0){return false;}
		else{ selected = n; return true;}
	}
	
	public void say(String s){System.out.println(s);}
	
	}





PARTNERS