Skip to content

Commit 1ddb3f8

Browse files
author
Circulate233
committed
整理部分代码
1 parent a283fab commit 1ddb3f8

File tree

3 files changed

+60
-86
lines changed

3 files changed

+60
-86
lines changed

src/main/java/github/kasuminova/novaeng/common/machine/LifeExtractsAltar.kt

Lines changed: 2 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
package github.kasuminova.novaeng.common.machine
22

3-
import WayofTime.bloodmagic.ritual.IMasterRitualStone
4-
import WayofTime.bloodmagic.ritual.types.RitualWellOfSuffering
53
import crafttweaker.CraftTweakerAPI.itemUtils
64
import github.kasuminova.mmce.common.event.client.ControllerGUIRenderEvent
75
import github.kasuminova.novaeng.NovaEngineeringCore
86
import github.kasuminova.novaeng.common.machine.MMAltar.addBlood
9-
import github.kasuminova.novaeng.common.machine.MMAltar.ergodicPos
7+
import github.kasuminova.novaeng.common.machine.MMAltar.checkAlter
108
import github.kasuminova.novaeng.common.machine.MMAltar.getAltar
119
import github.kasuminova.novaeng.common.util.Functions
1210
import github.kasuminova.novaeng.common.util.RecipePrimerEx.setLore
@@ -72,27 +70,7 @@ object LifeExtractsAltar : MachineSpecial {
7270
return@addPreCheckHandler
7371
}
7472

75-
var check = nbt.hasKey("pos")
76-
if (check) {
77-
val p = nbt.getIntArray("pos")
78-
val pos = BlockPos.PooledMutableBlockPos.retain(
79-
p[0], p[1], p[2]
80-
)
81-
val t = ctrl.world.getTileEntity(pos)
82-
pos.release()
83-
if (!(t is IMasterRitualStone && t.currentRitual is RitualWellOfSuffering)) {
84-
nbt.removeTag("pos")
85-
check = ergodicPos(ctrl, ctrl.pos) { x, y, z ->
86-
nbt.setIntArray("pos", intArrayOf(x, y, z))
87-
}
88-
}
89-
} else {
90-
check = ergodicPos(ctrl, ctrl.pos) { x, y, z ->
91-
nbt.setIntArray("pos", intArrayOf(x, y, z))
92-
}
93-
}
94-
95-
if (!check) {
73+
if (!checkAlter(nbt, ctrl)) {
9674
it.setFailed("novaeng.life_extracts_altar.failed.2")
9775
}
9876
}

src/main/java/github/kasuminova/novaeng/common/machine/MMAltar.kt

Lines changed: 57 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ import net.minecraft.block.state.IBlockState
3636
import net.minecraft.init.Blocks
3737
import net.minecraft.init.Items
3838
import net.minecraft.item.ItemStack
39+
import net.minecraft.nbt.NBTTagCompound
3940
import net.minecraft.util.EnumFacing
4041
import net.minecraft.util.ResourceLocation
4142
import net.minecraft.util.math.BlockPos
@@ -126,27 +127,8 @@ object MMAltar : MachineSpecial {
126127
if (state.block.getMetaFromState(state) == 3) ++sacrifice
127128
}
128129
}
129-
var level = altar.getLevel().toByte()
130-
var upgrade: Byte = 0
131-
132-
ctrl.foundMachine?.let { it1 ->
133-
for (replacement in it1.multiBlockModifiers) {
134-
if (replacement.matches(ctrl)) {
135-
when (replacement.modifierName) {
136-
"upgrade1" -> ++upgrade
137-
"upgrade2" -> ++upgrade
138-
"upgrade3" -> {
139-
upgrade = (2.toByte() + upgrade).toByte()
140-
++level
141-
}
142-
}
143-
}
144-
}
145-
}
146-
147130
nbt.setShort("sacrifice", sacrifice)
148-
nbt.setByte("level", level)
149-
nbt.setByte("upgrade", upgrade)
131+
finishCheck(altar, ctrl, nbt)
150132
}
151133
machine.addMachineEventHandler(MachineTickEvent::class.java) {
152134
val ctrl = it.controller
@@ -156,26 +138,7 @@ object MMAltar : MachineSpecial {
156138
val nbt = ctrl.customDataTag
157139
val altar = ctrl.getAltar()
158140

159-
var level = altar.getLevel().toByte()
160-
var upgrade: Byte = 0
161-
162-
ctrl.foundMachine?.let { it1 ->
163-
for (replacement in it1.multiBlockModifiers) {
164-
if (replacement.matches(ctrl)) {
165-
when (replacement.modifierName) {
166-
"upgrade1" -> ++upgrade
167-
"upgrade2" -> ++upgrade
168-
"upgrade3" -> {
169-
upgrade = (2.toByte() + upgrade).toByte()
170-
++level
171-
}
172-
}
173-
}
174-
}
175-
}
176-
177-
nbt.setByte("level", level)
178-
nbt.setByte("upgrade", upgrade)
141+
finishCheck(altar, ctrl, nbt)
179142
}
180143
machine.multiBlockModifiers.add(
181144
MultiBlockModifierReplacement(
@@ -353,6 +316,33 @@ object MMAltar : MachineSpecial {
353316
if (NovaEngineeringCore.proxy.isClient) clientInit(machine)
354317
}
355318

319+
private fun finishCheck(
320+
altar: TileAltar?,
321+
ctrl: TileMultiblockMachineController,
322+
nbt: NBTTagCompound
323+
) {
324+
var level = altar.getLevel().toByte()
325+
var upgrade: Byte = 0
326+
327+
ctrl.foundMachine?.let { it1 ->
328+
for (replacement in it1.multiBlockModifiers) {
329+
if (replacement.matches(ctrl)) {
330+
when (replacement.modifierName) {
331+
"upgrade1" -> ++upgrade
332+
"upgrade2" -> ++upgrade
333+
"upgrade3" -> {
334+
upgrade = (2.toByte() + upgrade).toByte()
335+
++level
336+
}
337+
}
338+
}
339+
}
340+
}
341+
342+
nbt.setByte("level", level)
343+
nbt.setByte("upgrade", upgrade)
344+
}
345+
356346
@SideOnly(Side.CLIENT)
357347
private fun clientInit(machine: DynamicMachine) {
358348
machine.addMachineEventHandler(ControllerGUIRenderEvent::class.java) {
@@ -365,25 +355,7 @@ object MMAltar : MachineSpecial {
365355
val now = altar.getNowBlood()
366356
val max = altar.getMaxBlood()
367357

368-
var check = nbt.hasKey("pos")
369-
if (check) {
370-
val p = nbt.getIntArray("pos")
371-
val pos = BlockPos.PooledMutableBlockPos.retain(
372-
p[0], p[1], p[2]
373-
)
374-
val t = ctrl.world.getTileEntity(pos)
375-
pos.release()
376-
if (!(t is IMasterRitualStone && t.currentRitual is RitualWellOfSuffering)) {
377-
nbt.removeTag("pos")
378-
check = ergodicPos(ctrl, ctrl.pos) { x, y, z ->
379-
nbt.setIntArray("pos", intArrayOf(x, y, z))
380-
}
381-
}
382-
} else {
383-
check = ergodicPos(ctrl, ctrl.pos) { x, y, z ->
384-
nbt.setIntArray("pos", intArrayOf(x, y, z))
385-
}
386-
}
358+
val check = checkAlter(nbt, ctrl)
387359

388360
val info = asList(
389361
getText("gui.mm_altar.tooltip.0", now, max),
@@ -400,6 +372,31 @@ object MMAltar : MachineSpecial {
400372
}
401373
}
402374

375+
fun checkAlter(
376+
nbt: NBTTagCompound,
377+
ctrl: TileMultiblockMachineController
378+
): Boolean {
379+
if (nbt.hasKey("pos")) {
380+
val p = nbt.getIntArray("pos")
381+
val pos = BlockPos.PooledMutableBlockPos.retain(
382+
p[0], p[1], p[2]
383+
)
384+
val t = ctrl.world.getTileEntity(pos)
385+
pos.release()
386+
if (!(t is IMasterRitualStone && t.currentRitual is RitualWellOfSuffering)) {
387+
nbt.removeTag("pos")
388+
return ergodicPos(ctrl, ctrl.pos) { x, y, z ->
389+
nbt.setIntArray("pos", intArrayOf(x, y, z))
390+
}
391+
}
392+
} else {
393+
return ergodicPos(ctrl, ctrl.pos) { x, y, z ->
394+
nbt.setIntArray("pos", intArrayOf(x, y, z))
395+
}
396+
}
397+
return false
398+
}
399+
403400
override fun getRegistryName(): ResourceLocation {
404401
return REGISTRY_NAME
405402
}
@@ -577,7 +574,7 @@ object MMAltar : MachineSpecial {
577574
return min(max(a, min), max)
578575
}
579576

580-
inline fun ergodicPos(
577+
private inline fun ergodicPos(
581578
ctrl: TileMultiblockMachineController,
582579
pos: BlockPos,
583580
run: (x: Int, y: Int, z: Int) -> Unit

src/main/java/github/kasuminova/novaeng/common/machine/drills/Drill.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -622,7 +622,6 @@ abstract class Drill : MachineSpecial {
622622
upThread.addRecipe("research_mineral_utilization_" + name + "_" + i)
623623
upThread.addRecipe("additional_component_loading_" + name + "_" + i)
624624

625-
626625
RecipeBuilder.newBuilder("research_mineral_utilization_" + name + "_" + i, name, 10)
627626
.addPreCheckHandler { event ->
628627
val ctrl = event.getController()
@@ -696,7 +695,7 @@ abstract class Drill : MachineSpecial {
696695
)
697696

698697
data.setBoolean("additional_component_$i", true)
699-
data.setByte("additional_component_$i", (components_amount + 1).toByte())
698+
data.setByte("components_amount", (components_amount + 1).toByte())
700699
}.requireResearch("additional_component_loading_$i")
701700
.setThreadName(upThreadName)
702701
.setParallelized(false)

0 commit comments

Comments
 (0)