Skip to content

Commit

Permalink
Revert config back to a Boolean, and add AccurateBlockPlacementLegacy
Browse files Browse the repository at this point in the history
  • Loading branch information
sakura-ryoko committed Nov 3, 2024
1 parent 15a8109 commit 2f05ef0
Show file tree
Hide file tree
Showing 7 changed files with 40 additions and 14 deletions.
9 changes: 6 additions & 3 deletions src/main/java/carpetextra/CarpetExtraSettings.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import carpet.api.settings.CarpetRule;
import carpet.api.settings.Validator;
import carpet.api.settings.Validators;
import org.jetbrains.annotations.Nullable;
import net.minecraft.server.command.ServerCommandSource;

import static carpet.api.settings.RuleCategory.*;
Expand Down Expand Up @@ -93,10 +92,14 @@ public Integer validate(ServerCommandSource source, CarpetRule<Integer> currentR
public static boolean renewableIce = false;

@Rule(
options = {"off", "V2", "V3"},
categories = {EXTRA, SURVIVAL}
)
public static String accurateBlockPlacement = "off";
public static boolean accurateBlockPlacement = false;

@Rule(
categories = {EXTRA, SURVIVAL}
)
public static boolean accurateBlockPlacementLegacy = false;

@Rule(
categories = {EXTRA, EXPERIMENTAL, FEATURE, DISPENSER}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public class BlockItemMixin_accurateBlockPlacement
))
private BlockState getAlternatePlacement(Block block, ItemPlacementContext context)
{
if (!CarpetExtraSettings.accurateBlockPlacement.equals("off"))
if (CarpetExtraSettings.accurateBlockPlacement || CarpetExtraSettings.accurateBlockPlacementLegacy)
{
BlockState tryAlternative = BlockPlacer.applyAlternativeBlockPlacement(block.getPlacementState(context), BlockPlacer.UseContext.from(context, context.getHand()));
if (tryAlternative != null)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public abstract class ServerPlayNetworkHandlerMixin
require = 0)
private Vec3d carpetextra_removeHitPosCheck(Vec3d hitVec, Vec3d blockCenter)
{
if (!CarpetExtraSettings.accurateBlockPlacement.equals("off"))
if (CarpetExtraSettings.accurateBlockPlacement || CarpetExtraSettings.accurateBlockPlacementLegacy)
{
return Vec3d.ZERO;
}
Expand Down
14 changes: 10 additions & 4 deletions src/main/java/carpetextra/utils/BlockPlacer.java
Original file line number Diff line number Diff line change
Expand Up @@ -53,11 +53,17 @@ public class BlockPlacer

public static BlockState applyAlternativeBlockPlacement(BlockState state, UseContext context)
{
switch (CarpetExtraSettings.accurateBlockPlacement)
if (CarpetExtraSettings.accurateBlockPlacement)
{
case "V3" -> { return alternativeBlockPlacementV3(state, context); }
case "V2" -> { return alternativeBlockPlacementV2(state.getBlock(), context); }
default -> { return state; }
return alternativeBlockPlacementV3(state, context);
}
else if (CarpetExtraSettings.accurateBlockPlacementLegacy)
{
return alternativeBlockPlacementV2(state.getBlock(), context);
}
else
{
return state;
}
}

Expand Down
13 changes: 12 additions & 1 deletion src/main/resources/assets/carpet-extra/lang/en_us.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,18 @@
// Rules:

// accurateBlockPlacement
"carpet.rule.accurateBlockPlacement.desc": "Client can provide alternative block placement.",
"carpet.rule.accurateBlockPlacement.desc": "Client can provide alternative block placement (V3).",

"carpet.rule.accurateBlockPlacement.extra.0": "This version of accurateBlockPlacement should function the same as Single Player ",
"carpet.rule.accurateBlockPlacement.extra.1": "and should be compatible with Advanced rotation Block States such as ",
"carpet.rule.accurateBlockPlacement.extra.2": "for rotating the Crafter. For Easy Place, you may need to set it to (V3) manually.",

// accurateBlockPlacementLegacy
"carpet.rule.accurateBlockPlacementLegacy.desc": "Client can provide alternative block placement (V2).",

"carpet.rule.accurateBlockPlacementLegacy.extra.0": "This version of accurateBlockPlacement should function the same as before ",
"carpet.rule.accurateBlockPlacementLegacy.extra.1": "and it is not compatible with Advanced rotation Block States such as ",
"carpet.rule.accurateBlockPlacementLegacy.extra.2": "for rotating the Crafter. For that, use the new (V3) version.",

// autoCraftingDropper
"carpet.rule.autoCraftingDropper.desc": "Auto-crafting dropper",
Expand Down
7 changes: 5 additions & 2 deletions src/main/resources/assets/carpet-extra/lang/zh_cn.json
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,11 @@
"carpet.rule.renewablePackedIce.name": "可再生浮冰",
"carpet.rule.renewablePackedIce.desc": "掉落的铁砧压碎多个冰块时会将冰转换为浮冰",

"carpet.rule.accurateBlockPlacement.name": "准确方块放置支持",
"carpet.rule.accurateBlockPlacement.desc": "启用对tweakroo mod的tweakAccurateBlockPlacement选项的支持",
"carpet.rule.accurateBlockPlacement.name": "(V3)精确的块放置支持",
"carpet.rule.accurateBlockPlacement.desc": "启用(V3)对tweakroo mod的tweakAccurateBlockPlacement选项的支持",

"carpet.rule.accurateBlockPlacementLegacy.name": "传统(V2)精确块放置支持",
"carpet.rule.accurateBlockPlacementLegacy.desc": "启用tweakroo mod的tweakAccurateBlockPlacement选项的旧版 (V2) 支持",

"carpet.rule.dispensersToggleThings.name": "发射器拨动方块",
"carpet.rule.dispensersToggleThings.desc": "含有木棍的发射器可以拨动各种方块",
Expand Down
7 changes: 5 additions & 2 deletions src/main/resources/assets/carpet-extra/lang/zh_tw.json
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,11 @@
"carpet.rule.renewablePackedIce.name": "可再生冰磚",
"carpet.rule.renewablePackedIce.desc": "掉落的鐵砧壓縮多個冰塊時會將冰塊轉為冰磚",

"carpet.rule.accurateBlockPlacement.name": "準確方塊放置支持",
"carpet.rule.accurateBlockPlacement.desc": "啟用對tweakroo mod的tweakAccurateBlockPlacement選項的支持",
"carpet.rule.accurateBlockPlacement.name": "(V3) 精確塊放置支持",
"carpet.rule.accurateBlockPlacement.desc": "啟用(V3)對tweakroo mod的tweakAccurateBlockPlacement選項的支援",

"carpet.rule.accurateBlockPlacementLegacy.name": "舊版 (V2) 精確塊放置支持",
"carpet.rule.accurateBlockPlacementLegacy.desc": "啟用對tweakroo mod的tweakAccurateBlockPlacement選項的舊版(V2)支持",

"carpet.rule.dispensersToggleThings.name": "發射器使用方塊",
"carpet.rule.dispensersToggleThings.desc": "含有木棍的發射器可以使用各種方塊元件",
Expand Down

0 comments on commit 2f05ef0

Please sign in to comment.