updated ICBM api

This commit is contained in:
DarkGuardsman 2013-10-09 17:55:28 -04:00
parent fba2cfcd8d
commit 939621123e
5 changed files with 67 additions and 4 deletions

View file

@ -0,0 +1,18 @@
package icbm.api;
import net.minecraft.tileentity.TileEntity;
/**
* Make your TileEntity implement this to have special reaction to radar scanning.
*
* @author Calclavia
*
*/
public interface IRadarDetectable
{
/**
* @param radar - The radar tile entity
* @return True if this tile is to be shown in the radar.
*/
public boolean canDetect(TileEntity radar);
}

View file

@ -39,9 +39,9 @@ public class ExplosionEvent extends Event
}
/**
* Called before an explosive is detonated to check if detonation is possible. You may cancel
* and explosion here if needed. After this it will be a bit too late to prevent destruction
* without any losses.
* Called before an explosive is detonated or a missile is placed to check if detonation is
* possible. You may cancel and explosion here if needed. After this it will be a bit too late
* to prevent destruction without any losses.
*
* @author Calclavia
*
@ -49,11 +49,15 @@ public class ExplosionEvent extends Event
@Cancelable
public static class ExplosivePreDetonationEvent extends Event
{
/** The world object */
public World world;
/** The entity causing the explosion. This could be null */
public Entity entity;
/** The position in which the explosion might happen. */
public double x, y, z;
/** The explosive object. */
public IExplosive explosion;
/** The explosive type. */
public ExplosiveType type;
public ExplosivePreDetonationEvent(World world, double x, double y, double z, ExplosiveType type, IExplosive explosion)
@ -61,6 +65,9 @@ public class ExplosionEvent extends Event
this.world = world;
this.type = type;
this.explosion = explosion;
this.x = x;
this.y = y;
this.z = z;
}
public ExplosivePreDetonationEvent(World world, Entity entity, ExplosiveType type, IExplosive explosion)
@ -69,6 +76,9 @@ public class ExplosionEvent extends Event
this.entity = entity;
this.type = type;
this.explosion = explosion;
this.x = entity.posX;
this.y = entity.posY;
this.z = entity.posZ;
}
}

View file

@ -1,8 +1,13 @@
package icbm.api.explosion;
import icbm.api.ITier;
import net.minecraft.client.model.ModelBase;
import net.minecraft.entity.Entity;
import net.minecraft.util.Icon;
import net.minecraft.util.ResourceLocation;
import net.minecraft.world.World;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
/**
* An interface used to find various types of explosive's information.
@ -58,4 +63,17 @@ public interface IExplosive extends ITier
* @param entity Entity that caused the explosion.
*/
public void createExplosion(World world, double x, double y, double z, Entity entity);
@SideOnly(Side.CLIENT)
public ModelBase getBlockModel();
@SideOnly(Side.CLIENT)
public ModelBase getMissileModel();
@SideOnly(Side.CLIENT)
public ResourceLocation getBlockResource();
@SideOnly(Side.CLIENT)
public Icon getIcon();
}

1
docs/basicMachines.txt Normal file
View file

@ -0,0 +1 @@
Coal generator Simple single block generator that uses coal to generate up to 1KW of power a tick Fuel Generator Same idea of coal generator but uses diffrent fuels to generator power Battery Box Simple yet expandable machine. Stores power threw batteries stored with in the device. The player can expand the battery box by adding more batteries. As well is collective networked to allow for shared power. Electric Furnace Simple furnace that uses electric heater to smelt its. Does offer the benifit of faster cook time and varable power expendature. Ore take more to smelt, dusts less, and food even less. Another option for this is to provide an overrided version of the furnace to allow it to be upgraded into a prototype electric furnace.

16
docs/design.txt Normal file
View file

@ -0,0 +1,16 @@
This is not a new mod but rather a combination of a few mods. Assembly line, Fluid Mechanics, Steam Power, and the Dark Core.
Reason
It has become an issue when i implemented the Dark-Library in a few of my mods that api conflicts were happening. I could fix this by injected the Library into minecraft, or creating a core.jar for the MC-Lib folder. However, to solve the issue of this and remove the issue of version diffrences i'm turing a few mods into a mod set/series. This will act just like buildcraft, redpower, and mekanism. All parts will need to core to function however each part is not dependent on the next part. This will allow people to keep using my mods as long as they have the core. It also removes the need for basic components, or another mod to ores.
Design
Core
The core will be the main download that all users of my mod must download. It will include some basic machines, ores, and items. Namily will be copper, tin, and steel. As well it will provide a few batteries, and a wrench for the other mods to use. All parts of the core can be turned off except for dependency tile/blocks other mods need. Namily the multi-block due to how AL armbot can't function without it. Machiens to include will be a dynamic battery box allowing for up to 4 batteries to be inserted into it. It will also include an advanced furnace, and an electrical furnace both will have nice features like audio, lighting, and 3D models. The final part will be wires, switchs, fuses, and redstone sensors. This will have very advanced coding but will act like the normal object.
Automation
Not sure if i want to maintane the name assembly line or remove it completely. The idea is to take assembly and add on all those machines i've been holding back. Things like belt based grinders, macerators, crushers, stamper, ore washer, processor, saw, oven, and several other machines. These machines will be multi-block and based on the item moving along the convor belt. As well high tech mass output version of Mekanism/IC2 ore dust system will be added. It will work on the idea of needing sevral steps, and massive machiens to work. It will be less over powered, and more designed to mass demand needs. All machines will have computer craft support.
Hydraulics
At one point i made a core API system for Fluid Mechanics called Hydraulics. It didn't last but was rather good, and even more functional than forge liquid system. This is not a plan to remake it but maybe to rename Fluid Mechanics to it. This part of the mod series will take the function of Fluid Mechanics and start to add on to it. Original Fluid Mechanics was being keep in a dumped down non-useful mod to support its use as a mod helper. It was designed to remove the need for every mod to use buildcraft or make there own pipes. However, seeing as its getting no support in that area i'm going to break the wall down of its limits. The focus will first be to vamp and add the pressure system. After this is added then machines to use the pressure will be created: Pistons, lifts, motors, generators, etc. One that is done then its time to move onto creating pressure and power from pressure. This will be done with hydraulic water motors, water wheels, steam pistons, steam turbines, and other interesting devices. All will be multi-block and full customizable to there limits.
GSM Core
At this point i'm unsure how much of GSM series i want dependent on the Dark Core. Currently i want both to be independent from each other. However, both need so much of the other has to offer. So right now its planned to need the core just for dependencies, and with options to turn off as much as possible to maintance modpack designs.