Use EnumAddressee instead of String to identify mail carriers

This commit is contained in:
mezz committed 2014-09-12 21:26:33 -07:00
1 parent d6c3c8093c
commit dff81eb85c
6 files changed
+20 -29

No files matched your search

+1 -8
View File
@@ -159,20 +159,13 @@ public class PostOffice extends WorldSavedData implements IPostOffice {
IPostalState state = EnumDeliveryState.NOT_MAILABLE;
for (IMailAddress address : letter.getRecipients()) {
IPostalCarrier carrier = PostManager.postRegistry.getCarrier(address.getType().toString());
IPostalCarrier carrier = PostManager.postRegistry.getCarrier(address.getType());
if (carrier == null)
continue;
state = carrier.deliverLetter(world, this, address, itemstack, doLodge);
if (!state.isOk())
break;
}
/*
for (MailAddress address : letter.getRecipients())
if (address.isPlayer())
state = storeInPOBox(world, address, itemstack, doLodge);
else if (address.getType().equals(EnumAddressee.TRADER.toString()))
state = handleTradeLetter(world, address, itemstack, doLodge);
*/
if (!state.isOk())
return state;
@@ -27,6 +27,7 @@ import forestry.api.mail.IPostalCarrier;
import forestry.api.mail.ITradeStation;
import forestry.api.mail.PostManager;
import forestry.api.mail.IMailAddress;
import forestry.api.mail.EnumAddressee;
import forestry.core.config.ForestryItem;
import forestry.mail.items.ItemLetter;
import forestry.plugins.PluginMail;
@@ -168,21 +169,21 @@ public class PostRegistry implements IPostRegistry {
}
/* CARRIER */
private final HashMap<String, IPostalCarrier> carriers = new HashMap<String, IPostalCarrier>();
private final HashMap<EnumAddressee, IPostalCarrier> carriers = new HashMap<EnumAddressee, IPostalCarrier>();
@Override
public Map<String, IPostalCarrier> getRegisteredCarriers() {
public Map<EnumAddressee, IPostalCarrier> getRegisteredCarriers() {
return carriers;
}
@Override
public void registerCarrier(IPostalCarrier carrier) {
carriers.put(carrier.getUID(), carrier);
carriers.put(carrier.getType(), carrier);
}
@Override
public IPostalCarrier getCarrier(String uid) {
return carriers.get(uid);
public IPostalCarrier getCarrier(EnumAddressee type) {
return carriers.get(type);
}
/* LETTERS */
@@ -26,24 +26,22 @@ import forestry.plugins.PluginMail;
public class PostalCarrier implements IPostalCarrier {
private final String uid;
private final String iconID;
private final EnumAddressee type;
public PostalCarrier(EnumAddressee type) {
uid = type.toString().toLowerCase(Locale.ENGLISH);
iconID = "mail/carrier." + uid;
iconID = "mail/carrier." + type;
this.type = type;
}
@Override
public String getUID() {
return uid;
public EnumAddressee getType() {
return type;
}
@Override
public String getName() {
return StringUtil.localize("gui.addressee." + uid);
return StringUtil.localize("gui.addressee." + type);
}
@Override
@@ -44,7 +44,7 @@ import forestry.mail.network.PacketLetterInfo;
public class ContainerLetter extends ContainerItemInventory {
private final LetterInventory letterInventory;
private EnumAddressee carrier = EnumAddressee.PLAYER;
private EnumAddressee carrierType = EnumAddressee.PLAYER;
private TradeStationInfo tradeInfo = null;
public ContainerLetter(EntityPlayer player, LetterInventory inventory) {
@@ -88,7 +88,7 @@ public class ContainerLetter extends ContainerItemInventory {
if (letterInventory.getLetter() != null)
if (letterInventory.getLetter().getRecipients() != null)
if (letterInventory.getLetter().getRecipients().length > 0)
this.carrier = letterInventory.getLetter().getRecipients()[0].getType();
this.carrierType = letterInventory.getLetter().getRecipients()[0].getType();
}
@Override
@@ -115,17 +115,17 @@ public class ContainerLetter extends ContainerItemInventory {
}
public void setCarrierType(EnumAddressee type) {
this.carrier = type;
this.carrierType = type;
}
public EnumAddressee getCarrierType() {
return this.carrier;
return this.carrierType;
}
public void advanceCarrierType() {
Iterator<IPostalCarrier> it = PostManager.postRegistry.getRegisteredCarriers().values().iterator();
while(it.hasNext()) {
if(it.next().getUID().equals(carrier))
if(it.next().getType().equals(carrierType))
break;
}
@@ -135,8 +135,7 @@ public class ContainerLetter extends ContainerItemInventory {
else
postal = PostManager.postRegistry.getRegisteredCarriers().values().iterator().next();
EnumAddressee type = EnumAddressee.fromString(postal.getUID());
setCarrierType(type);
setCarrierType(postal.getType());
}
public void setRecipient(String recipientName, EnumAddressee type) {
@@ -222,7 +221,7 @@ public class ContainerLetter extends ContainerItemInventory {
}
public void handleLetterInfoUpdate(PacketLetterInfo packet) {
carrier = packet.type;
carrierType = packet.type;
if (packet.type == EnumAddressee.PLAYER) {
getLetter().setRecipient(packet.address);
} else if (packet.type == EnumAddressee.TRADER) {
@@ -48,7 +48,7 @@ public class GuiLetter extends GuiForestry<TileForestry> {
GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0F);
//mc.renderEngine.bindTexture(Defaults.TEXTURE_PATH_GUI + "/letter.png");
IPostalCarrier carrier = PostManager.postRegistry.getCarrier(container.getCarrierType().toString());
IPostalCarrier carrier = PostManager.postRegistry.getCarrier(container.getCarrierType());
if(carrier != null)
drawTexturedModelRectFromIcon(startX + xPos, startY + yPos - 5, carrier.getIcon(), 26, 26);