Skip to content

Commit d857bb5

Browse files
committed
兼容Botaniverse
1 parent 814a88d commit d857bb5

File tree

13 files changed

+109
-49
lines changed

13 files changed

+109
-49
lines changed

.github/workflows/build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ jobs:
99

1010
steps:
1111
- uses: actions/checkout@v2
12-
- name: Set up JDK 1.8
12+
- name: Set up JDK 17
1313
uses: actions/setup-java@v2
1414
with:
1515
distribution: 'adopt'

build.gradle

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,10 @@ repositories {
163163
excludeGroup("net.minecraftforge") // missing the `universal` artefact
164164
}
165165
}
166+
maven {
167+
name = "Zeitheron Maven"
168+
url = "https://maven.zeith.org"
169+
}
166170
}
167171

168172
dependencies {
@@ -242,6 +246,9 @@ dependencies {
242246
implementation(rfg.deobf("curse.maven:draconic-evolution-223565:3431261"))
243247
implementation(rfg.deobf("curse.maven:packagedauto-308380:6932932"))
244248
implementation(rfg.deobf("curse.maven:ender-utilities-224320:2977010"))
249+
250+
runtimeOnly("org.zeith.HammerLib:HammerLib-1.12.2:12.2.58")
251+
implementation(rfg.deobf("curse.maven:botaniverse-944656:4945200"))
245252
}
246253

247254
apply from: 'gradle/scripts/dependencies.gradle'

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ show_testing_output = false
1616

1717
# Mod Information
1818
# HIGHLY RECOMMEND complying with SemVer for mod_version: https://semver.org/
19-
mod_version = 1.7.9
19+
mod_version = 1.7.10
2020
root_package = com.circulation
2121
mod_id = random_complement
2222
mod_name = RandomComplement

src/main/java/com/circulation/random_complement/common/handler/CraftingUnitHandler.java

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@
1717
import net.minecraftforge.fml.common.Loader;
1818
import net.minecraftforge.fml.common.Optional;
1919

20-
@SuppressWarnings("OptionalGetWithoutIsPresent")
20+
import java.util.NoSuchElementException;
21+
2122
public class CraftingUnitHandler {
2223

2324
private static final Object2ReferenceMap<SimpleItem, BlockCraftingUnit> CraftingUnitItemMap = new Object2ReferenceOpenHashMap<>();
@@ -76,22 +77,22 @@ private static void registerAE() {
7677
var def = AEApi.instance().definitions();
7778
var materials = def.materials();
7879
var blocks = def.blocks();
79-
addMatch(materials.cell1kPart().maybeStack(1).get(), blocks.craftingStorage1k().maybeBlock().get());
80-
addMatch(materials.cell4kPart().maybeStack(1).get(), blocks.craftingStorage4k().maybeBlock().get());
81-
addMatch(materials.cell16kPart().maybeStack(1).get(), blocks.craftingStorage16k().maybeBlock().get());
82-
addMatch(materials.cell64kPart().maybeStack(1).get(), blocks.craftingStorage64k().maybeBlock().get());
83-
addMatch(materials.engProcessor().maybeStack(1).get(), blocks.craftingAccelerator().maybeBlock().get());
80+
addMatch(materials.cell1kPart().maybeStack(1).orElse(ItemStack.EMPTY), blocks.craftingStorage1k().maybeBlock().orElseThrow(() -> new NoSuchElementException("Block not registered")));
81+
addMatch(materials.cell4kPart().maybeStack(1).orElse(ItemStack.EMPTY), blocks.craftingStorage4k().maybeBlock().orElseThrow(() -> new NoSuchElementException("Block not registered")));
82+
addMatch(materials.cell16kPart().maybeStack(1).orElse(ItemStack.EMPTY), blocks.craftingStorage16k().maybeBlock().orElseThrow(() -> new NoSuchElementException("Block not registered")));
83+
addMatch(materials.cell64kPart().maybeStack(1).orElse(ItemStack.EMPTY), blocks.craftingStorage64k().maybeBlock().orElseThrow(() -> new NoSuchElementException("Block not registered")));
84+
addMatch(materials.engProcessor().maybeStack(1).orElse(ItemStack.EMPTY), blocks.craftingAccelerator().maybeBlock().orElseThrow(() -> new NoSuchElementException("Block not registered")));
8485
}
8586

8687
@Optional.Method(modid = "nae2")
8788
private static void registerNAE2() {
8889
var def = NAE2.definitions();
8990
var materials = def.materials();
9091
var blocks = def.blocks();
91-
addMatch(materials.cellPart256K().maybeStack(1).get(), blocks.storageCrafting256K().maybeBlock().get());
92-
addMatch(materials.cellPart1024K().maybeStack(1).get(), blocks.storageCrafting1024K().maybeBlock().get());
93-
addMatch(materials.cellPart4096K().maybeStack(1).get(), blocks.storageCrafting4096K().maybeBlock().get());
94-
addMatch(materials.cellPart16384K().maybeStack(1).get(), blocks.storageCrafting16384K().maybeBlock().get());
92+
addMatch(materials.cellPart256K().maybeStack(1).orElse(ItemStack.EMPTY), blocks.storageCrafting256K().maybeBlock().orElseThrow(() -> new NoSuchElementException("Block not registered")));
93+
addMatch(materials.cellPart1024K().maybeStack(1).orElse(ItemStack.EMPTY), blocks.storageCrafting1024K().maybeBlock().orElseThrow(() -> new NoSuchElementException("Block not registered")));
94+
addMatch(materials.cellPart4096K().maybeStack(1).orElse(ItemStack.EMPTY), blocks.storageCrafting4096K().maybeBlock().orElseThrow(() -> new NoSuchElementException("Block not registered")));
95+
addMatch(materials.cellPart16384K().maybeStack(1).orElse(ItemStack.EMPTY), blocks.storageCrafting16384K().maybeBlock().orElseThrow(() -> new NoSuchElementException("Block not registered")));
9596
}
9697

9798
/*
@@ -103,16 +104,16 @@ private static void registerEXCPU() {
103104
if (Loader.isModLoaded("extracells")) {
104105
Item item = Item.getByNameOrId("extracells:storage.component");
105106
int i = 0;
106-
addMatch(new ItemStack(item, 1, i++), ModBlocks.CRAFTING_STORAGE_256K.maybeBlock().get());
107-
addMatch(new ItemStack(item, 1, i++), ModBlocks.CRAFTING_STORAGE_1024K.maybeBlock().get());
108-
addMatch(new ItemStack(item, 1, i++), ModBlocks.CRAFTING_STORAGE_4096K.maybeBlock().get());
107+
addMatch(new ItemStack(item, 1, i++), ModBlocks.CRAFTING_STORAGE_256K.maybeBlock().orElseThrow(() -> new NoSuchElementException("Block not registered")));
108+
addMatch(new ItemStack(item, 1, i++), ModBlocks.CRAFTING_STORAGE_1024K.maybeBlock().orElseThrow(() -> new NoSuchElementException("Block not registered")));
109+
addMatch(new ItemStack(item, 1, i++), ModBlocks.CRAFTING_STORAGE_4096K.maybeBlock().orElseThrow(() -> new NoSuchElementException("Block not registered")));
109110
addMatch(new ItemStack(item, 1, i++), Block.getBlockFromName("extracpus:crafting_storage_16384k"));
110111
} else if (Loader.isModLoaded("aeadditions")) {
111112
Item item = Item.getByNameOrId("aeadditions:storage.component");
112113
int i = 0;
113-
addMatch(new ItemStack(item, 1, i++), ModBlocks.CRAFTING_STORAGE_256K.maybeBlock().get());
114-
addMatch(new ItemStack(item, 1, i++), ModBlocks.CRAFTING_STORAGE_1024K.maybeBlock().get());
115-
addMatch(new ItemStack(item, 1, i++), ModBlocks.CRAFTING_STORAGE_4096K.maybeBlock().get());
114+
addMatch(new ItemStack(item, 1, i++), ModBlocks.CRAFTING_STORAGE_256K.maybeBlock().orElseThrow(() -> new NoSuchElementException("Block not registered")));
115+
addMatch(new ItemStack(item, 1, i++), ModBlocks.CRAFTING_STORAGE_1024K.maybeBlock().orElseThrow(() -> new NoSuchElementException("Block not registered")));
116+
addMatch(new ItemStack(item, 1, i++), ModBlocks.CRAFTING_STORAGE_4096K.maybeBlock().orElseThrow(() -> new NoSuchElementException("Block not registered")));
116117
addMatch(new ItemStack(item, 1, i++), Block.getBlockFromName("extracpus:crafting_storage_16384k"));
117118
}
118119
}

src/main/java/com/circulation/random_complement/mixin/ae2/new_patten_gui/MixinContainerWirelessCraftingTerminal.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,4 @@ public abstract class MixinContainerWirelessCraftingTerminal implements IAEAppEn
1515
protected AppEngInternalInventory loadFromNBT(IAEAppEngInventory inventory, int size) {
1616
return new AppEngInternalFixedCapacityInventory(this, 9);
1717
}
18-
}
18+
}

src/main/java/com/circulation/random_complement/mixin/botania/flower/MixinInternalMethodHandler.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@
77
import org.spongepowered.asm.mixin.injection.At;
88
import org.spongepowered.asm.mixin.injection.Inject;
99
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
10+
import vazkii.botania.api.mana.IManaPool;
11+
import vazkii.botania.api.mana.IManaSpreader;
1012
import vazkii.botania.api.subtile.SubTileEntity;
1113
import vazkii.botania.api.subtile.SubTileGenerating;
1214
import vazkii.botania.common.block.ModBlocks;
13-
import vazkii.botania.common.block.tile.mana.TilePool;
14-
import vazkii.botania.common.block.tile.mana.TileSpreader;
1515
import vazkii.botania.common.core.handler.InternalMethodHandler;
1616

1717
@Mixin(value = InternalMethodHandler.class, remap = false)
@@ -26,9 +26,13 @@ public void getBindDisplayForFlowerTypeI(SubTileEntity e, CallbackInfoReturnable
2626
var pos = e.getBinding();
2727
if (pos != null) {
2828
TileEntity t = e.getWorld().getTileEntity(pos);
29-
if (t instanceof TileSpreader) {
29+
if (t instanceof IManaSpreader) {
3030
cir.setReturnValue(new ItemStack(ModBlocks.spreader));
31-
} else if (t instanceof TilePool) {
31+
} else if (t instanceof IManaPool) {
32+
cir.setReturnValue(new ItemStack(ModBlocks.pool));
33+
} else if (this.getWorldElapsedTicks() % 40 > 19) {
34+
cir.setReturnValue(new ItemStack(ModBlocks.spreader));
35+
} else {
3236
cir.setReturnValue(new ItemStack(ModBlocks.pool));
3337
}
3438
} else {

src/main/java/com/circulation/random_complement/mixin/botania/flower/MixinItemObedienceStick.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import org.spongepowered.asm.mixin.injection.At;
99
import org.spongepowered.asm.mixin.injection.Inject;
1010
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
11-
import vazkii.botania.api.mana.IManaPool;
11+
import vazkii.botania.api.mana.IManaCollector;
1212
import vazkii.botania.api.subtile.ISubTileContainer;
1313
import vazkii.botania.api.subtile.SubTileEntity;
1414
import vazkii.botania.common.core.helper.Vector3;
@@ -22,7 +22,7 @@ public class MixinItemObedienceStick {
2222
@Inject(method = "applyStick", at = @At("RETURN"))
2323
private static void applyStick(World world, BlockPos pos, CallbackInfoReturnable<Boolean> cir, @Local(name = "tileAt") TileEntity tileAt) {
2424
if (cir.getReturnValue()) {
25-
if (tileAt instanceof IManaPool) {
25+
if (tileAt instanceof IManaCollector) {
2626
int range = 6;
2727
for (BlockPos pos_ : BlockPos.getAllInBox(pos.add(-range, -range, -range), pos.add(range, range, range))) {
2828
if (!(pos_.distanceSq(pos) > (range * range))) {

src/main/java/com/circulation/random_complement/mixin/botania/flower/MixinTilePool.java

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package com.circulation.random_complement.mixin.botania.flower;
22

3+
import org.spongepowered.asm.mixin.Intrinsic;
34
import org.spongepowered.asm.mixin.Mixin;
45
import org.spongepowered.asm.mixin.Shadow;
5-
import org.spongepowered.asm.mixin.Unique;
66
import vazkii.botania.api.internal.IManaBurst;
77
import vazkii.botania.api.mana.IManaCollector;
88
import vazkii.botania.common.block.tile.mana.TilePool;
@@ -13,20 +13,17 @@ public abstract class MixinTilePool implements IManaCollector {
1313
@Shadow(remap = false)
1414
public int manaCap;
1515

16-
@Unique
17-
@Override
16+
@Intrinsic
1817
public void onClientDisplayTick() {
1918

2019
}
2120

22-
@Unique
23-
@Override
21+
@Intrinsic
2422
public float getManaYieldMultiplier(IManaBurst var1) {
2523
return 1.0F;
2624
}
2725

28-
@Unique
29-
@Override
26+
@Intrinsic
3027
public int getMaxMana() {
3128
return this.manaCap;
3229
}

src/main/java/com/circulation/random_complement/mixin/botania/spark/MixinTileBrewery.java

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

33
import com.circulation.random_complement.RCConfig;
44
import com.google.common.base.Predicates;
5+
import net.minecraft.entity.Entity;
56
import net.minecraft.item.ItemStack;
67
import net.minecraft.util.ITickable;
78
import net.minecraft.util.math.AxisAlignedBB;
9+
import org.spongepowered.asm.mixin.Intrinsic;
810
import org.spongepowered.asm.mixin.Mixin;
911
import org.spongepowered.asm.mixin.Shadow;
10-
import org.spongepowered.asm.mixin.Unique;
1112
import org.spongepowered.asm.mixin.injection.At;
1213
import org.spongepowered.asm.mixin.injection.Inject;
1314
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@@ -18,7 +19,6 @@
1819
import vazkii.botania.api.mana.spark.SparkHelper;
1920
import vazkii.botania.common.block.tile.TileBrewery;
2021
import vazkii.botania.common.block.tile.TileSimpleInventory;
21-
import vazkii.botania.common.entity.EntitySpark;
2222

2323
import java.util.List;
2424

@@ -40,33 +40,33 @@ public void onUpdate(CallbackInfo ci) {
4040
}
4141
}
4242

43-
@Unique
44-
@Override
43+
@Intrinsic
4544
public boolean canAttachSpark(ItemStack var1) {
4645
return RCConfig.Botania.BrewerySparkSupport;
4746
}
4847

49-
@Unique
50-
@Override
48+
@Intrinsic
5149
public void attachSpark(ISparkEntity var1) {
5250

5351
}
5452

55-
@Unique
56-
@Override
53+
@Intrinsic
5754
public int getAvailableSpaceForMana() {
5855
return Math.max(0, this.getManaCost() - getCurrentMana());
5956
}
6057

61-
@Unique
62-
@Override
58+
@Intrinsic
6359
public ISparkEntity getAttachedSpark() {
64-
List<EntitySpark> sparks = world.getEntitiesWithinAABB(EntitySpark.class, new AxisAlignedBB(pos.up(), pos.up().add(1, 1, 1)), Predicates.instanceOf(ISparkEntity.class));
65-
if (sparks.size() == 1)
66-
return sparks.get(0);
60+
List<Entity> sparks = world.getEntitiesWithinAABB(Entity.class, new AxisAlignedBB(pos.up(), pos.up().add(1, 1, 1)), Predicates.instanceOf(ISparkEntity.class));
61+
for (var spark : sparks) {
62+
if (spark instanceof ISparkEntity s) {
63+
return s;
64+
}
65+
}
6766
return null;
6867
}
6968

69+
@Intrinsic
7070
public boolean areIncomingTranfersDone() {
7171
return !canRecieveManaFromBursts();
7272
}

src/main/java/com/circulation/random_complement/mixin/botania/spark/MixinTileRuneAltar.java

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@
22

33
import com.circulation.random_complement.RCConfig;
44
import com.google.common.base.Predicates;
5+
import net.minecraft.entity.Entity;
56
import net.minecraft.item.ItemStack;
67
import net.minecraft.util.ITickable;
78
import net.minecraft.util.math.AxisAlignedBB;
9+
import org.spongepowered.asm.mixin.Intrinsic;
810
import org.spongepowered.asm.mixin.Mixin;
911
import org.spongepowered.asm.mixin.Shadow;
1012
import org.spongepowered.asm.mixin.injection.At;
@@ -17,7 +19,6 @@
1719
import vazkii.botania.api.mana.spark.SparkHelper;
1820
import vazkii.botania.common.block.tile.TileRuneAltar;
1921
import vazkii.botania.common.block.tile.TileSimpleInventory;
20-
import vazkii.botania.common.entity.EntitySpark;
2122

2223
import java.util.List;
2324

@@ -44,25 +45,33 @@ public void onUpdate(CallbackInfo ci) {
4445
}
4546
}
4647

48+
@Intrinsic
4749
public boolean canAttachSpark(ItemStack var1) {
4850
return RCConfig.Botania.RuneAltarSparkSupport;
4951
}
5052

53+
@Intrinsic
5154
public void attachSpark(ISparkEntity var1) {
5255

5356
}
5457

58+
@Intrinsic
5559
public int getAvailableSpaceForMana() {
5660
return Math.max(0, this.getTargetMana() - getCurrentMana());
5761
}
5862

63+
@Intrinsic
5964
public ISparkEntity getAttachedSpark() {
60-
List<EntitySpark> sparks = world.getEntitiesWithinAABB(EntitySpark.class, new AxisAlignedBB(pos.up(), pos.up().add(1, 1, 1)), Predicates.instanceOf(ISparkEntity.class));
61-
if (sparks.size() == 1)
62-
return sparks.get(0);
65+
List<Entity> sparks = world.getEntitiesWithinAABB(Entity.class, new AxisAlignedBB(pos.up(), pos.up().add(1, 1, 1)), Predicates.instanceOf(ISparkEntity.class));
66+
for (var spark : sparks) {
67+
if (spark instanceof ISparkEntity s) {
68+
return s;
69+
}
70+
}
6371
return null;
6472
}
6573

74+
@Intrinsic
6675
public boolean areIncomingTranfersDone() {
6776
return !canRecieveManaFromBursts();
6877
}

0 commit comments

Comments
 (0)