aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/xmod/galacticraft
diff options
context:
space:
mode:
author‭huajijam <strhuaji@gmail.com>2019-03-18 20:52:30 +0800
committer‭huajijam <strhuaji@gmail.com>2019-03-18 20:52:30 +0800
commit8b090e1fd20eb4c301996b5e1dfeb78353e595e4 (patch)
tree52152dd767d195c76baa8fd8bacb14b105aaa146 /src/Java/gtPlusPlus/xmod/galacticraft
parent40d7e5da9f5b84213e2c3e4596fdc69b94bd523e (diff)
downloadGT5-Unofficial-8b090e1fd20eb4c301996b5e1dfeb78353e595e4.tar.gz
GT5-Unofficial-8b090e1fd20eb4c301996b5e1dfeb78353e595e4.tar.bz2
GT5-Unofficial-8b090e1fd20eb4c301996b5e1dfeb78353e595e4.zip
fix a bug
Diffstat (limited to 'src/Java/gtPlusPlus/xmod/galacticraft')
-rw-r--r--src/Java/gtPlusPlus/xmod/galacticraft/handler/HandlerTooltip_GC.java42
-rw-r--r--src/Java/gtPlusPlus/xmod/galacticraft/system/core/world/gen/ChunkProviderGalactic.java46
-rw-r--r--src/Java/gtPlusPlus/xmod/galacticraft/util/GalacticUtils.java10
3 files changed, 59 insertions, 39 deletions
diff --git a/src/Java/gtPlusPlus/xmod/galacticraft/handler/HandlerTooltip_GC.java b/src/Java/gtPlusPlus/xmod/galacticraft/handler/HandlerTooltip_GC.java
index 9075666b8b..64f1cfbe23 100644
--- a/src/Java/gtPlusPlus/xmod/galacticraft/handler/HandlerTooltip_GC.java
+++ b/src/Java/gtPlusPlus/xmod/galacticraft/handler/HandlerTooltip_GC.java
@@ -1,6 +1,8 @@
package gtPlusPlus.xmod.galacticraft.handler;
import java.lang.reflect.Field;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import net.minecraft.block.Block;
@@ -8,6 +10,7 @@ import net.minecraft.item.Item;
import gtPlusPlus.core.item.chemistry.RocketFuels;
import gtPlusPlus.core.lib.LoadedMods;
import gtPlusPlus.core.util.reflect.ReflectionUtils;
+import gtPlusPlus.preloader.asm.AsmConfig;
import net.minecraftforge.event.entity.player.ItemTooltipEvent;
import net.minecraftforge.fluids.Fluid;
@@ -17,20 +20,19 @@ public class HandlerTooltip_GC {
private static Block mBlock;
private static Class<?> oMainClass;
private static Class<?> oFuelLoaderClass;
- private static String[] mFuelNames;
+ private static HashMap <Integer, String> mFuelNames;
@SubscribeEvent
public void onItemTooltip(ItemTooltipEvent event) {
- if (LoadedMods.GalacticraftCore) {
+ if (LoadedMods.GalacticraftCore && AsmConfig.enableGcFuelChanges) {
if (mBlock == null) {
try {
- Class<?> GCBlocks = Class.forName("micdoodle8.mods.galacticraft.core.blocks.GCBlocks");
+ Class<?> GCBlocks = ReflectionUtils.getClass("micdoodle8.mods.galacticraft.core.blocks.GCBlocks");
if (GCBlocks != null) {
oMainClass = GCBlocks;
- Class<?> GCFuelLoader = Class
- .forName("micdoodle8.mods.galacticraft.core.blocks.BlockFuelLoader");
+ Class<?> GCFuelLoader = ReflectionUtils.getClass("micdoodle8.mods.galacticraft.core.blocks.BlockFuelLoader");
if (GCFuelLoader != null) {
oFuelLoaderClass = GCFuelLoader;
@@ -48,24 +50,26 @@ public class HandlerTooltip_GC {
} catch (Throwable t) {
}
}
- if (mFuelNames == null || mFuelNames.length == 0) {
- mFuelNames = new String[RocketFuels.mValidRocketFuels.size()];
- int slot = 0;
- for (Fluid f : RocketFuels.mValidRocketFuels.values()) {
- mFuelNames[slot++] = f.getLocalizedName();
+
+ if (mFuelNames == null || mFuelNames.isEmpty()) {
+ mFuelNames = new LinkedHashMap<Integer, String>();
+ for (int aMapKey : RocketFuels.mValidRocketFuels.keySet()) {
+ Fluid aFuel = RocketFuels.mValidRocketFuels.get(aMapKey);
+ if (aFuel != null) {
+ mFuelNames.put(aMapKey, aFuel.getLocalizedName());
+ }
}
- }
- if (mItemBlock != null) {
+ }
+ if (mItemBlock != null && !mFuelNames.isEmpty()) {
Item aTempItem = event.itemStack.getItem();
Block aTempBlock = Block.getBlockFromItem(aTempItem);
- if (aTempItem == mItemBlock || oFuelLoaderClass.isInstance(aTempBlock)
- || event.itemStack.getUnlocalizedName().toLowerCase().contains("fuelloader")) {
- int aTier = 0;
- for (String s : mFuelNames) {
- if (s != null) {
- event.toolTip.add("Tier "+aTier+": "+s);
+ if (aTempItem == mItemBlock || oFuelLoaderClass.isInstance(aTempBlock) || event.itemStack.getUnlocalizedName().toLowerCase().contains("fuelloader")) {
+ for (int aMapKey : mFuelNames.keySet()) {
+ String aFuel = mFuelNames.get(aMapKey);
+ if (aFuel != null) {
+ event.toolTip.add("Tier "+(aMapKey+1)+": "+aFuel);
}
- }
+ }
}
}
}
diff --git a/src/Java/gtPlusPlus/xmod/galacticraft/system/core/world/gen/ChunkProviderGalactic.java b/src/Java/gtPlusPlus/xmod/galacticraft/system/core/world/gen/ChunkProviderGalactic.java
index 3b9633b21d..aafa9ef9a1 100644
--- a/src/Java/gtPlusPlus/xmod/galacticraft/system/core/world/gen/ChunkProviderGalactic.java
+++ b/src/Java/gtPlusPlus/xmod/galacticraft/system/core/world/gen/ChunkProviderGalactic.java
@@ -4,12 +4,11 @@ import java.util.List;
import com.google.common.collect.Lists;
+import gtPlusPlus.api.objects.data.AutoMap;
+import gtPlusPlus.core.util.reflect.ReflectionUtils;
import micdoodle8.mods.galacticraft.api.prefab.core.BlockMetaPair;
import micdoodle8.mods.galacticraft.api.prefab.world.gen.BiomeDecoratorSpace;
import micdoodle8.mods.galacticraft.api.prefab.world.gen.MapGenBaseMeta;
-import micdoodle8.mods.galacticraft.core.entities.EntityEvolvedCreeper;
-import micdoodle8.mods.galacticraft.core.entities.EntityEvolvedSkeleton;
-import micdoodle8.mods.galacticraft.core.entities.EntityEvolvedSpider;
import net.minecraft.block.Block;
import net.minecraft.world.World;
import net.minecraft.world.biome.BiomeGenBase;
@@ -46,20 +45,37 @@ public abstract class ChunkProviderGalactic extends ChunkProviderGalaxyLakes {
}
protected SpawnListEntry[] getMonsters() {
- SpawnListEntry skele = new SpawnListEntry(EntityEvolvedSkeleton.class, 100, 4, 4);
- SpawnListEntry creeper = new SpawnListEntry(EntityEvolvedCreeper.class, 100, 4, 4);
- SpawnListEntry spider = new SpawnListEntry(EntityEvolvedSpider.class, 100, 4, 4);
+
+ Class aSkele = ReflectionUtils.getClass("micdoodle8.mods.galacticraft.core.entities.EntityEvolvedSkeleton");
+ Class aCreeper = ReflectionUtils.getClass("micdoodle8.mods.galacticraft.core.entities.EntityEvolvedCreeper");
+ Class aSpider = ReflectionUtils.getClass("micdoodle8.mods.galacticraft.core.entities.EntityEvolvedSpider");
+ Class aEnderman = ReflectionUtils.getClass("galaxyspace.SolarSystem.planets.pluto.entities.EntityEvolvedEnderman");
+
+ SpawnListEntry skele;
+ SpawnListEntry creeper;
+ SpawnListEntry spider;
+ SpawnListEntry enderman;
- Class<?> aEnderman;
- try {
- aEnderman = Class.forName("galaxyspace.SolarSystem.planets.pluto.entities.EntityEvolvedEnderman");
- if (aEnderman != null) {
- SpawnListEntry enderman = new SpawnListEntry(aEnderman, 100, 4, 4);
- return new SpawnListEntry[] { skele, creeper, spider, enderman };
- }
- } catch (ClassNotFoundException e) {}
+ AutoMap<SpawnListEntry> aMobs = new AutoMap<SpawnListEntry>();
- return new SpawnListEntry[] { skele, creeper, spider };
+ if (aSkele != null) {
+ skele = new SpawnListEntry(aSkele, 100, 4, 4);
+ aMobs.put(skele);
+ }
+ if (aCreeper != null) {
+ creeper = new SpawnListEntry(aCreeper, 100, 4, 4);
+ aMobs.put(creeper);
+ }
+ if (aSpider != null) {
+ spider = new SpawnListEntry(aSpider, 100, 4, 4);
+ aMobs.put(spider);
+ }
+ if (aEnderman != null) {
+ enderman = new SpawnListEntry(aEnderman, 100, 4, 4);
+ aMobs.put(enderman);
+ }
+
+ return aMobs.toArray();
}
public void onPopulate(IChunkProvider arg0, int arg1, int arg2) {
diff --git a/src/Java/gtPlusPlus/xmod/galacticraft/util/GalacticUtils.java b/src/Java/gtPlusPlus/xmod/galacticraft/util/GalacticUtils.java
index 94dc2d0cc0..f237aed335 100644
--- a/src/Java/gtPlusPlus/xmod/galacticraft/util/GalacticUtils.java
+++ b/src/Java/gtPlusPlus/xmod/galacticraft/util/GalacticUtils.java
@@ -26,11 +26,11 @@ public class GalacticUtils {
Class<?> a1, a2, a3, a4, a5;
Method m1, m2, m3;
try {
- a1 = Class.forName("micdoodle8.mods.galacticraft.api.prefab.entity.EntityTieredRocket");
- a2 = Class.forName("micdoodle8.mods.galacticraft.core.tile.TileEntityLandingPad");
- a3 = Class.forName("micdoodle8.mods.galacticraft.core.tile.TileEntityBuggyFueler");
- a4 = Class.forName("micdoodle8.mods.galacticraft.api.entity.IDockable");
- a5 = Class.forName("micdoodle8.mods.galacticraft.api.entity.IFuelable");
+ a1 = ReflectionUtils.getClass("micdoodle8.mods.galacticraft.api.prefab.entity.EntityTieredRocket");
+ a2 = ReflectionUtils.getClass("micdoodle8.mods.galacticraft.core.tile.TileEntityLandingPad");
+ a3 = ReflectionUtils.getClass("micdoodle8.mods.galacticraft.core.tile.TileEntityBuggyFueler");
+ a4 = ReflectionUtils.getClass("micdoodle8.mods.galacticraft.api.entity.IDockable");
+ a5 = ReflectionUtils.getClass("micdoodle8.mods.galacticraft.api.entity.IFuelable");
m1 = ReflectionUtils.getMethod(a1, "getRocketTier");
m2 = ReflectionUtils.getMethod(a2, "getDockedEntity");
m3 = ReflectionUtils.getMethod(a3, "getDockedEntity");