Skip to content

Commit 59ae3e7

Browse files
Fixed Block Swapping Feature for update
1 parent d7e2dda commit 59ae3e7

File tree

2 files changed

+30
-27
lines changed

2 files changed

+30
-27
lines changed

common/src/main/java/com/negativelight/soulsiphon/block/custom/SoulSiphon.java

Lines changed: 29 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -143,27 +143,25 @@ public boolean canSurvive(BlockState state, LevelReader reader, BlockPos pos) {
143143
@Override
144144
public void randomTick(BlockState state, ServerLevel level, BlockPos pos, RandomSource source) {
145145
float x = source.nextFloat();
146-
if(x <= MAX_TRANSFER_THRESH || x >= MIN_TRANSFER_THRESH)
147-
{
148-
149-
if(canDrip(level, pos)) {
150-
BlockPos targetPos = pos.above(2);
151-
BlockState targetState = level.getBlockState(targetPos);
152-
153-
if (Blocks.SOUL_SAND.equals(targetState.getBlock())) {
154-
changeBlock(level, pos, targetPos, targetState, Blocks.SAND.defaultBlockState());
155-
possesBlock(level, pos);
156-
}
157-
else if (Blocks.SOUL_SOIL.equals(targetState.getBlock())) {
158-
changeBlock(level, pos, targetPos, targetState, Blocks.RED_SAND.defaultBlockState());
159-
possesBlock(level, pos);
160-
}
146+
if (! (x <= MAX_TRANSFER_THRESH) && ! (x >= MIN_TRANSFER_THRESH)) {
147+
return;
148+
}
161149

162-
}
150+
if (! canDrip(level, pos)) {
151+
return;
152+
}
163153

154+
BlockPos targetPos = pos.above(2);
155+
BlockState targetState = level.getBlockState(targetPos);
164156

157+
if (Blocks.SOUL_SAND.equals(targetState.getBlock())) {
158+
changeBlock(level, pos, targetPos, targetState, Blocks.SAND.defaultBlockState());
159+
possesBlock(level, pos);
160+
}
161+
else if (Blocks.SOUL_SOIL.equals(targetState.getBlock())) {
162+
changeBlock(level, pos, targetPos, targetState, Blocks.RED_SAND.defaultBlockState());
163+
possesBlock(level, pos);
165164
}
166-
167165
}
168166

169167
/**
@@ -179,6 +177,7 @@ private void possesBlock(ServerLevel level, BlockPos pos) {
179177
{
180178
return;
181179
}
180+
182181
BlockState targetState = level.getBlockState(targetPos); //***Get the target state
183182

184183
//***If the block is sand make it soul sand
@@ -188,26 +187,25 @@ private void possesBlock(ServerLevel level, BlockPos pos) {
188187
//***If the block is RED Stand make it soul soil
189188
else if (targetState.is(Blocks.RED_SAND)) {
190189
changeBlock(level, pos, targetPos, targetState, Blocks.SOUL_SOIL.defaultBlockState());
191-
192190
}
193191
//****IF the block is a sculk cauldron fill it
194192
else if (targetState.is(ModBlocks.SCULK_CAULDRON.get())) {
195-
if(!targetState.getValue(SculkCauldronBlock.FULL)) {
196-
197-
targetState.setValue(SculkCauldronBlock.FULL, Boolean.TRUE);
198-
199-
level.setBlock(targetPos, targetState.setValue(SculkCauldronBlock.FULL, true), 3);
200-
193+
if (targetState.getValue(SculkCauldronBlock.FULL)) {
194+
return;
201195
}
202196

197+
targetState.setValue(SculkCauldronBlock.FULL, Boolean.TRUE);
198+
level.setBlock(targetPos, targetState.setValue(SculkCauldronBlock.FULL, true), 3);
199+
203200
}
204201
//***If the block is a sculk catalyst trigger its spawning
205202
else if (targetState.is(Blocks.SCULK_CATALYST)) {
206203
SculkCatalystBlockEntity catalystBlockEntity = (SculkCatalystBlockEntity) level.getBlockEntity(targetPos);
207204
SculkSpreader spreader = catalystBlockEntity.getListener().getSculkSpreader();
208-
spreader.addCursors(new BlockPos(targetPos.offset(0, 1, 0)), 10);
205+
spreader.addCursors(new BlockPos(targetPos.offset(0, -1, 0)), 100);
209206
//SculkCatalystBlock.bloom(level, targetPos, targetState, level.getRandom());
210207
level.setBlock(targetPos, targetState.setValue(SculkCatalystBlock.PULSE, Boolean.valueOf(true)), 3);
208+
level.scheduleTick(targetPos,targetState.getBlock(),32);
211209
}
212210

213211

@@ -375,7 +373,12 @@ else if (direction == blockTipDirection.getOpposite() && !this.canSurvive(blockS
375373
* @return Soul Vessel block
376374
*/
377375
private static BlockPos findSoulVessel(Level level, BlockPos pos) {
378-
Predicate<BlockState> predicate = (blockState) -> blockState.is(ModBlocks.SCULK_CAULDRON.get());
376+
Predicate<BlockState> predicate = (blockState) -> (
377+
blockState.is(ModBlocks.SCULK_CAULDRON.get()) ||
378+
blockState.is(Blocks.SAND) ||
379+
blockState.is(Blocks.RED_SAND) ||
380+
blockState.is(Blocks.SCULK_CATALYST)
381+
);
379382

380383
BiPredicate<BlockPos, BlockState> biPredicate = (pos1, blockState) -> canDripThrough(level, pos1, blockState);
381384

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# Every field you add must be added to the root build.gradle expandProps map.
44

55
# Project
6-
version=2.1.1
6+
version=2.2.0
77
group=com.negativelight.soul_siphon
88
java_version=21
99

0 commit comments

Comments
 (0)