9
0
mirror of https://github.com/LeavesMC/Leaves.git synced 2025-12-19 14:59:32 +00:00
Files
LeavesMC/leaves-server/minecraft-patches/features/0093-Renewable-coral.patch
2025-08-16 22:08:16 +08:00

135 lines
8.3 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: violetc <58360096+s-yh-china@users.noreply.github.com>
Date: Wed, 5 Feb 2025 23:42:22 +0800
Subject: [PATCH] Renewable coral
diff --git a/net/minecraft/world/level/block/CoralFanBlock.java b/net/minecraft/world/level/block/CoralFanBlock.java
index a10af527340d26b9cfd59f73a2518ce31ea5c464..5beaa24e96f3057cfd38df691306c78fcedf669c 100644
--- a/net/minecraft/world/level/block/CoralFanBlock.java
+++ b/net/minecraft/world/level/block/CoralFanBlock.java
@@ -13,7 +13,7 @@ import net.minecraft.world.level.block.state.BlockBehaviour;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.material.Fluids;
-public class CoralFanBlock extends BaseCoralFanBlock {
+public class CoralFanBlock extends BaseCoralFanBlock implements org.leavesmc.leaves.util.FertilizableCoral { // Leaves - renewable coral
public static final MapCodec<CoralFanBlock> CODEC = RecordCodecBuilder.mapCodec(
instance -> instance.group(CoralBlock.DEAD_CORAL_FIELD.forGetter(coralFanBlock -> coralFanBlock.deadBlock), propertiesCodec())
.apply(instance, CoralFanBlock::new)
@@ -69,4 +69,11 @@ public class CoralFanBlock extends BaseCoralFanBlock {
return super.updateShape(state, level, scheduledTickAccess, pos, direction, neighborPos, neighborState, random);
}
}
+
+ // Leaves start - renewable coral
+ @Override
+ public boolean isEnabled() {
+ return org.leavesmc.leaves.LeavesConfig.modify.renewableCoral == org.leavesmc.leaves.LeavesConfig.ModifyConfig.RenewableCoralType.EXPANDED;
+ }
+ // Leaves end - renewable coral
}
diff --git a/net/minecraft/world/level/block/CoralPlantBlock.java b/net/minecraft/world/level/block/CoralPlantBlock.java
index 20396db7afb93bc8ea5b7ae28a76ca82bd1a4535..9fc66adcb3ffdbfee5ad6b76a01e396634a6f4e5 100644
--- a/net/minecraft/world/level/block/CoralPlantBlock.java
+++ b/net/minecraft/world/level/block/CoralPlantBlock.java
@@ -16,7 +16,7 @@ import net.minecraft.world.level.material.Fluids;
import net.minecraft.world.phys.shapes.CollisionContext;
import net.minecraft.world.phys.shapes.VoxelShape;
-public class CoralPlantBlock extends BaseCoralPlantTypeBlock {
+public class CoralPlantBlock extends BaseCoralPlantTypeBlock implements org.leavesmc.leaves.util.FertilizableCoral { // Leaves - renewable coral
public static final MapCodec<CoralPlantBlock> CODEC = RecordCodecBuilder.mapCodec(
instance -> instance.group(CoralBlock.DEAD_CORAL_FIELD.forGetter(coralPlantBlock -> coralPlantBlock.deadBlock), propertiesCodec())
.apply(instance, CoralPlantBlock::new)
@@ -78,4 +78,12 @@ public class CoralPlantBlock extends BaseCoralPlantTypeBlock {
protected VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) {
return SHAPE;
}
+
+ // Leaves start - renewable coral
+ @Override
+ public boolean isEnabled() {
+ return org.leavesmc.leaves.LeavesConfig.modify.renewableCoral == org.leavesmc.leaves.LeavesConfig.ModifyConfig.RenewableCoralType.EXPANDED
+ || org.leavesmc.leaves.LeavesConfig.modify.renewableCoral == org.leavesmc.leaves.LeavesConfig.ModifyConfig.RenewableCoralType.TRUE;
+ }
+ // Leaves end - renewable coral
}
diff --git a/net/minecraft/world/level/block/CoralWallFanBlock.java b/net/minecraft/world/level/block/CoralWallFanBlock.java
index af0cc07404032032211ca4e377e8af681af2d7ab..7a0033ebce5f5058f331b32bb57e5f586a3d9d21 100644
--- a/net/minecraft/world/level/block/CoralWallFanBlock.java
+++ b/net/minecraft/world/level/block/CoralWallFanBlock.java
@@ -13,7 +13,7 @@ import net.minecraft.world.level.block.state.BlockBehaviour;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.material.Fluids;
-public class CoralWallFanBlock extends BaseCoralWallFanBlock {
+public class CoralWallFanBlock extends BaseCoralWallFanBlock implements org.leavesmc.leaves.util.FertilizableCoral { // Leaves - renewable coral
public static final MapCodec<CoralWallFanBlock> CODEC = RecordCodecBuilder.mapCodec(
instance -> instance.group(CoralBlock.DEAD_CORAL_FIELD.forGetter(coralWallFanBlock -> coralWallFanBlock.deadBlock), propertiesCodec())
.apply(instance, CoralWallFanBlock::new)
@@ -69,4 +69,11 @@ public class CoralWallFanBlock extends BaseCoralWallFanBlock {
return super.updateShape(state, level, scheduledTickAccess, pos, direction, neighborPos, neighborState, random);
}
}
+
+ // Leaves start - renewable coral
+ @Override
+ public boolean isEnabled() {
+ return org.leavesmc.leaves.LeavesConfig.modify.renewableCoral == org.leavesmc.leaves.LeavesConfig.ModifyConfig.RenewableCoralType.EXPANDED;
+ }
+ // Leaves end - renewable coral
}
diff --git a/net/minecraft/world/level/levelgen/feature/CoralClawFeature.java b/net/minecraft/world/level/levelgen/feature/CoralClawFeature.java
index abb8519ede1c2271c98497a8e3336f0ad89c340d..f5009d112b32ce91296ed84310bb9bf48bc0e408 100644
--- a/net/minecraft/world/level/levelgen/feature/CoralClawFeature.java
+++ b/net/minecraft/world/level/levelgen/feature/CoralClawFeature.java
@@ -17,7 +17,7 @@ public class CoralClawFeature extends CoralFeature {
}
@Override
- protected boolean placeFeature(LevelAccessor level, RandomSource random, BlockPos pos, BlockState state) {
+ public boolean placeFeature(LevelAccessor level, RandomSource random, BlockPos pos, BlockState state) { // Leaves - protected -> public
if (!this.placeCoralBlock(level, random, pos, state)) {
return false;
} else {
diff --git a/net/minecraft/world/level/levelgen/feature/CoralFeature.java b/net/minecraft/world/level/levelgen/feature/CoralFeature.java
index 2569754d96694edbc1fe64e6048d6ec26cbe243e..88d38433ffb78fbdd04d9adf53d584c492dc8ec7 100644
--- a/net/minecraft/world/level/levelgen/feature/CoralFeature.java
+++ b/net/minecraft/world/level/levelgen/feature/CoralFeature.java
@@ -31,7 +31,7 @@ public abstract class CoralFeature extends Feature<NoneFeatureConfiguration> {
return !optional.isEmpty() && this.placeFeature(worldGenLevel, randomSource, blockPos, optional.get().defaultBlockState());
}
- protected abstract boolean placeFeature(LevelAccessor level, RandomSource random, BlockPos pos, BlockState state);
+ public abstract boolean placeFeature(LevelAccessor level, RandomSource random, BlockPos pos, BlockState state); // Leaves - protected -> public
protected boolean placeCoralBlock(LevelAccessor level, RandomSource random, BlockPos pos, BlockState state) {
BlockPos blockPos = pos.above();
diff --git a/net/minecraft/world/level/levelgen/feature/CoralMushroomFeature.java b/net/minecraft/world/level/levelgen/feature/CoralMushroomFeature.java
index cd550c704cbe46727caf965d7910d2a1d55f5697..29c5c8ed793834dd5bbafb89e48670a30dc8184d 100644
--- a/net/minecraft/world/level/levelgen/feature/CoralMushroomFeature.java
+++ b/net/minecraft/world/level/levelgen/feature/CoralMushroomFeature.java
@@ -14,7 +14,7 @@ public class CoralMushroomFeature extends CoralFeature {
}
@Override
- protected boolean placeFeature(LevelAccessor level, RandomSource random, BlockPos pos, BlockState state) {
+ public boolean placeFeature(LevelAccessor level, RandomSource random, BlockPos pos, BlockState state) { // Leaves - protected -> public
int i = random.nextInt(3) + 3;
int i1 = random.nextInt(3) + 3;
int i2 = random.nextInt(3) + 3;
diff --git a/net/minecraft/world/level/levelgen/feature/CoralTreeFeature.java b/net/minecraft/world/level/levelgen/feature/CoralTreeFeature.java
index 521dbd30e9fb7a366d534fe6a952b0e3a8ec8449..13a0c047c86563d0f28866d513c52999bfce6fd1 100644
--- a/net/minecraft/world/level/levelgen/feature/CoralTreeFeature.java
+++ b/net/minecraft/world/level/levelgen/feature/CoralTreeFeature.java
@@ -15,7 +15,7 @@ public class CoralTreeFeature extends CoralFeature {
}
@Override
- protected boolean placeFeature(LevelAccessor level, RandomSource random, BlockPos pos, BlockState state) {
+ public boolean placeFeature(LevelAccessor level, RandomSource random, BlockPos pos, BlockState state) { // Leaves - protected -> public
BlockPos.MutableBlockPos mutableBlockPos = pos.mutable();
int i = random.nextInt(3) + 1;