aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/RoadMap.java
blob: 11714ef2cbdd83899070f9f9b138323910915837 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
package gtPlusPlus;

import java.util.Iterator;
import java.util.LinkedHashMap;

import gregtech.api.util.GT_Utility;
import gtPlusPlus.api.objects.data.ObjMap;
import net.minecraft.item.ItemStack;

/**
 * This Class purely exists to note down ideas and or plans to (re)implement things.
 * 
 * @author Alkalus
 *
 */
public class RoadMap {

	//Reorganization of Item, Block and Common Class loading.
	/*
	 * So, due to the complex/silly way I've done things, I've ran into some circular loading problems around the mod.
	 * Issues occur where Classes like CI.java try access the GregtechItemList.java objects before they're actually set.
	 * A plan should be created to organize the best scheme to load things in the best order.
	 */

	//Recreation of GUIs for all Multiblocks
	/*
	 * Most Multi's use generic or straight out wrong GUI's on the controller.
	 * I'd like to go back and recreate all of these.
	 * 
	 * Some could even benefit from a totally new type of UI (Instead of Text issues, just change a 2x2px area between red and green for status lights)
	 * These advanced GUIs are probably out of my capability, but if anyone thinks they're a good idea, I'll give them a go.
	 */

	//Better Integration with GTNH
	/*
	 * Refactor things to be more common, refactor things to automatically switch between GTNH and standard variants 
	 * without having to over-abuse CORE.GTNH switches everywhere.
	 * Most of this can be done via expanding CI.java, so that we have automated handlers for everything 
	 * (IE. getX(5) will get 5x of the correct version of X)
	 */


	/*private static final LinkedHashMap<String, ObjMap<Integer, Boolean>>mCachedResults = new LinkedHashMap<String, ObjMap<Integer, Boolean>>();
	public boolean contains(ItemStack aStack) {
		if (aStack == null){
			return false;
		}
		ObjMap<Integer, Boolean> aCurrentSet;
		if (mCachedResults.get(this.toString()) != null){
			aCurrentSet = mCachedResults.get(this.toString());
		}

		else {
			aCurrentSet = new ObjMap<Integer, Boolean>(mPrefixedItems.size(), 0.5f);
			mCachedResults.put(this.toString(), aCurrentSet);
		}

		if (aCurrentSet.get(aStack.hashCode()) != null){
			return aCurrentSet.get(aStack.hashCode());
		}
		else {
			for (ItemStack tStack : mPrefixedItems){
				if (GT_Utility.areStacksEqual(aStack, tStack, !tStack.hasTagCompound())){
					aCurrentSet.put(aStack.hashCode(), true);
					return true;
				}
			}
		}
		aCurrentSet.put(aStack.hashCode(), false);
		return false;
	}*/



}