
Abastro
Forge Modder-
Content Count
1075 -
Joined
-
Last visited
-
Days Won
2
Everything posted by Abastro
-
I think my explanation for this api was insufficient. This api is adding Heat System for minecraft, which is another energy transportation system. It is not applicable for normal blocks, but for tile entities which implements IHeatComponent interface. Amount of Transferred Heat is just proportional to temperature difference and thermal conductivity, and when Heat is Transferred, OnTransferHeat Method of IHeatComponent called, to change the Temperature of the component, or change the amount of water. I'll have to change the explanation, anyway. Thanks for reply.
-
Sci-API Information Sci API is the api for Scientific Mods. This contains useful classes and methods related with Science. 1. Calculation API Calculation API is the api which applies Calculation Systems. You can use Vector and Matrix using this API. Functions would be added in this api, too. 2. Unit API Unit API offers Scientific Unit System. If you are confused with many units (ex: tick vs. second vs. day, EU vs MJ vs W)., Then you can use this api! You can use like these: Time l = new Time(30.0, "second"); Time d = new Time(225.0, "tick"); Time p = l.add(d); * This may be cause of performance hit if frequently used. Use setadd, setsub, etc. if you want to avoid the performance hit. 3. Data API Data API offers interfaces and classes related with data reading/writing. You can use these interfaces to get structured data from byte array or string array. * This may be a cause of bug, for this part is not fully tested. please tell me when you get a bug with this api. 4. Chemical API Chemical API offers Chemical System for Minecraft. Group of Elements forms Chemical, and Group of Chemicals forms Compound. Compounds may be used for determining the Ingredients & Properties of a block/item. Now, Element part of this api is finished. 5. ItemEntity API ItemEntity is the TileEntity for Items in inventory. It can be used similar to the TileEntity. Instead of World, its worldObj is type of McInvWorld, which represents the 2-dimensional inventory. (It describes the inventory as world) And its position can be expressed using 2 coordinates (x and y). It is basically only applied to the player inventory, but you can make it applicable to your custom inventory. And This api also contains the 'MultiItem' system, which is the item version for the MultiBlock. They will be constructed when certain 'shape' is formed, and destroyed when the shape has broken. 6. Heat API Heat API is the api which adds Heat System in minecraft. If you want to make new energy system, you can use this Heat system added by this api. In this api, Heat can be transferred between Heat Components, from hot component to cold component. You can register TileEntity as Heat Component, and control temperature of the tile entity, and decide what to do when heat is transferred in/out. Downloads Latest Version: Version 0.3.0 | Direct - Source | Direct Old Downloads: How To Use 1. For Modders: You can download the decompiled SciAPI.jar file and add the jar file as the library. - (Temporarily unavailable) (Find out "Using APIs" in Minecraft Forge Forum.) You can see the source code at the github : https://github.com/Abastro/SciAPI 2. For Mod Users: You can just download the SciAPI.jar file and put it in your mod folder. Make sure that Minecraft Forge is installed. Update Log Inquiry You can Inquiry here. Any reports about bugs would be appreciated. You can also send email: abab9579@gmail.com.
-
Hi, I'm Abastro, making Stellarium mod which modifies the celestial angle, etc. I want to modify this behavior: Spawning at night. Currently I saw that it uses constant getcelestialAngle method, so I want change that.. Is it possible?
-
Hi, I'm making the Stellarium mod, which changes minecraft into configurable universe. I want to make the minecraft world sphere, but I realized that full minecraft code is designed for planar minecraft world. What I have to do is only changing the direction of sun via coordinates, but the 'getCelestialAngle' method returns constant for every coordinates.. Then can I hook the Light-level calculation, etc.? or are there any other ways?
-
Hi, I'm making the Stellarium for minecraft, which changes the direction of sun. I am displeased with the calculateCelestialAngle method, which only depends on the time of the world. I think that if the method uses the x, y, z coordinates, so we can modify the angle via coordinates of the world, then it would be great for modification in sky..
-
Stellarium 0.2.0 would be Opensource, or there will be Stellarium API. but not for Stellarium 0.1.0, because It is only a test version.
-
You can't change it now. but when the next version(Stellarium 0.2.0) comes out, You can reMAKE the solar system by changing configuration!!
-
Introduction Stellarium is the mod which changes minecraft sky much realistic, adding fancy real stars and planets, etc. Find constellations and stars with this mod! Features 1. Real colored stars rises at night. 2. The size of Sun and Moon is much fancier, smaller than default, and they moves diagonally 3. Bright planets like Venus can also be seen in daytime 4. 1 month is 29.5 days, and 1 year is 365.2422 days. 5. Sun, Moon, planets, and stars are invisible when it's raining. Photos Update Log Scheduled Updates Installation 1. First, install minecraft forge. 2. Find %appdata%\.minecraft folder or find directory where minecraft was installed. 3. Drop Stellarium.jar in mods folder. Configuation Stellarium.cfg - Mag_Limit : reducing Limit Magnitude can improve FPS exponentially - Moon_Fragments_Number : Accuracy of moon, reducing this will improve FPS slightly. - Twinkling(Turbulance) : Degree of the twinkling effect of star. Not related with FPS. Recent Download Version 0.1.4 Stellarium v0.1.4 | * - v0.1.4 requires SciAPI v0.5.2 to run. Old Downloads Inquiry[/size] you can inquiry here or abab9579@gmail.com or http://stellarium.tistory.com/
-
My coremod ERRORED while changes base EntityRenderer.class...
Abastro replied to Abastro's topic in Modder Support
I solved this problem by preventing the Entityplayer class from patching. and I'll let it collide if some other mod tries to patch the WorldProvider class. -
My coremod ERRORED while changes base EntityRenderer.class...
Abastro replied to Abastro's topic in Modder Support
I just only changed very few part of the class... and there was nothing changed in EntityRenderer.class. -
My coremod ERRORED while changes base EntityRenderer.class...
Abastro replied to Abastro's topic in Modder Support
Then How can I edit Base classes? -
My coremod ERRORED while changes base EntityRenderer.class...
Abastro replied to Abastro's topic in Modder Support
The Error log was full log. I followed coolgooner's tutorial, and this is my code: StellarClassTransformer: package stellarium.core; import java.io.*; import java.util.zip.*; import cpw.mods.fml.relauncher.IClassTransformer; public class StellarClassTransformer implements IClassTransformer { @Override public byte[] transform(String name, String transformedName, byte[] bytes) { if (name.equals("acn") || name.equals("net.minecraft.world.WorldProvider")) { System.out.println("********* INSIDE WorldProvider TRANSFORMER ABOUT TO PATCH: " + name); bytes = patchClassInJar(name, bytes, name, StellarLoadingPlugin.location); } if (name.equals("bfq") || name.equals("net.minecraft.client.renderer.EntityRenderer")) { System.out.println("********* INSIDE EntityRenderer TRANSFORMER ABOUT TO PATCH: " + name); bytes = patchClassInJar(name, bytes, name, StellarLoadingPlugin.location); } return bytes; } public byte[] patchClassInJar(String name, byte[] bytes, String ObfName, File location) { try { //open the jar as zip ZipFile zip = new ZipFile(location); ZipEntry entry = zip.getEntry(name.replace('.', '/') + ".class"); if (entry == null) { System.out.println(name + " not found in " + location.getName()); } else { //serialize the class file into the bytes array InputStream zin = zip.getInputStream(entry); bytes = new byte[(int) entry.getSize()]; zin.read(bytes); zin.close(); System.out.println("[" + "StellariumCore" + "]: " + "Class " + name + " patched!"); } zip.close(); } catch (Exception e) { throw new RuntimeException("Error overriding " + name + " from " + location.getName(), e); } //return the new bytes return bytes; } } StellarLoadingPlugin: package stellarium.core; import java.io.File; import java.util.Map; import cpw.mods.fml.relauncher.IFMLLoadingPlugin; public class StellarLoadingPlugin implements IFMLLoadingPlugin { public static File location; @Override public String[] getLibraryRequestClass() { // TODO Auto-generated method stub return null; } @Override public String[] getASMTransformerClass() { return new String[]{StellarClassTransformer.class.getName()}; } @Override public String getModContainerClass() { // TODO Auto-generated method stub return StellarDummyContainer.class.getName(); } @Override public String getSetupClass() { // TODO Auto-generated method stub return null; } @Override public void injectData(Map<String, Object> data) { location = (File) data.get("coremodLocation"); } } StellarDummyContainer: package stellarium.core; import java.util.Arrays; import com.google.common.eventbus.Subscribe; import com.google.common.eventbus.EventBus; import cpw.mods.fml.common.DummyModContainer; import cpw.mods.fml.common.LoadController; import cpw.mods.fml.common.ModMetadata; import cpw.mods.fml.common.event.FMLConstructionEvent; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; public class StellarDummyContainer extends DummyModContainer { public StellarDummyContainer() { super(new ModMetadata()); ModMetadata meta = getMetadata(); meta.modId = "StellariumCore"; meta.name = "StellariumCore"; meta.version = "0.0.0"; meta.credits = "Not Decided"; meta.authorList = Arrays.asList("Abastro"); meta.description = ""; meta.url = "http://blog.naver.com/abab9579"; meta.updateUrl = ""; meta.screenshots = new String[0]; meta.logoFile = ""; } @Override public boolean registerBus(EventBus bus, LoadController controller) { bus.register(this); return true; } @Subscribe public void modConstruction(FMLConstructionEvent evt){ } @Subscribe public void preInit(FMLPreInitializationEvent evt) { } @Subscribe public void init(FMLInitializationEvent evt) { } @Subscribe public void postInit(FMLPostInitializationEvent evt) { } } -
[move][/move]I made some coremod which changes base EntityRenderer.class (and WorldProvider.class) And I got this error. This is the Error Log: 2013-08-21 17:18:52 [iNFO] [sTDERR] [17:18:52] [ERROR] Class.getDeclaredFields0:-2->MinecraftLauncher.main:214: Unhandled error launching minecraft: java.lang.NoClassDefFoundError: Lnet/minecraft/client/renderer/EntityRenderer; 2013-08-21 17:18:52 [iNFO] [sTDERR] java.lang.Class.getDeclaredFields0(Native Method) 2013-08-21 17:18:52 [iNFO] [sTDERR] java.lang.Class.privateGetDeclaredFields(Unknown Source) 2013-08-21 17:18:52 [iNFO] [sTDERR] java.lang.Class.getDeclaredField(Unknown Source) 2013-08-21 17:18:52 [iNFO] [sTDERR] cpw.mods.fml.relauncher.ReflectionHelper.findField(ReflectionHelper.java:78) 2013-08-21 17:18:52 [iNFO] [sTDERR] cpw.mods.fml.relauncher.ReflectionHelper.setPrivateValue(ReflectionHelper.java:136) 2013-08-21 17:18:52 [iNFO] [sTDERR] cpw.mods.fml.relauncher.FMLRelauncher.setupNewClientHome(FMLRelauncher.java:135) 2013-08-21 17:18:52 [iNFO] [sTDERR] cpw.mods.fml.relauncher.FMLRelauncher.relaunchApplet(FMLRelauncher.java:260) 2013-08-21 17:18:52 [iNFO] [sTDERR] cpw.mods.fml.relauncher.FMLRelauncher.appletEntry(FMLRelauncher.java:229) 2013-08-21 17:18:52 [iNFO] [sTDERR] net.minecraft.client.MinecraftApplet.init(MinecraftApplet.java:25) 2013-08-21 17:18:52 [iNFO] [sTDERR] net.minecraft.Launcher.init(Launcher.java:85) 2013-08-21 17:18:52 [iNFO] [sTDERR] net.ftb.mclauncher.MinecraftFrame.start(MinecraftFrame.java:149) 2013-08-21 17:18:52 [iNFO] [sTDERR] net.ftb.mclauncher.MinecraftLauncher.main(MinecraftLauncher.java:208) Please Help me...