Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/1.20.x' into 1.20.x
Browse files Browse the repository at this point in the history
  • Loading branch information
BlayTheNinth committed Apr 14, 2024
2 parents 56b1c1c + 6eb5db7 commit 45d1314
Show file tree
Hide file tree
Showing 10 changed files with 159 additions and 25 deletions.
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ mod_id = waystones
mod_name = Waystones
mod_main=Waystones
description=Teleport back to activated waystones. For Survival, Adventure or Servers.
version = 16.0.2
version = 16.0.4
group = net.blay09.mods
homepage=https://mods.twelveiterations.com/mc/waystones
sources=https://github.com/TwelveIterationMods/Waystones
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,69 @@
package net.blay09.mods.waystones.api;

import net.minecraft.resources.ResourceLocation;

public enum WaystoneVisibility {
ACTIVATION,
GLOBAL,
SHARD_ONLY
SHARD_ONLY,
SHARESTONE,
WHITE_SHARESTONE,
ORANGE_SHARESTONE,
MAGENTA_SHARESTONE,
LIGHT_BLUE_SHARESTONE,
YELLOW_SHARESTONE,
LIME_SHARESTONE,
PINK_SHARESTONE,
GRAY_SHARESTONE,
LIGHT_GRAY_SHARESTONE,
CYAN_SHARESTONE,
PURPLE_SHARESTONE,
BLUE_SHARESTONE,
BROWN_SHARESTONE,
GREEN_SHARESTONE,
RED_SHARESTONE,
BLACK_SHARESTONE;

public static WaystoneVisibility fromWaystoneType(ResourceLocation waystoneType) {
if (WaystoneTypes.isSharestone(waystoneType)) {
return switch (waystoneType.getPath()) {
case "white_sharestone" -> WaystoneVisibility.WHITE_SHARESTONE;
case "orange_sharestone" -> WaystoneVisibility.ORANGE_SHARESTONE;
case "magenta_sharestone" -> WaystoneVisibility.MAGENTA_SHARESTONE;
case "light_blue_sharestone" -> WaystoneVisibility.LIGHT_BLUE_SHARESTONE;
case "yellow_sharestone" -> WaystoneVisibility.YELLOW_SHARESTONE;
case "lime_sharestone" -> WaystoneVisibility.LIME_SHARESTONE;
case "pink_sharestone" -> WaystoneVisibility.PINK_SHARESTONE;
case "gray_sharestone" -> WaystoneVisibility.GRAY_SHARESTONE;
case "light_gray_sharestone" -> WaystoneVisibility.LIGHT_GRAY_SHARESTONE;
case "cyan_sharestone" -> WaystoneVisibility.CYAN_SHARESTONE;
case "purple_sharestone" -> WaystoneVisibility.PURPLE_SHARESTONE;
case "blue_sharestone" -> WaystoneVisibility.BLUE_SHARESTONE;
case "brown_sharestone" -> WaystoneVisibility.BROWN_SHARESTONE;
case "green_sharestone" -> WaystoneVisibility.GREEN_SHARESTONE;
case "red_sharestone" -> WaystoneVisibility.RED_SHARESTONE;
case "black_sharestone" -> WaystoneVisibility.BLACK_SHARESTONE;
default -> WaystoneVisibility.SHARESTONE;
};
} else if (waystoneType.equals(WaystoneTypes.WARP_PLATE)) {
return WaystoneVisibility.SHARD_ONLY;
} else if (waystoneType.equals(WaystoneTypes.LANDING_STONE)) {
return WaystoneVisibility.SHARD_ONLY;
} else {
return WaystoneVisibility.ACTIVATION;
}
}

public int getIconX() {
return 176;
}

public int getIconY() {
return switch (this) {
case ACTIVATION -> 32;
case GLOBAL -> 50;
case SHARD_ONLY -> 68;
default -> 86;
};
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import com.mojang.blaze3d.systems.RenderSystem;
import net.blay09.mods.balm.api.Balm;
import net.blay09.mods.waystones.Waystones;
import net.blay09.mods.waystones.api.WaystoneTypes;
import net.blay09.mods.waystones.client.gui.widget.ITooltipProvider;
import net.blay09.mods.waystones.client.gui.widget.WaystoneVisbilityButton;
import net.blay09.mods.waystones.menu.WaystoneMenu;
Expand All @@ -16,6 +17,7 @@
import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen;
import net.minecraft.client.renderer.GameRenderer;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.MutableComponent;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.entity.player.Inventory;
import org.lwjgl.glfw.GLFW;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.MutableComponent;
import net.minecraft.resources.ResourceLocation;
import org.jetbrains.annotations.Nullable;

import java.util.ArrayList;
import java.util.List;
Expand All @@ -32,7 +33,7 @@ public WaystoneVisbilityButton(int x, int y, WaystoneVisibility visibility, List
@Override
public void renderWidget(GuiGraphics guiGraphics, int mouseX, int mouseY, float partial) {
guiGraphics.blit(WAYSTONE_GUI_TEXTURES, getX(), getY(), 176 + (isHovered ? 18 : 0), 14, 18, 18);
guiGraphics.blit(WAYSTONE_GUI_TEXTURES, getX(), getY(), 176, 32 + (visibility.ordinal() * 18), 18, 18);
guiGraphics.blit(WAYSTONE_GUI_TEXTURES, getX(), getY(), visibility.getIconX(), visibility.getIconY(), 18, 18);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,16 +45,7 @@ public WaystoneImpl(ResourceLocation waystoneType, UUID waystoneUid, ResourceKey
this.pos = pos;
this.origin = origin;
this.ownerUid = ownerUid;

if (WaystoneTypes.isSharestone(waystoneType)) {
this.visibility = WaystoneVisibility.GLOBAL;
} else if (waystoneType.equals(WaystoneTypes.WARP_PLATE)) {
this.visibility = WaystoneVisibility.SHARD_ONLY;
} else if (waystoneType.equals(WaystoneTypes.LANDING_STONE)) {
this.visibility = WaystoneVisibility.SHARD_ONLY;
} else {
this.visibility = WaystoneVisibility.ACTIVATION;
}
this.visibility = WaystoneVisibility.fromWaystoneType(waystoneType);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,23 @@

public class WaystonePermissionManager {

private static final Set<WaystoneVisibility> DEFAULT_VISIBILITIES = Set.of(WaystoneVisibility.SHARD_ONLY, WaystoneVisibility.ACTIVATION);
private static final Set<WaystoneVisibility> DEFAULT_VISIBILITIES = Set.of(WaystoneVisibility.SHARD_ONLY, WaystoneVisibility.ACTIVATION,
WaystoneVisibility.WHITE_SHARESTONE,
WaystoneVisibility.ORANGE_SHARESTONE,
WaystoneVisibility.MAGENTA_SHARESTONE,
WaystoneVisibility.LIGHT_BLUE_SHARESTONE,
WaystoneVisibility.YELLOW_SHARESTONE,
WaystoneVisibility.LIME_SHARESTONE,
WaystoneVisibility.PINK_SHARESTONE,
WaystoneVisibility.GRAY_SHARESTONE,
WaystoneVisibility.LIGHT_GRAY_SHARESTONE,
WaystoneVisibility.CYAN_SHARESTONE,
WaystoneVisibility.PURPLE_SHARESTONE,
WaystoneVisibility.BLUE_SHARESTONE,
WaystoneVisibility.BROWN_SHARESTONE,
WaystoneVisibility.GREEN_SHARESTONE,
WaystoneVisibility.RED_SHARESTONE,
WaystoneVisibility.BLACK_SHARESTONE);

public static Optional<WaystoneEditError> mayEditWaystone(Player player, Level world, Waystone waystone) {
if (skipsPermissions(player)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,20 +104,15 @@ public Waystone getWaystone() {
}

public List<WaystoneVisibility> getVisibilityOptions() {
if (WaystoneTypes.isSharestone(waystone.getWaystoneType())) {
return List.of(WaystoneVisibility.GLOBAL);
} else if (waystone.getWaystoneType().equals(WaystoneTypes.WARP_PLATE)) {
return List.of(WaystoneVisibility.SHARD_ONLY);
} else if (waystone.getWaystoneType().equals(WaystoneTypes.LANDING_STONE)) {
return List.of(WaystoneVisibility.SHARD_ONLY);
} else {
final var result = new ArrayList<WaystoneVisibility>();
result.add(WaystoneVisibility.ACTIVATION);
final var result = new ArrayList<WaystoneVisibility>();
final var baseVisibility = WaystoneVisibility.fromWaystoneType(waystone.getWaystoneType());
result.add(baseVisibility);
if (baseVisibility == WaystoneVisibility.ACTIVATION) {
if (WaystonePermissionManager.isAllowedVisibility(WaystoneVisibility.GLOBAL) || WaystonePermissionManager.skipsPermissions(player)) {
result.add(WaystoneVisibility.GLOBAL);
}
return result;
}
return result;
}

public boolean canEdit() {
Expand Down
17 changes: 17 additions & 0 deletions shared/src/main/resources/assets/waystones/lang/en_us.json
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,23 @@
"tooltip.waystones.visibility.activation": "On Activation",
"tooltip.waystones.visibility.global": "Global",
"tooltip.waystones.visibility.shard_only": "Shards only",
"tooltip.waystones.visibility.white_sharestone": "White Sharestones",
"tooltip.waystones.visibility.orange_sharestone": "Orange Sharestones",
"tooltip.waystones.visibility.magenta_sharestone": "Magenta Sharestones",
"tooltip.waystones.visibility.light_blue_sharestone": "Light Blue Sharestones",
"tooltip.waystones.visibility.yellow_sharestone": "Yellow Sharestones",
"tooltip.waystones.visibility.lime_sharestone": "Lime Sharestones",
"tooltip.waystones.visibility.pink_sharestone": "Pink Sharestones",
"tooltip.waystones.visibility.gray_sharestone": "Gray Sharestones",
"tooltip.waystones.visibility.light_gray_sharestone": "Light Gray Sharestones",
"tooltip.waystones.visibility.cyan_sharestone": "Cyan Sharestones",
"tooltip.waystones.visibility.purple_sharestone": "Purple Sharestones",
"tooltip.waystones.visibility.blue_sharestone": "Blue Sharestones",
"tooltip.waystones.visibility.brown_sharestone": "Brown Sharestones",
"tooltip.waystones.visibility.green_sharestone": "Green Sharestones",
"tooltip.waystones.visibility.red_sharestone": "Red Sharestones",
"tooltip.waystones.visibility.black_sharestone": "Black Sharestones",
"tooltip.waystones.network": "Part of the %s network.",
"tooltip.waystones.edit_restricted": "This waystone cannot be edited.",
"stat.waystones.waystone_activated": "Waystones Activated",
"waystones.untitled_waystone": "Untitled Waystone",
Expand Down
52 changes: 51 additions & 1 deletion shared/src/main/resources/assets/waystones/lang/es_mx.json
Original file line number Diff line number Diff line change
Expand Up @@ -143,5 +143,55 @@
"config.waystones.compatibility.displayWaystonesOnJourneyMap": "Mostrar Waystones en JourneyMap",
"waystones.iconCredits": "Iconos de JoeCreates (CC-BY-SA 3.0)",
"waystones.map.untitled_waystone": "Waystones sin título",
"config.jade.plugin_waystones.waystone": "Waystones"
"config.jade.plugin_waystones.waystone": "Waystones",
"item.waystones.crumbling_attuned_shard": "Fragmento Sintonizado Fragil",
"tooltip.waystones.attuned_shard.attunement_crumbling": "Sera consumido por completo la proxima vez que te telestrasportes.",
"config.waystones.xpCost.inverseXpCost.tooltip": "Establecer en true si el costo de experiencia debe invertirse, lo que significa que cuanto más corta sea la distancia, más caro será. Se puede utilizar para fomentar otros métodos de viaje a corta distancia.",
"config.waystones.xpCost.blocksPerXpLevel.tooltip": "La cantidad de bloques por requisito de nivel de experiencia. Si se establece en 500, el costo base de experiencia para viajar 1000 bloques será de 2 niveles.",
"config.waystones.xpCost.minimumBaseXpCost.tooltip": "El costo mínimo de experiencia base (puede ser superado por multiplicadores definidos a continuación).",
"config.waystones.xpCost.maximumBaseXpCost.tooltip": "El costo máximo de experiencia base (puede ser superado por multiplicadores definidos a continuación), establecer en 0 para deshabilitar todos los costos de experiencia basados en la distancia.",
"config.waystones.xpCost.xpCostPerLeashed.tooltip": "Cuánta experiencia se necesita por animal con correa para viajar contigo.",
"config.waystones.xpCost.dimensionalWarpXpCost.tooltip": "El costo base de niveles de experiencia al viajar entre dimensiones. Ignora la distancia en bloques.",
"config.waystones.xpCost.globalWaystoneXpCostMultiplier.tooltip": "El multiplicador aplicado al tiempo de reutilización al teletransportarse a una waystone global mediante el botón del inventario o la piedra de teletransporte.",
"config.waystones.xpCost.warpStoneXpCostMultiplier.tooltip": "El multiplicador aplicado al costo base de experiencia al teletransportarse usando un objeto Piedra de Teletransporte (no el bloque Waystone, Konstantin)",
"config.waystones.xpCost.sharestoneXpCostMultiplier.tooltip": "El multiplicador aplicado al costo base de experiencia al teletransportarse de una Sharestone a otra.",
"config.waystones.xpCost.waystoneXpCostMultiplier.tooltip": "El multiplicador aplicado al costo base de experiencia al teletransportarse de una Waystone a otra.",
"config.waystones.xpCost.portstoneXpCostMultiplier.tooltip": "El multiplicador aplicado al costo base de experiencia al teletransportarse desde una Portstone.",
"config.waystones.xpCost.warpPlateXpCostMultiplier.tooltip": "El multiplicador aplicado al costo base de experiencia al teletransportarse de una placa de teletransporte a otra.",
"config.waystones.xpCost.inventoryButtonXpCostMultiplier.tooltip": "El multiplicador aplicado al costo base de experiencia al teletransportarse a través del botón del inventario.",
"config.waystones.restrictions.restrictToCreative.tooltip": "Si está habilitado, solo los jugadores en modo creativo pueden colocar, editar o romper waystones. Esto NO deshabilita la receta de fabricación.",
"config.waystones.restrictions.restrictRenameToOwner.tooltip": "Si está habilitado, solo el propietario de una waystone (quien la colocó) puede cambiarle el nombre.",
"config.waystones.restrictions.generatedWaystonesUnbreakable.tooltip": "Si está habilitado, las waystones generadas en la generación del mundo no se pueden romper.",
"config.waystones.restrictions.transportLeashed.tooltip": "Si está habilitado, las criaturas con correa serán teletransportadas contigo.",
"config.waystones.restrictions.transportLeashedDimensional.tooltip": "Si se debe llevar a las criaturas con correa contigo al teletransportarte entre dimensiones.",
"config.waystones.restrictions.leashedDenyList.tooltip": "Lista de criaturas con correa que no se pueden llevar contigo al teletransportarte.",
"config.waystones.restrictions.dimensionalWarp.tooltip": "Establecer en 'ALLOW' para permitir la teletransportación dimensional en general. Establecer en 'GLOBAL_ONLY' para restringir la teletransportación dimensional a waystones globales. Establecer en 'DENY' para no permitir ninguna teletransportación dimensional.",
"config.waystones.restrictions.dimensionalWarpAllowList.tooltip": "Lista de dimensiones desde las cuales y hacia las cuales los jugadores pueden teletransportarse entre dimensiones. Si se deja vacío, se permiten todas las dimensiones excepto las que están en dimensionalWarpDenyList.",
"config.waystones.restrictions.dimensionalWarpDenyList.tooltip": "Lista de dimensiones desde las cuales y hacia las cuales los jugadores no pueden teletransportarse entre dimensiones. Solo se utiliza si dimensionalWarpAllowList está vacío.",
"config.waystones.restrictions.allowWaystoneToWaystoneTeleport.tooltip": "Establecer en true si los jugadores deben poder teletransportarse entre waystones simplemente haciendo clic derecho en una waystone.",
"config.waystones.restrictions.globalWaystoneSetupRequiresCreativeMode.tooltip": "Establecer en false para permitir que los jugadores no creativos activen waystones de forma global para todos los jugadores.",
"config.waystones.cooldowns.globalWaystoneCooldownMultiplier.tooltip": "El multiplicador aplicado al tiempo de reutilización al teletransportarse a una waystone global mediante el botón del inventario o la piedra de teletransporte.",
"config.waystones.cooldowns.warpStoneCooldown.tooltip": "El tiempo de reutilización entre usos de la piedra de teletransporte en segundos. Esto está vinculado al jugador, no al objeto, por lo que varias piedras de teletransporte comparten el mismo tiempo de reutilización.",
"config.waystones.cooldowns.warpStoneUseTime.tooltip": "El tiempo en ticks que se tarda en usar una piedra de teletransporte. Este es el tiempo de carga al mantener presionado el clic derecho.",
"config.waystones.cooldowns.scrollUseTime.tooltip": "El tiempo en ticks que se tarda en usar un pergamino. Este es el tiempo de carga al mantener presionado el clic derecho.",
"config.waystones.cooldowns.warpPlateUseTime": "Tiempo de carga de la placa de teletransporte",
"config.waystones.cooldowns.warpPlateUseTime.tooltip": "El tiempo en ticks que se tarda en usar una placa de teletransporte. Este es el tiempo que el jugador debe permanecer encima.",
"config.waystones.cooldowns.inventoryButtonCooldown.tooltip": "El tiempo de reutilización entre usos del botón del inventario en segundos.",
"config.waystones.inventoryButton.inventoryButton.tooltip": "Establecer en 'NONE' para no tener un botón del inventario. Establecer en 'NEAREST' para un botón del inventario que teletransporta a la waystone más cercana. Establecer en 'ANY' para un botón del inventario que abre el menú de selección de waystones. Establecer en el nombre de una waystone para un botón del inventario que teletransporta a una waystone específica.",
"config.waystones.inventoryButton.warpButtonX.tooltip": "La posición x del botón de teletransporte en el inventario.",
"config.waystones.inventoryButton.warpButtonY.tooltip": "La posición y del botón de teletransporte en el inventario.",
"config.waystones.inventoryButton.creativeWarpButtonX.tooltip": "La posición x del botón de teletransporte en el menú creativo.",
"config.waystones.inventoryButton.creativeWarpButtonY.tooltip": "La posición y del botón de teletransporte en el menú creativo.",
"config.waystones.worldGen.worldGenStyle.tooltip": "Establecer en 'DEFAULT' para generar solo waystones con la textura normal. Establecer en 'MOSSY' o 'SANDY' para generar todas las waystones con esa variante. Establecer en 'BIOME' para que el estilo dependa del bioma en el que se genere.",
"config.waystones.worldGen.frequency.tooltip": "Distancia aproximada en fragmentos entre waystones generadas libremente en la generación del mundo. Establecer en 0 para deshabilitar la generación.",
"config.waystones.worldGen.dimensionAllowList.tooltip": "Lista de dimensiones en las que se permiten generar waystones a través de la generación del mundo. Si se deja vacío, se utilizan todas las dimensiones excepto las que están en worldGenDimensionDenyList.",
"config.waystones.worldGen.dimensionDenyList.tooltip": "Lista de dimensiones en las que no se permiten generar waystones a través de la generación del mundo. Solo se utiliza si worldGenDimensionAllowList está vacío.",
"config.waystones.worldGen.nameGenerationMode.tooltip": "Establecer en 'PRESET_FIRST' para usar primero los nombres de la lista de nombres personalizados. Establecer en 'PRESET_ONLY' para usar solo esos nombres personalizados. Establecer en 'MIXED' para que algunas waystones usen nombres personalizados y otras nombres aleatorios.",
"config.waystones.worldGen.customWaystoneNames.tooltip": "Estos nombres se utilizarán para el modo de generación de nombres PRESET. Consulta la opción nameGenerationMode para obtener más información.",
"config.waystones.worldGen.spawnInVillages.tooltip": "Establecer en true si se deben agregar waystones a la generación de aldeas. Es posible que algunas aldeas aún se generen sin waystones.",
"config.waystones.worldGen.forceSpawnInVillages.tooltip": "Asegura que prácticamente todas las aldeas tengan una waystone, generándola lo antes posible. Además, esto significa que las waystones generalmente se ubicarán en el centro de la aldea.",
"config.waystones.client.disableTextGlow.tooltip": "Si está habilitado, la superposición de texto en las waystones ya no se mostrará siempre a pleno brillo.",
"config.waystones.compatibility.displayWaystonesOnJourneyMap.tooltip": "Si está habilitado, se crearán puntos de referencia de JourneyMap para cada waystone activada.",
"config.waystones.compatibility.preferJourneyMapIntegration": "Preferir el mod 'JourneyMap Integration'",
"config.waystones.compatibility.preferJourneyMapIntegration.tooltip": "Si está habilitado, los puntos de referencia de JourneyMap solo se crearán si no está instalado el mod 'JourneyMap Integration'."
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 45d1314

Please sign in to comment.