Commit 29ceeb585a2f14eb86f673f8bafc76a08d6ac29b
1 parent
2bf580ed
LiteLoader 1.6.2 - register class path entries with mods as resource packs as we…
…ll, so that mods work in Eclipse
Showing
4 changed files
with
123 additions
and
14 deletions
java/com/mumfrey/liteloader/core/ClassPathMod.java
0 → 100644
| 1 | +package com.mumfrey.liteloader.core; | |
| 2 | + | |
| 3 | +import java.io.File; | |
| 4 | + | |
| 5 | +import com.mumfrey.liteloader.resources.ModResourcePack; | |
| 6 | +import com.mumfrey.liteloader.resources.ModResourcePackDir; | |
| 7 | + | |
| 8 | +/** | |
| 9 | + * Mod file reference for a file loaded from class path | |
| 10 | + * | |
| 11 | + * @author Adam Mummery-Smith | |
| 12 | + */ | |
| 13 | +public class ClassPathMod extends ModFile | |
| 14 | +{ | |
| 15 | + private static final long serialVersionUID = -4759310661966590773L; | |
| 16 | + | |
| 17 | + public ClassPathMod(File file, String name, String version) | |
| 18 | + { | |
| 19 | + super(file, ""); | |
| 20 | + | |
| 21 | + this.modName = name; | |
| 22 | + this.version = version; | |
| 23 | + } | |
| 24 | + | |
| 25 | + @Override | |
| 26 | + protected void parseVersionFile(String strVersionData) | |
| 27 | + { | |
| 28 | + // Nope | |
| 29 | + } | |
| 30 | + | |
| 31 | + @Override | |
| 32 | + public boolean registerAsResourcePack(String name) | |
| 33 | + { | |
| 34 | + if (this.resourcePack == null) | |
| 35 | + { | |
| 36 | + if (this.isDirectory()) | |
| 37 | + { | |
| 38 | + this.resourcePack = new ModResourcePackDir(name, this); | |
| 39 | + } | |
| 40 | + else | |
| 41 | + { | |
| 42 | + this.resourcePack = new ModResourcePack(name, this); | |
| 43 | + } | |
| 44 | + | |
| 45 | + return LiteLoader.getInstance().registerModResourcePack(this.resourcePack); | |
| 46 | + } | |
| 47 | + | |
| 48 | + return false; | |
| 49 | + } | |
| 50 | +} | ... | ... |
java/com/mumfrey/liteloader/core/LiteLoader.java
| ... | ... | @@ -55,7 +55,6 @@ import com.mumfrey.liteloader.RenderListener; |
| 55 | 55 | import com.mumfrey.liteloader.Tickable; |
| 56 | 56 | import com.mumfrey.liteloader.gui.GuiControlsPaginated; |
| 57 | 57 | import com.mumfrey.liteloader.permissions.PermissionsManagerClient; |
| 58 | -import com.mumfrey.liteloader.resources.ModResourcePack; | |
| 59 | 58 | import com.mumfrey.liteloader.util.ModUtilities; |
| 60 | 59 | import com.mumfrey.liteloader.util.PrivateFields; |
| 61 | 60 | |
| ... | ... | @@ -613,7 +612,7 @@ public final class LiteLoader implements FilenameFilter, IPlayerUsage |
| 613 | 612 | * @param resourcePack |
| 614 | 613 | * @return |
| 615 | 614 | */ |
| 616 | - public boolean registerModResourcePack(ModResourcePack resourcePack) | |
| 615 | + public boolean registerModResourcePack(ResourcePack resourcePack) | |
| 617 | 616 | { |
| 618 | 617 | if (!this.registeredResourcePacks.containsKey(resourcePack.func_130077_b())) // TODO adamsrc -> getName() |
| 619 | 618 | { |
| ... | ... | @@ -633,7 +632,7 @@ public final class LiteLoader implements FilenameFilter, IPlayerUsage |
| 633 | 632 | * @param name |
| 634 | 633 | * @return |
| 635 | 634 | */ |
| 636 | - public boolean unRegisterModResourcePack(ModResourcePack resourcePack) | |
| 635 | + public boolean unRegisterModResourcePack(ResourcePack resourcePack) | |
| 637 | 636 | { |
| 638 | 637 | if (this.registeredResourcePacks.containsValue(resourcePack)) |
| 639 | 638 | { |
| ... | ... | @@ -1127,6 +1126,7 @@ public final class LiteLoader implements FilenameFilter, IPlayerUsage |
| 1127 | 1126 | } |
| 1128 | 1127 | |
| 1129 | 1128 | this.modsToLoad.put(mod.getSimpleName(), (Class<? extends LiteMod>)mod); |
| 1129 | + this.modFiles.put(mod.getSimpleName(), new ClassPathMod(packagePath, mod.getSimpleName().substring(7), LiteLoader.getVersion())); | |
| 1130 | 1130 | } |
| 1131 | 1131 | |
| 1132 | 1132 | if (modClasses.size() > 0) | ... | ... |
java/com/mumfrey/liteloader/core/ModFile.java
| ... | ... | @@ -4,6 +4,8 @@ import java.io.File; |
| 4 | 4 | import java.util.HashMap; |
| 5 | 5 | import java.util.Map; |
| 6 | 6 | |
| 7 | +import net.minecraft.src.ResourcePack; | |
| 8 | + | |
| 7 | 9 | import com.google.gson.Gson; |
| 8 | 10 | import com.google.gson.JsonSyntaxException; |
| 9 | 11 | import com.mumfrey.liteloader.resources.ModResourcePack; |
| ... | ... | @@ -22,52 +24,52 @@ public class ModFile extends File |
| 22 | 24 | /** |
| 23 | 25 | * Gson parser for JSON |
| 24 | 26 | */ |
| 25 | - private static Gson gson = new Gson(); | |
| 27 | + protected static Gson gson = new Gson(); | |
| 26 | 28 | |
| 27 | 29 | /** |
| 28 | 30 | * True if the metadata information is parsed successfully, the mod will be added |
| 29 | 31 | */ |
| 30 | - private boolean valid = false; | |
| 32 | + protected boolean valid = false; | |
| 31 | 33 | |
| 32 | 34 | /** |
| 33 | 35 | * True if parsed from JSON, false if fallback mode using legacy version.txt |
| 34 | 36 | */ |
| 35 | - private boolean json = false; | |
| 37 | + protected boolean json = false; | |
| 36 | 38 | |
| 37 | 39 | /** |
| 38 | 40 | * Name of the mod specified in the JSON file, this can be any string but should be the same between mod versions |
| 39 | 41 | */ |
| 40 | - private String modName; | |
| 42 | + protected String modName; | |
| 41 | 43 | |
| 42 | 44 | /** |
| 43 | 45 | * Loader version |
| 44 | 46 | */ |
| 45 | - private String version; | |
| 47 | + protected String version; | |
| 46 | 48 | |
| 47 | 49 | /** |
| 48 | 50 | * File time stamp, used as sorting criteria when no revision information is found |
| 49 | 51 | */ |
| 50 | - private long timeStamp; | |
| 52 | + protected long timeStamp; | |
| 51 | 53 | |
| 52 | 54 | /** |
| 53 | 55 | * Revision number from the json file |
| 54 | 56 | */ |
| 55 | - private float revision = 0.0F; | |
| 57 | + protected float revision = 0.0F; | |
| 56 | 58 | |
| 57 | 59 | /** |
| 58 | 60 | * True if the revision number was successfully read, used as a semaphore so that we know when revision is a valid number |
| 59 | 61 | */ |
| 60 | - private boolean hasRevision = false; | |
| 62 | + protected boolean hasRevision = false; | |
| 61 | 63 | |
| 62 | 64 | /** |
| 63 | 65 | * Resource pack we have registered with minecraft |
| 64 | 66 | */ |
| 65 | - private ModResourcePack resourcePack = null; | |
| 67 | + protected ResourcePack resourcePack = null; | |
| 66 | 68 | |
| 67 | 69 | /** |
| 68 | 70 | * ALL of the parsed metadata from the file, associated with the mod later on for retrieval via the loader |
| 69 | 71 | */ |
| 70 | - private HashMap<String, String> metaData = new HashMap<String, String>(); | |
| 72 | + protected HashMap<String, String> metaData = new HashMap<String, String>(); | |
| 71 | 73 | |
| 72 | 74 | /** |
| 73 | 75 | * @param file |
| ... | ... | @@ -83,7 +85,7 @@ public class ModFile extends File |
| 83 | 85 | } |
| 84 | 86 | |
| 85 | 87 | @SuppressWarnings("unchecked") |
| 86 | - private void parseVersionFile(String strVersionData) | |
| 88 | + protected void parseVersionFile(String strVersionData) | |
| 87 | 89 | { |
| 88 | 90 | // Assume that it's json if the file starts with a brace |
| 89 | 91 | if (strVersionData.trim().startsWith("{")) | ... | ... |
java/com/mumfrey/liteloader/resources/ModResourcePackDir.java
0 → 100644
| 1 | +package com.mumfrey.liteloader.resources; | |
| 2 | + | |
| 3 | +import java.io.File; | |
| 4 | +import java.io.IOException; | |
| 5 | + | |
| 6 | +import net.minecraft.src.FolderResourcePack; | |
| 7 | +import net.minecraft.src.MetadataSection; | |
| 8 | +import net.minecraft.src.MetadataSerializer; | |
| 9 | + | |
| 10 | +/** | |
| 11 | + * Resource pack which wraps a mod directory on the classpath | |
| 12 | + * | |
| 13 | + * @author Adam Mummery-Smith | |
| 14 | + */ | |
| 15 | +public class ModResourcePackDir extends FolderResourcePack | |
| 16 | +{ | |
| 17 | + /** | |
| 18 | + * Display name, only shows up in debug output | |
| 19 | + */ | |
| 20 | + private final String name; | |
| 21 | + | |
| 22 | + /** | |
| 23 | + * @param name Friendly name | |
| 24 | + * @param modFile | |
| 25 | + */ | |
| 26 | + public ModResourcePackDir(String name, File modFile) | |
| 27 | + { | |
| 28 | + super(modFile); | |
| 29 | + this.name = name; | |
| 30 | + } | |
| 31 | + | |
| 32 | + /* (non-Javadoc) | |
| 33 | + * @see net.minecraft.src.AbstractResourcePack#getMetadataSection(net.minecraft.src.MetadataSerializer, java.lang.String) | |
| 34 | + */ | |
| 35 | + @Override | |
| 36 | + public MetadataSection func_135058_a(MetadataSerializer metadataSerializer, String metadataSectionName) throws IOException // TODO adamsrc -> getMetadataSection | |
| 37 | + { | |
| 38 | + try | |
| 39 | + { | |
| 40 | + // This will fail when fetching pack.mcmeta if there isn't one in the mod file, since we don't care we | |
| 41 | + // just catch the exception and return null instead | |
| 42 | + return super.func_135058_a(metadataSerializer, metadataSectionName); // TODO adamsrc -> getMetadataSection | |
| 43 | + } | |
| 44 | + catch (Exception ex) {} | |
| 45 | + | |
| 46 | + return null; | |
| 47 | + } | |
| 48 | + | |
| 49 | + /* (non-Javadoc) | |
| 50 | + * @see net.minecraft.src.AbstractResourcePack#getName() | |
| 51 | + */ | |
| 52 | + @Override | |
| 53 | + public String func_130077_b() // TODO adamsrc -> getName() | |
| 54 | + { | |
| 55 | + return this.name; | |
| 56 | + } | |
| 57 | +} | ... | ... |