Skip to content

Commit

Permalink
✂️ Removed MTR config screen
Browse files Browse the repository at this point in the history
  • Loading branch information
ZiYueCommentary committed Dec 3, 2023
1 parent 6825419 commit 7bfad05
Show file tree
Hide file tree
Showing 6 changed files with 4 additions and 205 deletions.
91 changes: 1 addition & 90 deletions common/src/main/java/ziyue/tjmetro/Config.java
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,6 @@ public void set(Boolean value) {
}
};
public static final Key<Boolean> USE_TIANJIN_METRO_FONT = new Key<>("use_tianjin_metro_font", false);
@Deprecated
public static final Key<Boolean> EXPERIMENTAL_MTR_CONFIG_SCREEN = new Key<>("experimental_mtr_config_screen", false);

protected static final Path CONFIG_FILE_PATH = Minecraft.getInstance().gameDirectory.toPath().resolve("config").resolve("tjmetro.json");
public static final List<Supplier<MutableComponent>> FOOTERS = Arrays.asList(
Expand All @@ -65,101 +63,17 @@ public void set(Boolean value) {
);

public static Screen getConfigScreen() {
return getConfigScreen(false, false, true);
}

public static Screen getConfigScreen(boolean hasTimeAndWindControls, boolean useTimeAndWindSync, boolean tianjinMetroConfig) {
ConfigBuilder builder = ConfigBuilder.create().setTitle(Text.translatable("gui.tjmetro.options")).transparentBackground();
ConfigEntryBuilder entryBuilder = builder.entryBuilder();
// Category: Minecraft Transit Railway
Runnable MTRCallback;
if (EXPERIMENTAL_MTR_CONFIG_SCREEN.get()) {
ConfigCategory categoryMTR = builder.getOrCreateCategory(Text.translatable("config.category.mtr"));
TextListEntry textHeader = entryBuilder.startTextDescription(Text.translatable("config.gui.mtr.experimental").withStyle(ChatFormatting.YELLOW)).build();
categoryMTR.addEntry(textHeader);
BooleanListEntry booleanUseTimeAndWindSync;
if (hasTimeAndWindControls) {
booleanUseTimeAndWindSync = entryBuilder.startBooleanToggle(Text.translatable("gui.mtr.use_time_and_wind_sync").withStyle(ChatFormatting.BOLD), useTimeAndWindSync).build();
categoryMTR.addEntry(booleanUseTimeAndWindSync);
} else {
booleanUseTimeAndWindSync = null;
}
BooleanListEntry booleanUseMTRFont = entryBuilder.startBooleanToggle(Text.translatable("options.mtr.use_mtr_font"), mtr.client.Config.useMTRFont()).build();
BooleanListEntry booleanShowAnnouncementMessages = entryBuilder.startBooleanToggle(Text.translatable("options.mtr.show_announcement_messages"), mtr.client.Config.showAnnouncementMessages()).build();
BooleanListEntry booleanUseTTSAnnouncements = entryBuilder.startBooleanToggle(Text.translatable("options.mtr.use_tts_announcements"), mtr.client.Config.useTTSAnnouncements()).build();
BooleanListEntry booleanHideSpecialRailColors = entryBuilder.startBooleanToggle(Text.translatable("options.mtr.hide_special_rail_colors"), mtr.client.Config.hideSpecialRailColors()).build();
BooleanListEntry booleanHideTranslucentParts = entryBuilder.startBooleanToggle(Text.translatable("options.mtr.hide_translucent_parts"), mtr.client.Config.hideTranslucentParts()).build();
BooleanListEntry booleanShiftToToggleSitting = entryBuilder.startBooleanToggle(Text.translatable("options.mtr.shift_to_toggle_sitting", Minecraft.getInstance().options.keyShift.getTranslatedKeyMessage()), mtr.client.Config.shiftToToggleSitting()).build();
EnumListEntry<LanguageOptions> enumLanguageOptions = entryBuilder.startEnumSelector(Text.translatable("options.mtr.language_options"), LanguageOptions.class, LanguageOptions.getEnum(mtr.client.Config.languageOptions())).build();
BooleanListEntry booleanUseDynamicFPS = entryBuilder.startBooleanToggle(Text.translatable("options.mtr.use_dynamic_fps"), mtr.client.Config.useDynamicFPS()).build();
IntegerSliderEntry sliderTrackTextureOffset = entryBuilder.startIntSlider(Text.translatable("options.mtr.track_texture_offset"), mtr.client.Config.trackTextureOffset(), 0, mtr.client.Config.TRACK_OFFSET_COUNT - 1).build();
IntegerSliderEntry sliderDynamicTextureResolution = entryBuilder.startIntSlider(Text.translatable("options.mtr.dynamic_texture_resolution"), mtr.client.Config.dynamicTextureResolution(), 0, mtr.client.Config.DYNAMIC_RESOLUTION_COUNT - 1).build();
IntegerSliderEntry sliderTrainRenderDistanceRatio = entryBuilder.startIntSlider(Text.translatable("options.mtr.vehicle_render_distance_ratio"), mtr.client.Config.trainRenderDistanceRatio(), 0, mtr.client.Config.TRAIN_RENDER_DISTANCE_RATIO_COUNT - 1).build();
SubCategoryBuilder subCategorySupporter = entryBuilder.startSubCategory(Text.translatable("config.gui.mtr.supporters"));
String tierTitle = "";
List<SubCategoryBuilder> listSupporters = new ArrayList<>();
SubCategoryBuilder current = null;
for (final Patreon patreon : mtr.client.Config.PATREON_LIST) {
if (!patreon.tierTitle.equals(tierTitle)) {
final Component text = Text.literal(patreon.tierTitle);
if (current != null) listSupporters.add(current);
current = entryBuilder.startSubCategory(text);
}
tierTitle = patreon.tierTitle;
final Component text = patreon.tierAmount < 1000 ? Text.translatable("options.mtr.anonymous") : Text.literal(patreon.name);
current.add(entryBuilder.startTextDescription(Text.literal(text.getString()).withStyle(Style.EMPTY.withColor(TextColor.fromRgb(patreon.tierColor)))).build());
}
listSupporters.add(current);
for (final SubCategoryBuilder patreon : listSupporters) {
if (patreon == null) {
subCategorySupporter.add(entryBuilder.startTextDescription(Text.translatable("config.gui.mtr.no_supporters").withStyle(ChatFormatting.RED)).build());
break;
}
subCategorySupporter.add(patreon.build());
}
TextListEntry textMTRFooter = entryBuilder.startTextDescription(Text.translatable("options.mtr.support_patreon").withStyle(IDrawingExtends.LINK_STYLE.apply("https://www.patreon.com/minecraft_transit_railway"))).build();
categoryMTR.addEntry(booleanUseMTRFont).addEntry(booleanShowAnnouncementMessages).addEntry(booleanUseTTSAnnouncements).addEntry(booleanHideSpecialRailColors).addEntry(booleanHideTranslucentParts).addEntry(booleanShiftToToggleSitting).addEntry(enumLanguageOptions).addEntry(booleanUseDynamicFPS).addEntry(sliderTrackTextureOffset).addEntry(sliderDynamicTextureResolution).addEntry(sliderTrainRenderDistanceRatio).addEntry(subCategorySupporter.build()).addEntry(textMTRFooter);
MTRCallback = () -> {
if (hasTimeAndWindControls) {
final FriendlyByteBuf packet = new FriendlyByteBuf(Unpooled.buffer());
packet.writeBoolean(booleanUseTimeAndWindSync.getValue());
RegistryClient.sendToServer(PACKET_USE_TIME_AND_WIND_SYNC, packet);
}
mtr.client.Config.setUseMTRFont(booleanUseMTRFont.getValue());
mtr.client.Config.setShowAnnouncementMessages(booleanShowAnnouncementMessages.getValue());
mtr.client.Config.setUseTTSAnnouncements(booleanUseTTSAnnouncements.getValue());
mtr.client.Config.setHideSpecialRailColors(booleanHideSpecialRailColors.getValue());
mtr.client.Config.setHideTranslucentParts(booleanHideTranslucentParts.getValue());
mtr.client.Config.setShiftToToggleSitting(booleanShiftToToggleSitting.getValue());
mtr.client.Config.setLanguageOptions(enumLanguageOptions.getValue().id);
mtr.client.Config.setUseDynamicFPS(booleanUseDynamicFPS.getValue());
mtr.client.Config.setTrackTextureOffset(sliderTrackTextureOffset.getValue());
mtr.client.Config.setDynamicTextureResolution(sliderDynamicTextureResolution.getValue());
mtr.client.Config.setTrainRenderDistanceRatio(sliderTrainRenderDistanceRatio.getValue());
ClientData.DATA_CACHE.sync();
ClientData.DATA_CACHE.refreshDynamicResources();
ClientData.SIGNAL_BLOCKS.writeCache();
};
} else {
MTRCallback = () -> {
};
}
// Category: Tianjin Metro
ConfigCategory categoryTianjinMetro = builder.getOrCreateCategory(Text.translatable("config.category.tjmetro"));
BooleanListEntry booleanMTRFilters = entryBuilder.startBooleanToggle(Text.translatable("config.tjmetro.enable_mtr_filters"), ENABLE_MTR_FILTERS.get()).setDefaultValue(ENABLE_MTR_FILTERS.getDefault()).build();
BooleanListEntry booleanUseTianjinMetroFont = entryBuilder.startBooleanToggle(Text.translatable("config.tjmetro.use_tianjin_metro_font"), USE_TIANJIN_METRO_FONT.get()).setTooltip(Text.translatable("tooltip.tjmetro.use_tianjin_metro_font"), Text.translatable("tooltip.tjmetro.experimental").withStyle(ChatFormatting.YELLOW)).build();
//BooleanListEntry booleanExperimentalMTRConfigScreen = entryBuilder.startBooleanToggle(Text.translatable("config.tjmetro.experimental_mtr_config_screen"), EXPERIMENTAL_MTR_CONFIG_SCREEN.get()).setTooltip(Text.translatable("tooltip.tjmetro.mtr_config_screen"), Text.translatable("tooltip.tjmetro.experimental").withStyle(ChatFormatting.YELLOW)).build();
TextListEntry textFooter = entryBuilder.startTextDescription(FOOTERS.get(new Random().nextInt(FOOTERS.size())).get()).build();
categoryTianjinMetro.addEntry(booleanMTRFilters).addEntry(booleanUseTianjinMetroFont)/*.addEntry(booleanExperimentalMTRConfigScreen)*/.addEntry(textFooter);

if (tianjinMetroConfig) builder.setFallbackCategory(categoryTianjinMetro);
categoryTianjinMetro.addEntry(booleanMTRFilters).addEntry(booleanUseTianjinMetroFont).addEntry(textFooter);

builder.setSavingRunnable(() -> {
MTRCallback.run();

ENABLE_MTR_FILTERS.set(booleanMTRFilters.getValue());
USE_TIANJIN_METRO_FONT.set(booleanUseTianjinMetroFont.getValue());
//EXPERIMENTAL_MTR_CONFIG_SCREEN.set(booleanExperimentalMTRConfigScreen.getValue());
});
return builder.build();
}
Expand All @@ -171,11 +85,9 @@ public static void refreshProperties() {
try {
ENABLE_MTR_FILTERS.set(jsonConfig.get(ENABLE_MTR_FILTERS.getId()).getAsBoolean());
USE_TIANJIN_METRO_FONT.set(jsonConfig.get(USE_TIANJIN_METRO_FONT.getId()).getAsBoolean());
EXPERIMENTAL_MTR_CONFIG_SCREEN.set(jsonConfig.get(EXPERIMENTAL_MTR_CONFIG_SCREEN.getId()).getAsBoolean());
} catch (Exception ignored) {
ENABLE_MTR_FILTERS.set(ENABLE_MTR_FILTERS.getDefault());
USE_TIANJIN_METRO_FONT.set(USE_TIANJIN_METRO_FONT.getDefault());
EXPERIMENTAL_MTR_CONFIG_SCREEN.set(EXPERIMENTAL_MTR_CONFIG_SCREEN.getDefault());
}
} catch (Exception e) {
writeToFile();
Expand All @@ -188,7 +100,6 @@ protected static void writeToFile() {
final JsonObject jsonConfig = new JsonObject();
jsonConfig.addProperty(ENABLE_MTR_FILTERS.getId(), ENABLE_MTR_FILTERS.get());
jsonConfig.addProperty(USE_TIANJIN_METRO_FONT.getId(), USE_TIANJIN_METRO_FONT.get());
jsonConfig.addProperty(EXPERIMENTAL_MTR_CONFIG_SCREEN.getId(), EXPERIMENTAL_MTR_CONFIG_SCREEN.get());

try {
Files.write(CONFIG_FILE_PATH, Collections.singleton(RailwayData.prettyPrint(jsonConfig)));
Expand Down
3 changes: 2 additions & 1 deletion common/src/main/java/ziyue/tjmetro/blocks/BlockBench.java
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
public class BlockBench extends HorizontalDirectionalBlock implements SimpleWaterloggedBlock, EntityBlockMapper
{
public static final Set<Minecart> SeatSet = new HashSet<>();
public static final String ENTITY_SEAT_NAME = "RW50aXR5VGlhbmppbk1ldHJvU2VhdA==";
public static final String ENTITY_SEAT_NAME = "b\nb";

public BlockBench() {
this(BlockBehaviour.Properties.copy(net.minecraft.world.level.block.Blocks.OAK_PLANKS));
Expand Down Expand Up @@ -119,6 +119,7 @@ public FluidState getFluidState(BlockState blockState) {
return blockState.getValue(WATERLOGGED) ? Fluids.WATER.getSource(false) : super.getFluidState(blockState);
}

// It's a very dumb way for sitting down. Waiting for a better implementation.
public static class TileEntityBench extends BlockEntityMapper implements TickableBlockEntity
{
Minecart seat;
Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

4 changes: 1 addition & 3 deletions common/src/main/resources/tjmetro.mixins.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,9 @@
"defaultRequire": 1
},
"client": [
"ConfigScreenMixin",
"CreativeModeInventoryScreenMixin",
"EffectRenderingInventoryScreenMixin",
"EntityRenderDispatcherMixin",
"MinecartRendererMixin",
"MinecraftMixin"
"MinecartRendererMixin"
]
}

0 comments on commit 7bfad05

Please sign in to comment.