From 34f13b3af47fcb64f595a892fda80fa5b94fd38e Mon Sep 17 00:00:00 2001 From: reobf <2215595288@qq.com> Date: Thu, 30 Jan 2025 15:05:12 +0800 Subject: [PATCH] update --- dependencies.gradle | 4 +- .../ae/BlockCyclicPatternSubmitter.java | 51 ++++++++++++++ .../BufferedDualInputHatch.java | 38 ++++++----- .../gt/metatileentity/DualInputHatch.java | 38 ----------- .../multi/IngredientDistributor.java | 5 +- .../LargeProgrammingCircuitProvider.java | 5 +- .../reobf/proghatches/item/ItemMEPlunger.java | 66 +++++++++++++++---- .../proghatches/keybinding/KeyBindings.java | 10 +-- .../java/reobf/proghatches/main/MyMod.java | 10 ++- .../main/mixin/LateMixinPlugin.java | 6 +- .../main/registration/PHRecipes.java | 37 ++++++++++- .../registration/ProgHatchCreativeTab.java | 2 +- .../proghatches/net/SwitchModeMessage.java | 2 +- .../reobf/proghatches/oc/BlockCardReader.java | 51 ++++++++++++++ .../assets/proghatches/lang/en_US.lang | 2 +- .../assets/proghatches/lang/zh_CN.lang | 2 +- 16 files changed, 245 insertions(+), 84 deletions(-) diff --git a/dependencies.gradle b/dependencies.gradle index f8fba42..01334cd 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -102,7 +102,7 @@ dependencies { compileOnly('com.github.GTNewHorizons:SC2:2.2.0:dev') {transitive=false} compileOnly('com.github.GTNewHorizons:Binnie:2.4.4:dev') {transitive = false} api('curse.maven:PlayerAPI-228969:2248928') {transitive=false} - api('com.github.GTNewHorizons:BlockRenderer6343:1.2.16:dev'){transitive=false} + api('com.github.GTNewHorizons:BlockRenderer6343:1.3.2:dev'){transitive=false} compileOnly("com.google.auto.value:auto-value-annotations:1.10.1") { transitive = false } annotationProcessor("com.google.auto.value:auto-value:1.10.1") @@ -123,7 +123,7 @@ dependencies { // functionalTestImplementation('org.junit.platform:junit-platform-launcher') // functionalTestImplementation('org.junit.platform:junit-platform-reporting') - runtimeOnlyNonPublishable("com.github.GTNewHorizons:DuraDisplay:1.3.4:dev") + //runtimeOnlyNonPublishable("com.github.GTNewHorizons:DuraDisplay:1.3.4:dev") api('com.github.GTNewHorizons:EnderIO:2.8.22:dev') // For testing diff --git a/src/main/java/reobf/proghatches/ae/BlockCyclicPatternSubmitter.java b/src/main/java/reobf/proghatches/ae/BlockCyclicPatternSubmitter.java index b9417ec..6cfa18d 100644 --- a/src/main/java/reobf/proghatches/ae/BlockCyclicPatternSubmitter.java +++ b/src/main/java/reobf/proghatches/ae/BlockCyclicPatternSubmitter.java @@ -7,6 +7,7 @@ import java.util.List; import java.util.Map; +import java.util.Random; import com.gtnewhorizons.modularui.api.UIInfos; import com.gtnewhorizons.modularui.common.internal.network.NetworkUtils; @@ -16,12 +17,15 @@ import appeng.items.tools.quartz.ToolQuartzCuttingKnife; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ChatComponentTranslation; import net.minecraft.util.IIcon; @@ -34,6 +38,7 @@ import net.minecraftforge.event.ForgeEventFactory; import reobf.proghatches.block.INameAndTooltips; +import reobf.proghatches.oc.TileCardReader; public class BlockCyclicPatternSubmitter extends BlockContainer implements INameAndTooltips{ @@ -202,4 +207,50 @@ public String getName(ItemStack p_77624_1_) { // TODO Auto-generated method stub return null; } +Random field_149955_b=new Random(); +public void breakBlock(World worldIn, int x, int y, int z, Block blockBroken, int meta) +{ + TileCyclicPatternSubmitter tileentitychest = (TileCyclicPatternSubmitter)worldIn.getTileEntity(x, y, z); + + if (tileentitychest != null) + { + for (int i1 = 0; i1 < tileentitychest.upgrade.length; ++i1) + { + ItemStack itemstack = tileentitychest.upgrade[i1]; + + if (itemstack != null) + { + float f = this.field_149955_b.nextFloat() * 0.8F + 0.1F; + float f1 = this.field_149955_b.nextFloat() * 0.8F + 0.1F; + EntityItem entityitem; + + for (float f2 = this.field_149955_b.nextFloat() * 0.8F + 0.1F; itemstack.stackSize > 0; worldIn.spawnEntityInWorld(entityitem)) + { + int j1 = this.field_149955_b.nextInt(21) + 10; + + if (j1 > itemstack.stackSize) + { + j1 = itemstack.stackSize; + } + + itemstack.stackSize -= j1; + entityitem = new EntityItem(worldIn, (double)((float)x + f), (double)((float)y + f1), (double)((float)z + f2), new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); + float f3 = 0.05F; + entityitem.motionX = (double)((float)this.field_149955_b.nextGaussian() * f3); + entityitem.motionY = (double)((float)this.field_149955_b.nextGaussian() * f3 + 0.2F); + entityitem.motionZ = (double)((float)this.field_149955_b.nextGaussian() * f3); + + if (itemstack.hasTagCompound()) + { + entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy()); + } + } + } + } + + worldIn.func_147453_f(x, y, z, blockBroken); + } + + super.breakBlock(worldIn, x, y, z, blockBroken, meta); +} } diff --git a/src/main/java/reobf/proghatches/gt/metatileentity/BufferedDualInputHatch.java b/src/main/java/reobf/proghatches/gt/metatileentity/BufferedDualInputHatch.java index d4a8fb1..ef0c387 100644 --- a/src/main/java/reobf/proghatches/gt/metatileentity/BufferedDualInputHatch.java +++ b/src/main/java/reobf/proghatches/gt/metatileentity/BufferedDualInputHatch.java @@ -1429,7 +1429,7 @@ public void loadNBTData(NBTTagCompound aNBT) { merge = aNBT.getBoolean("merge"); justHadNewItems = aNBT.getBoolean("justHadNewItems"); updateEveryTick = aNBT.getBoolean("updateEveryTick"); - if(aNBT.hasKey("useNewGTPatternCachel"))useNewGTPatternCachel=aNBT.getBoolean("useNewGTPatternCachel"); + if(aNBT.hasKey("useNewGTPatternCache"))useNewGTPatternCache=aNBT.getBoolean("useNewGTPatternCache"); preventSleep = aNBT.getInteger("preventSleep"); currentID=aNBT.getInteger("currentID" ); @@ -1465,7 +1465,7 @@ public void saveNBTData(NBTTagCompound aNBT) { aNBT.setBoolean("merge", merge); aNBT.setBoolean("justHadNewItems", justHadNewItems); aNBT.setBoolean("updateEveryTick", updateEveryTick); - aNBT.setBoolean("useNewGTPatternCachel", useNewGTPatternCachel); + aNBT.setBoolean("useNewGTPatternCache", useNewGTPatternCache); aNBT.setInteger("preventSleep", preventSleep); @@ -1632,11 +1632,11 @@ public Iterator inventories() { } - boolean useNewGTPatternCachel=true; + boolean useNewGTPatternCache=false; private IDualInputInventory wrap(DualInvBuffer to){ - if(to.PID>0&&useNewGTPatternCachel){ + if(to.PID>0&&useNewGTPatternCache){ return new PatternDualInv(to); } @@ -2005,7 +2005,7 @@ public void getWailaBody(ItemStack itemStack, List currenttip, IWailaDat } } String prefix=""; - if(sub.getInteger("patternID")>0){prefix=""+sub.getInteger("patternID");} + if(sub.getInteger("patternID")>0){prefix="<"+sub.getInteger("patternID")+">";} if(sub.getInteger("patternID")==0&&!sub.getBoolean("empty")){prefix="△";} @@ -2486,17 +2486,21 @@ protected ModularWindow createWindowEx(final EntityPlayer player) { ); - - builder.widget(new CycleButtonWidget().setToggle(() -> useNewGTPatternCachel, (s) -> { - {useNewGTPatternCachel = s; + + builder.widget(new CycleButtonWidget().setToggle(() -> useNewGTPatternCache, (s) -> { + { + if(MyMod.newGTCache){ + useNewGTPatternCache = s; + if(useNewGTPatternCache==false){ + resetMulti(); + detailmap.clear(); + inv0.forEach(sX->sX.PID=0); + + } + } - if(useNewGTPatternCachel==false){ - resetMulti(); - detailmap.clear(); - inv0.forEach(sX->sX.PID=0); } - } }).setStaticTexture(GTUITextures.OVERLAY_BUTTON_CHECKMARK) .setVariableBackground(GTUITextures.BUTTON_STANDARD_TOGGLE).setTooltipShowUpDelay(TOOLTIP_DELAY) @@ -2504,9 +2508,12 @@ protected ModularWindow createWindowEx(final EntityPlayer player) { .addTooltip(StatCollector.translateToLocal("programmable_hatches.gt.newcrib.0")) .addTooltip(StatCollector.translateToLocal("programmable_hatches.gt.newcrib.1")) .addTooltip(StatCollector.translateToLocal("programmable_hatches.gt.newcrib.2")) - .addTooltip(StatCollector.translateToLocal("programmable_hatches.gt.newcrib.3") ) + .addTooltip(StatCollector.translateToLocal("programmable_hatches.gt.newcrib.3")) .addTooltip(StatCollector.translateToLocal("programmable_hatches.gt.newcrib.4")) - .addTooltip(StatCollector.translateToLocal("programmable_hatches.gt.newcrib.5") )) + .addTooltip(StatCollector.translateToLocal("programmable_hatches.gt.newcrib.5")) + .addTooltip((MyMod.newGTCache)?"":StatCollector.translateToLocal("programmable_hatches.gt.newcrib.nosupport")) + + ) @@ -2682,6 +2689,7 @@ public boolean enableCM() { public void recordRecipe(DualInvBuffer thiz){ if(thiz.PID>0)return; + if(useNewGTPatternCache==false){return;} Integer check = detailmap.getOrDefault(Recipe.fromBuffer(thiz, false),null); if(check==null){ currentID++; diff --git a/src/main/java/reobf/proghatches/gt/metatileentity/DualInputHatch.java b/src/main/java/reobf/proghatches/gt/metatileentity/DualInputHatch.java index ed6f7d6..fc5a26a 100644 --- a/src/main/java/reobf/proghatches/gt/metatileentity/DualInputHatch.java +++ b/src/main/java/reobf/proghatches/gt/metatileentity/DualInputHatch.java @@ -2,29 +2,19 @@ import static gregtech.api.enums.Textures.BlockIcons.*; import static gregtech.api.metatileentity.BaseTileEntity.TOOLTIP_DELAY; -import static reobf.proghatches.gt.metatileentity.DualInputHatch.INSERTION; - import java.io.IOException; -import java.lang.invoke.MethodHandle; -import java.lang.invoke.MethodHandles; -import java.lang.invoke.MethodType; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collection; import java.util.HashMap; import java.util.HashSet; import java.util.IdentityHashMap; import java.util.Iterator; import java.util.LinkedList; import java.util.List; -import java.util.ListIterator; -import java.util.Map.Entry; import java.util.NoSuchElementException; import java.util.Objects; import java.util.Optional; -import java.util.Set; import java.util.TreeSet; -import java.util.function.BiConsumer; import java.util.function.Consumer; import java.util.function.Function; import java.util.function.IntConsumer; @@ -32,14 +22,10 @@ import java.util.stream.IntStream; import java.util.stream.Stream; -import org.spongepowered.include.com.google.common.collect.ImmutableSet; - import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.init.Blocks; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; @@ -48,18 +34,13 @@ import net.minecraft.util.ChatComponentText; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.StatCollector; -import net.minecraft.util.Tuple; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidTank; import net.minecraftforge.fluids.FluidTankInfo; -import net.minecraftforge.fluids.IFluidTank; - import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; -import com.google.common.collect.Iterables; -import com.google.gson.internal.Streams; import com.gtnewhorizons.modularui.api.ModularUITextures; import com.gtnewhorizons.modularui.api.drawable.AdaptableUITexture; import com.gtnewhorizons.modularui.api.drawable.IDrawable; @@ -75,14 +56,12 @@ import com.gtnewhorizons.modularui.api.screen.UIBuildContext; import com.gtnewhorizons.modularui.api.widget.Interactable; import com.gtnewhorizons.modularui.api.widget.Widget; -import com.gtnewhorizons.modularui.api.widget.Widget.ClickData; import com.gtnewhorizons.modularui.common.fluid.FluidStackTank; import com.gtnewhorizons.modularui.common.internal.wrapper.BaseSlot; import com.gtnewhorizons.modularui.common.internal.wrapper.ModularUIContainer; import com.gtnewhorizons.modularui.common.widget.ButtonWidget; import com.gtnewhorizons.modularui.common.widget.CycleButtonWidget; import com.gtnewhorizons.modularui.common.widget.DrawableWidget; -import com.gtnewhorizons.modularui.common.widget.DynamicTextWidget; import com.gtnewhorizons.modularui.common.widget.FakeSyncWidget; import com.gtnewhorizons.modularui.common.widget.FluidSlotWidget; import com.gtnewhorizons.modularui.common.widget.Scrollable; @@ -91,37 +70,23 @@ import com.gtnewhorizons.modularui.common.widget.SyncedWidget; import com.gtnewhorizons.modularui.common.widget.TextWidget; -import appeng.api.AEApi; -import appeng.api.IAppEngApi; import appeng.api.config.Actionable; import appeng.api.networking.IGrid; -import appeng.api.networking.IGridCache; -import appeng.api.networking.IGridHost; import appeng.api.networking.IGridNode; -import appeng.api.networking.security.BaseActionSource; import appeng.api.networking.security.IActionHost; import appeng.api.networking.security.MachineSource; import appeng.api.networking.storage.IStorageGrid; import appeng.api.parts.IPartHost; -import appeng.api.storage.IExternalStorageHandler; -import appeng.api.storage.IMEInventory; -import appeng.api.storage.StorageChannel; import appeng.api.storage.data.IAEFluidStack; import appeng.api.storage.data.IAEItemStack; -import appeng.api.util.AECableType; -import appeng.core.Api; import appeng.helpers.IInterfaceHost; -import appeng.me.helpers.IGridProxyable; import appeng.util.item.AEFluidStack; import appeng.util.item.AEItemStack; -import appeng.util.item.AEStack; import gregtech.api.GregTechAPI; import gregtech.api.enums.ItemList; import gregtech.api.enums.SoundResource; -import gregtech.api.enums.Textures; import gregtech.api.gui.modularui.GTUITextures; import gregtech.api.interfaces.IConfigurationCircuitSupport; -import gregtech.api.interfaces.IIconContainer; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.modularui.IAddGregtechLogo; import gregtech.api.interfaces.modularui.IAddUIWidgets; @@ -141,10 +106,8 @@ import gregtech.api.util.shutdown.ShutDownReasonRegistry; import gregtech.common.tileentities.machines.IDualInputHatch; import gregtech.common.tileentities.machines.IDualInputInventory; -import gregtech.common.tileentities.machines.MTEHatchCraftingInputME.PatternSlot; import reobf.proghatches.eucrafting.AECover; import reobf.proghatches.gt.metatileentity.util.BaseSlotPatched; -import reobf.proghatches.gt.metatileentity.util.IMultiCircuitSupport; import reobf.proghatches.gt.metatileentity.util.IOnFillCallback; import reobf.proghatches.gt.metatileentity.util.IProgrammingCoverBlacklisted; import reobf.proghatches.gt.metatileentity.util.IRecipeProcessingAwareDualHatch; @@ -157,7 +120,6 @@ import reobf.proghatches.main.MyMod; import reobf.proghatches.main.registration.Registration; import reobf.proghatches.net.UpgradesMessage; -import reobf.proghatches.util.ProghatchesUtil; /** * @author zyf diff --git a/src/main/java/reobf/proghatches/gt/metatileentity/multi/IngredientDistributor.java b/src/main/java/reobf/proghatches/gt/metatileentity/multi/IngredientDistributor.java index 6bb2e72..d209a41 100644 --- a/src/main/java/reobf/proghatches/gt/metatileentity/multi/IngredientDistributor.java +++ b/src/main/java/reobf/proghatches/gt/metatileentity/multi/IngredientDistributor.java @@ -1543,7 +1543,10 @@ public static boolean addBus(IngredientDistributor thiz, IGregTechTileEntity aTi protected void drawTexts(DynamicPositionedColumn screenElements, SlotWidget inventorySlot) { super.drawTexts(screenElements, inventorySlot); - + screenElements.setSpace(0); + screenElements.setPos(0, 0); + //make it look same on 2.7.2- + //2.7.2- set it to a non zero value screenElements.widget( new TextWidget().setStringSupplier(()-> lastfail==null?"": diff --git a/src/main/java/reobf/proghatches/gt/metatileentity/multi/LargeProgrammingCircuitProvider.java b/src/main/java/reobf/proghatches/gt/metatileentity/multi/LargeProgrammingCircuitProvider.java index 91453cb..f38abea 100644 --- a/src/main/java/reobf/proghatches/gt/metatileentity/multi/LargeProgrammingCircuitProvider.java +++ b/src/main/java/reobf/proghatches/gt/metatileentity/multi/LargeProgrammingCircuitProvider.java @@ -978,7 +978,10 @@ public Collection getCircuit() { protected void drawTexts(DynamicPositionedColumn screenElements, SlotWidget inventorySlot) { super.drawTexts(screenElements, inventorySlot); - + screenElements.setSpace(0); + screenElements.setPos(0, 0); + //make it look same on 2.7.2- + //2.7.2- set it to a non zero value screenElements.widget( TextWidget.dynamicString(()-> diff --git a/src/main/java/reobf/proghatches/item/ItemMEPlunger.java b/src/main/java/reobf/proghatches/item/ItemMEPlunger.java index 60cb985..813b930 100644 --- a/src/main/java/reobf/proghatches/item/ItemMEPlunger.java +++ b/src/main/java/reobf/proghatches/item/ItemMEPlunger.java @@ -41,9 +41,11 @@ import gregtech.api.util.GTUtility; import gregtech.common.tileentities.machines.IDualInputHatch; import gregtech.common.tileentities.machines.IDualInputInventory; +import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.EnumRarity; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -128,25 +130,47 @@ public void setEncryptionKey(final ItemStack wirelessTerminal, final String sour } public boolean damage(ItemStack aStack) { - + if(aStack.getItemDamage()==1){return true;} return asPowerStorage().extractAEPower(aStack, 1000)>999; } -public boolean check(Entity player,IGrid grid){ +public boolean check(ItemStack stack, Entity player,IGrid grid){ if(grid==null)return false; for (IGridNode node : grid.getMachines(TileWireless.class)) { IWirelessAccessPoint accessPoint = (IWirelessAccessPoint) node.getMachine(); - if (accessPoint.isActive() && accessPoint.getLocation().getDimension() == player.dimension) { - WorldCoord distance = accessPoint.getLocation() - .subtract((int) player.posX, (int) player.posY, (int) player.posZ); - int squaredDistance = distance.x * distance.x + distance.y * distance.y + distance.z * distance.z; - if (squaredDistance <= accessPoint.getRange() * accessPoint.getRange()) { - return true; - - } - } + + + + if(stack.getItemDamage()==0) + if (accessPoint.isActive() && accessPoint.getLocation().getDimension() == player.dimension) { + WorldCoord distance = accessPoint.getLocation() + .subtract((int) player.posX, (int) player.posY, (int) player.posZ); + int squaredDistance = distance.x * distance.x + distance.y * distance.y + distance.z * distance.z; + if (squaredDistance <= accessPoint.getRange() * accessPoint.getRange()) { + return true; + + } + } + else{ + if (accessPoint.isActive()){return true;} + + + } + + }return false; } +@Override +public int getMaxDamage(ItemStack stack) { + return 1; +} + +protected void getCheckedSubItems(final Item p_150895_1_, final CreativeTabs p_150895_2_, + final List p_150895_3_) { + + p_150895_3_.add(new ItemStack(p_150895_1_, 1, 0)); + p_150895_3_.add(new ItemStack(p_150895_1_, 1, 1)); +} @Override public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, @@ -162,7 +186,7 @@ public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int if(!world.isRemote) player.addChatComponentMessage(new ChatComponentTranslation("item.proghatch_me_plunger.unbound")); return true;} - if(!check(player, getWirelessGrid(stack).getGrid())){ + if(!check(stack,player, getWirelessGrid(stack).getGrid())){ if(!world.isRemote) player.addChatComponentMessage(new ChatComponentTranslation("item.proghatch_me_plunger.range")); return true;} @@ -354,6 +378,22 @@ public boolean clearItem(ItemStack aStack, EntityPlayer aPlayer, World aWorld, i } return false; } + @Override + public void onUpdate(ItemStack stack, World worldIn, Entity entityIn, int p_77663_4_, boolean p_77663_5_) { + if(stack.getItemDamage()==1)asPowerStorage().injectAEPower(stack, 10000); + super.onUpdate(stack, worldIn, entityIn, p_77663_4_, p_77663_5_); + } + @SideOnly(Side.CLIENT) + public boolean hasEffect(ItemStack p_77636_1_) + { + return p_77636_1_.getItemDamage() > 0; + } + + @Override + public EnumRarity getRarity(ItemStack p_77613_1_) { + + return p_77613_1_.getItemDamage() == 0 ? super.getRarity(p_77613_1_) : EnumRarity.epic; + } @SideOnly(Side.CLIENT) public void addCheckedInformation(final ItemStack p_77624_1_, final EntityPlayer p_77624_2_, final List p_77624_3_, final boolean p_77624_4_) { @@ -365,7 +405,7 @@ public void addCheckedInformation(final ItemStack p_77624_1_, final EntityPlayer @SideOnly(Side.CLIENT) public void addInformation(ItemStack p_77624_1_, EntityPlayer p_77624_2_, List p_77624_3_, boolean p_77624_4_) { */ - + //if(p_77624_1_.getItemDamage()==1)p_77624_3_.add(""); IntStream .range(0, Integer.valueOf(StatCollector.translateToLocal( diff --git a/src/main/java/reobf/proghatches/keybinding/KeyBindings.java b/src/main/java/reobf/proghatches/keybinding/KeyBindings.java index 70accd5..94f3a38 100644 --- a/src/main/java/reobf/proghatches/keybinding/KeyBindings.java +++ b/src/main/java/reobf/proghatches/keybinding/KeyBindings.java @@ -15,22 +15,22 @@ public class KeyBindings { @SideOnly(Side.CLIENT) - public KeyBinding key; + public KeyBinding key; interface Run { public default void run() { } } - { + { ((Run) new Run() { @SideOnly(Side.CLIENT) @Override public void run() { key = new KeyBinding("proghatch.keybinding.kit.switch.desc", 0, "itemGroup.proghatches"); - ClientRegistry.registerKeyBinding(key); - FMLCommonHandler.instance().bus().register(KeyBindings.this); + ClientRegistry.registerKeyBinding(key); + FMLCommonHandler.instance().bus().register(KeyBindings.this); } }).run(); @@ -38,7 +38,7 @@ public void run() { @SideOnly(Side.CLIENT) @SubscribeEvent(priority = EventPriority.HIGH, receiveCanceled = false) - public void tick(final TickEvent.ClientTickEvent event) { + public void tick(final TickEvent.ClientTickEvent event) { if (key.isPressed()) { MyMod.net.sendToServer(new SwitchModeMessage()); diff --git a/src/main/java/reobf/proghatches/main/MyMod.java b/src/main/java/reobf/proghatches/main/MyMod.java index 8398cdf..2903226 100644 --- a/src/main/java/reobf/proghatches/main/MyMod.java +++ b/src/main/java/reobf/proghatches/main/MyMod.java @@ -216,9 +216,14 @@ public class MyMod { public static MyMod instance; { - System.out.println("cccccccccccccccc"); - System.out.println(new GTDualInputs()); + //System.out.println("cccccccccccccccc"); + try{new GTDualInputs(); + }catch(Throwable t){ + t.printStackTrace(); + LOG.fatal("Add polyfill jar to mods."); + FMLCommonHandler.instance().exitJava(1, false); + } if((Boolean)Launch.blackboard.get("fml.deobfuscatedEnvironment") ){ ProcessingLogic.class.getDeclaredFields(); @@ -806,6 +811,7 @@ public void init(Entity entity, World world) { //public static Block occonfigurator; public static BlockRequestTunnel request_tunnel; public static Item emitterpattern; + public static boolean newGTCache; @SubscribeEvent(priority = EventPriority.HIGH, receiveCanceled = false) public void pretick(final TickEvent.ServerTickEvent event) { diff --git a/src/main/java/reobf/proghatches/main/mixin/LateMixinPlugin.java b/src/main/java/reobf/proghatches/main/mixin/LateMixinPlugin.java index e51b080..7fdac1a 100644 --- a/src/main/java/reobf/proghatches/main/mixin/LateMixinPlugin.java +++ b/src/main/java/reobf/proghatches/main/mixin/LateMixinPlugin.java @@ -11,6 +11,7 @@ import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.ModContainer; +import reobf.proghatches.main.MyMod; @LateMixin public class LateMixinPlugin implements ILateMixinLoader{ @@ -38,10 +39,11 @@ public List getMixins(Set loadedMods) { System.out.println(v2); if(Integer.valueOf(v1)>=51){ if(v2.contains("-")){ - v2=v2.substring(1+v2.lastIndexOf("-")); + v2=v2.substring(0,v2.lastIndexOf("-")); } - if(Integer.valueOf(v2)>99){ + if(Integer.valueOf(v2)>=69){ MixinPlugin.retLate.add("part2.MixinProcessLogicDoNotCache"); + MyMod.newGTCache=true; } } diff --git a/src/main/java/reobf/proghatches/main/registration/PHRecipes.java b/src/main/java/reobf/proghatches/main/registration/PHRecipes.java index cae2d37..33b27c1 100644 --- a/src/main/java/reobf/proghatches/main/registration/PHRecipes.java +++ b/src/main/java/reobf/proghatches/main/registration/PHRecipes.java @@ -35,6 +35,7 @@ import net.minecraftforge.oredict.ShapedOreRecipe; import net.minecraftforge.oredict.ShapelessOreRecipe; + import com.glodblock.github.loader.ItemAndBlockHolder; import appeng.core.Api; @@ -2010,7 +2011,41 @@ bb,new ItemStack(MyMod.smartarm, 4,i+5) .duration(1 * SECONDS) .eut(30) .addTo(RecipeMaps.assemblerRecipes); - + + GTValues.RA.stdBuilder() + .itemInputs( + new ItemStack( MyMod.plunger,1,0), + + GameRegistry.findItemStack("ae2wct", "infinityBoosterCard", 0) + ) + .itemOutputs( + new ItemStack( MyMod.plunger,1,1) + ) + .duration(1 * SECONDS) + .eut(30) + .addTo(RecipeMaps.assemblerRecipes); + /* rec = new ShapelessOreRecipe( new ItemStack( MyMod.plunger,1,1), + ItemEnum.BOOSTER_CARD.getStack(0), + new ItemStack( MyMod.plunger) + ){ + + public ItemStack getCraftingResult(net.minecraft.inventory.InventoryCrafting var1) { + ItemStack ist = super.getCraftingResult(var1); + for(int i=0;i 0; worldIn.spawnEntityInWorld(entityitem)) + { + int j1 = this.field_149955_b.nextInt(21) + 10; + + if (j1 > itemstack.stackSize) + { + j1 = itemstack.stackSize; + } + + itemstack.stackSize -= j1; + entityitem = new EntityItem(worldIn, (double)((float)x + f), (double)((float)y + f1), (double)((float)z + f2), new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); + float f3 = 0.05F; + entityitem.motionX = (double)((float)this.field_149955_b.nextGaussian() * f3); + entityitem.motionY = (double)((float)this.field_149955_b.nextGaussian() * f3 + 0.2F); + entityitem.motionZ = (double)((float)this.field_149955_b.nextGaussian() * f3); + + if (itemstack.hasTagCompound()) + { + entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy()); + } + } + } + } + + worldIn.func_147453_f(x, y, z, blockBroken); + } + + super.breakBlock(worldIn, x, y, z, blockBroken, meta); +} } diff --git a/src/main/resources/assets/proghatches/lang/en_US.lang b/src/main/resources/assets/proghatches/lang/en_US.lang index eeda897..4930482 100644 --- a/src/main/resources/assets/proghatches/lang/en_US.lang +++ b/src/main/resources/assets/proghatches/lang/en_US.lang @@ -744,4 +744,4 @@ programmable_hatches.gt.newcrib.2=Do not work well with Stocking Upgrades. programmable_hatches.gt.newcrib.3=Once GT Multi cache the recipe, it will not update. So when stocking changes, GT Multi might not recognize it. programmable_hatches.gt.newcrib.4=Turning off this mode will clear all the caches. programmable_hatches.gt.newcrib.5=When merge mode(the button on left side) is on, this mode is ignored. - +programmable_hatches.gt.newcrib.nosupport=§cNot supported on current GT5u diff --git a/src/main/resources/assets/proghatches/lang/zh_CN.lang b/src/main/resources/assets/proghatches/lang/zh_CN.lang index c16ddcb..2187cc9 100644 --- a/src/main/resources/assets/proghatches/lang/zh_CN.lang +++ b/src/main/resources/assets/proghatches/lang/zh_CN.lang @@ -742,4 +742,4 @@ programmable_hatches.gt.newcrib.2=和库存升级的协作有点问题 programmable_hatches.gt.newcrib.3=多方块机器缓存配方后不会再变动,所以如果在没有库存不足时可能少配方 programmable_hatches.gt.newcrib.4=关闭此模式时,会清理所有缓存(改库存升级配置时可能会需要关+开一次) programmable_hatches.gt.newcrib.5=开启合并模式(左边那个)时,这个模式会被忽略 - +programmable_hatches.gt.newcrib.nosupport=§c不支持当前版本GT5u