Compare commits

..
16 Commits
Author SHA1 Message Date
Thomas Guimbretiere 7a2fd4363c Mute the discovery errors from IC2.
Moved the module registration to very late events.
2013-12-17 18:40:55 +01:00
Thomas Guimbretiere 11d0f86320 Updated RU translation
Removed fluked file.
2013-12-12 16:26:28 +01:00
Thomas Guimbretiere d83fb8fe76 Added side getter to the accessor.
Version bump.
2013-12-09 14:08:18 +01:00
Thomas Guimbretiere a36013c28c Fixed a derp with air blocks... 2013-12-09 14:01:52 +01:00
Thomas Guimbretiere 1934171e5a Merge 2013-12-07 01:34:18 +01:00
Thomas Guimbretiere 4b2e873261 Merged in Vexatos/waila-1/Vexatos/de_delang-edited-online-with-bitbucket-1386187266977 (pull request #5)
de_DE.lang edited online with Bitbucket
2013-12-07 01:38:27 +01:00
Thomas Guimbretiere 6319cbd425 Localization 2013-12-07 01:33:57 +01:00
Vexatos 72ae5eccb3 de_DE.lang edited online with Bitbucket 2013-12-04 20:01:17 +00:00
Thomas Guimbretiere 5d1c7d532f Added tag 1.4.1 for changeset f9daea609042 2013-11-26 16:29:14 +01:00
Thomas Guimbretiere afb9549da9 Done with options & localization. 2013-11-26 16:28:54 +01:00
Thomas Guimbretiere 0d749d80ae [IC2] Added trade-o-mat display. 2013-11-26 01:57:29 +01:00
Thomas Guimbretiere 050fd992c6 [IC2] Fixed display for geothermal & semifluid generators. 2013-11-26 01:35:12 +01:00
Thomas Guimbretiere 3694992eb5 Working revisited IC2 module. 2013-11-26 00:37:40 +01:00
Thomas Guimbretiere 6f0301667d Check for MOP diff in the NBT sync packet sending block. 2013-11-23 19:45:28 +01:00
Thomas Guimbretiere d2606bfc25 Fixed ETB module (early lookup).
Removed IC2 module for now (pending rewrite).
Caching providers lookup data for optimization.
2013-11-23 19:38:54 +01:00
Thomas Guimbretiere 299ef5307e Added tag v1.4.0 for changeset e8b1906c3f51 2013-11-23 15:40:38 +01:00
24 changed files with 827 additions and 385 deletions

No files matched your search

+9 -2
View File
@@ -43,7 +43,8 @@ hud.msg.input=Input
hud.msg.out=Out
hud.msg.in=In
hud.msg.power=Energie
hud.msg.storage=Gespeichert
hud.msg.storage=Speicher
hud.msg.stored=Gespeichert
hud.msg.any=Jegliches
hud.msg.mode=Modus
hud.msg.maxpower=Max Energie
@@ -89,6 +90,9 @@ hud.msg.comparator=Komparator
hud.msg.substractor=Substraktor
hud.msg.record=Platte
hud.msg.offers=Angebote
hud.msg.demands=Bedarf
option.appeng.monitorcontent=Monitorinhalt
option.bb.content=Fassinhalt
option.bc.tankamount=Flüssigk.-Menge
@@ -96,8 +100,11 @@ option.bc.tanktype=Flüssigk.-Typ
option.enderstorage.colors=Farben
option.ic2.inputeumach=Max EU-Input [Maschinen]
option.ic2.inputeuother=Max EU-Input [Anderes]
option.ic2.inputeu=Max EU-Input
option.ic2.outputeu=Max EU-Output
option.ic2.storage=Energie gespeichert
option.ic2.consump=Zeige Verbrauch
option.ic2.tradeomat=Zeige Tauschautomaten-Forderung
option.thaumcraft.storedvis=Kondensatorspeicher
option.thermalexpansion.energyhandler=Zeige RO-Speicher
option.thermalexpansion.energycell=Zeige EZellen IN/OUT
@@ -115,7 +122,7 @@ option.vanilla.repeater=Repeater-Verzögerung
option.vanilla.comparator=Komparatormodus
option.vanilla.redstone=Redstone-Stärke
option.vanilla.jukebox=Musikbox-Platte
option.etb.displaydata=Zeigel Sockeldaten
option.etb.displaydata=Zeige Sockeldaten
option.enderio.inout=Zeige Input/Output
option.enderio.storage=Zeige gespeicherte MJ
option.enderio.owner=Zeige Block-Besitzer
+7
View File
@@ -44,6 +44,7 @@ hud.msg.out=Out
hud.msg.in=In
hud.msg.power=Power
hud.msg.storage=Storage
hud.msg.stored=Stored
hud.msg.any=Any
hud.msg.mode=Mode
hud.msg.maxpower=Max Power
@@ -89,6 +90,9 @@ hud.msg.comparator=Comparator
hud.msg.substractor=Substractor
hud.msg.record=Record
hud.msg.offers=Offers
hud.msg.demands=Demands
option.appeng.monitorcontent=Monitor's content
option.bb.content=Barrel's content
option.bc.tankamount=Liquid amount
@@ -96,8 +100,11 @@ option.bc.tanktype=Liquid type
option.enderstorage.colors=Colors
option.ic2.inputeumach=Max EU input [Machines]
option.ic2.inputeuother=Max EU input [Other]
option.ic2.inputeu=Max EU input
option.ic2.outputeu=Max EU output
option.ic2.storage=Energy stored
option.ic2.consump=Show consumption
option.ic2.tradeomat=Show Trade-O-Mat request
option.thaumcraft.storedvis=Capacitor storage
option.thermalexpansion.energyhandler=Show RF storage
option.thermalexpansion.energycell=Show ECell IN/OUT
+6
View File
@@ -44,6 +44,7 @@ hud.msg.out=Sortie
hud.msg.in=Entrée
hud.msg.power=Energie
hud.msg.storage=Stockage
hud.msg.stored=Stocké
hud.msg.any=Tout
hud.msg.mode=Mode
hud.msg.maxpower=Max Puissance
@@ -89,6 +90,9 @@ hud.msg.comparator=Comparateur
hud.msg.substractor=Soustracteur
hud.msg.record=Disque
hud.msg.offers=Offre
hud.msg.demands=Demande
option.appeng.monitorcontent=Contenu des écrans
option.bb.content=Contenu des barils
option.bc.tankamount=Niveau de liquide
@@ -96,8 +100,10 @@ option.bc.tanktype=Sorte de liquide
option.enderstorage.colors=Couleurs
option.ic2.inputeumach=Max EU en entrée [Machines]
option.ic2.inputeuother=Max EU en entrée [Autres]
option.ic2.inputeu=Max EU en entrée
option.ic2.outputeu=Max EU en sortie
option.ic2.storage=Energie stockée
option.ic2.consump=Afficher consommation
option.thaumcraft.storedvis=Condensateur de stockage
option.thermalexpansion.energyhandler=Afficher stockage RF
option.thermalexpansion.energycell=Afficher ECell Entrée/Sortie
+114
View File
@@ -0,0 +1,114 @@
screen.button.waila=Waila
screen.button.modules=Modules
screen.label.scale=Schaal
screen.label.dragtuto=Sleep de HUD om zijn positie in te stellen.
screen.button.default=Standaard
screen.button.cancel=Annuleren
screen.button.ok=Ok
screen.button.yes=Ja
screen.button.no=Nee
screen.button.back=Terug
screen.button.hidden=Verborgen
screen.button.visible=Zichtbaar
screen.button.maintained=Gehandhaafd
screen.button.toggled=Omgeschakeld
choice.showhidewaila=Toon/Verberg Waila
choice.showhideidmeta=Toon ID:Metadata
choice.toggledmaintained=Omgeschakeld/Gehandhaafd
choice.showliquids=Vloeistoffen
screen.button.configureaspect=Configureer aspect...
enchant.title.name=Naam
enchant.title.minlvl=Min lvl
enchant.title.maxlvl=Max lvl
enchant.title.weight=Gewicht
enchant.label.enchantability=Enchantbaarheid
keybind.configscreen=[Waila] Configuratiescherm
keybind.showhide=[Waila] Toon/Verberg
keybind.showliquid=[Waila] Toon vloeistoffen
keybind.showrecipe=[Waila] Toon recepten
keybind.showusage=[Waila] Toon gebruik
keybind.testing=[Waila] Testen
client.msg.norecipe=Geen recept gevonden.
client.msg.nousage=Geen gebruik gevonden.
hud.msg.none=<Geen>
hud.msg.empty=<Leeg>
hud.msg.output=Uitvoer
hud.msg.input=Invoer
hud.msg.out=Uit
hud.msg.in=In
hud.msg.power=Vermogen
hud.msg.storage=Opslag
hud.msg.any=Om het even welke
hud.msg.mode=Modus
hud.msg.send=Zend
hud.msg.recv=Ontv
hud.msg.item=Item
hud.msg.fluid=Vloeistof
hud.msg.energ=Energie
hud.msg.frequency=Frequentie
hud.msg.owner=Eigenaar
hud.msg.public=Publiek
hud.msg.restricted=Begrensd
hud.msg.private=Privé
hud.msg.white=Wit
hud.msg.orange=Oranje
hud.msg.magenta=Magenta
hud.msg.lblue=LBlauw
hud.msg.yellow=Geel
hud.msg.lime=Limoen
hud.msg.pink=Roze
hud.msg.gray=Grijs
hud.msg.lgray=LGrijs
hud.msg.cyan=Cyaan
hud.msg.purple=Paars
hud.msg.blue=Blauw
hud.msg.brown=Bruin
hud.msg.green=Groen
hud.msg.red=Rood
hud.msg.black=Zwart
hud.msg.growth=Groei
hud.msg.mature=Volwassen
hud.msg.off=Af
hud.msg.on=Aan
hud.msg.state=Status
hud.msg.delay=Vertraging
hud.msg.comparator=Vergelijker
hud.msg.substractor=Aftrekker
hud.msg.record=Neem op
option.appeng.monitorcontent=Scherm inhoud
option.bb.content=Ton inhoud
option.bc.tankamount=Vloeistofhoeveelheid
option.bc.tanktype=Vloeistoftype
option.enderstorage.colors=Kleuren
option.ic2.inputeumach=Max EU invoer [Machines]
option.ic2.inputeuother=Max EU invoer [Andere]
option.ic2.inputeu=Max EU invoer
option.ic2.outputeu=Max EU uitvoer
option.ic2.storage=Opgeslagen energie
option.thaumcraft.storedvis=Condensator opslag
option.thermalexpansion.energyhandler=Toon RF opslag
option.thermalexpansion.energycell=Toon ECell IN/UIT
option.thermalexpansion.fluidtype=Toon vloeistoftype
option.thermalexpansion.fluidamount=Toon vloeistofhoeveelheid
option.thermalexpansion.tankmode=Toon tank modus
option.thermalexpansion.tesssendrecv=Tesseract modus
option.thermalexpansion.tessfreq=Tesseract frequentie
option.thermalexpansion.owner=Toon eigenaar
option.vanilla.spawntype=Spawner type
option.vanilla.growthvalue=Groei hoeveelheid
option.vanilla.leverstate=Hendel status
option.vanilla.repeater=Herhaler vertraging
option.vanilla.comparator=Vergelijker modus
option.vanilla.redstone=Redstone vermogen
option.vanilla.jukebox=Jukebox schijf
+128
View File
@@ -0,0 +1,128 @@
screen.button.waila=Waila
screen.button.modules=Модули
screen.label.scale=Размер
screen.label.dragtuto=Перетащите интерфейс, чтобы изменить позицию.
screen.button.default=По умолчанию
screen.button.cancel=Отмена
screen.button.ok=Ок
screen.button.yes=Да
screen.button.no=Нет
screen.button.back=Назад
screen.button.hidden=Скрывать
screen.button.visible=Показывать
screen.button.maintained=При нажатой клавише
screen.button.toggled=Вкл./Выкл. гор. клавишей
choice.showhidewaila=Показать/Скрыть Waila
choice.showhideidmeta=Показать ID:Метаданные
choice.toggledmaintained=Переключ./Нажатая клав.
choice.showliquids=Жидкости
screen.button.configureaspect=Настроить индикатор...
enchant.title.name=Название
enchant.title.minlvl=Мин. уровень
enchant.title.maxlvl=Макс. уровень
enchant.title.weight=Вес
enchant.label.enchantability=Зачарование
waila.keybind.wailaconfig=[Waila] Меню настроек
waila.keybind.wailadisplay=[Waila] Показать/Скрыть
waila.keybind.liquid=[Waila] Показать жидкости
waila.keybind.recipe=[Waila] Показать рецепт
waila.keybind.usage=[Waila] Показать применение
waila.keybind.testing=[Waila] Тестировать
client.msg.norecipe=Рецептов не найдено.
client.msg.nousage=Применений не найдено.
hud.msg.none=<Ничего>
hud.msg.empty=<Пусто>
hud.msg.output=Вывод
hud.msg.input=Ввод
hud.msg.out=Из
hud.msg.in=В
hud.msg.power=Энергия
hud.msg.storage=Хранилище
hud.msg.any=Всё
hud.msg.mode=Режим
hud.msg.maxpower=Макс. энергия
hud.msg.trigger=Триггер
hud.msg.maxio=Макс. ввод/вывод
hud.msg.send=Передача
hud.msg.recv=Приём
hud.msg.item=Предмет
hud.msg.fluid=Жидкость
hud.msg.energ=Энергия
hud.msg.frequency=Частота
hud.msg.owner=Владелец
hud.msg.public=Публичный
hud.msg.restricted=Ограниченный
hud.msg.private=Приватный
hud.msg.white=Белый
hud.msg.orange=Оранжевый
hud.msg.magenta=Сиреневый
hud.msg.lblue=Светло-синий
hud.msg.yellow=Жёлтый
hud.msg.lime=Светло-зелёный
hud.msg.pink=Розовый
hud.msg.gray=Серый
hud.msg.lgray=Светло-серый
hud.msg.cyan=Бирюзовый
hud.msg.purple=Фиолетовый
hud.msg.blue=Синий
hud.msg.brown=Коричневый
hud.msg.green=Зелёный
hud.msg.red=Красный
hud.msg.black=Чёрный
hud.msg.growth=Рост
hud.msg.mature=Вырос
hud.msg.off=Выкл.
hud.msg.on=Вкл.
hud.msg.state=Статус
hud.msg.delay=Задержка
hud.msg.comparator=Компаратор
hud.msg.substractor=Вычитатель
hud.msg.record=Пластинка
option.appeng.monitorcontent=Содержимое монитора
option.bb.content=Содержимое бочки
option.bc.tankamount=Кол-во жидкости
option.bc.tanktype=Тип жидкости
option.enderstorage.colors=Цвета
option.ic2.inputeumach=Макс. ввод еЭ [Машины]
option.ic2.inputeuother=Макс. ввод еЭ [Другое]
option.ic2.inputeu=Макс. ввод еЭ
option.ic2.outputeu=Макс. вывод еЭ
option.ic2.storage=Заряд энергии
option.thaumcraft.storedvis=Заряд конденсатора
option.thermalexpansion.energyhandler=Показывать заряд заряжателя
option.thermalexpansion.energycell=Показывать Ввод/Вывод Р.батареи
option.thermalexpansion.fluidtype=Показывать тип жидкости
option.thermalexpansion.fluidamount=Показывать кол-во жидкости
option.thermalexpansion.tankmode=Режим цистерны
option.thermalexpansion.tesssendrecv=Режим тессеракта
option.thermalexpansion.tessfreq=Частота тессеракта
option.thermalexpansion.owner=Показывать владельца
option.thermalexpansion.conditemmode=Показывать режим труб
option.vanilla.spawntype=Тип спаунера
option.vanilla.growthvalue=Стадия роста
option.vanilla.leverstate=Положение рычага
option.vanilla.repeater=Задержка повторителя
option.vanilla.comparator=Режим компаратора
option.vanilla.redstone=Сила красного камня
option.vanilla.jukebox=Пластинка в проигрывателе
option.etb.displaydata=Показывать инф. о сокетах
option.enderio.inout=Показывать ввод/вывод
option.enderio.storage=Показывать заряд MJ
option.enderio.owner=Показывать владельца блока
option.enderio.channel=Показывать канал гиперкуба
option.bcapi.storage=Показывать заряд MJ
option.bcapi.consump=Показывать макс. энергию
option.bcapi.trigger=Показывать энергию активации
option.pr.showio=Показывать ввод/вывод схем
option.pr.showdata=Показывать инф. о схемах
+13 -6
View File
@@ -18,7 +18,7 @@ public class ETBModule {
//public static Field Socket_facMeta = null;
public static Class SocketsMod = null;
public static Item module = null;
public static Field module = null;
public static Class SideConfig = null;
public static Field SC_tank = null;
@@ -46,7 +46,14 @@ public class ETBModule {
//Socket_facMeta = TileSocket.getField("facMeta");
SocketsMod = Class.forName("emasher.sockets.SocketsMod");
module = (Item)SocketsMod.getField("module").get(null);
module = SocketsMod.getField("module");
//module = (Item)SocketsMod.getField("module").get(null);
/*
if (module == null){
mod_Waila.log.log(Level.WARNING, "[Engineer Toolbox] module field is null !");
return;
}
*/
SideConfig = Class.forName("emasher.api.SideConfig");
SC_tank = SideConfig.getField("tank");
@@ -56,16 +63,16 @@ public class ETBModule {
} catch (ClassNotFoundException e){
mod_Waila.log.log(Level.WARNING, "[EnderStorage] Class not found. " + e);
mod_Waila.log.log(Level.WARNING, "[Engineer Toolbox] Class not found. " + e);
return;
// } catch (NoSuchMethodException e){
// mod_Waila.log.log(Level.WARNING, "[EnderStorage] Method not found." + e);
// mod_Waila.log.log(Level.WARNING, "[Engineer Toolbox] Method not found." + e);
// return;
} catch (NoSuchFieldException e){
mod_Waila.log.log(Level.WARNING, "[EnderStorage] Field not found." + e);
mod_Waila.log.log(Level.WARNING, "[Engineer Toolbox] Field not found." + e);
return;
} catch (Exception e){
mod_Waila.log.log(Level.WARNING, "[EnderStorage] Unhandled exception." + e);
mod_Waila.log.log(Level.WARNING, "[Engineer Toolbox] Unhandled exception." + e);
return;
}
@@ -3,6 +3,7 @@ package mcp.mobius.waila.addons.etb;
import java.util.Arrays;
import java.util.List;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.common.ForgeDirection;
import mcp.mobius.waila.WailaExceptionHandler;
@@ -29,9 +30,11 @@ public class HUDHandlerSocket implements IWailaDataProvider {
try {
int[] sides = (int[])ETBModule.Socket_sides.get(accessor.getTileEntity());
Object[] configs = (Object[])ETBModule.Socket_configs.get(accessor.getTileEntity());
Item module = (Item)ETBModule.module.get(null);
for( int s = 0; s < 6; s++){
if (sides[s]!=0){
if (sides[s] != 0){
int tank = (Integer)ETBModule.SC_tank.get(configs[s]);
int inventory = (Integer)ETBModule.SC_inventory.get(configs[s]);
@@ -39,7 +42,7 @@ public class HUDHandlerSocket implements IWailaDataProvider {
boolean[] rsLatch = (boolean[])ETBModule.SC_rsLatch.get(configs[s]);
ItemStack stack = new ItemStack(ETBModule.module, 1, sides[s]);
ItemStack stack = new ItemStack(module, 1, sides[s]);
String tipstr = String.format("%-5s : %s ", ForgeDirection.getOrientation(s), stack.getDisplayName());
String configstr = "[ ";
@@ -1,32 +0,0 @@
package mcp.mobius.waila.addons.ic2;
import java.util.List;
import net.minecraft.item.ItemStack;
import mcp.mobius.waila.api.IWailaConfigHandler;
import mcp.mobius.waila.api.IWailaDataAccessor;
import mcp.mobius.waila.api.IWailaDataProvider;
public class HUDHandlerDoor implements IWailaDataProvider {
@Override
public ItemStack getWailaStack(IWailaDataAccessor accessor, IWailaConfigHandler config) {
return IC2Module.ReinforcedDoorStack;
}
@Override
public List<String> getWailaHead(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
return currenttip;
}
@Override
public List<String> getWailaBody(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
return currenttip;
}
@Override
public List<String> getWailaTail(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
return currenttip;
}
}
@@ -1,89 +0,0 @@
package mcp.mobius.waila.addons.ic2;
import java.util.List;
import java.util.logging.Level;
import codechicken.lib.lang.LangUtil;
import mcp.mobius.waila.mod_Waila;
import mcp.mobius.waila.addons.ConfigHandler;
import mcp.mobius.waila.api.IWailaConfigHandler;
import mcp.mobius.waila.api.IWailaDataAccessor;
import mcp.mobius.waila.api.IWailaDataProvider;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
public class HUDHandlerIC2IEnergySink implements IWailaDataProvider {
@Override
public ItemStack getWailaStack(IWailaDataAccessor accessor, IWailaConfigHandler config) {
return null;
}
@Override
public List<String> getWailaHead(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
return currenttip;
}
@Override
public List<String> getWailaBody(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
//if (accessor.getTileEntity() != null && TEElectricBlock.isInstance(accessor.getTileEntity())){
int maxinput = -1;
try{
if (IC2Module.IEnergySink.isInstance(accessor.getTileEntity()))
maxinput = (Integer)(IC2Module.IEnergySink_GetInput.invoke(IC2Module.IEnergySink.cast(accessor.getTileEntity())));
} catch (Exception e){
mod_Waila.log.log(Level.SEVERE, "[IC2] Unhandled exception trying to access an IEnergySink for display !.\n" + String.valueOf(e));
return currenttip;
}
int ntransformers = this.getTransformerUpgrades(accessor);
if (ntransformers > 0){
maxinput = maxinput * (int)Math.pow(4.0D, Math.min(3, ntransformers));
}
if (ConfigHandler.instance().getConfig("ic2.inputeuother") && (maxinput > 4096))
currenttip.add(String.format("%s : %s", LangUtil.translateG("hud.msg.input"), LangUtil.translateG("hud.msg.any")));
else if (ConfigHandler.instance().getConfig("ic2.inputeuother") && (maxinput != -1) && !this.canUpgrade(accessor.getNBTData()))
currenttip.add(String.format("%s : %s EU/t", LangUtil.translateG("hud.msg.input"), maxinput));
else if (ConfigHandler.instance().getConfig("ic2.inputeumach") && (maxinput != -1) && this.canUpgrade(accessor.getNBTData()))
currenttip.add(String.format("%s : %s EU/t", LangUtil.translateG("hud.msg.input"), maxinput));
if (config.getConfig("ic2.storage"))
if (accessor.getNBTData().hasKey("energy") && !IC2Module.IEnergyStorage.isInstance(accessor.getTileEntity()))
currenttip.add(String.format("%s : %s EU", LangUtil.translateG("hud.msg.storage"), accessor.getNBTInteger(accessor.getNBTData(), "energy")));
return currenttip;
}
@Override
public List<String> getWailaTail(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
return currenttip;
}
public boolean canUpgrade(NBTTagCompound tag){
if (tag.hasKey("InvSlots"))
if (tag.getCompoundTag("InvSlots").hasKey("upgrade"))
return true;
return false;
}
public int getTransformerUpgrades(IWailaDataAccessor accessor){
NBTTagCompound tag = accessor.getNBTData();
if (!canUpgrade(tag)) return -1;
int ntransformers = 0;
NBTTagList contents = tag.getCompoundTag("InvSlots").getCompoundTag("upgrade").getTagList("Contents");
for (NBTTagCompound subtag : (List<NBTTagCompound>)contents.tagList){
ItemStack currentSlot = new ItemStack(accessor.getNBTInteger(subtag, "id"),accessor.getNBTInteger(subtag, "Count"),accessor.getNBTInteger(subtag, "Damage"));
if (IC2Module.TransformerUpgradeStack.isItemEqual(currentSlot)){
ntransformers += currentSlot.stackSize;
}
}
return ntransformers;
}
}
@@ -1,55 +0,0 @@
package mcp.mobius.waila.addons.ic2;
import java.util.List;
import java.util.logging.Level;
import codechicken.lib.lang.LangUtil;
import mcp.mobius.waila.mod_Waila;
import mcp.mobius.waila.addons.ConfigHandler;
import mcp.mobius.waila.api.IWailaConfigHandler;
import mcp.mobius.waila.api.IWailaDataAccessor;
import mcp.mobius.waila.api.IWailaDataProvider;
import net.minecraft.item.ItemStack;
public class HUDHandlerIC2IEnergySource implements IWailaDataProvider {
@Override
public ItemStack getWailaStack(IWailaDataAccessor accessor, IWailaConfigHandler config) {
return null;
}
@Override
public List<String> getWailaHead(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
return currenttip;
}
@Override
public List<String> getWailaBody(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
//if (accessor.getTileEntity() != null && TEElectricBlock.isInstance(accessor.getTileEntity())){
int output = -1;
/*
try{
if (IC2Module.IEnergySource.isInstance(accessor.getTileEntity()))
output = (Integer)(IC2Module.IEnergySource_GetOutput.invoke(IC2Module.IEnergySource.cast(accessor.getTileEntity())));
} catch (Exception e){
mod_Waila.log.log(Level.SEVERE, "[IC2] Unhandled exception trying to access an IEnergySource for display !.\n" + String.valueOf(e));
return currenttip;
}
*/
if (ConfigHandler.instance().getConfig("ic2.outputeu") && (output != -1))
currenttip.add(String.format("%s : %s EU/t", LangUtil.translateG("hud.msg.output"), output));
if (config.getConfig("ic2.storage"))
if (accessor.getNBTData().hasKey("storage") && !IC2Module.IEnergyStorage.isInstance(accessor.getTileEntity()))
currenttip.add(String.format("%s : %s EU", LangUtil.translateG("hud.msg.storage"), accessor.getNBTInteger(accessor.getNBTData(), "storage")));
return currenttip;
}
@Override
public List<String> getWailaTail(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
return currenttip;
}
}
@@ -1,52 +0,0 @@
package mcp.mobius.waila.addons.ic2;
import java.util.List;
import java.util.logging.Level;
import mcp.mobius.waila.mod_Waila;
import mcp.mobius.waila.api.IWailaConfigHandler;
import mcp.mobius.waila.api.IWailaDataAccessor;
import mcp.mobius.waila.api.IWailaDataProvider;
import net.minecraft.item.ItemStack;
public class HUDHandlerIC2IEnergyStorage implements IWailaDataProvider {
@Override
public ItemStack getWailaStack(IWailaDataAccessor accessor, IWailaConfigHandler config) {
return null;
}
@Override
public List<String> getWailaHead(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
return currenttip;
}
@Override
public List<String> getWailaBody(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
if (!config.getConfig("ic2.storage"))
return currenttip;
int stored = -1;
int capacity = -1;
try{
if (IC2Module.IEnergyStorage.isInstance(accessor.getTileEntity()))
capacity = (Integer)(IC2Module.IEnergyStorage_GetCapacity.invoke(IC2Module.IEnergyStorage.cast(accessor.getTileEntity())));
} catch (Exception e){
mod_Waila.log.log(Level.SEVERE, "[IC2] Unhandled exception trying to access an IEnergyStorage for display !.\n" + String.valueOf(e));
return currenttip;
}
if (accessor.getNBTData().hasKey("energy"))
stored = accessor.getNBTInteger(accessor.getNBTData(), "energy");
if ((capacity != -1) && (stored != -1))
currenttip.add(String.format("%s/%s EU", stored, capacity));
return currenttip;
}
@Override
public List<String> getWailaTail(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
return currenttip;
}
}
@@ -0,0 +1,76 @@
package mcp.mobius.waila.addons.ic2;
import java.util.List;
import codechicken.lib.lang.LangUtil;
import net.minecraft.item.ItemStack;
import mcp.mobius.waila.WailaExceptionHandler;
import mcp.mobius.waila.addons.ConfigHandler;
import mcp.mobius.waila.api.IWailaConfigHandler;
import mcp.mobius.waila.api.IWailaDataAccessor;
import mcp.mobius.waila.api.IWailaDataProvider;
public class HUDHandlerTEBaseGenerator implements IWailaDataProvider {
@Override
public ItemStack getWailaStack(IWailaDataAccessor accessor, IWailaConfigHandler config) {
return null;
}
@Override
public List<String> getWailaHead(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
return currenttip;
}
@Override
public List<String> getWailaBody(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
try{
int storage = -1;
int production = -1;
if (IC2Module.TileEntityBaseGenerator.isInstance(accessor.getTileEntity())){
storage = IC2Module.TEBG_MaxStorage.getShort(accessor.getTileEntity());
production = IC2Module.TEBG_Production.getInt(accessor.getTileEntity());
}
else if (IC2Module.TileEntityGeoGenerator.isInstance(accessor.getTileEntity())){
storage = IC2Module.TEGG_MaxStorage.getShort(accessor.getTileEntity());
production = IC2Module.TEGG_Production.getInt(accessor.getTileEntity());
}
else if (IC2Module.TileEntitySemifluidGenerator.isInstance(accessor.getTileEntity())){
storage = IC2Module.TESG_MaxStorage.getShort(accessor.getTileEntity());
production = (int)IC2Module.TESG_Production.getDouble(accessor.getTileEntity());
}
String storedStr = LangUtil.translateG("hud.msg.stored");
String outputStr = LangUtil.translateG("hud.msg.output");
/* EU Storage */
if (ConfigHandler.instance().getConfig("ic2.storage")){
double stored = IC2Module.getStoredEnergy(accessor);
if ( stored >= 0.0 && storage > 0)
currenttip.add(String.format("%s : \u00a7f%d\u00a7r / \u00a7f%d\u00a7r EU", storedStr, Math.round(Math.min(stored,storage)), storage));
//else if (stored >= 0.0)
// currenttip.add(String.format("Stored : %d EU", stored));
}
if (ConfigHandler.instance().getConfig("ic2.outputeu")){
if ( production > 0)
currenttip.add(String.format("%s : \u00a7f%d\u00a7r EU/t", outputStr, production));
}
} catch (Exception e){
currenttip = WailaExceptionHandler.handleErr(e, accessor.getTileEntity().getClass().getName(), currenttip);
}
return currenttip;
}
@Override
public List<String> getWailaTail(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
return currenttip;
}
}
@@ -0,0 +1,61 @@
package mcp.mobius.waila.addons.ic2;
import java.util.List;
import codechicken.lib.lang.LangUtil;
import net.minecraft.item.ItemStack;
import mcp.mobius.waila.WailaExceptionHandler;
import mcp.mobius.waila.addons.ConfigHandler;
import mcp.mobius.waila.api.IWailaConfigHandler;
import mcp.mobius.waila.api.IWailaDataAccessor;
import mcp.mobius.waila.api.IWailaDataProvider;
public class HUDHandlerTEElectricBlock implements IWailaDataProvider {
@Override
public ItemStack getWailaStack(IWailaDataAccessor accessor,
IWailaConfigHandler config) {
// TODO Auto-generated method stub
return null;
}
@Override
public List<String> getWailaHead(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
return currenttip;
}
@Override
public List<String> getWailaBody(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
try{
String storedStr = LangUtil.translateG("hud.msg.stored");
String outputStr = LangUtil.translateG("hud.msg.output");
/* EU Storage */
if (ConfigHandler.instance().getConfig("ic2.storage")){
double stored = IC2Module.getStoredEnergy(accessor);
int storage = IC2Module.TEEB_MaxStorage.getInt(accessor.getTileEntity());
if ( stored >= 0.0 )
currenttip.add(String.format("%s : \u00a7f%d\u00a7r / \u00a7f%d\u00a7r EU", storedStr, Math.round(Math.min(stored,storage)), storage));
}
if (ConfigHandler.instance().getConfig("ic2.outputeu")){
int production = IC2Module.TEEB_Output.getInt(accessor.getTileEntity());
if ( production > 0)
currenttip.add(String.format("%s : \u00a7f%d\u00a7r EU/t", outputStr, production));
}
} catch (Exception e){
currenttip = WailaExceptionHandler.handleErr(e, accessor.getTileEntity().getClass().getName(), currenttip);
}
return currenttip;
}
@Override
public List<String> getWailaTail(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
return currenttip;
}
}
@@ -0,0 +1,81 @@
package mcp.mobius.waila.addons.ic2;
import java.util.List;
import codechicken.lib.lang.LangUtil;
import net.minecraft.item.ItemStack;
import mcp.mobius.waila.WailaExceptionHandler;
import mcp.mobius.waila.addons.ConfigHandler;
import mcp.mobius.waila.api.IWailaConfigHandler;
import mcp.mobius.waila.api.IWailaDataAccessor;
import mcp.mobius.waila.api.IWailaDataProvider;
public class HUDHandlerTEStandardMachine implements IWailaDataProvider {
@Override
public ItemStack getWailaStack(IWailaDataAccessor accessor,
IWailaConfigHandler config) {
// TODO Auto-generated method stub
return null;
}
@Override
public List<String> getWailaHead(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
return currenttip;
}
@Override
public List<String> getWailaBody(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
try{
IC2Upgrades upgrades = IC2Module.getUpgrades(accessor);
int baseConsumption = IC2Module.TESM_DefaultEnergyConsume.getInt(accessor.getTileEntity());
int baseOpTime = IC2Module.TESM_DefaultOperationLength.getInt(accessor.getTileEntity());
int baseStorage = IC2Module.TESM_DefaultEnergyStorage.getInt(accessor.getTileEntity());
long consumption = Math.round(Math.min(baseConsumption * Math.pow(1.6D, upgrades.overclocker), 2147483647));
double stackOpLen = baseOpTime * 64.0D * Math.pow(0.7D, upgrades.overclocker);
int opPerTick = ((int)Math.min(Math.ceil(64.0D / stackOpLen), 2147483647.0D));
int opTime = ((int)Math.round(stackOpLen * opPerTick / 64.0D));
int storage = Math.round(Math.min(baseStorage + 10000 * upgrades.storage + opTime * consumption, 2147483647));;
int maxinput = (Integer)IC2Module.IES_GetMaxSafeInput.invoke(accessor.getTileEntity()) * (int)Math.pow(4.0D, Math.min(4, upgrades.transform));
double stored = IC2Module.getStoredEnergy(accessor);
String storedStr = LangUtil.translateG("hud.msg.stored");
String powerStr = LangUtil.translateG("hud.msg.power");
String maxPowerStr = LangUtil.translateG("hud.msg.maxpower");
/* EU Storage */
if (ConfigHandler.instance().getConfig("ic2.storage")){
if ( stored >= 0.0 )
currenttip.add(String.format("%s : \u00a7f%d\u00a7r / \u00a7f%d\u00a7r EU", storedStr, Math.round(Math.min(stored,storage)), storage));
}
if (ConfigHandler.instance().getConfig("ic2.consump")){
if ( consumption > 0)
currenttip.add(String.format("%s : \u00a7f%d\u00a7r EU/t", powerStr, consumption ));
}
if (ConfigHandler.instance().getConfig("ic2.inputeu")){
if ( maxinput > 0)
currenttip.add(String.format("%s : \u00a7f%d\u00a7r EU/t", maxPowerStr, maxinput ));
}
} catch (Exception e){
currenttip = WailaExceptionHandler.handleErr(e, accessor.getTileEntity().getClass().getName(), currenttip);
}
return currenttip;
}
@Override
public List<String> getWailaTail(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
return currenttip;
}
}
@@ -0,0 +1,58 @@
package mcp.mobius.waila.addons.ic2;
import java.util.List;
import codechicken.lib.lang.LangUtil;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import mcp.mobius.waila.addons.ConfigHandler;
import mcp.mobius.waila.api.IWailaConfigHandler;
import mcp.mobius.waila.api.IWailaDataAccessor;
import mcp.mobius.waila.api.IWailaDataProvider;
public class HUDHandlerTETradeOMat implements IWailaDataProvider {
@Override
public ItemStack getWailaStack(IWailaDataAccessor accessor, IWailaConfigHandler config) {
return null;
}
@Override
public List<String> getWailaHead(ItemStack itemStack,List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
return currenttip;
}
@Override
public List<String> getWailaBody(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
if (!ConfigHandler.instance().getConfig("ic2.tradeomat")) return currenttip;
NBTTagCompound slots = accessor.getNBTData().getCompoundTag("InvSlots");
NBTTagList offer = slots.getCompoundTag("offer").getTagList("Contents");
NBTTagList demand = slots.getCompoundTag("demand").getTagList("Contents");
String offersStr = LangUtil.translateG("hud.msg.offers");
String demandsStr = LangUtil.translateG("hud.msg.demands");
if (offer.tagCount() == 1){
NBTTagCompound subtag = (NBTTagCompound)offer.tagAt(0);
ItemStack is = new ItemStack(subtag.getShort("id"), subtag.getByte("Count"), subtag.getShort("Damage"));
currenttip.add(String.format("%s : \u00a7f%d\u00a7r x \u00a7f%s\u00a7r", offersStr, is.stackSize, is.getDisplayName()));
}
if (demand.tagCount() == 1){
NBTTagCompound subtag = (NBTTagCompound)demand.tagAt(0);
ItemStack is = new ItemStack(subtag.getShort("id"), subtag.getByte("Count"), subtag.getShort("Damage"));
currenttip.add(String.format("%s : \u00a7f%d\u00a7r x \u00a7f%s\u00a7r", demandsStr, is.stackSize, is.getDisplayName()));
}
return currenttip;
}
@Override
public List<String> getWailaTail(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
return currenttip;
}
}
+126 -49
View File
@@ -4,88 +4,165 @@ import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.logging.Level;
import mcp.mobius.waila.mod_Waila;
import mcp.mobius.waila.addons.ExternalModulesHandler;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import mcp.mobius.waila.mod_Waila;
import mcp.mobius.waila.addons.ConfigHandler;
import mcp.mobius.waila.addons.ExternalModulesHandler;
import mcp.mobius.waila.api.IWailaDataAccessor;
public class IC2Module {
/* Our interfaces */
public static Class IEnergyStorage = null;
public static Class IEnergySink = null;
public static Class IEnergySource = null;
public static Class TileEntityStandardMachine = null;
public static Field TESM_DefaultEnergyStorage = null;
public static Field TESM_DefaultEnergyConsume = null;
public static Field TESM_DefaultOperationLength = null;
public static Field TESM_MaxEnergy = null;
/* Methods interfaces */
public static Method IEnergyStorage_GetCapacity = null;
public static Method IEnergySink_GetInput = null;
//public static Method IEnergySource_GetOutput = null;
public static Class TileEntityBaseGenerator = null;
public static Field TEBG_MaxStorage = null;
public static Field TEBG_Production = null;
public static Class TileEntitySemifluidGenerator = null;
public static Field TESG_MaxStorage = null;
public static Field TESG_Production = null;
public static Class TileEntityGeoGenerator = null;
public static Field TEGG_MaxStorage = null;
public static Field TEGG_Production = null;
public static Class TileEntityElectricBlock = null;
public static Field TEEB_MaxStorage = null;
public static Field TEEB_Output = null;
public static Class IEnergySink = null;
public static Method IES_GetMaxSafeInput = null;
public static Class TileEntityTradeOMat = null;
/* Some required items */
public static Class IC2Items = null;
public static Field TransformerUpgrade = null;
public static ItemStack TransformerUpgradeStack = null;
public static Field EnergyStorageUpgrade = null;
public static ItemStack EnergyStorageUpgradeStack = null;
/* Fix for doors */
public static Class BlockIC2Door = null;
public static Field ReinforcedDoor = null;
public static ItemStack ReinforcedDoorStack = null;
public static ItemStack TransformerUpgradeStack = null;
public static Field EnergyStorageUpgrade = null;
public static ItemStack EnergyStorageUpgradeStack = null;
public static Field OverclockerUpgrade = null;
public static ItemStack OverclockerUpgradeStack = null;
public static void register(){
try{
Class ModIndustrialCraft = Class.forName("ic2.core.IC2");
mod_Waila.log.log(Level.INFO, "Industrialcraft2 mod found.");
} catch (ClassNotFoundException e){
mod_Waila.log.log(Level.INFO, "[IC2] Industrialcraft2 mod not found.");
return;
}
try{
TileEntityStandardMachine = Class.forName("ic2.core.block.machine.tileentity.TileEntityStandardMachine");
TESM_DefaultEnergyStorage = TileEntityStandardMachine.getField("defaultEnergyStorage");
TESM_DefaultEnergyConsume = TileEntityStandardMachine.getField("defaultEnergyConsume");
TESM_DefaultOperationLength = TileEntityStandardMachine.getField("defaultOperationLength");
TESM_MaxEnergy = TileEntityStandardMachine.getField("maxEnergy");
IEnergyStorage = Class.forName("ic2.api.tile.IEnergyStorage");
IEnergySink = Class.forName("ic2.api.energy.tile.IEnergySink");
IEnergySource = Class.forName("ic2.api.energy.tile.IEnergySource");
IEnergySink_GetInput = IEnergySink.getMethod("getMaxSafeInput");
//IEnergySource_GetOutput = IEnergySource.getMethod("getMaxEnergyOutput");
IEnergyStorage_GetCapacity = IEnergyStorage.getMethod("getCapacity");
TileEntityBaseGenerator = Class.forName("ic2.core.block.generator.tileentity.TileEntityBaseGenerator");
TEBG_MaxStorage = TileEntityBaseGenerator.getField("maxStorage");
TEBG_Production = TileEntityBaseGenerator.getField("production");
TileEntitySemifluidGenerator = Class.forName("ic2.core.block.generator.tileentity.TileEntitySemifluidGenerator");
TESG_MaxStorage = TileEntitySemifluidGenerator.getDeclaredField("maxStorage");
TESG_Production = TileEntitySemifluidGenerator.getDeclaredField("production");
TESG_MaxStorage.setAccessible(true);
TESG_Production.setAccessible(true);
IC2Items = Class.forName("ic2.core.Ic2Items");
TransformerUpgrade = IC2Items.getDeclaredField("transformerUpgrade");
EnergyStorageUpgrade = IC2Items.getDeclaredField("energyStorageUpgrade");
TileEntityGeoGenerator = Class.forName("ic2.core.block.generator.tileentity.TileEntityGeoGenerator");
TEGG_MaxStorage = TileEntityGeoGenerator.getField("maxStorage");
TEGG_Production = TileEntityGeoGenerator.getField("production");
TileEntityElectricBlock = Class.forName("ic2.core.block.wiring.TileEntityElectricBlock");
TEEB_MaxStorage = TileEntityElectricBlock.getField("maxStorage");
TEEB_Output = TileEntityElectricBlock.getField("output");
IEnergySink = Class.forName("ic2.api.energy.tile.IEnergySink");
IES_GetMaxSafeInput = IEnergySink.getMethod("getMaxSafeInput");
IC2Items = Class.forName("ic2.core.Ic2Items");
TransformerUpgrade = IC2Items.getField("transformerUpgrade");
EnergyStorageUpgrade = IC2Items.getField("energyStorageUpgrade");
OverclockerUpgrade = IC2Items.getField("overclockerUpgrade");
TransformerUpgradeStack = (ItemStack)TransformerUpgrade.get(null);
EnergyStorageUpgradeStack = (ItemStack)EnergyStorageUpgrade.get(null);
EnergyStorageUpgradeStack = (ItemStack)EnergyStorageUpgrade.get(null);
OverclockerUpgradeStack = (ItemStack)OverclockerUpgrade.get(null);
BlockIC2Door = Class.forName("ic2.core.block.BlockIC2Door");
ReinforcedDoor = IC2Items.getDeclaredField("reinforcedDoor");
ReinforcedDoorStack = (ItemStack)ReinforcedDoor.get(null);
TileEntityTradeOMat = Class.forName("ic2.core.block.personal.TileEntityTradeOMat");
} catch (ClassNotFoundException e){
//e.printStackTrace();
mod_Waila.log.log(Level.WARNING, "[IC2] Class not found. " + e);
return;
} catch (NoSuchMethodException e){
//e.printStackTrace();
mod_Waila.log.log(Level.WARNING, "[IC2] Method not found." + e);
return;
} catch (NoSuchFieldException e){
//e.printStackTrace();
mod_Waila.log.log(Level.WARNING, "[IC2] Field not found." + e);
return;
} catch (Exception e){
//e.printStackTrace();
mod_Waila.log.log(Level.WARNING, "[IC2] Unhandled exception." + e);
return;
}
}
ExternalModulesHandler.instance().addConfigRemote("IndustrialCraft2", "ic2.inputeumach");
ExternalModulesHandler.instance().addConfig("IndustrialCraft2", "ic2.inputeuother");
ExternalModulesHandler.instance().addConfig("IndustrialCraft2", "ic2.outputeu");
ExternalModulesHandler.instance().addConfigRemote("IndustrialCraft2", "ic2.storage");
ExternalModulesHandler.instance().registerBodyProvider(new HUDHandlerIC2IEnergySink(), IEnergySink);
ExternalModulesHandler.instance().registerBodyProvider(new HUDHandlerIC2IEnergySource(), IEnergySource);
ExternalModulesHandler.instance().registerBodyProvider(new HUDHandlerIC2IEnergyStorage(), IEnergyStorage);
ExternalModulesHandler.instance().registerStackProvider(new HUDHandlerDoor(), BlockIC2Door);
ExternalModulesHandler.instance().addConfigRemote("IndustrialCraft2", "ic2.storage");
ExternalModulesHandler.instance().addConfig("IndustrialCraft2", "ic2.outputeu");
ExternalModulesHandler.instance().addConfigRemote("IndustrialCraft2", "ic2.inputeu");
ExternalModulesHandler.instance().addConfigRemote("IndustrialCraft2", "ic2.consump");
ExternalModulesHandler.instance().addConfigRemote("IndustrialCraft2", "ic2.tradeomat");
ExternalModulesHandler.instance().registerBodyProvider(new HUDHandlerTEStandardMachine(), TileEntityStandardMachine);
ExternalModulesHandler.instance().registerBodyProvider(new HUDHandlerTEBaseGenerator(), TileEntityBaseGenerator);
ExternalModulesHandler.instance().registerBodyProvider(new HUDHandlerTEBaseGenerator(), TileEntitySemifluidGenerator);
ExternalModulesHandler.instance().registerBodyProvider(new HUDHandlerTEBaseGenerator(), TileEntityGeoGenerator);
ExternalModulesHandler.instance().registerBodyProvider(new HUDHandlerTEElectricBlock(), TileEntityElectricBlock);
ExternalModulesHandler.instance().registerBodyProvider(new HUDHandlerTETradeOMat(), TileEntityTradeOMat);
}
/* Retuns the current stored energy if available in the nbt and config is true */
public static double getStoredEnergy(IWailaDataAccessor accessor){
if (ConfigHandler.instance().getConfig("ic2.storage")){
if (accessor.getNBTData().hasKey("energy"))
return accessor.getNBTData().getDouble("energy");
else if (accessor.getNBTData().hasKey("storage"))
return accessor.getNBTData().getDouble("storage");
}
return -1.0;
}
public static IC2Upgrades getUpgrades(IWailaDataAccessor accessor){
NBTTagCompound nbt = accessor.getNBTData();
IC2Upgrades upgrades = new IC2Upgrades();
if (!nbt.hasKey("InvSlots")) return null;
NBTTagCompound inventory = nbt.getCompoundTag("InvSlots");
if (!inventory.hasKey("upgrade")) return null;
NBTTagList nbtupgrades = inventory.getCompoundTag("upgrade").getTagList("Contents");
for (Object subobj : nbtupgrades.tagList){
NBTTagCompound subtag = (NBTTagCompound)subobj;
int id = subtag.getShort("id");
int meta = subtag.getShort("Damage");
int count = subtag.getByte("Count");
//ItemStack is = new ItemStack(id, 1, count);
if (TransformerUpgradeStack.getItemDamage() == meta && TransformerUpgradeStack.itemID == id)
upgrades.transform += count;
if (EnergyStorageUpgradeStack.getItemDamage() == meta && EnergyStorageUpgradeStack.itemID == id)
upgrades.storage += count;
if (OverclockerUpgradeStack.getItemDamage() == meta && OverclockerUpgradeStack.itemID == id)
upgrades.overclocker += count;
}
return upgrades;
}
}
@@ -0,0 +1,7 @@
package mcp.mobius.waila.addons.ic2;
public class IC2Upgrades {
public int transform = 0;
public int storage = 0;
public int overclocker = 0;
}
@@ -7,6 +7,7 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.Vec3;
import net.minecraft.world.World;
import net.minecraftforge.common.ForgeDirection;
public interface IWailaDataAccessor {
World getWorld();
@@ -20,4 +21,5 @@ public interface IWailaDataAccessor {
NBTTagCompound getNBTData();
int getNBTInteger(NBTTagCompound tag, String keyname);
double getPartialFrame();
ForgeDirection getSide();
}
+1 -2
View File
@@ -71,10 +71,9 @@ public class ProxyClient extends ProxyServer {
//API.addKeyBind(Constants.BIND_TECH, "Display techtree", Keyboard.KEY_RSHIFT);
ExternalModulesHandler.instance().registerShortDataProvider(new SummaryProviderDefault(), Item.class);
this.registerMods();
}
@Override
public void registerMods(){
HUDHandlerVanilla.register();
@@ -13,6 +13,7 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.Vec3;
import net.minecraft.world.World;
import net.minecraftforge.common.ForgeDirection;
import mcp.mobius.waila.api.IWailaDataAccessor;
public class DataAccessor implements IWailaDataAccessor {
@@ -141,4 +142,24 @@ public class DataAccessor implements IWailaDataAccessor {
return this.partialFrame;
}
@Override
public ForgeDirection getSide(){
int side = this.getPosition().sideHit;
switch (side){
case 0:
return ForgeDirection.DOWN;
case 1:
return ForgeDirection.UP;
case 2:
return ForgeDirection.EAST;
case 3:
return ForgeDirection.WEST;
case 4:
return ForgeDirection.NORTH;
case 5:
return ForgeDirection.SOUTH;
}
return ForgeDirection.UNKNOWN;
}
}
@@ -1,5 +1,6 @@
package mcp.mobius.waila.handlers.hud;
import java.util.ArrayList;
import java.util.List;
import mcp.mobius.waila.WailaExceptionHandler;
@@ -7,6 +8,7 @@ import mcp.mobius.waila.mod_Waila;
import mcp.mobius.waila.addons.ConfigHandler;
import mcp.mobius.waila.addons.ExternalModulesHandler;
import mcp.mobius.waila.api.IWailaBlock;
import mcp.mobius.waila.api.IWailaBlockDecorator;
import mcp.mobius.waila.api.IWailaDataProvider;
import mcp.mobius.waila.handlers.DataAccessor;
import mcp.mobius.waila.network.Packet0x01TERequest;
@@ -22,6 +24,12 @@ import cpw.mods.fml.common.network.PacketDispatcher;
public class HUDHandlerExternal implements IHighlightHandler {
private ArrayList<IWailaDataProvider> headProviders = new ArrayList<IWailaDataProvider>();
private ArrayList<IWailaDataProvider> bodyProviders = new ArrayList<IWailaDataProvider>();
private ArrayList<IWailaDataProvider> tailProviders = new ArrayList<IWailaDataProvider>();
private MovingObjectPosition prevMOP = null;
private int prevWorldID = -999;
@Override
public ItemStack identifyHighlight(World world, EntityPlayer player, MovingObjectPosition mop) {
DataAccessor accessor = DataAccessor.instance;
@@ -53,16 +61,21 @@ public class HUDHandlerExternal implements IHighlightHandler {
@Override
public List<String> handleTextData(ItemStack itemStack, World world, EntityPlayer player, MovingObjectPosition mop, List<String> currenttip, Layout layout) {
if (this.prevMOP == null)
this.prevMOP = mop;
DataAccessor accessor = DataAccessor.instance;
accessor.set(world, player, mop);
Block block = accessor.getBlock();
int blockID = accessor.getBlockID();
if (accessor.getTileEntity() != null && mod_Waila.instance.serverPresent && (System.currentTimeMillis() - accessor.timeLastUpdate >= 250) ){
if (accessor.getTileEntity() != null && mod_Waila.instance.serverPresent &&
((System.currentTimeMillis() - accessor.timeLastUpdate >= 250) || this.areMopDifferent(player, mop))){
accessor.timeLastUpdate = System.currentTimeMillis();
PacketDispatcher.sendPacketToServer(Packet0x01TERequest.create(world, mop));
}
/* Interface IWailaBlock */
if (IWailaBlock.class.isInstance(block)){
TileEntity entity = world.getBlockTileEntity(mop.blockX, mop.blockY, mop.blockZ);
if (layout == Layout.HEADER)
@@ -83,97 +96,77 @@ public class HUDHandlerExternal implements IHighlightHandler {
} catch (Throwable e){
return WailaExceptionHandler.handleErr(e, block.getClass().toString(), currenttip);
}
}
if (layout == Layout.HEADER && ExternalModulesHandler.instance().hasHeadProviders(blockID)){
for (IWailaDataProvider dataProvider : ExternalModulesHandler.instance().getHeadProviders(blockID))
try{
currenttip = dataProvider.getWailaHead(itemStack, currenttip, accessor, ConfigHandler.instance());
} catch (Throwable e){
currenttip = WailaExceptionHandler.handleErr(e, dataProvider.getClass().toString(), currenttip);
}
}
if (layout == Layout.BODY && ExternalModulesHandler.instance().hasBodyProviders(blockID)){
for (IWailaDataProvider dataProvider : ExternalModulesHandler.instance().getBodyProviders(blockID))
try{
currenttip = dataProvider.getWailaBody(itemStack, currenttip, accessor, ConfigHandler.instance());
} catch (Throwable e){
currenttip = WailaExceptionHandler.handleErr(e, dataProvider.getClass().toString(), currenttip);
}
}
if (layout == Layout.FOOTER && ExternalModulesHandler.instance().hasTailProviders(blockID)){
for (IWailaDataProvider dataProvider : ExternalModulesHandler.instance().getTailProviders(blockID))
try{
currenttip = dataProvider.getWailaTail(itemStack, currenttip, accessor, ConfigHandler.instance());
} catch (Throwable e){
currenttip = WailaExceptionHandler.handleErr(e, dataProvider.getClass().toString(), currenttip);
}
}
if (layout == Layout.HEADER && ExternalModulesHandler.instance().hasHeadProviders(block)){
for (IWailaDataProvider dataProvider : ExternalModulesHandler.instance().getHeadProviders(block))
try{
currenttip = dataProvider.getWailaHead(itemStack, currenttip, accessor, ConfigHandler.instance());
} catch (Throwable e){
currenttip = WailaExceptionHandler.handleErr(e, dataProvider.getClass().toString(), currenttip);
}
}
if (this.areMopDifferent(player, mop)){
if (layout == Layout.BODY && ExternalModulesHandler.instance().hasBodyProviders(block)){
for (IWailaDataProvider dataProvider : ExternalModulesHandler.instance().getBodyProviders(block))
try{
currenttip = dataProvider.getWailaBody(itemStack, currenttip, accessor, ConfigHandler.instance());
} catch (Throwable e){
currenttip = WailaExceptionHandler.handleErr(e, dataProvider.getClass().toString(), currenttip);
}
}
if (layout == Layout.FOOTER && ExternalModulesHandler.instance().hasTailProviders(block)){
for (IWailaDataProvider dataProvider : ExternalModulesHandler.instance().getTailProviders(block))
try{
currenttip = dataProvider.getWailaTail(itemStack, currenttip, accessor, ConfigHandler.instance());
} catch (Throwable e){
currenttip = WailaExceptionHandler.handleErr(e, dataProvider.getClass().toString(), currenttip);
}
}
if (layout == Layout.HEADER && ExternalModulesHandler.instance().hasHeadProviders(accessor.getTileEntity())){
for (IWailaDataProvider dataProvider : ExternalModulesHandler.instance().getHeadProviders(accessor.getTileEntity()))
try{
currenttip = dataProvider.getWailaHead(itemStack, currenttip, accessor, ConfigHandler.instance());
} catch (Throwable e){
currenttip = WailaExceptionHandler.handleErr(e, dataProvider.getClass().toString(), currenttip);
}
}
if (layout == Layout.BODY && ExternalModulesHandler.instance().hasBodyProviders(accessor.getTileEntity())){
for (IWailaDataProvider dataProvider : ExternalModulesHandler.instance().getBodyProviders(accessor.getTileEntity()))
try{
currenttip = dataProvider.getWailaBody(itemStack, currenttip, accessor, ConfigHandler.instance());
} catch (Throwable e){
currenttip = WailaExceptionHandler.handleErr(e, dataProvider.getClass().toString(), currenttip);
}
}
headProviders.clear();
bodyProviders.clear();
tailProviders.clear();
this.prevMOP = mop;
this.prevWorldID = player.dimension;
/* Lookup by block ID */
if (layout == Layout.HEADER && ExternalModulesHandler.instance().hasHeadProviders(blockID))
headProviders.addAll(ExternalModulesHandler.instance().getHeadProviders(blockID));
if (layout == Layout.FOOTER && ExternalModulesHandler.instance().hasTailProviders(accessor.getTileEntity())){
for (IWailaDataProvider dataProvider : ExternalModulesHandler.instance().getTailProviders(accessor.getTileEntity()))
try{
currenttip = dataProvider.getWailaTail(itemStack, currenttip, accessor, ConfigHandler.instance());
} catch (Throwable e){
currenttip = WailaExceptionHandler.handleErr(e, dataProvider.getClass().toString(), currenttip);
}
}
if (layout == Layout.BODY && ExternalModulesHandler.instance().hasBodyProviders(blockID))
bodyProviders.addAll(ExternalModulesHandler.instance().getBodyProviders(blockID));
if (layout == Layout.FOOTER && ExternalModulesHandler.instance().hasTailProviders(blockID))
tailProviders.addAll(ExternalModulesHandler.instance().getTailProviders(blockID));
/* Lookup by class (for blocks)*/
if (layout == Layout.HEADER && ExternalModulesHandler.instance().hasHeadProviders(block))
headProviders.addAll(ExternalModulesHandler.instance().getHeadProviders(block));
if (layout == Layout.BODY && ExternalModulesHandler.instance().hasBodyProviders(block))
bodyProviders.addAll(ExternalModulesHandler.instance().getBodyProviders(block));
if (layout == Layout.FOOTER && ExternalModulesHandler.instance().hasTailProviders(block))
tailProviders.addAll(ExternalModulesHandler.instance().getTailProviders(block));
/* Lookup by class (for tileentities)*/
if (layout == Layout.HEADER && ExternalModulesHandler.instance().hasHeadProviders(accessor.getTileEntity()))
headProviders.addAll(ExternalModulesHandler.instance().getHeadProviders(accessor.getTileEntity()));
if (layout == Layout.BODY && ExternalModulesHandler.instance().hasBodyProviders(accessor.getTileEntity()))
bodyProviders.addAll(ExternalModulesHandler.instance().getBodyProviders(accessor.getTileEntity()));
if (layout == Layout.FOOTER && ExternalModulesHandler.instance().hasTailProviders(accessor.getTileEntity()))
tailProviders.addAll(ExternalModulesHandler.instance().getTailProviders(accessor.getTileEntity()));
}
/* Apply all collected providers */
for (IWailaDataProvider dataProvider : headProviders)
try{
currenttip = dataProvider.getWailaHead(itemStack, currenttip, accessor, ConfigHandler.instance());
} catch (Throwable e){
currenttip = WailaExceptionHandler.handleErr(e, dataProvider.getClass().toString(), currenttip);
}
for (IWailaDataProvider dataProvider : bodyProviders)
try{
currenttip = dataProvider.getWailaBody(itemStack, currenttip, accessor, ConfigHandler.instance());
} catch (Throwable e){
currenttip = WailaExceptionHandler.handleErr(e, dataProvider.getClass().toString(), currenttip);
}
for (IWailaDataProvider dataProvider : tailProviders)
try{
currenttip = dataProvider.getWailaTail(itemStack, currenttip, accessor, ConfigHandler.instance());
} catch (Throwable e){
currenttip = WailaExceptionHandler.handleErr(e, dataProvider.getClass().toString(), currenttip);
}
return currenttip;
}
public boolean areMopDifferent(EntityPlayer player, MovingObjectPosition mop){
return this.prevMOP.blockX != mop.blockX || this.prevMOP.blockY != mop.blockY || this.prevMOP.blockZ != mop.blockZ || prevWorldID != player.dimension;
}
}
+28 -9
View File
@@ -7,6 +7,9 @@ import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
import com.google.common.eventbus.EventBus;
import com.google.common.eventbus.Subscribe;
import mcp.mobius.waila.addons.ConfigHandler;
import mcp.mobius.waila.addons.ExternalModulesHandler;
import mcp.mobius.waila.api.IWailaRegistrar;
@@ -27,8 +30,11 @@ import codechicken.core.CommonUtils;
import codechicken.lib.lang.LangUtil;
import cpw.mods.fml.client.registry.KeyBindingRegistry;
import cpw.mods.fml.client.registry.KeyBindingRegistry.KeyHandler;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.FMLModContainer;
import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.Mod.IMCCallback;
import cpw.mods.fml.common.Mod.Init;
import cpw.mods.fml.common.Mod.Instance;
@@ -39,6 +45,7 @@ import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLInterModComms;
import cpw.mods.fml.common.event.FMLInterModComms.IMCMessage;
import cpw.mods.fml.common.event.FMLLoadCompleteEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.network.NetworkMod;
@@ -46,7 +53,7 @@ import cpw.mods.fml.common.registry.GameData;
import cpw.mods.fml.common.registry.ItemData;
import cpw.mods.fml.common.registry.LanguageRegistry;
@Mod(modid="Waila", name="Waila", version="1.4.0")
@Mod(modid="Waila", name="Waila", version="1.4.3", dependencies="required-after:NotEnoughItems")
@NetworkMod(channels = {"Waila"},clientSideRequired=false, serverSideRequired=false, connectionHandler = WailaConnectionHandler.class,
packetHandler = WailaPacketHandler.class, versionBounds="[1.3.0,)")
@@ -71,8 +78,9 @@ public class mod_Waila {
public static int fontcolor;
public static float scale;
@PreInit
public void preInit(FMLPreInitializationEvent event) {
/* INIT SEQUENCE */
@EventHandler
public void preInit(FMLPreInitializationEvent event) {
config = new Configuration(event.getSuggestedConfigurationFile());
config.get(Configuration.CATEGORY_GENERAL, Constants.CFG_WAILA_SHOW, true);
@@ -100,14 +108,20 @@ public class mod_Waila {
MinecraftForge.EVENT_BUS.register(new WailaClientEventHandler());
}
@Init
public void load(FMLInitializationEvent event) {
proxy.registerHandlers();
@EventHandler
public void initialize(FMLInitializationEvent event) {
try {
Field eBus = FMLModContainer.class.getDeclaredField("eventBus");
eBus.setAccessible(true);
EventBus FMLbus = (EventBus) eBus.get(FMLCommonHandler.instance().findContainerFor(this));
FMLbus.register(this);
} catch (Throwable t) {}
}
@PostInit
public void postInit(FMLPostInitializationEvent event) {
ModIdentification.init();
@EventHandler
public void postInit(FMLPostInitializationEvent event) {
proxy.registerHandlers();
ModIdentification.init();
if (ConfigHandler.instance().getConfig(Constants.CFG_WAILA_KEYBIND)){
@@ -144,6 +158,11 @@ public class mod_Waila {
}
@Subscribe
public void loadComplete(FMLLoadCompleteEvent event) {
proxy.registerMods();
}
@IMCCallback
public void processIMC(FMLInterModComms.IMCEvent event)
{
+4 -1
View File
@@ -79,7 +79,7 @@ public class RayTracing {
int y = raytracedTarget.blockY;
int z = raytracedTarget.blockZ;
Block mouseoverBlock = Block.blocksList[world.getBlockId(x, y, z)];
if (mouseoverBlock == null) return items;
ArrayList<IHighlightHandler> handlers = new ArrayList<IHighlightHandler>();
if(ItemInfo.highlightIdentifiers.get(0) != null)
@@ -123,6 +123,9 @@ public class RayTracing {
}
catch(Exception e){}
if(items.size() > 0)
return items;
if(mouseoverBlock instanceof IShearable)
{
IShearable shearable = (IShearable)mouseoverBlock;
+1
View File
@@ -5,6 +5,7 @@ public class ProxyServer {
public ProxyServer() {}
public void registerHandlers(){}
public void registerMods(){}
public Object getFont(){return null;}
}