-
-
Notifications
You must be signed in to change notification settings - Fork 375
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Option to allow beacon effects when covered by tinted glass (#1233)
- Loading branch information
Showing
1 changed file
with
55 additions
and
0 deletions.
There are no files selected for viewing
55 changes: 55 additions & 0 deletions
55
patches/server/0310-Option-to-allow-beacon-effects-when-covered-by-tinte.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 | ||
From: 12emin34 <macanovic.emin@gmail.com> | ||
Date: Mon, 26 Dec 2022 19:10:43 +0100 | ||
Subject: [PATCH] Option to allow beacon effects when covered by tinted glass | ||
|
||
|
||
diff --git a/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java | ||
index 82e0a18ce0ce092656bde41da5a52737e1b2242a..c49175dcb7ca4469f729d3afb305fca42da82bcf 100644 | ||
--- a/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java | ||
+++ b/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java | ||
@@ -165,6 +165,7 @@ public class BeaconBlockEntity extends BlockEntity implements MenuProvider, Name | ||
int j = pos.getY(); | ||
int k = pos.getZ(); | ||
BlockPos blockposition1; | ||
+ boolean isTintedGlass = false; | ||
|
||
if (blockEntity.lastCheckY < j) { | ||
blockposition1 = pos; | ||
@@ -198,6 +199,9 @@ public class BeaconBlockEntity extends BlockEntity implements MenuProvider, Name | ||
} | ||
} | ||
} else { | ||
+ if (world.purpurConfig.beaconAllowEffectsWithTintedGlass && block.equals(Blocks.TINTED_GLASS)) { | ||
+ isTintedGlass = true; | ||
+ } | ||
if (tileentitybeacon_beaconcolortracker == null || iblockdata1.getLightBlock(world, blockposition1) >= 15 && !iblockdata1.is(Blocks.BEDROCK)) { | ||
blockEntity.checkingBeamSections.clear(); | ||
blockEntity.lastCheckY = l; | ||
@@ -217,7 +221,7 @@ public class BeaconBlockEntity extends BlockEntity implements MenuProvider, Name | ||
blockEntity.levels = BeaconBlockEntity.updateBase(world, i, j, k); | ||
} | ||
|
||
- if (blockEntity.levels > 0 && !blockEntity.beamSections.isEmpty()) { | ||
+ if (blockEntity.levels > 0 && (!blockEntity.beamSections.isEmpty() || (world.purpurConfig.beaconAllowEffectsWithTintedGlass && isTintedGlass))) { | ||
BeaconBlockEntity.applyEffects(world, pos, blockEntity.levels, blockEntity.primaryPower, blockEntity.secondaryPower, blockEntity); // Paper | ||
BeaconBlockEntity.playSound(world, pos, SoundEvents.BEACON_AMBIENT); | ||
} | ||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java | ||
index 619509538875f2876a53d7d1863f28d979931504..b5255f025133d1540b1616d609be20af923024b6 100644 | ||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java | ||
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java | ||
@@ -747,11 +747,13 @@ public class PurpurWorldConfig { | ||
public int beaconLevelTwo = 30; | ||
public int beaconLevelThree = 40; | ||
public int beaconLevelFour = 50; | ||
+ public boolean beaconAllowEffectsWithTintedGlass = false; | ||
private void beaconSettings() { | ||
beaconLevelOne = getInt("blocks.beacon.effect-range.level-1", beaconLevelOne); | ||
beaconLevelTwo = getInt("blocks.beacon.effect-range.level-2", beaconLevelTwo); | ||
beaconLevelThree = getInt("blocks.beacon.effect-range.level-3", beaconLevelThree); | ||
beaconLevelFour = getInt("blocks.beacon.effect-range.level-4", beaconLevelFour); | ||
+ beaconAllowEffectsWithTintedGlass = getBoolean("blocks.beacon.allow-effects-with-tinted-glass", beaconAllowEffectsWithTintedGlass); | ||
} | ||
|
||
public boolean bedExplode = true; |