Skip to content

Commit

Permalink
- 上传模型和贴图。
Browse files Browse the repository at this point in the history
- EF 添加 AE 安全终端检查。
- 移除尾部模型。
  • Loading branch information
KasumiNova committed Aug 7, 2024
1 parent f28a29e commit 32725cc
Show file tree
Hide file tree
Showing 165 changed files with 55,603 additions and 38 deletions.
18 changes: 16 additions & 2 deletions src/main/java/github/kasuminova/novaeng/common/CommonProxy.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import appeng.api.AEApi;
import appeng.api.storage.ICellHandler;
import github.kasuminova.mmce.common.integration.ModIntegrationAE2;
import github.kasuminova.novaeng.NovaEngineeringCore;
import github.kasuminova.novaeng.common.adapter.RecipeAdapterExtended;
import github.kasuminova.novaeng.common.container.*;
Expand Down Expand Up @@ -121,8 +122,21 @@ public Object getServerGuiElement(final int ID, final EntityPlayer player, final
case MODULAR_SERVER_ASSEMBLER -> new ContainerModularServerAssembler((TileModularServerAssembler) present, player);
case ESTORAGE_CONTROLLER -> new ContainerEStorageController((EStorageController) present, player);
case SINGULARITY_CORE -> new ContainerSingularityCore((github.kasuminova.novaeng.common.tile.machine.SingularityCore) present, player);
case EFABRICATOR_CONTROLLER -> new ContainerEFabricatorController((EFabricatorController) present, player);
case EFABRICATOR_PATTERN_BUS -> new ContainerEFabricatorPatternBus((EFabricatorPatternBus) present, player);
case EFABRICATOR_CONTROLLER -> {
EFabricatorController efController = (EFabricatorController) present;
if (efController.getChannel() != null && ModIntegrationAE2.securityCheck(player, efController.getChannel().getProxy())) {
yield null;
}
yield new ContainerEFabricatorController(efController, player);
}
case EFABRICATOR_PATTERN_BUS -> {
EFabricatorPatternBus efPatternBus = (EFabricatorPatternBus) present;
EFabricatorController efController = efPatternBus.getController();
if (efController != null && efController.getChannel() != null && ModIntegrationAE2.securityCheck(player, efController.getChannel().getProxy())) {
yield null;
}
yield new ContainerEFabricatorPatternBus(efPatternBus, player);
}
};
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,29 +27,29 @@ public class BlockEFabricatorParallelProc extends BlockEFabricatorPart {

public static final BlockEFabricatorParallelProc L4 = new BlockEFabricatorParallelProc("l4",
Arrays.asList(
new Modifier(EFabricatorParallelProc.Type.ADD, 8, false)
new Modifier(EFabricatorParallelProc.Type.ADD, 16, false)
),
Arrays.asList(
new Modifier(EFabricatorParallelProc.Type.ADD, 12, false),
new Modifier(EFabricatorParallelProc.Type.ADD, 20, false),
new Modifier(EFabricatorParallelProc.Type.MULTIPLY, 0.99, true)
)
);
public static final BlockEFabricatorParallelProc L6 = new BlockEFabricatorParallelProc("l6",
Arrays.asList(
new Modifier(EFabricatorParallelProc.Type.ADD, 32, false)
new Modifier(EFabricatorParallelProc.Type.ADD, 48, false)
),
Arrays.asList(
new Modifier(EFabricatorParallelProc.Type.ADD, 48, false),
new Modifier(EFabricatorParallelProc.Type.MULTIPLY, 0.985, true)
new Modifier(EFabricatorParallelProc.Type.ADD, 60, false),
new Modifier(EFabricatorParallelProc.Type.MULTIPLY, 0.98, true)
)
);
public static final BlockEFabricatorParallelProc L9 = new BlockEFabricatorParallelProc("l9",
Arrays.asList(
new Modifier(EFabricatorParallelProc.Type.ADD, 128, false)
new Modifier(EFabricatorParallelProc.Type.ADD, 144, false)
),
Arrays.asList(
new Modifier(EFabricatorParallelProc.Type.ADD, 192, false),
new Modifier(EFabricatorParallelProc.Type.MULTIPLY, 0.98, true)
new Modifier(EFabricatorParallelProc.Type.ADD, 180, false),
new Modifier(EFabricatorParallelProc.Type.MULTIPLY, 0.97, true)
)
);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,12 @@

import javax.annotation.Nonnull;

/**
* TODO: 朝向烂了。四向模型,定制给了个顶部朝向的模型。
*/
@SuppressWarnings("deprecation")
public class BlockEFabricatorVent extends BlockEFabricator {

public static final BlockEFabricatorVent INSTANCE = new BlockEFabricatorVent();

protected BlockEFabricatorVent() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@

public class ContainerEFabricatorPatternBus extends AEBaseContainer {

public static final int ROWS = 6;
public static final int COLS = 12;

private final EFabricatorPatternBus owner;

public ContainerEFabricatorPatternBus(final EFabricatorPatternBus owner, final EntityPlayer player) {
Expand All @@ -17,10 +20,10 @@ public ContainerEFabricatorPatternBus(final EFabricatorPatternBus owner, final E
this.bindPlayerInventory(getInventoryPlayer(), 27, 150);

AppEngInternalInventory patterns = owner.getPatterns();
for (int row = 0; row < 6; row++) {
for (int col = 0; col < 12; col++) {
for (int row = 0; row < ROWS; row++) {
for (int col = 0; col < COLS; col++) {
this.addSlotToContainer(new SlotRestrictedInput(SlotRestrictedInput.PlacableItemType.ENCODED_PATTERN, patterns,
(row * 9) + col, 8 + (col * 18), 28 + (row * 18), getInventoryPlayer()));
(row * COLS) + col, 8 + (col * 18), 28 + (row * 18), getInventoryPlayer()));
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,9 +74,6 @@ public static void registerBlocks() {
prepareItemBlockRegister(registerBlock(BlockEStorageEnergyCell.L9));
prepareItemBlockRegister(registerBlock(BlockEStorageCellDrive.INSTANCE));
prepareItemBlockRegister(new ItemBlockME(registerBlock(BlockEStorageMEChannel.INSTANCE)));
// prepareItemBlockRegister(registerBlock(BlockEStorageTail.L4));
// prepareItemBlockRegister(registerBlock(BlockEStorageTail.L6));
// prepareItemBlockRegister(registerBlock(BlockEStorageTail.L9));
prepareItemBlockRegister(registerBlock(BlockEStorageVent.INSTANCE));
prepareItemBlockRegister(registerBlock(BlockEStorageCasing.INSTANCE));

Expand All @@ -88,9 +85,10 @@ public static void registerBlocks() {
prepareItemBlockRegister(new ItemEFabricatorParallelProc(registerBlock(BlockEFabricatorParallelProc.L6)));
prepareItemBlockRegister(new ItemEFabricatorParallelProc(registerBlock(BlockEFabricatorParallelProc.L9)));
prepareItemBlockRegister(new ItemEFabricatorMEChannel(registerBlock(BlockEFabricatorMEChannel.INSTANCE)));
prepareItemBlockRegister(registerBlock(BlockEFabricatorTail.L4));
prepareItemBlockRegister(registerBlock(BlockEFabricatorTail.L6));
prepareItemBlockRegister(registerBlock(BlockEFabricatorTail.L9));
// 烂了,模型作者自己都修不好。
// prepareItemBlockRegister(registerBlock(BlockEFabricatorTail.L4));
// prepareItemBlockRegister(registerBlock(BlockEFabricatorTail.L6));
// prepareItemBlockRegister(registerBlock(BlockEFabricatorTail.L9));
prepareItemBlockRegister(new ItemEFabricatorPatternBus(registerBlock(BlockEFabricatorPatternBus.INSTANCE)));
prepareItemBlockRegister(new ItemEFabricatorWorker(registerBlock(BlockEFabricatorWorker.INSTANCE)));
prepareItemBlockRegister(registerBlock(BlockEFabricatorVent.INSTANCE));
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,7 @@
import net.minecraftforge.fml.common.FMLCommonHandler;
import net.minecraftforge.fml.common.network.NetworkRegistry;

import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Deque;
import java.util.List;
import java.util.*;

public class EFabricatorWorker extends EFabricatorPart {

Expand Down Expand Up @@ -198,6 +195,7 @@ public static class CraftingQueue {
private static final String STACK_SET_TAG = "SS";
private static final String STACK_SET_TAG_ID_PREFIX = "S#";
private static final String STACK_SET_SIZE_TAG = "SSS";
private static final String REPEAT_TAG = "R";

private final Deque<EFabricatorWorker.CraftWork> queue = new ArrayDeque<>();

Expand Down Expand Up @@ -234,7 +232,23 @@ public NBTTagCompound writeToNBT(final NBTTagCompound nbt) {

// Queue
NBTTagList queueTag = new NBTTagList();
queue.forEach(craftWork -> queueTag.appendTag(craftWork.writeToNBT(stackSet)));
CraftWork prev = null;
int repeat = 0;
for (CraftWork craftWork : queue) {
if (prev != null && prev.equals(craftWork)) {
repeat++;
continue;
}
if (repeat > 0) {
queueTag.getCompoundTagAt(queueTag.tagCount() - 1).setShort(REPEAT_TAG, (short) repeat);
repeat = 0;
}
queueTag.appendTag(craftWork.writeToNBT(stackSet));
prev = craftWork;
}
if (repeat > 0) {
queueTag.getCompoundTagAt(queueTag.tagCount() - 1).setShort(REPEAT_TAG, (short) repeat);
}
nbt.setTag(QUEUE_TAG, queueTag);

// StackSet
Expand Down Expand Up @@ -264,7 +278,13 @@ public void readFromNBT(final NBTTagCompound nbt) {
// Queue
NBTTagList queueTag = nbt.getTagList(QUEUE_TAG, Constants.NBT.TAG_COMPOUND);
for (int i = 0; i < queueTag.tagCount(); i++) {
queue.add(new EFabricatorWorker.CraftWork(queueTag.getCompoundTagAt(i), stackSet));
NBTTagCompound tagAt = queueTag.getCompoundTagAt(i);
CraftWork work = new CraftWork(tagAt, stackSet);
queue.add(work);
short repeat = tagAt.getShort(REPEAT_TAG);
for (short r = 0; r < repeat; r++) {
queue.add(work.copy());
}
}
}

Expand Down Expand Up @@ -302,12 +322,11 @@ public NBTTagCompound writeToNBT(final List<ItemStack> stackSet) {
for (int remainIdx = 0; remainIdx < remaining.length; remainIdx++) {
final ItemStack remain = remaining[remainIdx];
if (remain.isEmpty()) {
// nbt.setShort("R#" + remainIdx, (short) -1);
continue;
}

for (int setIdx = 0; setIdx < stackSet.size(); setIdx++) {
if (ItemUtils.matchStacks(remain, stackSet.get(setIdx))) {
if (matchStacksStrict(remain, stackSet.get(setIdx))) {
nbt.setShort(REMAIN_TAG_PREFIX + remainIdx, (short) setIdx);
continue remain;
}
Expand All @@ -319,7 +338,7 @@ public NBTTagCompound writeToNBT(final List<ItemStack> stackSet) {

// Output
for (int setIdx = 0; setIdx < stackSet.size(); setIdx++) {
if (ItemUtils.matchStacks(output, stackSet.get(setIdx))) {
if (matchStacksStrict(output, stackSet.get(setIdx))) {
nbt.setShort(OUTPUT_TAG, (short) setIdx);
return nbt;
}
Expand All @@ -330,6 +349,28 @@ public NBTTagCompound writeToNBT(final List<ItemStack> stackSet) {
return nbt;
}

public CraftWork copy() {
ItemStack[] remaining = Arrays.stream(this.remaining).map(ItemStack::copy).toArray(ItemStack[]::new);
return new CraftWork(remaining, output.copy());
}

@Override
public boolean equals(final Object obj) {
if (obj instanceof final CraftWork craftWork) {
for (int i = 0; i < remaining.length; i++) {
if (!matchStacksStrict(remaining[i], craftWork.remaining[i])) {
return false;
}
}
return matchStacksStrict(output, craftWork.output);
}
return false;
}

private static boolean matchStacksStrict(final ItemStack stack1, final ItemStack stack2) {
return ItemUtils.matchStacks(stack1, stack2) && stack1.getCount() == stack2.getCount();
}

public ItemStack[] getRemaining() {
return remaining;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"forge_marker": 1,
"defaults": {
"model": "novaeng_core:estorage_casing"
"model": "novaeng_core:module_molecular_assembly_matrix/efabricator_casing"
},
"variants": {
"normal": {
"model": "novaeng_core:estorage_casing"
"model": "novaeng_core:module_molecular_assembly_matrix/efabricator_casing"
},
"inventory": [
{
Expand Down
Loading

0 comments on commit 32725cc

Please sign in to comment.