Carriage system refined, coin trade fixed
added field repair kit texture - cleric_redmain
parent
cf0196d142
commit
c90bf6cf46
@ -0,0 +1,47 @@
|
||||
package com.zivilon.cinder_loe.carriage.gui;
|
||||
|
||||
import lotr.common.LOTRMod;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public class CarriageCoinUtil {
|
||||
public static boolean removeCoinsAndGiveChange(EntityPlayer player, int cost) {
|
||||
int total = 0;
|
||||
for (ItemStack stack : player.inventory.mainInventory) {
|
||||
if (stack != null && stack.getItem() == LOTRMod.silverCoin) {
|
||||
total += getCoinValue(stack) * stack.stackSize;
|
||||
}
|
||||
}
|
||||
if (total < cost) {
|
||||
return false;
|
||||
}
|
||||
// clear all silver coins
|
||||
for (int i = 0; i < player.inventory.mainInventory.length; i++) {
|
||||
ItemStack stack = player.inventory.mainInventory[i];
|
||||
if (stack != null && stack.getItem() == LOTRMod.silverCoin) {
|
||||
player.inventory.setInventorySlotContents(i, null);
|
||||
}
|
||||
}
|
||||
int change = total - cost;
|
||||
// give change: 100$,10$,1$ in correct metadata order
|
||||
int[] metas = {2, 1, 0};
|
||||
for (int meta : metas) {
|
||||
int value = meta == 2 ? 100 : meta == 1 ? 10 : 1;
|
||||
int count = change / value;
|
||||
change %= value;
|
||||
while (count > 0) {
|
||||
int size = Math.min(count, LOTRMod.silverCoin.getItemStackLimit());
|
||||
ItemStack out = new ItemStack(LOTRMod.silverCoin, size, meta);
|
||||
player.inventory.addItemStackToInventory(out);
|
||||
count -= size;
|
||||
}
|
||||
}
|
||||
player.inventory.markDirty();
|
||||
return true;
|
||||
}
|
||||
|
||||
private static int getCoinValue(ItemStack stack) {
|
||||
int meta = stack.getItemDamage();
|
||||
return meta == 2 ? 100 : meta == 1 ? 10 : 1;
|
||||
}
|
||||
}
|
||||
@ -1,43 +0,0 @@
|
||||
package com.zivilon.cinder_loe.world;
|
||||
|
||||
import lotr.common.LOTRDimension;
|
||||
import lotr.common.LOTRLevelData;
|
||||
import lotr.common.world.LOTRChunkProvider;
|
||||
import lotr.common.world.LOTRWorldProvider;
|
||||
import net.minecraft.util.ChunkCoordinates;
|
||||
import net.minecraft.world.chunk.IChunkProvider;
|
||||
|
||||
public class CinderWorldProviderIsland extends LOTRWorldProvider {
|
||||
public static LOTRDimension cached_enum;
|
||||
|
||||
static {
|
||||
for (LOTRDimension dimension : LOTRDimension.values()) {
|
||||
if (dimension.name().equals("ISLAND")) cached_enum = dimension;
|
||||
}
|
||||
}
|
||||
|
||||
public IChunkProvider createChunkGenerator() {
|
||||
return new LOTRChunkProvider(this.worldObj, this.worldObj.getSeed());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDimensionName() {
|
||||
return "";
|
||||
}
|
||||
|
||||
public ChunkCoordinates getSpawnPoint() {
|
||||
return new ChunkCoordinates(LOTRLevelData.middleEarthPortalX, LOTRLevelData.middleEarthPortalY, LOTRLevelData.middleEarthPortalZ);
|
||||
}
|
||||
|
||||
public void setSpawnPoint(int i, int j, int k) {
|
||||
}
|
||||
|
||||
public void setRingPortalLocation(int i, int j, int k) {
|
||||
LOTRLevelData.markMiddleEarthPortalLocation(i, j, k);
|
||||
}
|
||||
|
||||
@Override
|
||||
public LOTRDimension getLOTRDimension() {
|
||||
return cached_enum;
|
||||
}
|
||||
}
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 578 B |
Loading…
Reference in New Issue