Exemplo n.º 1
0
 public static JsonResponse addProduceRecord(
     ProduceRecords data, MaterialRecords[] materialRecord) {
   for (MaterialRecords mr : materialRecord) {
     Materials material = mr.material;
     if (material.id == null && material.name != null) {
       Materials temp = Materials.find("name=?", material.name).first();
       if (temp != null) {
         mr.material = temp;
       } else {
         material.createAt = DateUtils.getNowDate();
         material.save();
       }
     }
     mr.produceRecord = data;
     mr.save();
   }
   if (data.batch.id == null) {
     if (data.batch.product.productId != null) {
       Batchs batch =
           Batchs.find("product_id=? and batchNo is null", data.batch.product.productId).first();
       if (batch == null) {
         data.batch.orderSource = 1; // 内销
         data.batch.save();
       } else {
         data.batch = batch;
       }
     }
   }
   if (data.batch.id != null && data.batch.product.productId != null) {
     data.batch.save();
   }
   data.save();
   return new JsonResponse(0, "生产记录已更新成功");
 }
Exemplo n.º 2
0
 public static SupplierType getType(String code) {
   if (Materials.getCode().equals(code)) {
     return Materials;
   } else if (RealGoods.getCode().equals(code)) {
     return RealGoods;
   } else if (Packing.getCode().equals(code)) {
     return Packing;
   } else if (Common.getCode().equals(code)) {
     return Common;
   }
   return null;
 }
Exemplo n.º 3
0
 public Materials getMaterials(boolean withRight, boolean withTop) {
   Materials materials = new Materials();
   entities
       .values()
       .stream()
       .forEach(
           (entity) -> {
             materials.put(entity.getMaterials());
           });
   if (withRight) {
     for (int i = 0; i < Constants.FLOORS_LIMIT; i++) {
       Wall wall = map.getTile(this, 1, 0).getVerticalWall(i);
       Wall fence = map.getTile(this, 1, 0).getVerticalFence(i);
       if (wall != null) {
         materials.put(wall.getMaterials());
       }
       if (fence != null) {
         materials.put(fence.getMaterials());
       }
     }
   }
   if (withTop) {
     for (int i = 0; i < Constants.FLOORS_LIMIT; i++) {
       Wall wall = map.getTile(this, 0, 1).getHorizontalWall(i);
       Wall fence = map.getTile(this, 0, 1).getHorizontalFence(i);
       if (wall != null) {
         materials.put(wall.getMaterials());
       }
       if (fence != null) {
         materials.put(fence.getMaterials());
       }
     }
   }
   return materials;
 }
Exemplo n.º 4
0
  public void registerOre(
      OrePrefixes aPrefix,
      Materials aMaterial,
      String aOreDictName,
      String aModName,
      ItemStack aStack) {
    if (aMaterial.mFuelPower > 0)
      GT_Values.RA.addFuel(
          GT_Utility.copyAmount(1L, new Object[] {aStack}),
          null,
          aMaterial.mFuelPower,
          aMaterial.mFuelType);
    if (GT_Utility.getFluidForFilledItem(
            GT_OreDictUnificator.get(OrePrefixes.cell, aMaterial, 1L), true)
        == null)
      GT_Values.RA.addCannerRecipe(
          aStack,
          ItemList.Cell_Empty.get(1L, new Object[0]),
          GT_OreDictUnificator.get(OrePrefixes.cell, aMaterial, 1L),
          null,
          100,
          1);
    GT_Values.RA.addBoxingRecipe(
        GT_Utility.copyAmount(16L, new Object[] {aStack}),
        ItemList.Crate_Empty.get(1L, new Object[0]),
        GT_OreDictUnificator.get(OrePrefixes.crateGtDust, aMaterial, 1L),
        100,
        8);
    GT_Values.RA.addUnboxingRecipe(
        GT_OreDictUnificator.get(OrePrefixes.crateGtDust, aMaterial, 1L),
        GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 16L),
        ItemList.Crate_Empty.get(1L, new Object[0]),
        800,
        1);
    if (!aMaterial.mBlastFurnaceRequired) {
      GT_RecipeRegistrator.registerReverseFluidSmelting(
          aStack, aMaterial, aPrefix.mMaterialAmount, null);
      if (aMaterial.mSmeltInto.mArcSmeltInto != aMaterial) {
        GT_RecipeRegistrator.registerReverseArcSmelting(
            GT_Utility.copyAmount(1L, new Object[] {aStack}),
            aMaterial,
            aPrefix.mMaterialAmount,
            null,
            null,
            null);
      }
    }

    ItemStack tStack;
    if ((null != (tStack = GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial.mSmeltInto, 1L)))
        && (!aMaterial.contains(SubTag.NO_SMELTING))) {
      if (aMaterial.mBlastFurnaceRequired) {
        GT_ModHandler.removeFurnaceSmelting(aStack);
        GT_Values.RA.addBlastRecipe(
            GT_Utility.copyAmount(1L, new Object[] {aStack}),
            null,
            null,
            null,
            aMaterial.mBlastFurnaceTemp > 1750
                ? GT_OreDictUnificator.get(OrePrefixes.ingotHot, aMaterial.mSmeltInto, tStack, 1L)
                : GT_Utility.copyAmount(1L, new Object[] {tStack}),
            null,
            (int) Math.max(aMaterial.getMass() / 40L, 1L) * aMaterial.mBlastFurnaceTemp,
            120,
            aMaterial.mBlastFurnaceTemp);
        if (aMaterial.mBlastFurnaceTemp <= 1000) {
          GT_ModHandler.addRCBlastFurnaceRecipe(
              GT_Utility.copyAmount(1L, new Object[] {aStack}),
              GT_Utility.copyAmount(1L, new Object[] {tStack}),
              aMaterial.mBlastFurnaceTemp);
        }
      } else {
        GT_ModHandler.addSmeltingRecipe(aStack, tStack);
      }
    } else if (!aMaterial.contains(SubTag.NO_WORKING)) {
      if ((!OrePrefixes.block.isIgnored(aMaterial))
          && (null == GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L))) {
        GT_ModHandler.addCompressionRecipe(
            GT_Utility.copyAmount(9L, new Object[] {aStack}),
            GT_OreDictUnificator.get(OrePrefixes.block, aMaterial, 1L));
      }
      if (((OrePrefixes.block.isIgnored(aMaterial))
              || (null == GT_OreDictUnificator.get(OrePrefixes.block, aMaterial, 1L)))
          && (aMaterial != Materials.GraniteRed)
          && (aMaterial != Materials.GraniteBlack)
          && (aMaterial != Materials.Glass)
          && (aMaterial != Materials.Obsidian)
          && (aMaterial != Materials.Glowstone)
          && (aMaterial != Materials.Paper)) {
        GT_ModHandler.addCompressionRecipe(
            GT_Utility.copyAmount(1L, new Object[] {aStack}),
            GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L));
      }
    }

    if ((aMaterial.mMaterialList.size() > 0) && ((aMaterial.mExtraData & 0x3) != 0)) {
      long tItemAmount = 0L;
      long tCapsuleCount = 0L;
      long tDensityMultiplier =
          aMaterial.getDensity() > 3628800L ? aMaterial.getDensity() / 3628800L : 1L;
      ArrayList<ItemStack> tList = new ArrayList();
      for (MaterialStack tMat : aMaterial.mMaterialList)
        if (tMat.mAmount > 0L) {
          if (tMat.mMaterial == Materials.Air) {
            tStack = ItemList.Cell_Air.get(tMat.mAmount / 2L, new Object[0]);
          } else {
            tStack = GT_OreDictUnificator.get(OrePrefixes.dust, tMat.mMaterial, tMat.mAmount);
            if (tStack == null)
              tStack = GT_OreDictUnificator.get(OrePrefixes.cell, tMat.mMaterial, tMat.mAmount);
          }
          if (tItemAmount + tMat.mAmount * 3628800L
              <= aStack.getMaxStackSize() * aMaterial.getDensity()) {
            tItemAmount += tMat.mAmount * 3628800L;
            if (tStack != null) {
              ItemStack tmp793_791 = tStack;
              tmp793_791.stackSize = ((int) (tmp793_791.stackSize * tDensityMultiplier));
              while ((tStack.stackSize > 64)
                  && (tList.size() < 6)
                  && (tCapsuleCount + GT_ModHandler.getCapsuleCellContainerCount(tStack) * 64
                      <= 64L)) {
                tCapsuleCount += GT_ModHandler.getCapsuleCellContainerCount(tStack) * 64;
                tList.add(GT_Utility.copyAmount(64L, new Object[] {tStack}));
                tStack.stackSize -= 64;
              }
              if ((tStack.stackSize > 0) && (tList.size() < 6)) {
                if (tCapsuleCount
                        + GT_ModHandler.getCapsuleCellContainerCountMultipliedWithStackSize(
                            new ItemStack[] {tStack})
                    <= 64L) {
                  tCapsuleCount +=
                      GT_ModHandler.getCapsuleCellContainerCountMultipliedWithStackSize(
                          new ItemStack[] {tStack});
                  tList.add(tStack);
                }
              }
            }
          }
        }
      tItemAmount =
          (tItemAmount * tDensityMultiplier % aMaterial.getDensity() > 0L ? 1 : 0)
              + tItemAmount * tDensityMultiplier / aMaterial.getDensity();
      if (tList.size() > 0) {
        FluidStack tFluid = null;
        for (int i = 0; i < tList.size(); i++) {
          if ((!ItemList.Cell_Air.isStackEqual(tList.get(i)))
              && ((tFluid = GT_Utility.getFluidForFilledItem((ItemStack) tList.get(i), true))
                  != null)) {
            tFluid.amount *= ((ItemStack) tList.get(i)).stackSize;
            tCapsuleCount -=
                GT_ModHandler.getCapsuleCellContainerCountMultipliedWithStackSize(
                    new ItemStack[] {(ItemStack) tList.get(i)});
            tList.remove(i);
            break;
          }
        }
        if ((aMaterial.mExtraData & 0x1) != 0)
          GT_Values.RA.addElectrolyzerRecipe(
              GT_Utility.copyAmount(tItemAmount, new Object[] {aStack}),
              tCapsuleCount > 0L ? ItemList.Cell_Empty.get(tCapsuleCount, new Object[0]) : null,
              null,
              tFluid,
              (ItemStack) tList.get(0),
              tList.size() < 2 ? null : (ItemStack) tList.get(1),
              tList.size() < 3 ? null : (ItemStack) tList.get(2),
              tList.size() < 4 ? null : (ItemStack) tList.get(3),
              tList.size() < 5 ? null : (ItemStack) tList.get(4),
              tList.size() < 6 ? null : (ItemStack) tList.get(5),
              null,
              (int) Math.max(1L, Math.abs(aMaterial.getProtons() * 2L * tItemAmount)),
              Math.min(4, tList.size()) * 30);
        if ((aMaterial.mExtraData & 0x2) != 0) {
          GT_Values.RA.addCentrifugeRecipe(
              GT_Utility.copyAmount(tItemAmount, new Object[] {aStack}),
              tCapsuleCount > 0L ? ItemList.Cell_Empty.get(tCapsuleCount, new Object[0]) : null,
              null,
              tFluid,
              (ItemStack) tList.get(0),
              tList.size() < 2 ? null : (ItemStack) tList.get(1),
              tList.size() < 3 ? null : (ItemStack) tList.get(2),
              tList.size() < 4 ? null : (ItemStack) tList.get(3),
              tList.size() < 5 ? null : (ItemStack) tList.get(4),
              tList.size() < 6 ? null : (ItemStack) tList.get(5),
              null,
              (int) Math.max(1L, Math.abs(aMaterial.getMass() * 4L * tItemAmount)),
              Math.min(4, tList.size()) * 5);
        }
      }
    }
    if (aMaterial.contains(SubTag.CRYSTALLISABLE)) {
      GT_Values.RA.addAutoclaveRecipe(
          GT_Utility.copyAmount(1L, new Object[] {aStack}),
          Materials.Water.getFluid(200L),
          GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L),
          7000,
          2000,
          24);
      GT_Values.RA.addAutoclaveRecipe(
          GT_Utility.copyAmount(1L, new Object[] {aStack}),
          GT_ModHandler.getDistilledWater(200L),
          GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L),
          9000,
          1500,
          24);
    }

    switch (aMaterial) {
      case _NULL:
        break;
      case Glass:
        GT_ModHandler.addSmeltingRecipe(
            GT_Utility.copyAmount(1L, new Object[] {aStack}),
            new ItemStack(net.minecraft.init.Blocks.glass));
        break;
      case NetherQuartz:
      case Quartz:
      case CertusQuartz:
        if (gregtech.api.GregTech_API.sRecipeFile.get(
            gregtech.api.enums.ConfigCategories.Recipes.disabledrecipes,
            "QuartzDustSmeltingIntoAESilicon",
            true)) GT_ModHandler.removeFurnaceSmelting(aStack);
        break;
      case MeatRaw:
        GT_ModHandler.addSmeltingRecipe(
            GT_Utility.copyAmount(1L, new Object[] {aStack}),
            GT_OreDictUnificator.get(OrePrefixes.dust, Materials.MeatCooked, 1L));
        break;
      case Mercury:
        System.err.println("Quicksilver Dust?, To melt that, you don't even need a Furnace...");
        break;
      case Tetrahedrite:
      case Chalcopyrite:
      case Malachite:
        GT_ModHandler.addSmeltingRecipe(
            GT_Utility.copyAmount(1L, new Object[] {aStack}),
            GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Copper, 6L));
        break;
      case Pentlandite:
        GT_ModHandler.addSmeltingRecipe(
            GT_Utility.copyAmount(1L, new Object[] {aStack}),
            GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Nickel, 6L));
        break;
      case Garnierite:
        GT_ModHandler.addSmeltingRecipe(
            GT_Utility.copyAmount(1L, new Object[] {aStack}),
            GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Nickel, 1L));
        break;
      case Cassiterite:
      case CassiteriteSand:
        GT_ModHandler.addSmeltingRecipe(
            GT_Utility.copyAmount(1L, new Object[] {aStack}),
            GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Tin, 1L));
        break;
      case Magnetite:
      case VanadiumMagnetite:
      case BasalticMineralSand:
      case GraniticMineralSand:
        GT_ModHandler.addSmeltingRecipe(
            GT_Utility.copyAmount(1L, new Object[] {aStack}),
            GT_OreDictUnificator.get(OrePrefixes.nugget, Materials.Iron, 3L));
        break;
      case YellowLimonite:
      case BrownLimonite:
      case BandedIron:
        GT_ModHandler.addSmeltingRecipe(
            GT_Utility.copyAmount(1L, new Object[] {aStack}),
            GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Iron, 1L));
        break;
      case Coal:
        GT_ModHandler.addLiquidTransposerFillRecipe(
            GT_Utility.copyAmount(1L, new Object[] {aStack}),
            Materials.Water.getFluid(125L),
            GT_OreDictUnificator.get(OrePrefixes.dust, Materials.HydratedCoal, 1L),
            125);
        break;
      case HydratedCoal:
        GT_ModHandler.addLiquidTransposerEmptyRecipe(
            GT_Utility.copyAmount(1L, new Object[] {aStack}),
            Materials.Water.getFluid(125L),
            GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 1L),
            125);
        GT_ModHandler.addSmeltingRecipe(
            GT_Utility.copyAmount(1L, new Object[] {aStack}),
            GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Coal, 1L));
        break;
      case Diamond:
        GT_Values.RA.addImplosionRecipe(
            GT_Utility.copyAmount(4L, new Object[] {aStack}),
            32,
            ItemList.IC2_Industrial_Diamond.get(3L, new Object[0]),
            GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 16L));
        break;
      case Opal:
      case Olivine:
      case Emerald:
      case Ruby:
      case Sapphire:
      case GreenSapphire:
      case Topaz:
      case BlueTopaz:
      case Tanzanite:
        GT_Values.RA.addImplosionRecipe(
            GT_Utility.copyAmount(4L, new Object[] {aStack}),
            24,
            GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 3L),
            GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 12L));
        break;
      case FoolsRuby:
      case GarnetRed:
      case GarnetYellow:
      case Jasper:
      case Amber:
      case Monazite:
      case Forcicium:
      case Forcillium:
      case Force:
        GT_Values.RA.addImplosionRecipe(
            GT_Utility.copyAmount(4L, new Object[] {aStack}),
            16,
            GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 3L),
            GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 8L));
    }
  }
Exemplo n.º 5
0
  /**
   * Initializes the internal references to Materials assets.
   *
   * <p>Must be called at least once before the PostProcessor instance is in use. Failure to do so
   * will result in NullPointerExceptions. Calling it additional times shouldn't hurt but shouldn't
   * be necessary either: the asset system refreshes the assets behind the scenes if necessary.
   */
  public void initializeMaterials() {
    // initial renderings
    materials.lightBufferPass = getMaterial("engine:prog.lightBufferPass");

    // pre-post composite
    materials.outline = getMaterial("engine:prog.sobel");
    materials.ssao = getMaterial("engine:prog.ssao");
    materials.ssaoBlurred = getMaterial("engine:prog.ssaoBlur");
    materials.prePostComposite = getMaterial("engine:prog.combine");

    // initial post-processing
    materials.lightShafts =
        getMaterial("engine:prog.lightshaft"); // TODO: rename shader to lightShafts
    materials.initialPost =
        getMaterial("engine:prog.prePost"); // TODO: rename shader to initialPost
    materials.downSampler = getMaterial("engine:prog.down"); // TODO: rename shader to downSampler
    materials.highPass = getMaterial("engine:prog.highp"); // TODO: rename shader to highPass
    materials.blur = getMaterial("engine:prog.blur");
    materials.toneMapping = getMaterial("engine:prog.hdr"); // TODO: rename shader to toneMapping

    // final post-processing
    materials.ocDistortion = getMaterial("engine:prog.ocDistortion");
    materials.finalPost = getMaterial("engine:prog.post"); // TODO: rename shader to finalPost
    materials.debug = getMaterial("engine:prog.debug");
  }