26

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

Collectable

Airships made with this A.P.I

  • 33,312
    Views, 23 today
  • 9,448
    Downloads, 6 today
  • 77 Comments
  • 12 Favorites
  • Flag / Report

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 :

Join us to post 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.

bmanrules
Level 55
Grandmaster Programmer
August 1, 2014, 6:39 am

Sure, I'll get to work on it :)

AHWM
Level 1
New Miner
August 1, 2014, 7:21 am

Thank you.

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

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 :)

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.

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.

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!

Da Creepa11
Level 44
Master Creeper
December 8, 2013, 8:09 am

Sorry if this sounds nooby, what is API?

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 ;)

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]

pandabear881
Level 22
Expert Architect
November 23, 2013, 6:20 pm

what mods cant be in use with this mod?

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.

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

iEatDirty-Stacks
Level 23
Expert Pixel Puncher
November 10, 2013, 7:41 am

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

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.

Da Creepa11
Level 44
Master Creeper
November 10, 2013, 4:06 am

You now have 20 dia

bmanrules
Level 55
Grandmaster Programmer
November 10, 2013, 4:40 am

Thanks! :D

HamboPlayzMC
Level 1
New Miner
November 8, 2013, 12:08 pm

does it work with forge

bmanrules
Level 55
Grandmaster Programmer
November 8, 2013, 12:26 pm

Yes :D

Regablith
Level 1
New Miner
November 6, 2013, 4:11 pm

I might go back to modding just for this. LOL

bmanrules
Level 55
Grandmaster Programmer
November 7, 2013, 6:33 am

Wow! Thanks :D

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!

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!

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 ?

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

Spect99
Level 39
Artisan Droid
November 6, 2013, 9:02 am

Thanks , but getting tons of error now on the EntityHooks :O

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?

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

bmanrules
Level 55
Grandmaster Programmer
November 6, 2013, 10:18 am

Thanks! Looking forward to seeing what you make with it!

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!

Silvania Studios
Level 72
Legendary Modder
November 5, 2013, 2:41 am

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...

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

cashcash180
Level 1
New Miner
November 4, 2013, 10:14 am

Does this work with forge?

bmanrules
Level 55
Grandmaster Programmer
November 4, 2013, 12:40 pm

Yes! It works with any API that allows new mobs!

tylermark2001
Level 7
Apprentice Dragon
November 3, 2013, 9:16 am

so is it a mod or a mod extension

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!

Silvania Studios
Level 72
Legendary Modder
November 3, 2013, 5:23 am

Certainly looks interesting. I might tinker around with it in a bit...

Is it Forge, Modloader, standalone...?

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!

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!)

EndTEmpire
Level 1
New Explorer
November 3, 2013, 4:49 am

Great!

bmanrules
Level 55
Grandmaster Programmer
November 3, 2013, 5:18 am

Thanks! If you need any help making a mod with it, PM me!

EndTEmpire
Level 1
New Explorer
November 3, 2013, 5:20 am

Ok!

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!

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

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

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

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 :)

Spect99
Level 39
Artisan Droid
August 30, 2013, 3:12 pm

But what should i do with the EntityVehicle.java ?

bmanrules
Level 55
Grandmaster Programmer
August 30, 2013, 3:41 pm

Put it in with the rest of your code from your mod.

Spect99
Level 39
Artisan Droid
August 30, 2013, 4:03 pm

Ok thx :)
Sorry for bothering you

bmanrules
Level 55
Grandmaster Programmer
September 1, 2013, 8:44 am

no problem :) Looking forward to seeing what you make :)

payday
Level 1
New Miner
November 3, 2013, 5:14 am

hi

bmanrules
Level 55
Grandmaster Programmer
November 3, 2013, 5:18 am

hi!

alifthenet_guy
Level 18
Journeyman Creeper
August 24, 2013, 1:59 am

crashed

EpicDungeonMaster
Level 36
Artisan Nether Knight
August 18, 2013, 1:46 pm

Thanks so much Man =D
I Might end up using this for my next mod =D

bmanrules
Level 55
Grandmaster Programmer
August 18, 2013, 2:24 pm

Awesome :D I'll release the update later today

HiTherNaybor
Level 1
New Miner
August 15, 2013, 11:07 am

Is it compatable with 1.5.2 minecraft?

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.

SimcraftMod
Level 58
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.

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 ;)

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?

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 ;)

Asturar
Level 18
Journeyman Dragon
August 14, 2013, 4:13 pm

But can I make a post?

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 ;)

Asturar
Level 18
Journeyman Dragon
August 14, 2013, 6:17 pm

Ok.

xbony2
Level 1
New Crafter
August 10, 2013, 1:05 pm

Does this work with forge? Otherwise, I see no point in getting it.

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 ;)

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

FiskFille
Level 66
High Grandmaster Modder
August 10, 2013, 8:54 am

Nice. I think you have the potential to outlevel me some day... =)

gabe4356
Level 43
Master Nerd
August 10, 2013, 8:14 am

Great work! I will probably use this..maybe lol :/

bmanrules
Level 55
Grandmaster Programmer
August 10, 2013, 8:25 am

Awesome!

gabe4356
Level 43
Master Nerd
August 10, 2013, 8:28 am

:D

Regablith
Level 1
New Miner
August 10, 2013, 7:20 am

Nice job once again!

bmanrules
Level 55
Grandmaster Programmer
August 10, 2013, 8:25 am

Thanks!

1 - 50 of 77