mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
Merge branch 'HbmMods:master' into master
This commit is contained in:
commit
26f1b38df9
16
changelog
16
changelog
@ -1,15 +1,7 @@
|
||||
## Added (last time, i forgor)
|
||||
* RBMK autoloader
|
||||
* Can be placed on top of RBMK fuel rods
|
||||
* Can be configured to switch fuel rods in 5% depletion increments
|
||||
* Usable with all forms of item transport like conveyors and pneumatic tubes
|
||||
|
||||
## Changed
|
||||
* Replaced "re-enrichment" in the PUREX recipes with "reprocessing"
|
||||
* All the never completed missile parts (20/20 fuselage, 20 warhead, 10 and 15 tec kerosene thrusters) have been removed
|
||||
* The electric arc furnace now scrapes the vanilla furnace recipe list on server start in addition to postinit, making sure recipes added during postinit after NTM loads (like Thermal's ingots) are covered too
|
||||
|
||||
## Fixed
|
||||
* Fixed many of the PUREX' recipe categories simply not processing
|
||||
* It worked last time I swear
|
||||
* Fixed life-ending issue where the assembler achievement's icon was incorrect
|
||||
* Fixed RBMK autoloader not having a recipe
|
||||
* Ow
|
||||
* Fixed GT6 compatibility watz pellets crashing due to misconfigured recipes
|
||||
* Removed failed attempt at fixing the gun desync dupe which made things worse
|
||||
@ -111,6 +111,10 @@ public class ArcFurnaceRecipes extends SerializableRecipe {
|
||||
}
|
||||
|
||||
// Autogen for furnace recipes
|
||||
registerFurnaceSmeltables();
|
||||
}
|
||||
|
||||
public static void registerFurnaceSmeltables() {
|
||||
for(Object o : FurnaceRecipes.smelting().getSmeltingList().entrySet()) {
|
||||
Entry entry = (Entry) o;
|
||||
ItemStack input = (ItemStack) entry.getKey();
|
||||
|
||||
@ -431,7 +431,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
||||
ItemStack copy = nuggetNQR.copy();
|
||||
copy.stackSize = 12;
|
||||
|
||||
this.register(new GenericRecipe("purex.watzdu").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this)
|
||||
this.register(new GenericRecipe("purex.watznaqadah").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this)
|
||||
.inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.NQD))
|
||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||
.outputItems(copy,
|
||||
@ -440,7 +440,7 @@ public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
||||
.outputFluids(new FluidStack(Fluids.WATZ, 1_000))
|
||||
.setIconToFirstIngredient());
|
||||
|
||||
this.register(new GenericRecipe("purex.watzdu").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this)
|
||||
this.register(new GenericRecipe("purex.watznaqadria").setup(60, watzPower).setNameWrapper("purex.recycle").setGroup(autoWatz, this)
|
||||
.inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.NQR))
|
||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||
.outputItems(new ItemStack(ModItems.nugget_co60, 12),
|
||||
|
||||
@ -1236,11 +1236,9 @@ public class ModItems {
|
||||
public static Item missile_test;
|
||||
|
||||
public static Item mp_thruster_10_kerosene;
|
||||
public static Item mp_thruster_10_kerosene_tec;
|
||||
public static Item mp_thruster_10_solid;
|
||||
public static Item mp_thruster_10_xenon;
|
||||
public static Item mp_thruster_15_kerosene;
|
||||
public static Item mp_thruster_15_kerosene_tec;
|
||||
public static Item mp_thruster_15_kerosene_dual;
|
||||
public static Item mp_thruster_15_kerosene_triple;
|
||||
public static Item mp_thruster_15_solid;
|
||||
@ -1351,8 +1349,6 @@ public class ModItems {
|
||||
public static Item mp_fuselage_15_20_kerosene_magnusson;
|
||||
public static Item mp_fuselage_15_20_solid;
|
||||
|
||||
public static Item mp_fuselage_20_kerosene;
|
||||
|
||||
public static Item mp_warhead_10_he;
|
||||
public static Item mp_warhead_10_incendiary;
|
||||
public static Item mp_warhead_10_buster;
|
||||
@ -1369,7 +1365,6 @@ public class ModItems {
|
||||
public static Item mp_warhead_15_n2;
|
||||
public static Item mp_warhead_15_balefire;
|
||||
public static Item mp_warhead_15_turbine;
|
||||
public static Item mp_warhead_20_he;
|
||||
|
||||
public static Item mp_chip_1;
|
||||
public static Item mp_chip_2;
|
||||
@ -3592,11 +3587,9 @@ public class ModItems {
|
||||
sat_relay = new ItemSatChip().setUnlocalizedName("sat_relay").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_relay");
|
||||
|
||||
mp_thruster_10_kerosene = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 1.5F, PartSize.SIZE_10).setHealth(10F) .setUnlocalizedName("mp_thruster_10_kerosene");
|
||||
mp_thruster_10_kerosene_tec = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 1.5F, PartSize.SIZE_10).setHealth(15F).setRarity(Rarity.COMMON).setUnlocalizedName("mp_thruster_10_kerosene_tec");
|
||||
mp_thruster_10_solid = new ItemCustomMissilePart().makeThruster(FuelType.SOLID, 1F, 1.5F, PartSize.SIZE_10).setHealth(15F) .setUnlocalizedName("mp_thruster_10_solid");
|
||||
mp_thruster_10_xenon = new ItemCustomMissilePart().makeThruster(FuelType.XENON, 1F, 1.5F, PartSize.SIZE_10).setHealth(5F) .setUnlocalizedName("mp_thruster_10_xenon");
|
||||
mp_thruster_15_kerosene = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 7.5F, PartSize.SIZE_15).setHealth(15F) .setUnlocalizedName("mp_thruster_15_kerosene");
|
||||
mp_thruster_15_kerosene_tec = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 7.5F, PartSize.SIZE_15).setHealth(20F).setRarity(Rarity.COMMON).setUnlocalizedName("mp_thruster_15_kerosene_tec");
|
||||
mp_thruster_15_kerosene_dual = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 2.5F, PartSize.SIZE_15).setHealth(15F) .setUnlocalizedName("mp_thruster_15_kerosene_dual");
|
||||
mp_thruster_15_kerosene_triple = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 5F, PartSize.SIZE_15).setHealth(15F) .setUnlocalizedName("mp_thruster_15_kerosene_triple");
|
||||
mp_thruster_15_solid = new ItemCustomMissilePart().makeThruster(FuelType.SOLID, 1F, 5F, PartSize.SIZE_15).setHealth(20F) .setUnlocalizedName("mp_thruster_15_solid");
|
||||
@ -3707,8 +3700,6 @@ public class ModItems {
|
||||
mp_fuselage_15_20_kerosene_magnusson = ((ItemCustomMissilePart)mp_fuselage_15_20_kerosene).copy().setRarity(Rarity.RARE).setAuthor("VT-6/24").setTitle("White Forest Rocket").setWittyText("And get your cranio-conjugal parasite away from my nose cone!").setUnlocalizedName("mp_fuselage_15_20_kerosene_magnusson");
|
||||
mp_fuselage_15_20_solid = new ItemCustomMissilePart().makeFuselage(FuelType.SOLID, 20000, PartSize.SIZE_15, PartSize.SIZE_20).setHealth(70F).setUnlocalizedName("mp_fuselage_15_20_solid").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage");
|
||||
|
||||
mp_fuselage_20_kerosene = new ItemCustomMissilePart().makeFuselage(FuelType.KEROSENE, 1000F, PartSize.SIZE_20, PartSize.SIZE_20) .setUnlocalizedName("mp_f_20").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage");
|
||||
|
||||
mp_warhead_10_he = new ItemCustomMissilePart().makeWarhead(WarheadType.HE, 15F, 1.5F, PartSize.SIZE_10).setHealth(5F) .setUnlocalizedName("mp_warhead_10_he").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead");
|
||||
mp_warhead_10_incendiary = new ItemCustomMissilePart().makeWarhead(WarheadType.INC, 15F, 1.5F, PartSize.SIZE_10).setHealth(5F) .setUnlocalizedName("mp_warhead_10_incendiary").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead");
|
||||
mp_warhead_10_buster = new ItemCustomMissilePart().makeWarhead(WarheadType.BUSTER, 5F, 1.5F, PartSize.SIZE_10).setHealth(5F) .setUnlocalizedName("mp_warhead_10_buster").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead");
|
||||
@ -3725,7 +3716,6 @@ public class ModItems {
|
||||
mp_warhead_15_n2 = new ItemCustomMissilePart().makeWarhead(WarheadType.N2, 100F, 5F, PartSize.SIZE_15).setWittyText("[screams geometrically]").setHealth(20F).setRarity(Rarity.RARE).setUnlocalizedName("mp_warhead_15_n2").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead");
|
||||
mp_warhead_15_balefire = new ItemCustomMissilePart().makeWarhead(WarheadType.BALEFIRE, 100F, 7.5F, PartSize.SIZE_15).setRarity(Rarity.LEGENDARY).setAuthor("VT-6/24").setHealth(15F).setWittyText("Hightower, never forgetti.").setUnlocalizedName("mp_warhead_15_balefire").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead");
|
||||
mp_warhead_15_turbine = new ItemCustomMissilePart().makeWarhead(WarheadType.TURBINE, 200F, 5F, PartSize.SIZE_15).setRarity(Rarity.SEWS_CLOTHES_AND_SUCKS_HORSE_COCK).setHealth(250F).setUnlocalizedName("mp_warhead_15_turbine").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead");
|
||||
mp_warhead_20_he = new ItemCustomMissilePart().makeWarhead(WarheadType.HE, 15F, 1F, PartSize.SIZE_20) .setUnlocalizedName("mp_w_20").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead");
|
||||
|
||||
mp_chip_1 = new ItemCustomMissilePart().makeChip(0.1F) .setUnlocalizedName("mp_c_1").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_c_1");
|
||||
mp_chip_2 = new ItemCustomMissilePart().makeChip(0.05F) .setUnlocalizedName("mp_c_2").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_c_2");
|
||||
@ -6204,11 +6194,9 @@ public class ModItems {
|
||||
|
||||
//Missile Parts
|
||||
GameRegistry.registerItem(mp_thruster_10_kerosene, mp_thruster_10_kerosene.getUnlocalizedName());
|
||||
GameRegistry.registerItem(mp_thruster_10_kerosene_tec, mp_thruster_10_kerosene_tec.getUnlocalizedName());
|
||||
GameRegistry.registerItem(mp_thruster_10_solid, mp_thruster_10_solid.getUnlocalizedName());
|
||||
GameRegistry.registerItem(mp_thruster_10_xenon, mp_thruster_10_xenon.getUnlocalizedName());
|
||||
GameRegistry.registerItem(mp_thruster_15_kerosene, mp_thruster_15_kerosene.getUnlocalizedName());
|
||||
GameRegistry.registerItem(mp_thruster_15_kerosene_tec, mp_thruster_15_kerosene_tec.getUnlocalizedName());
|
||||
GameRegistry.registerItem(mp_thruster_15_kerosene_dual, mp_thruster_15_kerosene_dual.getUnlocalizedName());
|
||||
GameRegistry.registerItem(mp_thruster_15_kerosene_triple, mp_thruster_15_kerosene_triple.getUnlocalizedName());
|
||||
GameRegistry.registerItem(mp_thruster_15_solid, mp_thruster_15_solid.getUnlocalizedName());
|
||||
@ -6306,7 +6294,6 @@ public class ModItems {
|
||||
GameRegistry.registerItem(mp_fuselage_15_20_kerosene, mp_fuselage_15_20_kerosene.getUnlocalizedName());
|
||||
GameRegistry.registerItem(mp_fuselage_15_20_kerosene_magnusson, mp_fuselage_15_20_kerosene_magnusson.getUnlocalizedName());
|
||||
GameRegistry.registerItem(mp_fuselage_15_20_solid, mp_fuselage_15_20_solid.getUnlocalizedName());
|
||||
GameRegistry.registerItem(mp_fuselage_20_kerosene, mp_fuselage_20_kerosene.getUnlocalizedName());
|
||||
GameRegistry.registerItem(mp_warhead_10_he, mp_warhead_10_he.getUnlocalizedName());
|
||||
GameRegistry.registerItem(mp_warhead_10_incendiary, mp_warhead_10_incendiary.getUnlocalizedName());
|
||||
GameRegistry.registerItem(mp_warhead_10_buster, mp_warhead_10_buster.getUnlocalizedName());
|
||||
@ -6323,7 +6310,6 @@ public class ModItems {
|
||||
GameRegistry.registerItem(mp_warhead_15_n2, mp_warhead_15_n2.getUnlocalizedName());
|
||||
GameRegistry.registerItem(mp_warhead_15_balefire, mp_warhead_15_balefire.getUnlocalizedName());
|
||||
GameRegistry.registerItem(mp_warhead_15_turbine, mp_warhead_15_turbine.getUnlocalizedName());
|
||||
GameRegistry.registerItem(mp_warhead_20_he, mp_warhead_20_he.getUnlocalizedName());
|
||||
GameRegistry.registerItem(mp_chip_1, mp_chip_1.getUnlocalizedName());
|
||||
GameRegistry.registerItem(mp_chip_2, mp_chip_2.getUnlocalizedName());
|
||||
GameRegistry.registerItem(mp_chip_3, mp_chip_3.getUnlocalizedName());
|
||||
|
||||
@ -450,8 +450,8 @@ public class ItemGunBaseNT extends Item implements IKeybindReceiver, IItemHUD, I
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(Gui.icons);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getShareTag() { return false; }
|
||||
/*@Override
|
||||
public boolean getShareTag() { return false; }*/ // nbt sync dupe fix, didn't work
|
||||
|
||||
public static class SmokeNode {
|
||||
|
||||
|
||||
@ -967,6 +967,7 @@ public class MainRegistry {
|
||||
event.registerServerCommand(new CommandRadiation());
|
||||
event.registerServerCommand(new CommandPacketInfo());
|
||||
event.registerServerCommand(new CommandReloadServer());
|
||||
ArcFurnaceRecipes.registerFurnaceSmeltables(); // because we have to wait for other mods to take their merry ass time to register recipes
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
@ -1724,6 +1725,10 @@ public class MainRegistry {
|
||||
ignoreMappings.add("hbm:tile.machine_arc_furnace_off");
|
||||
ignoreMappings.add("hbm:tile.machine_arc_furnace_on");
|
||||
ignoreMappings.add("hbm:item.heavy_component");
|
||||
ignoreMappings.add("hbm:item.mp_w_20");
|
||||
ignoreMappings.add("hbm:item.mp_f_20");
|
||||
ignoreMappings.add("hbm:item.mp_thruster_10_kerosene_tec");
|
||||
ignoreMappings.add("hbm:item.mp_thruster_15_kerosene_tec");
|
||||
|
||||
/// REMAP ///
|
||||
remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses);
|
||||
|
||||
@ -40,7 +40,6 @@ import com.hbm.items.weapon.sedna.factory.XFactory12ga;
|
||||
import com.hbm.lib.ModDamageSource;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.packet.PacketDispatcher;
|
||||
import com.hbm.packet.toclient.HeldItemNBTPacket;
|
||||
import com.hbm.packet.toclient.PermaSyncPacket;
|
||||
import com.hbm.packet.toclient.PlayerInformPacket;
|
||||
import com.hbm.packet.toclient.SerializableRecipePacket;
|
||||
@ -990,10 +989,10 @@ public class ModEventHandler {
|
||||
}
|
||||
}
|
||||
|
||||
if(!player.worldObj.isRemote && event.phase == TickEvent.Phase.END && player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemGunBaseNT && player instanceof EntityPlayerMP) {
|
||||
/*if(!player.worldObj.isRemote && event.phase == TickEvent.Phase.END && player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemGunBaseNT && player instanceof EntityPlayerMP) {
|
||||
HeldItemNBTPacket packet = new HeldItemNBTPacket(player.getHeldItem());
|
||||
PacketDispatcher.wrapper.sendTo(packet, (EntityPlayerMP) player);
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
|
||||
@ -36,6 +36,9 @@ import com.hbm.lib.Library;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.packet.PacketDispatcher;
|
||||
import com.hbm.packet.toserver.AuxButtonPacket;
|
||||
import com.hbm.qmaw.GuiQMAW;
|
||||
import com.hbm.qmaw.QMAWLoader;
|
||||
import com.hbm.qmaw.QuickManualAndWiki;
|
||||
import com.hbm.render.anim.HbmAnimations;
|
||||
import com.hbm.render.anim.HbmAnimations.Animation;
|
||||
import com.hbm.render.block.ct.CTStitchReceiver;
|
||||
@ -747,6 +750,17 @@ public class ModEventHandlerClient {
|
||||
list.add(EnumChatFormatting.RED + "Error loading cannery: " + ex.getLocalizedMessage());
|
||||
}
|
||||
|
||||
try {
|
||||
QuickManualAndWiki qmaw = QMAWLoader.triggers.get(comp);
|
||||
if(qmaw != null) {
|
||||
list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey("qmaw.tab"));
|
||||
lastQMAW = qmaw;
|
||||
qmawTimestamp = Clock.get_ms();
|
||||
}
|
||||
} catch(Exception ex) {
|
||||
list.add(EnumChatFormatting.RED + "Error loading cannery: " + ex.getLocalizedMessage());
|
||||
}
|
||||
|
||||
/*ItemStack copy = stack.copy();
|
||||
List<MaterialStack> materials = Mats.getMaterialsFromItem(copy);
|
||||
|
||||
@ -759,6 +773,8 @@ public class ModEventHandlerClient {
|
||||
|
||||
private static long canneryTimestamp;
|
||||
private static ComparableStack lastCannery = null;
|
||||
private static long qmawTimestamp;
|
||||
private static QuickManualAndWiki lastQMAW = null;
|
||||
|
||||
private ResourceLocation ashes = new ResourceLocation(RefStrings.MODID + ":textures/misc/overlay_ash.png");
|
||||
|
||||
@ -891,6 +907,16 @@ public class ModEventHandlerClient {
|
||||
}
|
||||
}
|
||||
|
||||
if(Keyboard.isKeyDown(Keyboard.KEY_TAB) && Minecraft.getMinecraft().currentScreen != null) {
|
||||
|
||||
QuickManualAndWiki qmaw = qmawTimestamp > Clock.get_ms() - 100 ? lastQMAW : null;
|
||||
|
||||
if(qmaw != null) {
|
||||
Minecraft.getMinecraft().thePlayer.closeScreen();
|
||||
FMLCommonHandler.instance().showGuiScreen(new GuiQMAW(qmaw));
|
||||
}
|
||||
}
|
||||
|
||||
if(Keyboard.isKeyDown(Keyboard.KEY_LCONTROL) && Keyboard.isKeyDown(Keyboard.KEY_LMENU)) {
|
||||
|
||||
ItemStack stack = getMouseOverStack();
|
||||
|
||||
@ -1193,11 +1193,9 @@ public class ResourceManager {
|
||||
public static final IModelCustom launch_table_small_scaffold_empty = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/launch_table/launch_table_small_scaffold_empty.obj"));
|
||||
|
||||
public static final IModelCustom mp_t_10_kerosene = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_t_10_kerosene.obj"));
|
||||
public static final IModelCustom mp_t_10_kerosene_tec = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_t_10_kerosene_tec.obj"));
|
||||
public static final IModelCustom mp_t_10_solid = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_t_10_solid.obj"));
|
||||
public static final IModelCustom mp_t_10_xenon = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_t_10_xenon.obj"));
|
||||
public static final IModelCustom mp_t_15_kerosene = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_t_15_kerosene.obj"));
|
||||
public static final IModelCustom mp_t_15_kerosene_tec = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_t_15_kerosene_tec.obj"));
|
||||
public static final IModelCustom mp_t_15_kerosene_dual = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_t_15_kerosene_dual.obj"));
|
||||
public static final IModelCustom mp_t_15_kerosene_triple = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_t_15_kerosene_triple.obj"));
|
||||
public static final IModelCustom mp_t_15_solid = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_t_15_solid.obj"));
|
||||
@ -1225,7 +1223,6 @@ public class ResourceManager {
|
||||
public static final IModelCustom mp_f_15_kerosene = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_f_15_kerosene.obj"));
|
||||
public static final IModelCustom mp_f_15_hydrogen = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_f_15_hydrogen.obj"));
|
||||
public static final IModelCustom mp_f_15_20_kerosene = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_f_15_20_kerosene.obj"));
|
||||
public static final IModelCustom mp_f_20 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_f_20.obj"));
|
||||
|
||||
public static final IModelCustom mp_w_10_he = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_w_10_he.obj"));
|
||||
public static final IModelCustom mp_w_10_incendiary = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_w_10_incendiary.obj"));
|
||||
@ -1240,7 +1237,6 @@ public class ResourceManager {
|
||||
public static final IModelCustom mp_w_15_n2 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_w_15_n2.obj"));
|
||||
public static final IModelCustom mp_w_15_balefire = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_w_15_balefire.obj"));
|
||||
public static final IModelCustom mp_w_15_turbine = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_w_15_turbine.obj"));
|
||||
public static final IModelCustom mp_w_20 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_w_20.obj"));
|
||||
|
||||
//Carts
|
||||
public static final IModelCustom cart = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vehicles/cart.obj"));
|
||||
|
||||
@ -1,5 +1,63 @@
|
||||
package com.hbm.qmaw;
|
||||
|
||||
public class GuiQMAW {
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.lib.RefStrings;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.GuiScreen;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
|
||||
public class GuiQMAW extends GuiScreen {
|
||||
|
||||
protected static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_wiki.png");
|
||||
|
||||
public String title;
|
||||
public List<ManualElement[]> lines = new ArrayList();
|
||||
|
||||
protected int xSize = 192;
|
||||
protected int ySize = 256;
|
||||
protected int guiLeft;
|
||||
protected int guiTop;
|
||||
|
||||
public GuiQMAW(QuickManualAndWiki qmaw) {
|
||||
parseQMAW(qmaw);
|
||||
}
|
||||
|
||||
protected void parseQMAW(QuickManualAndWiki qmaw) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initGui() {
|
||||
super.initGui();
|
||||
this.guiLeft = (this.width - this.xSize) / 2;
|
||||
this.guiTop = (this.height - this.ySize) / 2;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void drawScreen(int mouseX, int mouseY, float f) {
|
||||
this.drawDefaultBackground();
|
||||
this.drawGuiContainerBackgroundLayer(f, mouseX, mouseY);
|
||||
GL11.glDisable(GL11.GL_LIGHTING);
|
||||
this.drawGuiContainerForegroundLayer(mouseX, mouseY);
|
||||
GL11.glEnable(GL11.GL_LIGHTING);
|
||||
}
|
||||
|
||||
private void drawGuiContainerForegroundLayer(int mouseX, int mouseY) {
|
||||
|
||||
int x = 0;
|
||||
int y = 0;
|
||||
|
||||
this.fontRendererObj.drawString(title, guiLeft + x, guiTop + y, 0xFFFFFF);
|
||||
}
|
||||
|
||||
private void drawGuiContainerBackgroundLayer(float f, int mouseX, int mouseY) {
|
||||
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
||||
Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
|
||||
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);
|
||||
}
|
||||
}
|
||||
|
||||
@ -7,13 +7,19 @@ import java.io.InputStreamReader;
|
||||
import java.util.Enumeration;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.zip.ZipEntry;
|
||||
import java.util.zip.ZipFile;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonParser;
|
||||
import com.hbm.interfaces.NotableComments;
|
||||
import com.hbm.inventory.RecipesCommon.ComparableStack;
|
||||
import com.hbm.inventory.recipes.loader.SerializableRecipe;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.main.MainRegistry;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
@ -23,6 +29,7 @@ import net.minecraft.client.resources.IResourceManager;
|
||||
import net.minecraft.client.resources.IResourceManagerReloadListener;
|
||||
import net.minecraft.client.resources.IResourcePack;
|
||||
import net.minecraft.client.resources.ResourcePackRepository;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
@NotableComments
|
||||
public class QMAWLoader implements IResourceManagerReloadListener {
|
||||
@ -31,6 +38,7 @@ public class QMAWLoader implements IResourceManagerReloadListener {
|
||||
public static final Gson gson = new Gson();
|
||||
public static final JsonParser parser = new JsonParser();
|
||||
public static HashMap<String, QuickManualAndWiki> qmaw = new HashMap();
|
||||
public static HashMap<ComparableStack, QuickManualAndWiki> triggers = new HashMap();
|
||||
|
||||
@Override
|
||||
public void onResourceManagerReload(IResourceManager resMan) {
|
||||
@ -50,13 +58,22 @@ public class QMAWLoader implements IResourceManagerReloadListener {
|
||||
|
||||
//the mod's file, assuming the mod is a file (not the case in a dev env, fuck!)
|
||||
//no fucking null check, if this fails then the entire game will sink along with the ship
|
||||
registerModFileURL(new File(QMAWLoader.class.getProtectionDomain().getCodeSource().getLocation().getPath())); // i am going to shit myself
|
||||
String path = QMAWLoader.class.getProtectionDomain().getCodeSource().getLocation().getPath();
|
||||
// exclude .class in the case of a dev env
|
||||
if(!path.endsWith(".class")) registerModFileURL(new File(path)); // i am going to shit myself
|
||||
|
||||
qmaw.clear();
|
||||
triggers.clear();
|
||||
agonyEngine();
|
||||
}
|
||||
|
||||
/** "digital equivalent to holywater" yielded few results on google, if only i had the answer i would drown this entire class in it */
|
||||
/** "digital equivalent to holywater" yielded few results on google, if only i had the answer i would drown this entire class in it <br><br>
|
||||
* This affront to god can load QMAW definition files from four different sources:<br>
|
||||
* * Any mod's jar that has registered itself to include QMAW files<br>
|
||||
* * The dev environment, because "the mod file" would in this case be this very class file, and that's incorrect<br>
|
||||
* * ZIP-based resource packs<br>
|
||||
* * Folder-based resource packs
|
||||
* */
|
||||
public static void agonyEngine() {
|
||||
|
||||
for(File modFile : registeredModFiles) dissectZip(modFile);
|
||||
@ -154,7 +171,38 @@ public class QMAWLoader implements IResourceManagerReloadListener {
|
||||
}
|
||||
}
|
||||
|
||||
/** Extracts all the info from a json file's main object to add a QMAW to the system. Very barebones, only handles name, icon and the localized text. */
|
||||
public static void registerJson(String name, JsonObject json) {
|
||||
//TBI
|
||||
QuickManualAndWiki qmaw = new QuickManualAndWiki(name);
|
||||
|
||||
if(json.has("icon")) {
|
||||
qmaw.setIcon(SerializableRecipe.readItemStack(json.get("icon").getAsJsonArray()));
|
||||
}
|
||||
|
||||
JsonObject title = json.get("title").getAsJsonObject();
|
||||
for(Entry<String, JsonElement> part : title.entrySet()) {
|
||||
qmaw.addTitle(part.getKey(), part.getValue().getAsString());
|
||||
}
|
||||
|
||||
JsonObject content = json.get("content").getAsJsonObject();
|
||||
for(Entry<String, JsonElement> part : content.entrySet()) {
|
||||
qmaw.addLang(part.getKey(), part.getValue().getAsString());
|
||||
}
|
||||
|
||||
JsonArray triggers = json.get("trigger").getAsJsonArray();
|
||||
|
||||
for(JsonElement element : triggers) {
|
||||
ItemStack trigger = SerializableRecipe.readItemStack(element.getAsJsonArray());
|
||||
// items get renamed and removed all the time, so we add some more debug goodness for those cases
|
||||
if(trigger == null || trigger.getItem() == ModItems.nothing) {
|
||||
MainRegistry.logger.info("[QMAW] Manual " + name + " references nonexistant trigger " + element.toString());
|
||||
} else {
|
||||
QMAWLoader.triggers.put(new ComparableStack(trigger).makeSingular(), qmaw);
|
||||
}
|
||||
}
|
||||
|
||||
if(!qmaw.contents.isEmpty()) {
|
||||
QMAWLoader.qmaw.put(name, qmaw);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,5 +1,33 @@
|
||||
package com.hbm.qmaw;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public class QuickManualAndWiki {
|
||||
|
||||
public String name;
|
||||
public ItemStack icon;
|
||||
|
||||
public HashMap<String, String> title = new HashMap();
|
||||
public HashMap<String, String> contents = new HashMap();
|
||||
|
||||
public QuickManualAndWiki(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public QuickManualAndWiki setIcon(ItemStack stack) {
|
||||
this.icon = stack;
|
||||
return this;
|
||||
}
|
||||
|
||||
public QuickManualAndWiki addTitle(String lang, String title) {
|
||||
this.title.put(lang, title);
|
||||
return this;
|
||||
}
|
||||
|
||||
public QuickManualAndWiki addLang(String lang, String contents) {
|
||||
this.contents.put(lang, contents);
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
81
src/main/java/com/hbm/qmaw/components/QComponentLink.java
Normal file
81
src/main/java/com/hbm/qmaw/components/QComponentLink.java
Normal file
@ -0,0 +1,81 @@
|
||||
package com.hbm.qmaw.components;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.qmaw.GuiQMAW;
|
||||
import com.hbm.qmaw.ManualElement;
|
||||
import com.hbm.qmaw.QMAWLoader;
|
||||
import com.hbm.qmaw.QuickManualAndWiki;
|
||||
|
||||
import cpw.mods.fml.common.FMLCommonHandler;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.FontRenderer;
|
||||
import net.minecraft.client.renderer.RenderHelper;
|
||||
import net.minecraft.client.renderer.entity.RenderItem;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public class QComponentLink extends ManualElement {
|
||||
|
||||
protected String link;
|
||||
protected ItemStack icon;
|
||||
protected String text;
|
||||
protected FontRenderer font;
|
||||
protected int color = 0x0094FF;
|
||||
protected int hoverColor = 0xFFD800;
|
||||
|
||||
protected static RenderItem itemRender = new RenderItem();
|
||||
|
||||
public QComponentLink(String link, String text) {
|
||||
this.text = text;
|
||||
this.link = link;
|
||||
|
||||
QuickManualAndWiki qmaw = QMAWLoader.qmaw.get(link);
|
||||
if(qmaw == null) {
|
||||
this.color = this.hoverColor = 0xFF7F7F;
|
||||
} else {
|
||||
this.icon = qmaw.icon;
|
||||
}
|
||||
}
|
||||
|
||||
public QComponentLink setColor(int color, int hoverColor) {
|
||||
this.color = color;
|
||||
this.hoverColor = hoverColor;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getWidth() {
|
||||
return font.getStringWidth(text) + (icon != null ? 20 : 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getHeight() {
|
||||
return Math.max(font.FONT_HEIGHT, icon != null ? 18 : 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(boolean isMouseOver, int mouseX, int mouseY) {
|
||||
int x = this.x;
|
||||
int y = this.y;
|
||||
|
||||
if(this.icon != null) {
|
||||
|
||||
GL11.glEnable(GL11.GL_DEPTH_TEST);
|
||||
Minecraft mc = Minecraft.getMinecraft();
|
||||
itemRender.renderItemAndEffectIntoGUI(this.font, mc.renderEngine, this.icon, x, y);
|
||||
itemRender.renderItemOverlayIntoGUI(this.font, mc.renderEngine, this.icon, x, y, null);
|
||||
RenderHelper.disableStandardItemLighting();
|
||||
GL11.glDisable(GL11.GL_DEPTH_TEST);
|
||||
|
||||
x += 20;
|
||||
y += (18 - font.FONT_HEIGHT) / 2;
|
||||
}
|
||||
|
||||
font.drawString(text, x, y, isMouseOver ? hoverColor : color);
|
||||
}
|
||||
|
||||
@Override public void onClick() {
|
||||
QuickManualAndWiki qmaw = QMAWLoader.qmaw.get(link);
|
||||
if(qmaw != null) FMLCommonHandler.instance().showGuiScreen(new GuiQMAW(qmaw));
|
||||
}
|
||||
}
|
||||
@ -34,13 +34,10 @@ public class MissilePart {
|
||||
parts.clear();
|
||||
|
||||
MissilePart.registerPart(ModItems.mp_thruster_10_kerosene, PartType.THRUSTER, 1, 1, ResourceManager.mp_t_10_kerosene, ResourceManager.mp_t_10_kerosene_tex);
|
||||
MissilePart.registerPart(ModItems.mp_thruster_10_kerosene_tec, PartType.THRUSTER, 1.25, 1.25, ResourceManager.mp_t_10_kerosene_tec, ResourceManager.universal);
|
||||
MissilePart.registerPart(ModItems.mp_thruster_10_solid, PartType.THRUSTER, 0.5, 1, ResourceManager.mp_t_10_solid, ResourceManager.mp_t_10_solid_tex);
|
||||
MissilePart.registerPart(ModItems.mp_thruster_10_xenon, PartType.THRUSTER, 0.5, 1, ResourceManager.mp_t_10_xenon, ResourceManager.mp_t_10_xenon_tex);
|
||||
//
|
||||
MissilePart.registerPart(ModItems.mp_thruster_15_kerosene, PartType.THRUSTER, 1.5, 1.5, ResourceManager.mp_t_15_kerosene, ResourceManager.mp_t_15_kerosene_tex);
|
||||
MissilePart.registerPart(ModItems.mp_thruster_15_kerosene_tec, PartType.THRUSTER, 1.5, 3.25, ResourceManager.mp_t_15_kerosene_tec, ResourceManager.universal);
|
||||
MissilePart.registerPart(ModItems.mp_thruster_15_kerosene_dual, PartType.THRUSTER, 1, 1.5, ResourceManager.mp_t_15_kerosene_dual, ResourceManager.mp_t_15_kerosene_dual_tex);
|
||||
MissilePart.registerPart(ModItems.mp_thruster_15_kerosene_triple, PartType.THRUSTER, 1, 1.5, ResourceManager.mp_t_15_kerosene_triple, ResourceManager.mp_t_15_kerosene_dual_tex);
|
||||
MissilePart.registerPart(ModItems.mp_thruster_15_solid, PartType.THRUSTER, 0.5, 1, ResourceManager.mp_t_15_solid, ResourceManager.mp_t_15_solid_tex);
|
||||
MissilePart.registerPart(ModItems.mp_thruster_15_solid_hexdecuple, PartType.THRUSTER, 0.5, 1, ResourceManager.mp_t_15_solid_hexdecuple, ResourceManager.mp_t_15_solid_hexdecuple_tex);
|
||||
@ -149,8 +146,6 @@ public class MissilePart {
|
||||
MissilePart.registerPart(ModItems.mp_fuselage_15_20_kerosene, PartType.FUSELAGE, 16, 10, ResourceManager.mp_f_15_20_kerosene, ResourceManager.mp_f_15_20_kerosene_tex);
|
||||
MissilePart.registerPart(ModItems.mp_fuselage_15_20_kerosene_magnusson, PartType.FUSELAGE, 16, 10, ResourceManager.mp_f_15_20_kerosene, ResourceManager.mp_f_15_20_kerosene_magnusson_tex);
|
||||
MissilePart.registerPart(ModItems.mp_fuselage_15_20_solid, PartType.FUSELAGE, 16, 10, ResourceManager.mp_f_15_20_kerosene, ResourceManager.mp_f_15_20_solid_tex);
|
||||
//
|
||||
MissilePart.registerPart(ModItems.mp_fuselage_20_kerosene, PartType.FUSELAGE, 10, 8, ResourceManager.mp_f_20, ResourceManager.universal);
|
||||
|
||||
//////
|
||||
|
||||
@ -171,9 +166,6 @@ public class MissilePart {
|
||||
MissilePart.registerPart(ModItems.mp_warhead_15_n2, PartType.WARHEAD, 3, 2, ResourceManager.mp_w_15_n2, ResourceManager.mp_w_15_n2_tex);
|
||||
MissilePart.registerPart(ModItems.mp_warhead_15_balefire, PartType.WARHEAD, 2.75, 2, ResourceManager.mp_w_15_balefire, ResourceManager.mp_w_15_balefire_tex);
|
||||
MissilePart.registerPart(ModItems.mp_warhead_15_turbine, PartType.WARHEAD, 2.25, 2, ResourceManager.mp_w_15_turbine, ResourceManager.mp_w_15_turbine_tex);
|
||||
//
|
||||
MissilePart.registerPart(ModItems.mp_warhead_20_he, PartType.WARHEAD, 3, 2.25, ResourceManager.mp_w_20, ResourceManager.universal);
|
||||
|
||||
}
|
||||
|
||||
public static void registerPart(Item item, PartType type, double height, double guiheight, IModelCustom model, ResourceLocation texture) {
|
||||
|
||||
@ -1,6 +1,10 @@
|
||||
{
|
||||
"name": "DEMO",
|
||||
"icon": ["hbm:item.gun_light_revolver", 1, 0],
|
||||
"trigger": [["hbm:item.plate_iron"], ["hbm:item.plate_gold"], ["hbm:item.plate_sludge"]],
|
||||
"title": {
|
||||
"en_US": "TEST PAGE"
|
||||
}
|
||||
"content": {
|
||||
"en_US": "This is a test page that links to [[Demo|DEMO]].\n\nFormat line break"
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user