2
0
Fork 0

Carriage system refined, coin trade fixed

added field repair kit texture - cleric_red
main
KeyLime17 6 months ago
parent cf0196d142
commit c90bf6cf46

@ -1,5 +1,5 @@
modName = CinderLoE
modVersion = 1.4.1
modVersion = 1.5.0
modId = cinder_loe
modGroup = com.zivilon.cinder_loe

@ -94,11 +94,11 @@ import static lotr.common.LOTRMod.horseArmorIron;
@Mod(
modid = "cinder_loe",
version = "1.4.0",
version = "1.5.0",
name = "CinderLoE",
dependencies = "required-after:spongemixins@[1.1.0,);required-after:lotr",
acceptedMinecraftVersions = "[1.7.10]",
acceptableRemoteVersions = "[1.4.0]")
acceptableRemoteVersions = "[1.5.0]")
public class CinderLoE {
@Instance("cinder_loe")

@ -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,8 +1,9 @@
package com.zivilon.cinder_loe.carriage.gui;
import lotr.client.gui.LOTRGuiScreenBase;
import net.minecraft.client.gui.GuiScreen;
public class GuiCarriageFade extends GuiScreen {
public class GuiCarriageFade extends LOTRGuiScreenBase {
private int ticksPassed = 0;
private final int totalTicks = 60;

@ -62,19 +62,29 @@ public class GuiCarriageMenu extends LOTRGuiScreenBase {
@Override
public void drawScreen(int mouseX, int mouseY, float partialTicks) {
drawDefaultBackground();
drawCenteredString("Choose your destination", width / 2, height / 2 - (destinations.size() * 12) - 20, 0xFFFFFF);
drawCenteredString(
"Choose your destination",
width / 2,
height / 2 - (destinations.size() * 12) - 20,
0xFFFFFF
);
super.drawScreen(mouseX, mouseY, partialTicks);
// Draw coin icons next to cost text
for (int i = 0; i < buttonList.size(); i++) {
GuiButton button = (GuiButton) buttonList.get(i);
int iconX = button.xPosition + button.width - 18;
int iconY = button.yPosition + 2;
RenderHelper.enableGUIStandardItemLighting();
itemRenderer.renderItemIntoGUI(fontRendererObj, mc.getTextureManager(), new ItemStack(LOTRMod.silverCoin), iconX, iconY);
itemRenderer.renderItemIntoGUI(
fontRendererObj,
mc.getTextureManager(),
new ItemStack(LOTRMod.silverCoin),
iconX,
iconY
);
RenderHelper.disableStandardItemLighting();
}
}
}

@ -42,7 +42,7 @@ public class CommandOpenCarriageMenu extends CommandBase {
for (CarriageDestination dest : nearest) {
double dist = Math.sqrt(Math.pow(dest.x - player.posX, 2) + Math.pow(dest.z - player.posZ, 2));
int cost = Math.max(1, (int)(dist / 10));
int cost = Math.max(1, (int)(dist / 50));
names.add(dest.name);
costs.add(cost);
}

@ -1,6 +1,6 @@
package com.zivilon.cinder_loe.coremod;
import com.zivilon.cinder_loe.world.CinderWorldProviderIsland;
import net.minecraft.launchwrapper.IClassTransformer;
import org.objectweb.asm.ClassReader;

@ -68,6 +68,7 @@ public abstract class MixinLOTREntityNPC extends EntityCreature implements ILoot
} else {
last_pickpocket = (int)(System.currentTimeMillis() / 1000L);
((LOTREntityNPC)(Object)this).setRevengeTarget(entityplayer);
entityplayer.playSound("lotr:block.treasure.step", 1.0F, 1.0F);
if ((LOTREntityNPC)(Object)this instanceof LOTREntityOlogHai) {
LOTRLevelData.getData(entityplayer).addAchievement(CinderAchievement.pickOlog);
}

@ -5,25 +5,22 @@ import cpw.mods.fml.common.network.ByteBufUtils;
import cpw.mods.fml.common.network.simpleimpl.IMessage;
import cpw.mods.fml.common.network.simpleimpl.IMessageHandler;
import cpw.mods.fml.common.network.simpleimpl.MessageContext;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import io.netty.buffer.ByteBuf;
import net.minecraft.client.Minecraft;
public class PacketCarriageFTB implements IMessage {
private String destinationName;
public PacketCarriageFTB() {}
public PacketCarriageFTB(String destinationName) {
this.destinationName = destinationName;
}
@Override
public void toBytes(ByteBuf buf) {
ByteBufUtils.writeUTF8String(buf, destinationName);
// No data to write
}
@Override
public void fromBytes(ByteBuf buf) {
destinationName = ByteBufUtils.readUTF8String(buf);
// No data to read
}
public static class Handler implements IMessageHandler<PacketCarriageFTB, IMessage> {

@ -3,6 +3,7 @@ package com.zivilon.cinder_loe.network;
import com.zivilon.cinder_loe.carriage.CarriageDestination;
import com.zivilon.cinder_loe.carriage.CarriageDestinationsData;
import com.zivilon.cinder_loe.carriage.CarriageUtils;
import com.zivilon.cinder_loe.carriage.gui.CarriageCoinUtil;
import cpw.mods.fml.common.network.ByteBufUtils;
import cpw.mods.fml.common.network.simpleimpl.IMessage;
import cpw.mods.fml.common.network.simpleimpl.IMessageHandler;
@ -45,7 +46,7 @@ public class PacketCarriageSelect implements IMessage {
if (dest != null) {
int cost = CarriageUtils.calculateCost(player.posX, player.posZ, dest);
if (CarriageUtils.removeCoins(player, cost)) {
if (CarriageCoinUtil.removeCoinsAndGiveChange(player, cost)) {
if (player.dimension != dest.dimension) {
MinecraftServer.getServer().getConfigurationManager().transferPlayerToDimension(player, dest.dimension);
}
@ -53,7 +54,8 @@ public class PacketCarriageSelect implements IMessage {
world.playSoundEffect(dest.x, dest.y, dest.z, "lotr:event.trade", 1.0F, 1.0F);
// Send fade packet to client
//LOTRPacketHandler.networkWrapper.sendTo(new PacketCarriageFTB(), player);
//LOTRPacketHandler.networkWrapper.sendTo(new PacketCarriageFTB(), (EntityPlayerMP) player);
String displayName = dest.name.replace("\"", "");
player.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + "You have arrived at " + displayName + "..."));
} else {

@ -15,5 +15,8 @@ public class PacketRegistration {
// PacketCarriageFTB.Handler.class, PacketCarriageFTB.class, id++, Side.CLIENT
// );
//}
if (FMLCommonHandler.instance().getSide().isClient()) {
LOTRPacketHandler.networkWrapper.registerMessage(PacketCarriageFTB.Handler.class, PacketCarriageFTB.class, id++, Side.CLIENT);
}
}
}

@ -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;
}
}

@ -394,7 +394,7 @@ item.lotr:spice_dwarven.name=Stonegrit
item.lotr:mugElfBrew.name=Saturated Miruvor
item.lotr:mugOrcBrew.name=Concentrated Orc Draught
item.lotr:mugHumanBrew.name=Athelas Tea
item.lotr:mugDwarfBrew.name=Dwarven Stout\
item.lotr:mugDwarfBrew.name=Dwarven Stout
item.fine_bone_dust.name=Fine Bone Dust
item.dried_morgul_caps.name=Dried Morgul Caps
item.blighted_root.name=Blighted Root

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 578 B

Loading…
Cancel
Save