26

[1.6.4][Standalone]The Vehicle A.P.I ! Revamped and Updated

Collectable

Airships made with this A.P.I

  • 33,660
    Views, 7 today
  • 9,546
    Downloads, 3 today

Get Embed Code

Forum:
HTML:
Link:
avatar
bmanrules
Level 55 : Grandmaster Programmer
dedefddaaccfc

Welcome!

Bmanrules' Vehicle A.P.I allows modders to create amazing new vehicles in Minecraft, complete with loads of hooks used to make awesome vanilla styled vehicles!


Example: Minecraft Boat remade in API:

After API:

package net.minecraft.src;

import java.util.List;

public class EntityBoat extends EntityVehicle{

public EntityBoat(World par1World)
{
super(par1World);
}
public EntityBoat(World par1World, double par2, double par4, double par6)
{
super(par1World, par2, par4, par6);
this.setFloatOnWater(true);
}

public void onCriticalCrash(){
this.dropItemWithOffset(Item.stick.itemID, 1, 0.0F);
this.setDead();
}

public void onDeath(DamageSource par1DamageSource){
this.dropItemWithOffset(Item.boat.itemID, 1, 0.0F);
}

}


Before:

package net.minecraft.src;

import java.util.List;
import org.lwjgl.input.Keyboard;

public class EntityBoat extends Entity
{
private boolean field_70279_a;
private double speedMultiplier;
private int vehiclePosRotationIncrements;
private double vehicleX;
private double vehicleY;
private double vehicleZ;
private double vehicleYaw;
private double vehiclePitch;
private double velocityX;
private double velocityY;
private double velocityZ;
private boolean shouldFloat = true;
private String speedParticle = "magicCrit";
public int textInt = 1;
float length = 0.0F;

public EntityBoat(World par1World)
{
super(par1World);
this.field_70279_a = true;
this.speedMultiplier = 3.0D;
this.preventEntitySpawning = true;
this.setSize(7.4F, 0.6F);
this.yOffset = this.height / 2.1F;
}

/**
* returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to
* prevent them from trampling crops
*/
protected boolean canTriggerWalking()
{
return false;
}

protected void entityInit()
{
this.dataWatcher.addObject(17, new Integer(0));
this.dataWatcher.addObject(18, new Integer(1));
this.dataWatcher.addObject(19, new Float(0.0F));
}

/**
* Returns a boundingBox used to collide the entity with other entities and blocks. This enables the entity to be
* pushable on contact, like vehicles or minecarts.
*/
public AxisAlignedBB getCollisionBox(Entity par1Entity)
{
return par1Entity.boundingBox;
}

/**
* returns the bounding box for this entity
*/
public AxisAlignedBB getBoundingBox()
{
return this.boundingBox;
}

/**
* Returns true if this entity should push and be pushed by other entities when colliding.
*/
public boolean canBePushed()
{
return true;
}

public EntityBoat(World par1World, double par2, double par4, double par6)
{
this(par1World);
this.setPosition(par2, par4 + (double)this.yOffset, par6);
this.motionX = 0.0D;
this.motionY = 0.0D;
this.motionZ = 0.0D;
this.prevPosX = par2;
this.prevPosY = par4;
this.prevPosZ = par6;
}

/**
* Returns the Y offset from the entity's position for any entity riding this one.
*/
public double getMountedYOffset()
{
return (double)this.height * 0.0D - 0.30000001192092896D;
}

/**
* Called when the entity is attacked.
*/
public boolean attackEntityFrom(DamageSource par1DamageSource, float par2)
{
if (this.isEntityInvulnerable())
{
return false;
}
else if (!this.worldObj.isRemote && !this.isDead)
{
this.setForwardDirection(-this.getForwardDirection());
this.setTimeSinceHit(10);
this.setDamageTaken(this.getDamageTaken() + par2 * 10.0F);
this.setBeenAttacked();
boolean var3 = par1DamageSource.getEntity() instanceof EntityPlayer && ((EntityPlayer)par1DamageSource.getEntity()).capabilities.isCreativeMode;

if (var3 || this.getDamageTaken() > 40.0F)
{
if (this.riddenByEntity != null)
{
this.riddenByEntity.mountEntity(this);
}

if (!var3)
{
this.dropItemWithOffset(Item.boat.itemID, 1, 0.0F);
}

this.setDead();
}

return true;
}
else
{
return true;
}
}

/**
* Setups the entity to do the hurt animation. Only used by packets in multiplayer.
*/
public void performHurtAnimation()
{
this.setForwardDirection(-this.getForwardDirection());
this.setTimeSinceHit(10);
this.setDamageTaken(this.getDamageTaken() * 11.0F);
}

/**
* Returns true if other Entities should be prevented from moving through this Entity.
*/
public boolean canBeCollidedWith()
{
return !this.isDead;
}

/**
* Sets the position and rotation. Only difference from the other one is no bounding on the rotation. Args: posX,
* posY, posZ, yaw, pitch
*/
public void setPositionAndRotation2(double par1, double par3, double par5, float par7, float par8, int par9)
{
if (this.field_70279_a)
{
this.vehiclePosRotationIncrements = par9 + 5;
}
else
{
double var10 = par1 - this.posX;
double var12 = par3 - this.posY;
double var14 = par5 - this.posZ;
double var16 = var10 * var10 + var12 * var12 + var14 * var14;

if (var16 <= 1.0D)
{
return;
}

this.vehiclePosRotationIncrements = 3;
}

this.vehicleX = par1;
this.vehicleY = par3;
this.vehicleZ = par5;
this.vehicleYaw = (double)par7;
this.vehiclePitch = (double)par8;
this.motionX = this.velocityX;
this.motionY = this.velocityY;
this.motionZ = this.velocityZ;
}

/**
* Sets the velocity to the args. Args: x, y, z
*/
public void setVelocity(double par1, double par3, double par5)
{
this.velocityX = this.motionX = par1;
this.velocityY = this.motionY = par3;
this.velocityZ = this.motionZ = par5;
}

public void onCrash()
{

}

/**
* Called to update the entity's position/logic.
*/
public void onUpdate()
{
if (textInt == 1)
{
textInt = 2;
}
else
{
textInt = 1;
}
if (this.isCollidedHorizontally)
{
motionY += 0.1D;
}

if (Keyboard.isKeyDown(31) && this.riddenByEntity != null){

motionX += motionX * -1;
motionY += motionY * -1;
motionZ += motionZ * -1;

}

if (this.riddenByEntity == null)
{
motionX += motionX * -1;
motionY += motionY * -1;
motionZ += motionZ * -1;
}

if (Keyboard.isKeyDown(30)){
vehicleYaw += 1.0D;
}

if (Keyboard.isKeyDown(32)){
vehicleYaw -= 1.0D;
vehiclePitch -= 1.0D;
}
if (this.getTimeSinceHit() > 0)
{
this.setTimeSinceHit(this.getTimeSinceHit() - 1);
}

if (this.getDamageTaken() > 0.0F)
{
this.setDamageTaken(this.getDamageTaken() - 1.0F);
}

this.prevPosX = this.posX;
this.prevPosY = this.posY;
this.prevPosZ = this.posZ;
byte var1 = 5;
double var2 = 0.0D;

for (int var4 = 0; var4 < var1; ++var4)
{
double var5 = this.boundingBox.minY + (this.boundingBox.maxY - this.boundingBox.minY) * (double)(var4 + 0) / (double)var1 - 0.125D;
double var7 = this.boundingBox.minY + (this.boundingBox.maxY - this.boundingBox.minY) * (double)(var4 + 1) / (double)var1 - 0.125D;
AxisAlignedBB var9 = AxisAlignedBB.getAABBPool().getAABB(this.boundingBox.minX, var5, this.boundingBox.minZ, this.boundingBox.maxX, var7, this.boundingBox.maxZ);

if (this.worldObj.isAABBInMaterial(var9, Material.water) && this.shouldFloat)
{
var2 += 1.0D / (double)var1;
}
}

double var23 = Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ);
double var6;
double var8;

if (var23 > 0.26249999999999996D)
{
var6 = Math.cos((double)this.rotationYaw * Math.PI / 180.0D);
var8 = Math.sin((double)this.rotationYaw * Math.PI / 180.0D);

for (int var10 = 0; (double)var10 < 1.0D + var23 * 60.0D; ++var10)
{
double var11 = (double)(this.rand.nextFloat() * 2.0F - 1.0F);
double var13 = (double)(this.rand.nextInt(2) * 2 - 1) * 0.7D;
double var15;
double var17;

if (this.rand.nextBoolean())
{
var15 = this.posX - var6 * var11 * 0.8D + var8 * var13;
var17 = this.posZ - var8 * var11 * 0.8D - var6 * var13;
this.worldObj.spawnParticle(speedParticle, var15, this.posY - 0.125D, var17, this.motionX, this.motionY, this.motionZ);
//this.playSound("mob.silverfish.say", 1.0F, 1.0F);
}
else
{
var15 = this.posX + var6 + var8 * var11 * 0.7D;
var17 = this.posZ + var8 - var6 * var11 * 0.7D;
this.worldObj.spawnParticle(speedParticle, var15, this.posY - 0.125D, var17, this.motionX, this.motionY, this.motionZ);
}
}
}

double var12;
double var25;

if (this.worldObj.isRemote && this.field_70279_a)
{
if (this.vehiclePosRotationIncrements > 0)
{
var6 = this.posX + (this.vehicleX - this.posX) / (double)this.vehiclePosRotationIncrements;
var8 = this.posY + (this.vehicleY - this.posY) / (double)this.vehiclePosRotationIncrements;
var25 = this.posZ + (this.vehicleZ - this.posZ) / (double)this.vehiclePosRotationIncrements;
var12 = MathHelper.wrapAngleTo180_double(this.vehicleYaw - (double)this.rotationYaw);
this.rotationYaw = (float)((double)this.rotationYaw + var12 / (double)this.vehiclePosRotationIncrements);
this.rotationPitch = (float)((double)this.rotationPitch + (this.vehiclePitch - (double)this.rotationPitch) / (double)this.vehiclePosRotationIncrements);
--this.vehiclePosRotationIncrements;
this.setPosition(var6, var8, var25);
this.setRotation(this.rotationYaw, this.rotationPitch);
}
else
{
var6 = this.posX + this.motionX;
var8 = this.posY + this.motionY;
var25 = this.posZ + this.motionZ;
this.setPosition(var6, var8, var25);



So, How do I use it?

If you're not a modder and need this mod, download the above zip and add the two .class files to Minecraft.jar

If you are a modder, great! This A.P.I is basically an Entity that you can extend on to to make awesome vehicles in Minecraft. From planes, to tanks, helicopters, submarines and giant ships, you can make them all (Once you're a fairly good modder ;) ). Download the file, and add the two .java files to the src folder! Then, make a new mob, extend EntityVehicle and utilise any hooks you may need!

If you need any help with setting it up, send me a PM!

This mod does not include Airships. And also, Cake is a lie

Happy coding!
Progress: 70% Complete
Game Version:Minecraft 1.6.4
Tags:API, BMAN, AIRSHIP, BOAT, VEHICLE, CAR, SUBMARINE, JETSKI, PCHAN3, ZEPPELIN, SHIP, Functional

Update #8 : 11/20/2013 11:39:29 am11/20/13

PMC reset zip a third time! Should be fixed.

Update #7 : 11/20/2013 11:32:21 am11/20/13

PMC reset the zip again. Apologies!

Update #6 : 11/06/2013 1:18:51 pm11/06/13

Fixed a problem with the download causing users to end up downloading an older (and no longer working) version!

Added new hooks

Update #5 : 11/04/2013 12:23:16 pm11/04/13

- Added new hooks

Following hooks are now present:

public void onDeath(DamageSource par1DamageSource){} //Called when the Vehicle is killed by a damageSource

public boolean floatOnWater(){ //Gets whether or not the Vehicle can float on water
return super.floatOnWater();
}

public void setFloatOnWater(boolean floats){ //Sets whether or not the Vehicle can float on water
super.setFloatOnWater(floats);
}

public String getSpeedParticle(){ //Gets the particle to emit when the Vehicle reaches a certain speed
return super.getSpeedParticle();
}

public void setSpeedParticle(String particle){ //Sets the particle to emit when the Vehicle reaches a certain speed
super.setSpeedParticle(particle);
}

public void whileHasPassenger(Entity par1Entity){ //Called every tick the Vehicle has a passenger
super.whileHasPassenger(par1Entity);
}

public boolean hasPassenger(){ //Returns true if the Vehicle is currently being ridden
return super.hasPassenger();
}

public Entity getPassenger(){ //Returns the Entity riding the Vehicle, or none if no Entity is riding it
return super.getPassenger();
}

public void whileOnWater(){} //Called every tick the vehicle is on water

public void whileGrounded(){} //Called every tick while the vehicle is on ground

public void onCriticalCrash(){} //Called when the Vehicle crashes with a force that would be critical to a boat

public void onCrash(){} //Called whenever the Vehicle collides with a block horizontally

public void onCollisionWithOther(Entity other){ //Called when the Vehicle collides with another Entity
super.onCollisionWithOther(other);
}

public void onMount(EntityPlayer par1EntityPlayer){} //Called when the entity is mounted/dismounted

Update #4 : 11/03/2013 11:15:10 am11/03/13

- Added Before/After spoilers at the end of the post!

Update #3 : 11/03/2013 9:21:47 am11/03/13

- Revamped Code

- Created EntityHook and EntityVehicle - Extend EntityVehicle

- Commented code and cleaned it up

- Added new hooks, such as onEntityCriticalCrash and onEntityDeath

Update #2 : 08/15/2013 11:42:43 am8/15/13

Update will go live at 7PM GMT on the 15/08/2013.

Added a wide range of new hooks

Removed EntityBoat code

Update #1 : 08/10/2013 1:01:56 pm8/10/13

Added NBT tags

Comments : 77

Join us to post comments.

Show Comments

1 - 50 of 77

  • AHWM
  • Level 1
  • New Miner
  • August 1, 2014, 6:01 am
Hello.
Are you going to update it to a current version soon? I want to make a big mod, but I would have to do it for 1.6.4.
Edit Reply Delete
  • bmanrules
  • Level 55
  • Grandmaster Programmer
  • August 1, 2014, 6:39 am
Sure, I'll get to work on it :)
Edit Reply Delete
  • AHWM
  • Level 1
  • New Miner
  • August 1, 2014, 7:21 am
Thank you.
Edit Reply Delete
  • KerianH
  • Level 16
  • Journeyman Dragon
  • June 23, 2014, 4:17 pm
So here's a question, and hopefully a nice change of pace compared to the other questions you probably get on a regular basis...

Since this is an API, would there happen to be a list of mods that use this API by chance, or would you happen to have some tutorials to help teach people who are new at this to make their own custom vehicles using your API?

I'm curious because the way you built the display airship looks a lot like the build for the Steampunk Airship Mod that unfortunately died long ago, and I'm looking to implement a similar vehicle in custom maps/modpacks, but have virtually no coding experience and...well, I'm stuck.  Any help in this regard would be great.

-Kerian
Edit Reply Delete
  • bmanrules
  • Level 55
  • Grandmaster Programmer
  • June 24, 2014, 1:55 pm
Unfortunatly no one's actually used the A.P.I except for me here. I'll get working on a tutorial and link it in a reply (Should be done by tomorrow, the A.P.I is pretty easy to use so won't take long). I'll post a link as a reply so you get a message when it's done!

If you want, you could use the Airship I linked earlier in your modpack (though it's not yet for 1.6.4, I'll probably be going straight to 1.7/8, I'm not too sure at the moment). However if you want to program your own version (Which I understand) you may want to start off learning the basics of Java (variables and functions/methods) as some knowledge in these topics will be required :)
Edit Reply Delete
  • KerianH
  • Level 16
  • Journeyman Dragon
  • June 26, 2014, 6:19 pm
It would be a bit more convenient for me if it was 1.6.4 before 1.7.2, but that works as well.  I could probably use it for a different modpack I have planned.

Thanks for the intel.  Maybe I should look into learning basic Java...though I'm not looking forward to it.  Being a literary-oriented person makes it hard for me to be able to do coding very well, I lack the patience for it.
Edit Reply Delete
  • dunem666
  • Level 40
  • Master Modder
  • December 11, 2013, 12:50 pm
this decent enough to handle some cars? I'm already in stages of making a car mod but this would save me great amounts of time.
Edit Reply Delete
  • bmanrules
  • Level 55
  • Grandmaster Programmer
  • December 11, 2013, 1:05 pm
Yep! I've already made a few cars throughout my testing (nothing worth releasing yet) but it should definitely be able to make a car mod (and save you a lot of time!) If you need a hand with anything, or want any new functions/methods added, send me a PM!
Edit Reply Delete
  • Da Creepa11
  • Level 44
  • Master Creeper
  • December 8, 2013, 8:09 am
Sorry if this sounds nooby, what is API?
Edit Reply Delete
  • bmanrules
  • Level 55
  • Grandmaster Programmer
  • December 8, 2013, 8:26 am
Application Programming Interface :P It basically makes it easier for modders to make cool vehicles ;)
Edit Reply Delete
  • Da Creepa11
  • Level 44
  • Master Creeper
  • December 8, 2013, 8:58 am
Ok[size=10pt], I wont use this then, I'm not a modder :/ though I do need a car mod right now.[/size]
Edit Reply Delete
  • pandabear881
  • Level 22
  • Expert Architect
  • November 23, 2013, 6:20 pm
what mods cant be in use with this mod?
Edit Reply Delete
  • bmanrules
  • Level 55
  • Grandmaster Programmer
  • November 24, 2013, 1:42 am
This mod can be used with every mod, but keep in mind it's an API, not an actual functioning mod.
Edit Reply Delete
  • bmanrules
  • Level 55
  • Grandmaster Programmer
  • November 20, 2013, 6:30 am
Ugh, PlanetMinecraft has reset the zip, again! If anyone has downloaded this recently, I'm sorry for the trouble! Updating now
Edit Reply Delete
Hello,

I am JayJay and the owner of UltimatePokeCraft. I was wondering if we could use this Mod on our server. And absolutly give you the full credits.

Regards,

JayJay
Edit Reply Delete
  • bmanrules
  • Level 55
  • Grandmaster Programmer
  • November 10, 2013, 8:36 am
You're welcome to use this mod on your server, but I hope you realise this is an A.P.I and not an actual usable mod.
Edit Reply Delete
  • Da Creepa11
  • Level 44
  • Master Creeper
  • November 10, 2013, 4:06 am
You now have 20 dia
Edit Reply Delete
  • bmanrules
  • Level 55
  • Grandmaster Programmer
  • November 10, 2013, 4:40 am
Thanks! :D
Edit Reply Delete
does it work with forge
Edit Reply Delete
  • bmanrules
  • Level 55
  • Grandmaster Programmer
  • November 8, 2013, 12:26 pm
Yes :D
Edit Reply Delete
  • Regablith
  • Level 1
  • New Crafter
  • November 6, 2013, 4:11 pm
I might go back to modding just for this. LOL
Edit Reply Delete
  • bmanrules
  • Level 55
  • Grandmaster Programmer
  • November 7, 2013, 6:33 am
Wow! Thanks :D
Edit Reply Delete
  • MrWizard1234
  • Level 14
  • Journeyman Scribe
  • November 6, 2013, 10:27 am
Frankly, I have know idea how to code, and after reading this my head aches. But I'm sure somebody understood this, and they probably thought this was awesome!
Edit Reply Delete
  • bmanrules
  • Level 55
  • Grandmaster Programmer
  • November 6, 2013, 10:30 am
Thanks! Hey, If you ever want to learn, I know plenty of good resources that can help!
Edit Reply Delete
  • Spect99
  • Level 39
  • Artisan Droid
  • November 6, 2013, 7:46 am
hey , tested your api today (again :P )
but i get 4 errors :

1.int fuelSource = Item.coal.itemID; //The itemID to be used as a fuel source. Multiple fuel sources will come later
( Multiple markers at this line - coal cannot be resolved or is not a field )

2.int ammo = Item.arrow.itemID; //The itemID of the item to be used as ammo
( Multiple markers at this line - Item cannot be resolved to a variable - arrow cannot be resolved or is not a field)

3.return par1Entity.boundingBox;
(boundingBox cannot be resolved or is not a field)

4.if (var2.itemID != fuelSource && var2.itemID != Item.dyePowder.itemID)
(Multiple markers at this line
- Item cannot be resolved to a variable
- dyePowder cannot be resolved or is
not a field)

Did i miss something ?
Edit Reply Delete
  • bmanrules
  • Level 55
  • Grandmaster Programmer
  • November 6, 2013, 8:20 am
New version is available now! Sorry about that, weird that it happened as I don't even have that zip on my PC anymore, so Idk how it ended up back on PMC! Placing the contents of the Source folder in SRC should work now! Don't forget to import net.minecraft.src :D
Edit Reply Delete
  • Spect99
  • Level 39
  • Artisan Droid
  • November 6, 2013, 9:02 am
Thanks , but getting tons of error now on the EntityHooks :O
Edit Reply Delete
  • bmanrules
  • Level 55
  • Grandmaster Programmer
  • November 6, 2013, 9:52 am
Weird! Send me a PM with a list of the errors! Also, where did you put the .java files?
Edit Reply Delete
  • Spect99
  • Level 39
  • Artisan Droid
  • November 6, 2013, 10:10 am
Nvm , i just didnt import correctly :) Thx for this API , i am gonn ahave a bit of fun with it !
Diamond for you for helping me out , and for the api :P
Edit Reply Delete
  • bmanrules
  • Level 55
  • Grandmaster Programmer
  • November 6, 2013, 10:18 am
Thanks! Looking forward to seeing what you make with it!
Edit Reply Delete
  • bmanrules
  • Level 55
  • Grandmaster Programmer
  • November 6, 2013, 8:12 am
Oh wow, PlanetMinecraft rolled the mod back to an old zip that doesn't work anymore! I'll get to work uploading the newest version now!
Edit Reply Delete
I'd like to see an example of this in use, with source. Just "making a mob but extending EntityVehicle" doesn't work (Which I'm not surprised by, seeing as a mob is a living entity, a vehicle is a non-living entity)

The boat example above is useless without all the extra classes; the registration, render class, item spawner etc. Plus it's hard to read in that spoiler...
Edit Reply Delete
  • bmanrules
  • Level 55
  • Grandmaster Programmer
  • November 5, 2013, 8:38 am
Well, I guess "mob" was a bad use of vocab, probably should've used Entity instead :)

The boat example above doesn't have the registration of either the original Minecraft boat or mine, because this API is API independent, and so can be used with any API (each API has a different registration method) - Render Classes and models are up to the modder again, and item spawner, You simply need to make a new item that calls World.spawnEntityInWorld(Entity) when right-clicked, however I will be providing a sample item for this in a few days.

I'll post it to code tags, but if you want to see a working example, check out my Airship mod
Edit Reply Delete
  • cashcash180
  • Level 1
  • New Miner
  • November 4, 2013, 10:14 am
Does this work with forge?
Edit Reply Delete
  • bmanrules
  • Level 55
  • Grandmaster Programmer
  • November 4, 2013, 12:40 pm
Yes! It works with any API that allows new mobs!
Edit Reply Delete
  • tylermark2001
  • Level 7
  • Apprentice Dragon
  • November 3, 2013, 9:16 am
so is it a mod or a mod extension
Edit Reply Delete
  • bmanrules
  • Level 55
  • Grandmaster Programmer
  • November 3, 2013, 9:20 am
In between! If you're making a mod, you can make your mod an extension of this for awesome vehicles!
Edit Reply Delete
Certainly looks interesting. I might tinker around with it in a bit...

Is it Forge, Modloader, standalone...?
Edit Reply Delete
  • bmanrules
  • Level 55
  • Grandmaster Programmer
  • November 3, 2013, 6:20 am
Hey! I added an example so you can see just how easy it makes adding new Vehicles. The example shown is Minecraft's boat before my A.P.I and after me porting it to the A.P.I. You can really see how much code it cuts down on and how easy it makes it!
Edit Reply Delete
  • bmanrules
  • Level 55
  • Grandmaster Programmer
  • November 3, 2013, 5:58 am
It will work with all A.P.Is (I wonder if there's a better word then standalone!) once you can register new mobs in said A.P.I (So Forge and Modloader will work perfectly!)
Edit Reply Delete
  • EndTEmpire
  • Level 1
  • New Explorer
  • November 3, 2013, 4:49 am
Great!
Edit Reply Delete
  • bmanrules
  • Level 55
  • Grandmaster Programmer
  • November 3, 2013, 5:18 am
Thanks! If you need any help making a mod with it, PM me!
Edit Reply Delete
  • EndTEmpire
  • Level 1
  • New Explorer
  • November 3, 2013, 5:20 am
Ok!
Edit Reply Delete
  • bmanrules
  • Level 55
  • Grandmaster Programmer
  • September 6, 2013, 12:38 pm
I'm working on updating this, adding new hooks and improving it in general! Bear with me! I'll have a tutorial on using it too!
Edit Reply Delete
  • JavaBuckets
  • Level 74
  • Legendary Programmer
  • September 8, 2013, 10:23 am
I'll look forward to that ;D And hopefully this can help me with The Space Ships for The Star Wars Mod ;D

- Thom, Head Developer and Leader of JavaBuckets
Edit Reply Delete
  • bmanrules
  • Level 55
  • Grandmaster Programmer
  • September 8, 2013, 10:40 am
Wow, Great! I'd love to help! Spaceships would be awesome ;) I'm working on "The Crafting Dead " too, but if you want to send me a PM sometime I'll check it out :)

~ Bmanrules, Airships and Stuff, yeah ;P
Edit Reply Delete
  • Spect99
  • Level 39
  • Artisan Droid
  • August 30, 2013, 1:58 pm
Is there a tutorial on how to use it X) i am kinda stuck :P
Edit Reply Delete
  • bmanrules
  • Level 55
  • Grandmaster Programmer
  • August 30, 2013, 3:02 pm
Just make a new blank mob file that extends EntityVehicle and overwrite the functions :)
Edit Reply Delete
  • Spect99
  • Level 39
  • Artisan Droid
  • August 30, 2013, 3:12 pm
But what should i do with the EntityVehicle.java ?
Edit Reply Delete
  • bmanrules
  • Level 55
  • Grandmaster Programmer
  • August 30, 2013, 3:41 pm
Put it in with the rest of your code from your mod.
Edit Reply Delete
  • Spect99
  • Level 39
  • Artisan Droid
  • August 30, 2013, 4:03 pm
Ok thx :)
Sorry for bothering you
Edit Reply Delete
  • bmanrules
  • Level 55
  • Grandmaster Programmer
  • September 1, 2013, 8:44 am
no problem :) Looking forward to seeing what you make :)
Edit Reply Delete
  • payday
  • Level 1
  • New Miner
  • November 3, 2013, 5:14 am
hi
Edit Reply Delete
  • bmanrules
  • Level 55
  • Grandmaster Programmer
  • November 3, 2013, 5:18 am
hi!
Edit Reply Delete
crashed
Edit Reply Delete
Thanks so much Man =D
I Might end up using this for my next mod =D
Edit Reply Delete
  • bmanrules
  • Level 55
  • Grandmaster Programmer
  • August 18, 2013, 2:24 pm
Awesome :D I'll release the update later today
Edit Reply Delete
Is it compatable with 1.5.2 minecraft?
Edit Reply Delete
  • bmanrules
  • Level 55
  • Grandmaster Programmer
  • August 15, 2013, 11:52 am
It isn't, but if you want to make a mod with it it shouldn't be too hard to port back to 1.5.2. If you can't, I can make a port, but do realise that this is for modders, not users.
Edit Reply Delete
  • SimcraftMod
  • Level 59
  • Grandmaster Electrician
  • August 15, 2013, 6:45 am
Why exactly do you call this a vehicle API when clearly any modder can see you simply taken the Entity Boat added maybe 1 or 2 extra functions and that's about it, the rest of the code is in fact exactly the same as Entity Boat.

If you want to release a vehicle API look at flans vehicle mods that's what an API should look like, for this it would be better suited inside a tutorial of some kind simply extend to Entity Boat, add or override what ever extra functions your vehicle has and vol la your done.

So sorry you lost my diamond today.
Edit Reply Delete
  • bmanrules
  • Level 55
  • Grandmaster Programmer
  • August 15, 2013, 7:21 am
I called it a Vehicle A.P.I because it is a vehicle A.P.I - An A.P.I is a set of tools for building software, in this case, Vehicles. I took the controls from EntityBoat (Which I have to clean up, I plan on later just extending EntityBoat and making the EntityVehicle just my functions and features to make it easier to understand) but I also added plenty of new features, such as the ability to change the colour of Vehicles you make, Fire arrows/Fire charges and snowballs, a fuel system that allows you to set a series of items and use them to power your Vehicle, New hooks such as hooks called when the Player breaks the Vehicle, When the Vehicle crashes, When certain keys are pressed, and whether arrows fired from the vehicle are critical or not. It also includes a range of NBT tags to support all of the functions above. I'll admit, It does need improvement and an update is underway that should clean most of the boat code out, along with adding a Metadata spawning item base and more hooks (Such as when fuel is loaded, when you run out of fuel, When the player gets out/into the Vehicle) along with more support for fuel types.

You can keep your diamond ;)
Edit Reply Delete
  • Asturar
  • Level 18
  • Journeyman Dragon
  • August 14, 2013, 1:14 pm
What are the posting rules for this, can I post my mod made with this and have a link to here?
Edit Reply Delete
  • bmanrules
  • Level 55
  • Grandmaster Programmer
  • August 14, 2013, 1:24 pm
Once you've made a mod, you tell your users/downloaders to come here and download the mod (Not the source) and install it alongside your mod!

Thanks for considering using this, and I hope to see some awesome mods soon ;)
Edit Reply Delete
  • Asturar
  • Level 18
  • Journeyman Dragon
  • August 14, 2013, 4:13 pm
But can I make a post?
Edit Reply Delete
  • bmanrules
  • Level 55
  • Grandmaster Programmer
  • August 14, 2013, 5:05 pm
With your own mod? Of course, as long as you link back to here ;)
Edit Reply Delete
  • Asturar
  • Level 18
  • Journeyman Dragon
  • August 14, 2013, 6:17 pm
Ok.
Edit Reply Delete
  • xbony2
  • Level 1
  • New Crafter
  • August 10, 2013, 1:05 pm
Does this work with forge? Otherwise, I see no point in getting it.
Edit Reply Delete
  • bmanrules
  • Level 55
  • Grandmaster Programmer
  • August 10, 2013, 2:04 pm
It's an A.P.I - Runs in Standalone Minecraft, or with Modloader and Forge. If you're not a modder you shouldn't need it yet, as no mods currently use it ;)
Edit Reply Delete
  • bmanrules
  • Level 55
  • Grandmaster Programmer
  • August 10, 2013, 9:11 am
Pushed out a quick update - I seemed to have left out NBT in the latest update, so colours and fuel wouldn't save. Fixed
Edit Reply Delete
  • FiskFille
  • Level 66
  • High Grandmaster Modder
  • August 10, 2013, 8:54 am
Nice. I think you have the potential to outlevel me some day... =)
Edit Reply Delete
  • gabe4356
  • Level 43
  • Master Nerd
  • August 10, 2013, 8:14 am
Great work! I will probably use this..maybe lol :/
Edit Reply Delete
  • bmanrules
  • Level 55
  • Grandmaster Programmer
  • August 10, 2013, 8:25 am
Awesome!
Edit Reply Delete
  • gabe4356
  • Level 43
  • Master Nerd
  • August 10, 2013, 8:28 am
:D
Edit Reply Delete
  • Regablith
  • Level 1
  • New Crafter
  • August 10, 2013, 7:20 am
Nice job once again!
Edit Reply Delete
  • bmanrules
  • Level 55
  • Grandmaster Programmer
  • August 10, 2013, 8:25 am
Thanks!
Edit Reply Delete

1 - 50 of 77

Show Comments