Skip to content

Commit 34d62b4

Browse files
committed
reconstruct other machines
1 parent 43d0fc9 commit 34d62b4

File tree

8 files changed

+107
-89
lines changed

8 files changed

+107
-89
lines changed

src/main/java/cn/qy/MomoTech/Items/Machines/BasicMachine/InfMachine/Plant.java

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ public int[] getOutputSlots() {
8787
return new int[]{2, 3, 4, 5, 6, 7, 8};
8888
}
8989

90-
public void pushIt(Material[] it, BlockMenu b) {
90+
public void pushIt(BlockMenu b,Material... it) {
9191
for (Material i : it) {
9292
b.pushItem(new ItemStack(i, 32), getOutputSlots());
9393
}
@@ -98,103 +98,103 @@ protected boolean findNextRecipe(BlockMenu inv) {
9898
if (inv.getItemInSlot(0) == null) return false;
9999
ItemStack it = inv.getItemInSlot(0);
100100
if (it.getType()==Material.POTATO) {
101-
pushIt(new Material[]{Material.POTATO, Material.POISONOUS_POTATO}, inv);
101+
pushIt(inv,Material.POTATO, Material.POISONOUS_POTATO);
102102
return true;
103103
}
104104
else if (((it.getType()==Material.CARROT))) {
105-
pushIt(new Material[]{Material.CARROT}, inv);
105+
pushIt(inv,Material.CARROT);
106106
return true;
107107
}
108108
else if (((it.getType()==Material.PUMPKIN_SEEDS))) {
109-
pushIt(new Material[]{Material.PUMPKIN, Material.PUMPKIN_SEEDS}, inv);
109+
pushIt(inv,Material.PUMPKIN, Material.PUMPKIN_SEEDS);
110110
return true;
111111
}
112112
else if (((it.getType()==Material.MELON_SEEDS))) {
113-
pushIt(new Material[]{Material.MELON, Material.MELON_SEEDS, Material.MELON_SLICE}, inv);
113+
pushIt(inv,Material.MELON, Material.MELON_SEEDS, Material.MELON_SLICE);
114114
return true;
115115
}
116116
else if (((it.getType()==Material.BEETROOT_SEEDS))) {
117-
pushIt(new Material[]{Material.BEETROOT, Material.BEETROOT_SEEDS}, inv);
117+
pushIt(inv,Material.BEETROOT, Material.BEETROOT_SEEDS);
118118
return true;
119119
}
120120
else if (((it.getType()==Material.WHEAT_SEEDS))) {
121-
pushIt(new Material[]{Material.WHEAT, Material.WHEAT_SEEDS}, inv);
121+
pushIt(inv,Material.WHEAT, Material.WHEAT_SEEDS);
122122
return true;
123123
}
124124
else if (((it.getType()==Material.BROWN_MUSHROOM))) {
125-
pushIt(new Material[]{Material.BROWN_MUSHROOM, Material.BROWN_MUSHROOM_BLOCK, Material.MUSHROOM_STEM}, inv);
125+
pushIt(inv,Material.BROWN_MUSHROOM, Material.BROWN_MUSHROOM_BLOCK, Material.MUSHROOM_STEM);
126126
return true;
127127
}
128128
else if (((it.getType()==Material.RED_MUSHROOM))) {
129-
pushIt(new Material[]{Material.RED_MUSHROOM_BLOCK, Material.RED_MUSHROOM, Material.MUSHROOM_STEM}, inv);
129+
pushIt(inv,Material.RED_MUSHROOM_BLOCK, Material.RED_MUSHROOM, Material.MUSHROOM_STEM);
130130
return true;
131131
}
132132
else if (((it.getType()==Material.BAMBOO))) {
133-
pushIt(new Material[]{Material.BAMBOO}, inv);
133+
pushIt(inv,Material.BAMBOO);
134134
return true;
135135
}
136136
else if (((it.getType()==Material.DEAD_BUSH))) {
137-
pushIt(new Material[]{Material.DEAD_BUSH, Material.STICK}, inv);
137+
pushIt(inv,Material.DEAD_BUSH, Material.STICK);
138138
return true;
139139
}
140140
else if (((it.getType()==Material.COCOA_BEANS))) {
141-
pushIt(new Material[]{Material.COCOA_BEANS}, inv);
141+
pushIt(inv,Material.COCOA_BEANS);
142142
return true;
143143
}
144144
else if (((it.getType()==Material.SUGAR_CANE))) {
145-
pushIt(new Material[]{Material.SUGAR_CANE}, inv);
145+
pushIt(inv,Material.SUGAR_CANE);
146146
return true;
147147
}
148148
else if (((it.getType()==Material.CACTUS))) {
149-
pushIt(new Material[]{Material.CACTUS}, inv);
149+
pushIt(inv,Material.CACTUS);
150150
return true;
151151
}
152152
else if (((it.getType()==Material.NETHER_WART))) {
153-
pushIt(new Material[]{Material.NETHER_WART}, inv);
153+
pushIt(inv,Material.NETHER_WART);
154154
return true;
155155
}
156156
else if (((it.getType()==Material.WITHER_ROSE))) {
157-
pushIt(new Material[]{Material.WITHER_ROSE}, inv);
157+
pushIt(inv,Material.WITHER_ROSE);
158158
return true;
159159
}
160160
else if (((it.getType()==Material.TORCHFLOWER_SEEDS))) {
161-
pushIt(new Material[]{Material.TORCHFLOWER, Material.TORCHFLOWER_SEEDS}, inv);
161+
pushIt(inv,Material.TORCHFLOWER, Material.TORCHFLOWER_SEEDS);
162162
return true;
163163
}
164164
else if (((it.getType()==Material.LILY_PAD))) {
165-
pushIt(new Material[]{Material.LILY_PAD}, inv);
165+
pushIt(inv,Material.LILY_PAD);
166166
return true;
167167
}
168168
else if (((it.getType()==Material.VINE))) {
169-
pushIt(new Material[]{Material.VINE}, inv);
169+
pushIt(inv,Material.VINE);
170170
return true;
171171
}
172172
else if (((it.getType()==Material.GLOW_LICHEN))) {
173-
pushIt(new Material[]{Material.GLOW_LICHEN}, inv);
173+
pushIt(inv,Material.GLOW_LICHEN);
174174
return true;
175175
}
176176
else if (((it.getType()==Material.GRASS))) {
177-
pushIt(new Material[]{Material.GRASS}, inv);
177+
pushIt(inv,Material.GRASS);
178178
return true;
179179
}
180180
else if (((it.getType()==Material.SWEET_BERRIES))) {
181-
pushIt(new Material[]{Material.SWEET_BERRIES}, inv);
181+
pushIt(inv,Material.SWEET_BERRIES);
182182
return true;
183183
}
184184
else if (((it.getType()==Material.GLOW_BERRIES))) {
185-
pushIt(new Material[]{Material.GLOW_BERRIES}, inv);
185+
pushIt(inv,Material.GLOW_BERRIES);
186186
return true;
187187
}
188188
else if (((it.getType()==Material.SEAGRASS))) {
189-
pushIt(new Material[]{Material.SEAGRASS}, inv);
189+
pushIt(inv,Material.SEAGRASS);
190190
return true;
191191
}
192192
else if (((it.getType()==Material.KELP))) {
193-
pushIt(new Material[]{Material.KELP}, inv);
193+
pushIt(inv,Material.KELP);
194194
return true;
195195
}
196196
else if (((it.getType()==Material.SEA_PICKLE))) {
197-
pushIt(new Material[]{Material.SEA_PICKLE}, inv);
197+
pushIt(inv,Material.SEA_PICKLE);
198198
return true;
199199
}
200200
return false;

src/main/java/cn/qy/MomoTech/Items/Machines/BasicMachine/InfMachine/SaltGenerator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ public int[] getOutputSlots() {
5959

6060
@Override
6161
protected void findNextRecipe(BlockMenu inv) {
62-
inv.pushItem(new SlimefunItemStack(SlimefunItems.SALT, Maths.GetRandom(64)), getOutputSlots());
62+
inv.pushItem(new CustomItemStack(SlimefunItems.SALT, Maths.GetRandom(64)), getOutputSlots());
6363
}
6464

6565
@NotNull

src/main/java/cn/qy/MomoTech/Items/Machines/BasicMachine/InfMachine/Wood.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ public int[] getOutputSlots() {
7272
return new int[]{2, 3, 4, 5, 6, 7, 8};
7373
}
7474

75-
public void pushIt(Material[] it, BlockMenu b) {
75+
public void pushIt( BlockMenu b,Material... it) {
7676
for (Material i : it) {
7777
b.pushItem(new ItemStack(i, 32), getOutputSlots());
7878
}
@@ -83,34 +83,34 @@ protected boolean findNextRecipe(BlockMenu inv) {
8383
if (inv.getItemInSlot(0) == null) return false;
8484
ItemStack it = inv.getItemInSlot(0);
8585
if (((it.getType()==Material.OAK_SAPLING))) {
86-
pushIt(new Material[]{Material.OAK_LEAVES, Material.OAK_LOG, Material.OAK_SAPLING, Material.APPLE, Material.STICK}, inv);
86+
pushIt(inv,Material.OAK_LEAVES, Material.OAK_LOG, Material.OAK_SAPLING, Material.APPLE, Material.STICK);
8787
return true;
8888
} else if (((it.getType()==Material.DARK_OAK_SAPLING))) {
89-
pushIt(new Material[]{Material.DARK_OAK_LEAVES, Material.DARK_OAK_LOG, Material.DARK_OAK_SAPLING, Material.APPLE, Material.STICK}, inv);
89+
pushIt(inv,Material.DARK_OAK_LEAVES, Material.DARK_OAK_LOG, Material.DARK_OAK_SAPLING, Material.APPLE, Material.STICK);
9090
return true;
9191
} else if (((it.getType()==Material.SPRUCE_SAPLING))) {
92-
pushIt(new Material[]{Material.SPRUCE_LEAVES, Material.SPRUCE_LOG, Material.SPRUCE_SAPLING, Material.STICK}, inv);
92+
pushIt(inv,Material.SPRUCE_LEAVES, Material.SPRUCE_LOG, Material.SPRUCE_SAPLING, Material.STICK);
9393
return true;
9494
} else if (((it.getType()==Material.CHERRY_SAPLING))) {
95-
pushIt(new Material[]{Material.CHERRY_LEAVES, Material.CHERRY_LOG, Material.CHERRY_SAPLING, Material.STICK}, inv);
95+
pushIt(inv,Material.CHERRY_LEAVES, Material.CHERRY_LOG, Material.CHERRY_SAPLING, Material.STICK);
9696
return true;
9797
} else if (((it.getType()==Material.ACACIA_SAPLING))) {
98-
pushIt(new Material[]{Material.ACACIA_LEAVES, Material.ACACIA_LOG, Material.ACACIA_SAPLING, Material.STICK}, inv);
98+
pushIt(inv,Material.ACACIA_LEAVES, Material.ACACIA_LOG, Material.ACACIA_SAPLING, Material.STICK);
9999
return true;
100100
} else if (((it.getType()==Material.MANGROVE_PROPAGULE))) {
101-
pushIt(new Material[]{Material.MANGROVE_LEAVES, Material.MANGROVE_LOG, Material.MANGROVE_PROPAGULE, Material.STICK}, inv);
101+
pushIt(inv,Material.MANGROVE_LEAVES, Material.MANGROVE_LOG, Material.MANGROVE_PROPAGULE, Material.STICK);
102102
return true;
103103
} else if (((it.getType()==Material.JUNGLE_SAPLING))) {
104-
pushIt(new Material[]{Material.JUNGLE_LEAVES, Material.JUNGLE_LOG, Material.JUNGLE_SAPLING, Material.COCOA_BEANS, Material.STICK}, inv);
104+
pushIt(inv,Material.JUNGLE_LEAVES, Material.JUNGLE_LOG, Material.JUNGLE_SAPLING, Material.COCOA_BEANS, Material.STICK);
105105
return true;
106106
} else if (((it.getType()==Material.BIRCH_SAPLING))) {
107-
pushIt(new Material[]{Material.BIRCH_LEAVES, Material.BIRCH_LOG, Material.BIRCH_SAPLING, Material.APPLE, Material.STICK}, inv);
107+
pushIt(inv,Material.BIRCH_LEAVES, Material.BIRCH_LOG, Material.BIRCH_SAPLING, Material.APPLE, Material.STICK);
108108
return true;
109109
} else if (((it.getType()==Material.WARPED_FUNGUS))) {
110-
pushIt(new Material[]{Material.WARPED_STEM, Material.WARPED_WART_BLOCK, Material.WARPED_HYPHAE, Material.SHROOMLIGHT}, inv);
110+
pushIt(inv,Material.WARPED_STEM, Material.WARPED_WART_BLOCK, Material.WARPED_HYPHAE, Material.SHROOMLIGHT);
111111
return true;
112112
} else if (((it.getType()==Material.CRIMSON_FUNGUS))) {
113-
pushIt(new Material[]{Material.CRIMSON_STEM, Material.NETHER_WART_BLOCK, Material.CRIMSON_HYPHAE, Material.SHROOMLIGHT}, inv);
113+
pushIt(inv,Material.CRIMSON_STEM, Material.NETHER_WART_BLOCK, Material.CRIMSON_HYPHAE, Material.SHROOMLIGHT);
114114
return true;
115115
}
116116
return false;

src/main/java/cn/qy/MomoTech/Items/Machines/BasicMachine/Machine/CreativeItemGenerator.java

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import io.github.thebusybiscuit.slimefun4.utils.SlimefunUtils;
1212
import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu;
1313
import org.bukkit.Material;
14+
import org.bukkit.entity.Item;
1415
import org.bukkit.inventory.ItemStack;
1516
import org.jetbrains.annotations.NotNull;
1617

@@ -54,36 +55,35 @@ public int[] getInputSlots() {
5455
public int[] getOutputSlots() {
5556
return new int[]{31};
5657
}
57-
58+
public ItemStack outCreative1=new ItemStack(MomotechItem.creative_item);
59+
public ItemStack outCreative2=new ItemStack(MomotechItem.creative_item_I);
5860
@Override
5961
protected void findNextRecipe(BlockMenu inv) {
60-
for (int i : getInputSlots()) if (inv.getItemInSlot(i) == null) return;
61-
if (Utils.checkOutput(inv, getOutputSlots())) return;
62+
int[] inputSlots=getInputSlots();
63+
int[] amount=new int[inputSlots.length];
64+
for(int i=0;i<amount.length;i++){
65+
ItemStack stack=inv.getItemInSlot(inputSlots[i]);
66+
if(stack==null)return;
67+
else amount[i]=stack.getAmount();
68+
}
69+
for(int i=0;i<amount.length;i++){
70+
inv.getItemInSlot(inputSlots[i]).setAmount(0);
71+
}
6272
ItemStack check;
63-
boolean is0=false;
64-
if (inv.getItemInSlot(0).getAmount() > inv.getItemInSlot(1).getAmount())
65-
is0= false;
66-
else if (inv.getItemInSlot(0).getAmount() < inv.getItemInSlot(1).getAmount())
67-
is0 = true;
68-
else {
69-
for (int k : getInputSlots())
70-
inv.consumeItem(k, inv.getItemInSlot(k).getAmount());
73+
if(amount[0]==amount[1]){
7174
return;
7275
}
76+
boolean is0= amount[0]<amount[1];
7377
for (int i = 0; i <= 26; i += 9) {
74-
for (int j = i + 1; j <= i + 8; j++) {
75-
if (( !is0&&inv.getItemInSlot(j).getAmount() > inv.getItemInSlot(j - 1).getAmount() )
76-
|| (is0&&inv.getItemInSlot(j).getAmount() < inv.getItemInSlot(j - 1).getAmount())
77-
|| inv.getItemInSlot(j).getAmount() == inv.getItemInSlot(j - 1).getAmount()) {
78-
for (int k : getInputSlots())
79-
inv.consumeItem(k, inv.getItemInSlot(k).getAmount());
78+
for (int j = i ; j < i + 8; j++) {
79+
if (( (!is0)&&amount[j+1] > amount[j] )
80+
|| (is0&&amount[j+1] < amount[j])
81+
|| amount[j+1] == amount[j]) {
8082
return;
8183
}
8284
}
8385
}
84-
for (int k : getInputSlots())
85-
inv.consumeItem(k, inv.getItemInSlot(k).getAmount());
86-
inv.pushItem(is0?MomotechItem.creative_item.clone():MomotechItem.creative_item_I.clone(), getOutputSlots());
86+
inv.pushItem(is0?outCreative1.clone():outCreative2.clone(), getOutputSlots());
8787
}
8888

8989
@NotNull

src/main/java/cn/qy/MomoTech/Items/Machines/BasicMachine/Machine/OpenBoxItem.java

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,12 @@
22

33
import cn.qy.MomoTech.GUI.AbstractGUI;
44
import cn.qy.MomoTech.Items.MomotechItem;
5+
import cn.qy.MomoTech.utils.MachineUtils;
56
import io.github.thebusybiscuit.slimefun4.api.items.ItemGroup;
67
import io.github.thebusybiscuit.slimefun4.api.items.SlimefunItemStack;
78
import io.github.thebusybiscuit.slimefun4.api.recipes.RecipeType;
89
import io.github.thebusybiscuit.slimefun4.core.attributes.RecipeDisplayItem;
10+
import io.github.thebusybiscuit.slimefun4.libraries.dough.items.CustomItemStack;
911
import io.github.thebusybiscuit.slimefun4.utils.SlimefunUtils;
1012
import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu;
1113
import org.bukkit.inventory.ItemStack;
@@ -49,15 +51,16 @@ public int[] getInputSlots() {
4951
public int[] getOutputSlots() {
5052
return new int[]{7};
5153
}
52-
54+
ItemStack output=new CustomItemStack(MomotechItem.quantum1_, 4);
5355
@Override
5456
protected void findNextRecipe(BlockMenu inv) {
55-
if (inv.getItemInSlot(1) == null) return;
56-
if (inv.getItemInSlot(7) != null) return;
57-
if (SlimefunUtils.isItemSimilar(inv.getItemInSlot(1), MomotechItem.box_of_quantum, true, false)) {
58-
inv.consumeItem(1, 1);
59-
inv.pushItem(new SlimefunItemStack(MomotechItem.quantum1_, 4), getOutputSlots());
60-
}
57+
MachineUtils.simpleNullonlyProcessor(inv,getInputSlots(),getOutputSlots(),MomotechItem.box_of_quantum,output);
58+
// if (inv.getItemInSlot(1) == null) return;
59+
// if (inv.getItemInSlot(7) != null) return;
60+
// if (SlimefunUtils.isItemSimilar(inv.getItemInSlot(1), MomotechItem.box_of_quantum, true, false)) {
61+
// inv.consumeItem(1, 1);
62+
// inv.pushItem(new SlimefunItemStack(MomotechItem.quantum1_, 4), getOutputSlots());
63+
// }
6164
}
6265

6366
@NotNull

src/main/java/cn/qy/MomoTech/Items/Machines/BasicMachine/Machine/OreCollector.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import cn.qy.MomoTech.GUI.AbstractGUI;
44
import cn.qy.MomoTech.Items.MomotechItem;
5+
import cn.qy.MomoTech.Items.RandomizedItemStack;
56
import cn.qy.MomoTech.utils.Utils;
67
import io.github.thebusybiscuit.slimefun4.api.items.ItemGroup;
78
import io.github.thebusybiscuit.slimefun4.api.items.SlimefunItemStack;
@@ -16,6 +17,7 @@
1617
import java.util.ArrayList;
1718
import java.util.List;
1819
import java.util.Random;
20+
import java.util.stream.IntStream;
1921

2022
public class OreCollector extends AbstractGUI implements RecipeDisplayItem {
2123
public OreCollector(ItemGroup itemGroup, String id, ItemStack it, RecipeType recipeType, ItemStack[] recipe) {
@@ -55,11 +57,10 @@ public int[] getOutputSlots() {
5557
return new int[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26};
5658
}
5759
Random r = new Random();
60+
RandomizedItemStack output=new RandomizedItemStack(4, IntStream.range(0,9).mapToObj(i->MomotechItem.mineral[i][2]).toArray(ItemStack[]::new));
5861
@Override
5962
protected void findNextRecipe(BlockMenu inv) {
60-
if (Utils.checkOutput(inv, getOutputSlots())) return;
61-
int j = Math.abs(r.nextInt() % 9);
62-
inv.pushItem(new SlimefunItemStack(MomotechItem.mineral[j][2], 4), getOutputSlots());
63+
inv.pushItem(output.clone(), getOutputSlots());
6364
}
6465

6566
@NotNull

src/main/java/cn/qy/MomoTech/Items/RandomizedItemStack.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public class RandomizedItemStack extends ItemStack {
1414
public RandomizedItemStack(ItemStack... itemStacks) {
1515
super(Material.AIR);
1616
Validate.notEmpty(itemStacks);
17-
this.items = itemStacks;
17+
this.items = Arrays.stream(itemStacks).map(ItemStack::new).toArray(ItemStack[]::new);
1818
}
1919
public ItemStack[] getItemStacks() {
2020
ItemStack[] it=new ItemStack[items.length];
@@ -26,7 +26,7 @@ public ItemStack[] getItemStacks() {
2626
public RandomizedItemStack(int num,ItemStack... itemStacks) {
2727
super(Material.AIR);
2828
Validate.notEmpty(itemStacks);
29-
this.items = Arrays.stream(itemStacks).map(ItemStack::clone).peek(i->i.setAmount(num)).toArray(ItemStack[]::new);
29+
this.items = Arrays.stream(itemStacks).map(ItemStack::new).peek(i->i.setAmount(num)).toArray(ItemStack[]::new);
3030

3131
}
3232
public ItemStack clone(){

0 commit comments

Comments
 (0)