mirror of
https://github.com/GTNewHorizons/Botania.git
synced 2026-11-13 16:54:06 +00:00
Added Railcraft support to the Mana Pool with Minecart.
This commit is contained in:
1 parent
695f44b33d
commit
5eb8e26287
2 files changed
+76
-1
No files matched your search
@@ -0,0 +1,49 @@
|
||||
/*
|
||||
* ******************************************************************************
|
||||
* Copyright 2011-2015 CovertJaguar
|
||||
*
|
||||
* This work (the API) is licensed under the "MIT" License, see LICENSE.md for details.
|
||||
* ***************************************************************************
|
||||
*/
|
||||
|
||||
package mods.railcraft.api.core.items;
|
||||
|
||||
import com.mojang.authlib.GameProfile;
|
||||
import net.minecraft.entity.item.EntityMinecart;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
/**
|
||||
* This interface should be implemented by any cart item,
|
||||
* but it is generally optional.
|
||||
*
|
||||
* @author CovertJaguar <http://www.railcraft.info>
|
||||
*/
|
||||
public interface IMinecartItem
|
||||
{
|
||||
|
||||
/**
|
||||
* Controls whether this cart item can be placed by the Cart and Train Dispensers.
|
||||
*
|
||||
* Generally, you can ignore the placeCart() function if this returns false.
|
||||
*
|
||||
* @param cart
|
||||
* @return true if it can be placed, false otherwise
|
||||
*/
|
||||
public boolean canBePlacedByNonPlayer(ItemStack cart);
|
||||
|
||||
/**
|
||||
* Places a cart at the specified location.
|
||||
*
|
||||
* Implementing this function is optional.
|
||||
*
|
||||
* @param owner the name of the player placing the cart or "[MyMod]" with the brackets
|
||||
* @param cart An ItemStack that contains the cart
|
||||
* @param world The World
|
||||
* @param i x-Coord
|
||||
* @param j y-Coord
|
||||
* @param k z-Coord
|
||||
* @return the cart placed or null if failed
|
||||
*/
|
||||
public EntityMinecart placeCart(GameProfile owner, ItemStack cart, World world, int i, int j, int k);
|
||||
}
|
||||
@@ -10,6 +10,10 @@
|
||||
*/
|
||||
package vazkii.botania.common.item;
|
||||
|
||||
import com.mojang.authlib.GameProfile;
|
||||
|
||||
import cpw.mods.fml.common.Optional;
|
||||
import mods.railcraft.api.core.items.IMinecartItem;
|
||||
import net.minecraft.block.BlockRailBase;
|
||||
import net.minecraft.entity.item.EntityMinecart;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
@@ -22,7 +26,8 @@ import vazkii.botania.common.achievement.ModAchievements;
|
||||
import vazkii.botania.common.entity.EntityPoolMinecart;
|
||||
import vazkii.botania.common.lib.LibItemNames;
|
||||
|
||||
public class ItemPoolMinecart extends ItemMod implements ICraftAchievement {
|
||||
@Optional.Interface(modid = "Railcraft", iface = "mods.railcraft.api.core.items.IMinecartItem", striprefs = true)
|
||||
public class ItemPoolMinecart extends ItemMod implements ICraftAchievement, IMinecartItem {
|
||||
|
||||
public ItemPoolMinecart() {
|
||||
setMaxStackSize(1);
|
||||
@@ -53,4 +58,25 @@ public class ItemPoolMinecart extends ItemMod implements ICraftAchievement {
|
||||
return ModAchievements.manaCartCraft;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canBePlacedByNonPlayer(ItemStack cart) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EntityMinecart placeCart(GameProfile owner, ItemStack cart, World world, int i, int j, int k) {
|
||||
if(BlockRailBase.func_150051_a(world.getBlock(i, j, k))) {
|
||||
if(!world.isRemote) {
|
||||
EntityMinecart entityminecart = new EntityPoolMinecart(world, i + 0.5,j + 0.5, k + 0.5);
|
||||
|
||||
if(cart.hasDisplayName())
|
||||
entityminecart.setMinecartName(cart.getDisplayName());
|
||||
|
||||
if(world.spawnEntityInWorld(entityminecart))
|
||||
return entityminecart;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user