hoverboard sound pitch shifting
thoraxis worldgen fix moved blockle to base antos mod nightmare archive render archive entry changes
This commit is contained in:
1 parent
6231320dfa
commit
f5b589b6ba
49 files changed
+343
-623
No files matched your search
-4
@@ -19,10 +19,6 @@ public final class AntarchyGameClientState {
|
|||||||
|| envelope[0].equals(Integer.toString(AntarchyGamePayload.ANTMAN_STATE))) {
|
|| envelope[0].equals(Integer.toString(AntarchyGamePayload.ANTMAN_STATE))) {
|
||||||
GAME_STATES.put(key(result.pos(), envelope[0]),
|
GAME_STATES.put(key(result.pos(), envelope[0]),
|
||||||
result.success() ? envelope[2] : "");
|
result.success() ? envelope[2] : "");
|
||||||
} else if (envelope[0].equals(Integer.toString(AntarchyGamePayload.BLOCKLE_STATE))
|
|
||||||
|| envelope[0].equals(Integer.toString(AntarchyGamePayload.BLOCKLE_GUESS))) {
|
|
||||||
if (!result.success()) return;
|
|
||||||
BlockleClientState.update(result);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
-26
@@ -1,26 +0,0 @@
|
|||||||
package com.craisinlord.antarchy.content.client;
|
|
||||||
|
|
||||||
import com.craisinlord.antarchy.content.network.AntarchyGameResultPayload;
|
|
||||||
import net.minecraft.core.BlockPos;
|
|
||||||
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
|
||||||
|
|
||||||
public final class BlockleClientState {
|
|
||||||
private static final Map<BlockPos, AntarchyGameResultPayload> RESULTS = new ConcurrentHashMap<>();
|
|
||||||
|
|
||||||
private BlockleClientState() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void update(AntarchyGameResultPayload result) {
|
|
||||||
RESULTS.put(result.pos(), result);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static AntarchyGameResultPayload get(BlockPos pos) {
|
|
||||||
return RESULTS.get(pos);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void clear(BlockPos pos) {
|
|
||||||
RESULTS.remove(pos);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+6
-7
@@ -17,23 +17,22 @@ public final class AntarchyComputerGames {
|
|||||||
private AntarchyComputerGames() {}
|
private AntarchyComputerGames() {}
|
||||||
|
|
||||||
public static void register() {
|
public static void register() {
|
||||||
ComputerGameRegistry.register(game("basilisk", "BASILISK", pos -> {
|
registerIfMissing(game("basilisk", "BASILISK", pos -> {
|
||||||
BasiliskProgram program = new BasiliskProgram(true, 0, 0, score -> AntarchyGameNetworking.saveBasiliskScore(pos, score));
|
BasiliskProgram program = new BasiliskProgram(true, 0, 0, score -> AntarchyGameNetworking.saveBasiliskScore(pos, score));
|
||||||
var loaded = new java.util.concurrent.atomic.AtomicBoolean();
|
var loaded = new java.util.concurrent.atomic.AtomicBoolean();
|
||||||
AntarchyGameNetworking.requestBasiliskState(pos);
|
AntarchyGameNetworking.requestBasiliskState(pos);
|
||||||
return new GameSession(() -> { if (!loaded.get()) loaded.set(loadScores(pos, AntarchyGamePayload.BASILISK_STATE, program::setStoredScores)); program.tick(); }, program::render, key -> loaded.get() && program.keyPressed(key), ignored -> false);
|
return new GameSession(() -> { if (!loaded.get()) loaded.set(loadScores(pos, AntarchyGamePayload.BASILISK_STATE, program::setStoredScores)); program.tick(); }, program::render, key -> loaded.get() && program.keyPressed(key), ignored -> false);
|
||||||
}));
|
}));
|
||||||
ComputerGameRegistry.register(game("antman", "ANTMAN.EXE", pos -> {
|
registerIfMissing(game("antman", "ANTMAN.EXE", pos -> {
|
||||||
AntmanProgram program = new AntmanProgram(true, 0, 0, score -> AntarchyGameNetworking.saveAntmanScore(pos, score));
|
AntmanProgram program = new AntmanProgram(true, 0, 0, score -> AntarchyGameNetworking.saveAntmanScore(pos, score));
|
||||||
var loaded = new java.util.concurrent.atomic.AtomicBoolean();
|
var loaded = new java.util.concurrent.atomic.AtomicBoolean();
|
||||||
AntarchyGameNetworking.requestAntmanState(pos);
|
AntarchyGameNetworking.requestAntmanState(pos);
|
||||||
return new GameSession(() -> { if (!loaded.get()) loaded.set(loadScores(pos, AntarchyGamePayload.ANTMAN_STATE, program::setStoredScores)); program.tick(); }, program::render, key -> loaded.get() && program.keyPressed(key), ignored -> false);
|
return new GameSession(() -> { if (!loaded.get()) loaded.set(loadScores(pos, AntarchyGamePayload.ANTMAN_STATE, program::setStoredScores)); program.tick(); }, program::render, key -> loaded.get() && program.keyPressed(key), ignored -> false);
|
||||||
}));
|
}));
|
||||||
ComputerGameRegistry.register(game("blockle", "BLOCKLE", pos -> {
|
}
|
||||||
BlockleProgram program = new BlockleProgram(pos);
|
|
||||||
program.setInstalled(true);
|
private static void registerIfMissing(ComputerGame game) {
|
||||||
return new GameSession(program::tick, program::render, program::keyPressed, program::charTyped);
|
if (ComputerGameRegistry.get(game.id()) == null) ComputerGameRegistry.register(game);
|
||||||
}));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static boolean loadScores(BlockPos pos, int action, java.util.function.BiConsumer<Integer, Integer> setter) {
|
private static boolean loadScores(BlockPos pos, int action, java.util.function.BiConsumer<Integer, Integer> setter) {
|
||||||
|
|||||||
-141
@@ -1,141 +0,0 @@
|
|||||||
package com.craisinlord.antarchy.content.client.game;
|
|
||||||
|
|
||||||
import com.craisinlord.antarchy.content.client.BlockleClientState;
|
|
||||||
import com.craisinlord.antarchy.content.network.AntarchyGameResultPayload;
|
|
||||||
import com.craisinlord.antarchy.content.network.AntarchyGameNetworking;
|
|
||||||
import net.minecraft.client.gui.Font;
|
|
||||||
import net.minecraft.client.gui.GuiGraphics;
|
|
||||||
import net.minecraft.core.BlockPos;
|
|
||||||
import net.minecraft.resources.ResourceLocation;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public final class BlockleProgram {
|
|
||||||
private final BlockPos position;
|
|
||||||
private final List<String> guesses = new ArrayList<>();
|
|
||||||
private final List<String> colors = new ArrayList<>();
|
|
||||||
private String input = "";
|
|
||||||
private String status = "LOADING...";
|
|
||||||
private String phase = "PLAYING";
|
|
||||||
private String answer = "";
|
|
||||||
private ResourceLocation answerId;
|
|
||||||
private long day = -1L;
|
|
||||||
private boolean installed;
|
|
||||||
private boolean pending;
|
|
||||||
private boolean received;
|
|
||||||
private String lastResponse = "";
|
|
||||||
|
|
||||||
public BlockleProgram(BlockPos position) {
|
|
||||||
this.position = position;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setInstalled(boolean installed) {
|
|
||||||
this.installed = installed;
|
|
||||||
if (!installed) clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean installed() {
|
|
||||||
return installed;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void requestState() {
|
|
||||||
if (installed) AntarchyGameNetworking.requestBlockleState(position);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void tick() {
|
|
||||||
AntarchyGameResultPayload result = BlockleClientState.get(position);
|
|
||||||
if (result == null) return;
|
|
||||||
if (result.data().equals(lastResponse)) return;
|
|
||||||
lastResponse = result.data();
|
|
||||||
String[] fields = result.data().split("\u0000", 3);
|
|
||||||
if (fields.length < 2 || (!fields[0].equals("18") && !fields[0].equals("19"))) return;
|
|
||||||
if (!fields[1].isBlank()) {
|
|
||||||
status = fields[1].toUpperCase();
|
|
||||||
pending = false;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (fields.length == 3) {
|
|
||||||
parse(fields[2]);
|
|
||||||
pending = false;
|
|
||||||
input = "";
|
|
||||||
received = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean keyPressed(int keyCode) {
|
|
||||||
if (!installed) return false;
|
|
||||||
if (keyCode == 259) {
|
|
||||||
if (!input.isEmpty()) input = input.substring(0, input.length() - 1);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
if (keyCode == 257 || keyCode == 335) {
|
|
||||||
if (!received) return true;
|
|
||||||
if (input.length() == 5 && phase.equals("PLAYING") && !pending) {
|
|
||||||
AntarchyGameNetworking.submitBlockleGuess(position, input);
|
|
||||||
pending = true;
|
|
||||||
status = "SUBMITTING";
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean charTyped(char codePoint) {
|
|
||||||
if (!installed || !received || phase.equals("SOLVED") || phase.equals("FAILED")) return false;
|
|
||||||
if (codePoint >= 'A' && codePoint <= 'Z') codePoint = Character.toLowerCase(codePoint);
|
|
||||||
if (codePoint >= 'a' && codePoint <= 'z' && input.length() < 5) {
|
|
||||||
input += codePoint;
|
|
||||||
status = "";
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void render(GuiGraphics graphics, Font font, int x, int y, int width, int height) {
|
|
||||||
BlockleRenderer.render(graphics, font, x, y, width, height, guesses, colors, input, status, phase, answerId);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void parse(String encoded) {
|
|
||||||
String[] values = encoded.split("\\|");
|
|
||||||
if (values.length == 0) return;
|
|
||||||
try { day = Long.parseLong(values[0]); } catch (NumberFormatException ignored) { return; }
|
|
||||||
guesses.clear();
|
|
||||||
colors.clear();
|
|
||||||
phase = "PLAYING";
|
|
||||||
answer = "";
|
|
||||||
for (int index = 1; index < values.length; index++) {
|
|
||||||
String value = values[index];
|
|
||||||
if (value.equals("PLAYING") || value.equals("SOLVED") || value.equals("FAILED")) {
|
|
||||||
phase = value;
|
|
||||||
if (index + 1 < values.length && (phase.equals("SOLVED") || phase.equals("FAILED"))) {
|
|
||||||
answer = values[index + 1];
|
|
||||||
if (index + 2 < values.length) {
|
|
||||||
try { answerId = ResourceLocation.parse(values[index + 2]); } catch (IllegalArgumentException ignored) { answerId = null; }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
String[] guess = value.split(",", 2);
|
|
||||||
if (guess.length == 2 && guess[0].length() == 5 && guess[1].length() == 5) {
|
|
||||||
guesses.add(guess[0]);
|
|
||||||
colors.add(guess[1]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
status = phase.equals("FAILED") && !answer.isBlank() ? "ANSWER: " + answer.toUpperCase() : phase.equals("PLAYING") ? "" : phase;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void clear() {
|
|
||||||
guesses.clear();
|
|
||||||
colors.clear();
|
|
||||||
input = "";
|
|
||||||
status = "LOADING...";
|
|
||||||
phase = "PLAYING";
|
|
||||||
answer = "";
|
|
||||||
answerId = null;
|
|
||||||
day = -1L;
|
|
||||||
pending = false;
|
|
||||||
received = false;
|
|
||||||
lastResponse = "";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-61
@@ -1,61 +0,0 @@
|
|||||||
package com.craisinlord.antarchy.content.client.game;
|
|
||||||
|
|
||||||
import net.minecraft.client.gui.Font;
|
|
||||||
import net.minecraft.client.gui.GuiGraphics;
|
|
||||||
import net.minecraft.network.chat.Component;
|
|
||||||
import net.minecraft.core.registries.BuiltInRegistries;
|
|
||||||
import net.minecraft.world.item.ItemStack;
|
|
||||||
import net.minecraft.resources.ResourceLocation;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public final class BlockleRenderer {
|
|
||||||
private static final int EMPTY = 0xFF102010;
|
|
||||||
private static final int GREY = 0xFF3A403A;
|
|
||||||
private static final int YELLOW = 0xFFB59F3B;
|
|
||||||
private static final int GREEN = 0xFF538D4E;
|
|
||||||
private static final int PALE = 0xFFB8FFB8;
|
|
||||||
|
|
||||||
private BlockleRenderer() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void render(GuiGraphics graphics, Font font, int x, int y, int width, int height,
|
|
||||||
List<String> guesses, List<String> colors, String input, String status, String phase,
|
|
||||||
ResourceLocation answerId) {
|
|
||||||
graphics.drawString(font, Component.literal("BLOCKLE"), x, y, 0xFF65FF65, false);
|
|
||||||
int cell = 18;
|
|
||||||
int gap = 3;
|
|
||||||
int boardX = x + Math.max(0, (width - cell * 5 - gap * 4) / 2);
|
|
||||||
int boardY = y + 18;
|
|
||||||
for (int row = 0; row < 6; row++) {
|
|
||||||
String guess = row < guesses.size() ? guesses.get(row) : row == guesses.size() ? input : "";
|
|
||||||
String rowColors = row < colors.size() ? colors.get(row) : "";
|
|
||||||
for (int column = 0; column < 5; column++) {
|
|
||||||
int left = boardX + column * (cell + gap);
|
|
||||||
int top = boardY + row * (cell + gap);
|
|
||||||
int fill = EMPTY;
|
|
||||||
if (column < rowColors.length()) fill = switch (rowColors.charAt(column)) {
|
|
||||||
case 'G' -> GREEN;
|
|
||||||
case 'Y' -> YELLOW;
|
|
||||||
default -> GREY;
|
|
||||||
};
|
|
||||||
graphics.fill(left, top, left + cell, top + cell, fill);
|
|
||||||
if (column < guess.length()) {
|
|
||||||
String letter = Character.toString(Character.toUpperCase(guess.charAt(column)));
|
|
||||||
graphics.drawCenteredString(font, letter, left + cell / 2, top + 5, PALE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
String message = status.isBlank() ? "ENTER TO SUBMIT" : status;
|
|
||||||
if (phase.equals("PLAYING") && input.length() < 5) message = input.length() + "/5 LETTERS";
|
|
||||||
graphics.drawString(font, Component.literal(message), x, y + 145, PALE, false);
|
|
||||||
if (!phase.equals("PLAYING") && answerId != null) {
|
|
||||||
ItemStack answerStack = BuiltInRegistries.ITEM.getOptional(answerId).map(ItemStack::new).orElse(ItemStack.EMPTY);
|
|
||||||
if (!answerStack.isEmpty()) {
|
|
||||||
graphics.setColor(0.35F, 1.0F, 0.35F, 1.0F);
|
|
||||||
graphics.renderItem(answerStack, x + width - 28, y + 137);
|
|
||||||
graphics.setColor(1.0F, 1.0F, 1.0F, 1.0F);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-8
@@ -26,8 +26,6 @@ public final class AntarchyGameSavedData extends SavedData {
|
|||||||
state.basiliskHighScore = item.getInt("BasiliskHighScore");
|
state.basiliskHighScore = item.getInt("BasiliskHighScore");
|
||||||
state.antmanScore = item.getInt("AntmanScore");
|
state.antmanScore = item.getInt("AntmanScore");
|
||||||
state.antmanHighScore = item.getInt("AntmanHighScore");
|
state.antmanHighScore = item.getInt("AntmanHighScore");
|
||||||
state.blockleDay = item.getLong("BlockleDay");
|
|
||||||
for (net.minecraft.nbt.Tag guess : item.getList("BlockleGuesses", net.minecraft.nbt.Tag.TAG_STRING)) state.blockleGuesses.add(guess.getAsString());
|
|
||||||
data.games.put(item.getString("Computer"), state);
|
data.games.put(item.getString("Computer"), state);
|
||||||
}
|
}
|
||||||
return data;
|
return data;
|
||||||
@@ -42,10 +40,6 @@ public final class AntarchyGameSavedData extends SavedData {
|
|||||||
item.putInt("BasiliskHighScore", state.basiliskHighScore);
|
item.putInt("BasiliskHighScore", state.basiliskHighScore);
|
||||||
item.putInt("AntmanScore", state.antmanScore);
|
item.putInt("AntmanScore", state.antmanScore);
|
||||||
item.putInt("AntmanHighScore", state.antmanHighScore);
|
item.putInt("AntmanHighScore", state.antmanHighScore);
|
||||||
item.putLong("BlockleDay", state.blockleDay);
|
|
||||||
ListTag guesses = new ListTag();
|
|
||||||
state.blockleGuesses.forEach(guess -> guesses.add(net.minecraft.nbt.StringTag.valueOf(guess)));
|
|
||||||
item.put("BlockleGuesses", guesses);
|
|
||||||
list.add(item);
|
list.add(item);
|
||||||
});
|
});
|
||||||
tag.put("Games", list);
|
tag.put("Games", list);
|
||||||
@@ -69,7 +63,5 @@ public final class AntarchyGameSavedData extends SavedData {
|
|||||||
|
|
||||||
public static final class GameState {
|
public static final class GameState {
|
||||||
public int basiliskScore, basiliskHighScore, antmanScore, antmanHighScore;
|
public int basiliskScore, basiliskHighScore, antmanScore, antmanHighScore;
|
||||||
public long blockleDay = Long.MIN_VALUE;
|
|
||||||
public final List<String> blockleGuesses = new ArrayList<>();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
-102
@@ -1,102 +0,0 @@
|
|||||||
package com.craisinlord.antarchy.content.computer.blockle;
|
|
||||||
|
|
||||||
import com.craisinlord.antarchy.Antarchy;
|
|
||||||
import com.google.gson.JsonElement;
|
|
||||||
import com.google.gson.JsonParser;
|
|
||||||
import net.minecraft.resources.ResourceLocation;
|
|
||||||
import net.minecraft.server.packs.resources.ResourceManager;
|
|
||||||
import net.minecraft.server.packs.resources.SimplePreparableReloadListener;
|
|
||||||
import net.minecraft.util.profiling.ProfilerFiller;
|
|
||||||
|
|
||||||
import java.util.LinkedHashSet;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
public final class BlockleAnswers extends SimplePreparableReloadListener<List<String>> {
|
|
||||||
public static final int VERSION = 1;
|
|
||||||
private static final int SALT = 0x4A17;
|
|
||||||
private static final ResourceLocation ANSWERS_FILE = ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "blockle/answers.json");
|
|
||||||
private static final BlockleAnswers INSTANCE = new BlockleAnswers();
|
|
||||||
private static final Map<String, ResourceLocation> ANSWER_ITEMS = Map.ofEntries(
|
|
||||||
Map.entry("anvil", vanilla("anvil")), Map.entry("apple", vanilla("apple")),
|
|
||||||
Map.entry("arrow", vanilla("arrow")), Map.entry("bread", vanilla("bread")),
|
|
||||||
Map.entry("brick", vanilla("brick")), Map.entry("chain", vanilla("chain")),
|
|
||||||
Map.entry("chest", vanilla("chest")), Map.entry("clock", vanilla("clock")),
|
|
||||||
Map.entry("cocoa", vanilla("cocoa")), Map.entry("flint", vanilla("flint")),
|
|
||||||
Map.entry("glass", vanilla("glass")), Map.entry("melon", vanilla("melon")),
|
|
||||||
Map.entry("paper", vanilla("paper")), Map.entry("poppy", vanilla("poppy")),
|
|
||||||
Map.entry("sculk", vanilla("sculk")), Map.entry("stone", vanilla("stone")),
|
|
||||||
Map.entry("stick", vanilla("stick")), Map.entry("sugar", vanilla("sugar")),
|
|
||||||
Map.entry("torch", vanilla("torch")), Map.entry("vault", vanilla("vault")),
|
|
||||||
Map.entry("wheat", vanilla("wheat")), Map.entry("allay", vanilla("allay_spawn_egg")),
|
|
||||||
Map.entry("blaze", vanilla("blaze_spawn_egg")), Map.entry("camel", vanilla("camel_spawn_egg")),
|
|
||||||
Map.entry("drown", vanilla("drowned_spawn_egg")), Map.entry("ghast", vanilla("ghast_spawn_egg")),
|
|
||||||
Map.entry("horse", vanilla("horse_spawn_egg")), Map.entry("llama", vanilla("llama_spawn_egg")),
|
|
||||||
Map.entry("panda", vanilla("panda_spawn_egg")), Map.entry("sheep", vanilla("sheep_spawn_egg")),
|
|
||||||
Map.entry("slime", vanilla("slime_spawn_egg")), Map.entry("squid", vanilla("squid_spawn_egg")),
|
|
||||||
Map.entry("stray", vanilla("stray_spawn_egg")), Map.entry("witch", vanilla("witch_spawn_egg")),
|
|
||||||
Map.entry("lever", vanilla("lever")), Map.entry("sword", vanilla("iron_sword")),
|
|
||||||
Map.entry("cheep", antarchy("cheep_spawn_egg")), Map.entry("jerry", antarchy("jerry_spawn_egg")),
|
|
||||||
Map.entry("lucid", antarchy("lucid_spawn_egg")), Map.entry("queen", antarchy("queen_spawn_egg")),
|
|
||||||
Map.entry("ichor", antarchy("ichor")), Map.entry("lotus", antarchy("lotus")),
|
|
||||||
Map.entry("mucus", antarchy("mucus")), Map.entry("peach", antarchy("peach"))
|
|
||||||
);
|
|
||||||
private static volatile List<String> answers = List.of();
|
|
||||||
|
|
||||||
private BlockleAnswers() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public static BlockleAnswers instance() {
|
|
||||||
return INSTANCE;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Answer answerForDay(long day) {
|
|
||||||
List<String> currentAnswers = answers;
|
|
||||||
if (currentAnswers.isEmpty()) return null;
|
|
||||||
int index = (int) Math.floorMod(day + SALT, currentAnswers.size());
|
|
||||||
String word = currentAnswers.get(index);
|
|
||||||
return new Answer(word, ANSWER_ITEMS.getOrDefault(word, vanilla("book")));
|
|
||||||
}
|
|
||||||
|
|
||||||
public static int size() {
|
|
||||||
return answers.size();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected List<String> prepare(ResourceManager resourceManager, ProfilerFiller profiler) {
|
|
||||||
var resource = resourceManager.getResource(ANSWERS_FILE);
|
|
||||||
if (resource.isEmpty()) return List.of();
|
|
||||||
|
|
||||||
try (var reader = resource.get().openAsReader()) {
|
|
||||||
JsonElement json = JsonParser.parseReader(reader);
|
|
||||||
if (!json.isJsonArray()) return List.of();
|
|
||||||
LinkedHashSet<String> validAnswers = new LinkedHashSet<>();
|
|
||||||
json.getAsJsonArray().forEach(element -> {
|
|
||||||
if (element.isJsonPrimitive() && element.getAsJsonPrimitive().isString()) {
|
|
||||||
String word = element.getAsString();
|
|
||||||
if (word.matches("(?i)[a-z]{5}")) validAnswers.add(word.toLowerCase(java.util.Locale.ROOT));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return List.copyOf(validAnswers);
|
|
||||||
} catch (Exception ignored) {
|
|
||||||
return List.of();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void apply(List<String> loadedAnswers, ResourceManager resourceManager, ProfilerFiller profiler) {
|
|
||||||
answers = loadedAnswers;
|
|
||||||
Antarchy.LOGGER.info("Loaded {} valid Blockle answers", answers.size());
|
|
||||||
}
|
|
||||||
|
|
||||||
public record Answer(String word, ResourceLocation itemId) {
|
|
||||||
}
|
|
||||||
|
|
||||||
private static ResourceLocation vanilla(String path) {
|
|
||||||
return ResourceLocation.withDefaultNamespace(path);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static ResourceLocation antarchy(String path) {
|
|
||||||
return ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, path);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-38
@@ -1,38 +0,0 @@
|
|||||||
package com.craisinlord.antarchy.content.computer.blockle;
|
|
||||||
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.Locale;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
public final class BlockleDictionary {
|
|
||||||
private static final String[] CHUNKS = {
|
|
||||||
"rossa,jetty,wizzo,cuppa,cohoe,gurks,squad,beisa,shrug,fossa,fluyt,camus,speed,mamil,array,polio,barns,panes,souts,limas,fetch,queck,twink,graze,crock,almud,oohed,colog,wisht,beard,samel,ahind,brung,barca,mahal,jambe,plush,bruja,howre,middy,kabab,zeals,mazel,sputa,goory,pails,scogs,snool,poboy,doest,orixa,quipo,burbs,goads,blaud,flocs,harim,mamey,primp,lathy,lunes,staps,salad,agony,gusli,damps,tocks,hoick,marry,amply,glisk,pulis,apter,shell,capas,saunf,kutis,teggs,halsh,gamma,tardy,tease,towts,abuts,allee,chins,rolly,situs,bards,phyma,torrs,chace,bikky,stoor,quink,wedgy,vises,swore,upsee,gyves,heapy,gilas,gairs,yonic,wagon,rance,swail,laxed,panne,tabus,anomy,swarm,sword,pharm,penes,snoek,razet,nahal,kapus,lokey,gobos,jails,afars,nerka,cundy,snark,intra,bundh,tanga,baaed,solus,senor,umami,wared,sharp,pewed,tuktu,knowd,dawds,flurr,inert,taxus,ruana,sulci,jaded,othyl,redig,manky,ovism,matlo,cease,perae,sixes,pubco,yappy,famed,hexed,bawrs,decry,iddah,dixit,cased,rupia,toidy,hodad,yukes,gaffe,annoy,leugh,howay,pixel,linga,bayou,lurgy,lears,scrat,prize,homes,scroo,egest,mopus,verbs,maple,barfs,judge,salle,shine,zineb,flexo,gismo,rears,khads,begum,glade,imams,strad,venae,skene,moten,rugby,goels,khazi,belit,smolt,morin,ofays,sural,janny,short,swish,haets,owned,musky,gimps,nodes,lefty,furca,exome,dribs,gouks,smews,munts,chiro,learn,mocus,slime,mokis,nevis,arcus,prigs,rente,yfere,hiker,crame,irked,naira,stire,nagas,peisy,miser,vivda,dolie,weave,umbel,barmy,louns,didos,viold,fowth,guqin,kayos,finca,taths,eliad,dorts,cooey,dicty,bobak,lowse,tuile,laked,tarts,reefy,agama,thing,shore,nicks,nunny,akoya,snaws,writs,doubt,alive,beaut,ibrik,hemps,towed,crout,mogul,halid,pecky,eched,musit,couth,acron,dynes,gothy,bundy,seeps,deeps,plene,kukus,petre,putto,darls,warps,shoji,emoji,hiked,omits,rainy,fills,zines,bores,algor,oliva,midge,vizor,hafta,mulla,paled,kneed,fibre,ptish,redan,exode,zorro,droll,niece,segno,sceat,tunes,mompe,radon,akkas,jowly,gandy,medii,knelt,evoke,lowts,teaks,bucko,groks,leafy,meses,synes,laths,zedas,blank,japed,voled,toxic,reach,nazzy,pubsy,pedro,cucks,baith,magas,gompa,bilby,popes,hents,auras,giddy,tacos,onned,bowed,tsars,slogs,grind,morel,asada,weeke,winna,amman,sabji,runts,slops,tread,loofa,fever,glove,trist,creps,pheon,beres,corso,sofar,reeze,pisos,lames,treck,boabs,apply,grata,daals,soyas,amour,gerne,dudes,nifle,again,slurp,ulnar,ettin,noles,gobar,bohos,kawas,radgy,coati,scail,helot,motel,tides,coven,jasey,flown,urubu,kiddo,nrtya,pinna,curbs,botas,cycle,yugas,ugali,opter,laver,ousts,ootid,easel,lewis,renos,paned,cunit,muils,jehus,ebike,cotch,upper,theor,unais,idiot,manes,sawer,gazoo,edged,pikey,meech,adyts,boite,ixias,alios,padle,lotah,ragas,pudus,meare,graip,quack,noise,livre,pheme,chest,lined,azlon,waves,achoo,valve,mawks,hydro,muxed,etude,smith,mends,pisco,cilia,algos,nenes,karma,neant,visie,volar,burro,doeth,ecrus,dekes,seepy,facts,pours,gambo,mensa,swept,oafos,shock,roams,potts,piker,tings,fount,daunt,battu,licit,cider,fords,palms,wheep,copes,whelm,usnea,staid,dosai,patka,gamas,drome,licks,aldea,snowy,quods,waker,syphs,stumm,chore,silts,topee,zeins,likin,topic,waved,worse,anear,rayah,clipe,teloi,thesp,dusts,pooch,lunts,vinny,purda,zonda,widen,jonty,mosed,hussy,escar,appay,tonic,tavah,budos,cures,retia,maile,undee,quois,vangs,kytes,rends,taiga,abets,licht,potae,funks,repas,sicht,mobes,ceorl,torte,snarl,might,genas,washy,etats,boink,perog,coden,crown,moity,helos,murky,gaitt,dance,grail,deads,mivvy,fugio,ursid,burin,mimsy,lotus,frons,durst,devis,parae,mands,sarin,ethic,whirs,bribe,rorty,nymph,billy,gighe,kalif,breds,cutey,mincy,modoc,allin,yeses,dwalm,balms,yucca,cyder,loped,kagus,smeek,ylems,peags,comps,nobly,cocoa,pedon,hithe,etrog,dumps,magic,bendy,seely,spawn,oxids,hakus,grads,abacs,focus,hides,hayed,stony,slims,tonka,ident,tansu,whirr,glike,votes,sigri,cades,layed,snail,fykes,ousia,nevus,wings,toile,junta,chair,regia,lavvy,fatty,bippy,hoody,bunco,zupan,spend,phubs,sluse,dwine,piety,pyrus,mogue,glows,kutch,ngana,piton,spalt,qipao,pakka,redly,furzy,arhat,fumer,addin,cardy,zooea,clegs,dhals,deshi,meany,lenos,cines,sneap,busti,belts,weans,globe,decad,tinks,bally,yokes,onsen,lover,iddat,terry,pogey,planh,lotte,clies,femes,deedy,acnes,rubli,lolos,rapes,manse,wiped,sabha,gamer,afear,adraw,outta,slaps,tarka,goyle,tomia,misdo,sayee,popsy,watch,riped,baths,tails,dinna,conin,bunya,skool,khors,hulks,lacet,lazes,seams,slyly,joins,doats,proke,kingy,ranny,raker,swoun,gular,sedum,opera,perns,redia,tekke,appel,waist,bolds,steer,podgy,humfs,stagy,opgaf,skeos,swerf,rhyta,pians,ulans,diver,penny,nanua,onlap,loyal,bohea,lirks,senti,pleon,daman,syned,mools,baked,rungs,brace,melba,sotto,dealt,bikes,fecit,flyer,sidhe,rengs,alkyd,veney,strag,apode,aigas,torts,sooth,stean,algin,gummy,nduja,ratan,durum,acies,unios,punts,filos,blype,molal,tiara,ratal,lowen,dawts,iddut,indew,surfs,brims,abaci,troke,mimed,rosha,elate,tilak,cycas,ornis,jives,mercy,dimes,cries,affix,ought,ansas,besti,romer,gisms,which,logon,weels,leftLine truncated
|
|
||||||
"puttu,anlas,torch,homed,serow,blogs,agist,tanka,prima,vobla,flosh,tamas,raver,vegas,roves,ommel,godet,sujee,cerne,halon,axils,eaten,dorms,chiva,sonne,kings,royst,album,groof,buddy,dinic,erhus,quoit,vitta,coxib,tithi,bemad,gouts,chiru,wodgy,gucks,ricin,liman,owner,spoil,trews,gawds,ownio,grams,vaxes,trigs,leets,queme,laxly,dhoni,sider,tabls,spuer,cored,merit,whews,treif,elfed,corgi,newsy,idyls,prays,wight,garri,chado,nonno,glazy,tenge,paves,plink,naffs,nonas,pipid,maiks,smees,sudds,plump,cered,moons,tarse,bewet,abaca,saved,scrab,byded,malic,sadhu,karos,trans,pokie,douce,elegy,conto,obeys,nilas,merry,fixer,escot,poise,soyuz,raise,pashm,rorts,bongo,atuas,asker,azuki,falsy,cubeb,aquas,wolfs,annul,luged,smugs,draft,lited,pichi,weils,grate,whins,sieve,boked,pollo,blunk,esker,eyres,padas,ileac,lawny,cymas,gutsy,bombs,zawns,crier,acers,guppy,lusty,dated,ranke,rusty,omdeh,tamal,remap,wersh,torcs,proas,dholl,enarm,loled,whear,cunei,coset,rafty,javel,fifes,grice,apish,idant,locie,hillo,slaws,cents,plain,volta,gundy,rines,keros,condo,asana,spink,psion,yawns,coyer,thews,carls,odyle,chals,darks,fates,pongs,hoyed,halal,sorgo,icons,bafta,blate,pares,rowel,helps,vakas,thali,llano,wamus,dozes,moble,myxos,yearn,ragga,lilty,unpay,niger,slank,bifid,gaums,laces,bekah,fient,nowds,vitro,shyly,helve,murrs,firry,mairs,lindy,tutti,karee,mobos,labis,pluke,insee,basin,winch,about,tizes,genes,probe,umiac,spaer,moots,sewen,grued,shist,perks,tolus,afire,pomas,mapou,gulag,ariki,jupes,false,nelly,gites,burry,sends,canes,bever,knawe,wonga,limen,pungo,staig,twerk,thumb,resid,copay,strew,oomph,saggy,kaids,ruers,naves,virls,sever,pupus,ettle,tipup,ollas,wally,bully,swang,doser,urent,pocan,spile,occur,risus,makaf,sabot,yamun,matai,durzi,vouge,macka,grrrl,avels,sorts,glide,menes,crane,azine,nosed,xoana,uteri,obeli,trots,simba,wirer,party,potai,reges,gombo,grume,hawed,wagyu,upbow,mares,nused,synod,hemic,twerp,tryma,teeny,uveal,crept,hyphy,perst,lords,began,thrum,nocks,ornee,krais,iglus,sloes,apols,cyclo,backy,richt,moist,droid,stand,bonie,fetus,teras,blare,napoo,diced,malts,shend,boars,charm,mayos,suets,antsy,breve,pinas,sprug,recit,halts,dater,mogos,afoam,ploce,inula,setae,raddy,lawns,genip,xrays,raked,maxim,reeaf,swale,wills,midis,scire,stonn,kinks,zeros,vatas,dogie,serry,pepsi,viand,acene,aloft,beals,kaneh,yirks,piled,bajra,lesos,renin,bonus,wauff,crink,lyses,knack,recon,canns,devel,spayd,throb,gaper,arise,moder,bluid,berko,agile,kamas,assai,slits,matte,spads,stool,ashet,uraei,pulls,firms,moule,rober,bydes,modii,ealed,tache,bebop,swapt,guava,curly,solon,argue,covet,skoal,mosso,haded,shorl,doups,hives,bulls,truce,katal,thugs,arles,drown,skags,babel,revet,novel,alays,codas,rache,punji,douks,potsy,diols,amnic,evict,bauds,hosta,dowie,wizen,micks,showy,zoeae,toxin,noded,bleat,kiaat,toyed,azurn,pupae,grees,oopak,yahoo,wists,ovoli,pines,foams,neves,puris,serve,lovie,ysame,womas,relos,sepia,trade,butes,micra,weise,recut,riser,mbari,dower,sakai,octas,danny,divot,cooly,scapi,salsa,exuls,scudi,leges,visit,farle,crest,faced,bukes,mouth,basse,basts,alkin,mausy,forks,dosha,reely,junks,cubed,plots,drent,curfs,goban,snide,taros,funts,niffy,vairs,noggy,toges,lever,egers,rokos,inrun,platy,antre,sabal,cocco,pouce,fugis,ranes,obang,thrip,thoft,baste,stats,momes,ocote,gloop,admin,oozle,slips,boord,hilus,smarm,aloha,natak,knubs,avert,dowak,bruck,bison,onkus,libor,gives,hardy,greet,craft,narra,tetri,ample,awave,thane,hales,acara,braks,mowra,lassy,kerma,shlep,words,raths,paans,aftos,along,fresh,negro,nuked,gated,manis,exons,poeps,joual,milko,azide,poake,mises,culet,pized,dykon,crunk,whose,bogus,moved,gyppy,oscar,lisps,danda,misch,ngwee,ryoti,swayl,snoke,awork,sopra,alley,kideo,crema,spaed,mired,idees,cuffs,baned,styre,poire,lacky,akita,clime,curst,wades,savvy,musks,stell,satis,wussy,zings,ernes,cluck,susus,beach,saola,rifte,tabun,crons,infer,sypes,build,unfed,pomps,mohur,hoser,autos,unset,neath,macte,whist,acrid,ecads,mamba,chocs,smush,cytes,thanx,rings,vinos,woful,awash,bayer,boody,alans,birzz,campy,retch,motus,taish,scots,panim,ethyl,knurs,coots,dacks,munge,ungag,eland,equip,elite,unlay,nonyl,rouky,varve,milts,soare,gecko,filly,jills,sakti,scrob,trope,seral,atocs,sarvo,nonic,masse,picra,dhaba,sensi,fiber,darns,bouge,rayls,tints,phuts,choil,vivre,osone,kemps,holds,bends,datil,hoten,slums,amrit,gouge,pikis,eensy,clans,dough,scads,blame,ghyll,bliss,tumps,budes,senza,gyres,verte,fluff,dhaks,huzzy,omber,piony,leams,amove,unbar,porus,ooaas,janty,leear,trull,droil,nitta,savey,qaids,caphs,brawn,wokka,mumph,ratas,hexer,lucid,oobit,pleat,holks,youks,dashi,leaps,kills,skein,shoat,hurra,juves,strow,shalt,lollo,duxes,chias,tined,plead,pricy,vanes,hazes,remen,rushy,abyss,vares,gally,dizen,wedge,kanga,haham,nuque,spurn,until,laree,midst,naker,mened,karsy,masks,pucer,goors,knoop,ticky,sargo,split,skeen,stood,togae,slush,prise,eales,eater,glaur,prexy,raffs,wekas,snout,court,ileus,palsy,sevir,rynds,ducal,ovels,juice,plets,woofy,panty,talak,vinas,bapus,weber,olein,gamed,tolaLine truncated
|
|
||||||
"built,mawrs,lagar,marid,grebo,spare,pieta,noxal,abase,kinky,priss,hacek,vicar,marka,temse,serir,blaze,ngaka,heeds,belar,qophs,noted,brews,hafts,ratti,firma,carbo,wrawl,adrip,mvuli,voici,fetor,recks,perne,dowls,mutic,fetts,wetly,exine,kauru,bubby,stope,haram,herry,dacha,saice,theow,awing,frugs,swoln,odium,parti,gaily,dwelt,money,laned,murry,skits,rowme,tatou,frere,ukase,dolci,rhomb,tynes,corer,nerdy,peats,fondu,okole,close,afoul,swole,scena,talaq,paces,senas,faiks,pneus,rubai,jibba,would,patly,fused,crena,doley,mesca,eches,serai,tinge,saran,glout,solei,tinny,noter,upful,venue,natch,panic,curia,yomps,diode,binks,stear,bring,pekau,peace,humps,ixnay,maunt,balot,cosec,purao,armed,liars,hifis,docks,wuxia,phooo,russe,gutty,urena,aidas,vials,posse,chaos,admen,pilum,gunks,wowed,inurn,trugo,skulk,tutee,wrier,pyxes,sonce,tsubo,floss,algid,allen,nolos,stoss,weamb,aspro,mucho,snebs,talcs,pekes,waxen,marls,clavi,titin,swing,uncut,entia,hwyls,vanga,sayne,based,knurr,raiah,pings,vegan,mound,menta,plowt,gaids,pipal,deets,caaed,sayed,hates,debes,masts,resus,unarm,chays,rowns,babus,lapse,alter,bruin,furol,loord,swits,majoe,faves,albas,lysis,shark,peach,vades,owlet,brods,lyams,rater,moves,mynas,arris,hiems,quags,roans,reamy,tanti,heady,pirns,casts,dress,enews,amido,kinin,adits,puffa,pucks,shuts,mural,mered,whens,gowls,darer,helix,mirly,womyn,raggs,wilja,monie,neram,nyams,slams,dirke,tehrs,skens,tavas,table,horal,oupas,navar,hippy,rawly,diets,surgy,lysol,seths,panny,arums,mulls,mazut,drony,virga,ratha,lunet,rowet,dancy,defat,splat,roger,nucha,plout,mungs,sloan,usque,sakia,guido,hissy,jigot,tyran,drapy,tight,puses,droop,pepla,deter,gleby,primo,haves,pinda,rieve,zabra,lieus,parky,fanum,yoyos,styte,faros,heald,gases,samas,scapa,teary,ginge,lossy,embed,genal,burps,fitly,mythy,purge,bauks,kwink,bawty,ferox,bazar,almah,hains,peaky,plops,noris,brink,kirns,sordo,boomy,dufus,nards,galea,corps,speil,deary,flyby,kerky,unlid,drums,undos,cools,conge,dodos,pavis,patas,pands,tipis,puree,statu,rotte,beads,evert,teals,vined,hamba,gopik,crans,wiled,weedy,pacha,parge,perdu,vaunt,pequi,piccy,leany,marly,whiff,neive,homie,rests,aware,riads,somas,lytta,dorps,idyll,mulsh,pence,vatus,zoril,semes,argot,drouk,linac,cloke,nimbi,anger,mojos,bozos,choof,avale,viewy,mazas,canon,abune,south,slobs,moler,ships,souls,boded,waspy,nowls,trice,nisse,teats,caned,biner,tronc,cutty,truss,diyas,merse,waffs,koala,agate,ezine,nudes,rigmo,evhoe,slick,wadas,olate,oleic,woons,typey,oncer,gumma,sweet,heavy,psych,khyal,cates,brens,socle,katis,frisk,withy,sauba,heyed,rosti,feuds,niced,kyles,rawns,gadje,jabot,crise,tacet,lines,esses,grope,swash,ngati,wised,garda,locks,gelid,horst,attas,sycon,telia,algal,frais,fango,yetis,marcs,addio,anils,bunce,wirra,gnarr,ludes,glary,coxed,beaky,ylids,added,patta,veles,curie,unces,ledum,sansa,adust,aurei,spitz,logie,unget,thema,yowls,coifs,surge,softa,gyoza,putas,blaes,blaws,celly,butte,stamp,grain,bursa,ligge,sagos,sheal,atrip,emeer,degus,stush,kynde,cured,pfftt,mills,minxy,tykes,atmos,suite,ramis,merks,coyau,twats,bussu,mooth,terfs,fests,enmew,nould,hoosh,nylon,alefs,pikas,zoons,busks,qapik,remou,cawed,pally,muntu,teugh,slimy,bassi,almes,outgo,batta,ranks,lanks,roguy,zippy,foids,welks,rowan,psias,yowes,allow,rants,faker,dells,rumbo,titir,combi,winds,rubby,deify,quena,crape,jokey,wootz,wites,koses,nizam,pratt,pukka,fixes,bobby,ruffs,magot,argal,ammas,scoog,aweel,gilia,payer,touns,rupee,marge,colle,pates,doles,rappe,lakhs,carve,grana,wytes,macks,nerve,mitry,crips,bewig,melic,andic,bands,mugil,quoin,pools,omiai,drips,eared,yippy,kexes,carol,lores,bises,obias,thurl,tajes,emmew,chiko,orbit,jimmy,vexer,begob,askos,liwaa,burgs,demob,imbed,lahal,chats,laves,cohos,jowar,nurdy,iodic,whoso,broth,soops,tried,crins,jaune,coarb,cocas,mugho,smoko,scaup,feart,skets,hebes,doums,korat,briki,soars,oaths,abeys,brome,appro,tarot,lymes,quich,amend,doers,duded,hushy,grogs,cleik,audit,kutai,skyre,milky,peens,cooze,rusks,meiko,boost,booze,jeans,neeps,kobos,dazes,bayes,spims,pegma,maddy,bwazi,xylic,agaty,rawdy,soree,dinge,assam,stoic,nyaff,rowed,ledes,polls,olive,strim,taras,piner,steno,seems,notum,cripe,stoai,nsima,buyer,gluey,poohs,hovea,jocky,kinas,fangs,yawed,tungs,ephas,povos,scram,camos,ympes,spacy,nucin,looed,ambit,stile,palay,roche,rices,diota,gatch,vasty,otium,flory,crues,petri,sycee,nippy,ludic,sayid,welke,links,uptie,clone,ploat,tiyns,humic,atopy,basan,boney,drill,oaten,mucro,seals,cavil,rimer,odyls,naked,maqam,kreng,sards,simis,geoid,butoh,aboma,oyers,sheas,laich,imine,ficus,ducky,mobey,eaves,warez,hiper,laund,punim,jouks,route,roods,wushu,mokos,ovens,ebons,paths,eidos,glute,abies,tiles,unsew,bidon,teams,muffs,reave,vigil,dutch,japes,spear,dules,caneh,lakin,arnut,fados,tonus,flied,serge,rives,scorn,orbat,aline,genre,hiant,quorl,cream,pebas,coala,prodd,lamps,wroth,shill,penal,spine,citee,milds,choir,bilat,betty,culpa,dilly,perfs,malik,kondo,surds,slice,ablet,omasa,hanch,vilde,fayne,tense,stare,disas,dowds,braza,dooks,verts,intro,mirah,karks,noneLine truncated
|
|
||||||
"pahus,goldy,unbox,dowts,copse,snuck,haars,bello,nebek,slipt,tokes,hewgh,alose,bucks,paips,sewar,mieux,madal,ahint,plish,nudgy,tuque,inane,galas,neeld,urdee,amyls,keyed,laccy,slide,adoon,kaugh,naice,vamps,twier,glebe,borms,krunk,buaze,imari,sepad,vertu,giant,repos,courd,resin,flubs,unbid,felty,decaf,razoo,hibas,pouts,kliks,eyras,fogey,aleem,papey,fiers,motet,tulip,steek,scaff,queen,tango,reput,rorie,monas,ponks,deros,venal,piped,alaps,fitts,besee,fauld,moley,apods,circs,plook,asyla,waite,wound,laddu,tices,bleys,tuffe,kains,kunds,seeds,alala,mawns,neddy,mengs,ewhow,doucs,tools,wacks,kypes,bunjy,braid,spifs,wyled,choli,quint,panto,clown,cokey,syver,coths,yokul,vogue,olden,vardo,vibed,cires,fonds,adaws,amuse,sisal,phone,kwaai,bruhs,runty,wonks,psoas,alowe,knows,azido,raike,sidey,sades,tared,culch,poted,afoot,kerel,kakis,devos,metol,avize,saids,kilts,punas,copal,prial,angry,sooty,slane,quest,goopy,plore,dubby,himbo,dogal,appal,dorrs,cando,rewan,kagos,cloop,adays,gulet,porte,clept,haiks,miyas,yeard,mifty,oater,liner,manos,rower,shura,quirl,jafas,clack,pikel,menad,fluky,reans,enate,mates,abray,thans,kuyas,songy,incog,gauds,hokum,dogma,blend,areca,dirge,sarge,ryijy,latus,gambe,shack,renal,reuse,slish,pagan,stirp,kylie,calif,hands,kirks,docus,uveas,shaps,gonzo,mummy,thawt,actin,hoard,howls,bundt,blush,supes,crogs,seron,solve,chert,totty,aborn,vinho,agree,snush,danks,proud,racon,shaly,paged,pulse,shank,onset,spain,regex,ureas,orlop,mushy,cronk,latch,blive,honds,gamay,heath,arnis,purau,tofus,hinds,mewed,cowks,birls,goyim,stend,alant,nolle,fulth,tasar,luvvy,dives,lunge,snick,derth,cosey,disci,uncos,yukos,tansy,metal,barde,saucy,smear,frore,kneel,grama,crios,chedi,endue,bafts,ralli,smore,tenor,pawns,lodge,resol,caron,tiare,poove,undam,kohas,vapes,river,caffs,blahs,vapor,brach,retax,molls,beans,kempy,ceric,scody,ditty,porth,tarte,faqir,jagra,ogive,bezel,malae,tapis,acryl,dully,trave,clads,rhime,skirr,snoot,prowk,satai,embus,colza,affly,dashy,bugan,wahay,shent,hodja,valli,dauby,oracy,beano,corms,hukou,corni,laxes,noisy,shtum,canny,outer,flaff,fuels,sieur,rehab,gleet,disco,mammy,aevum,hiped,moors,agley,ebene,coady,rerun,tynde,fetwa,garba,troys,kapai,calix,dites,ments,praus,loofs,troth,abore,rimae,early,carrs,salet,miens,joeys,quirt,embar,coked,leirs,cozey,flask,benis,guise,patsy,kirri,brava,ridge,jotas,reaps,varus,twits,freak,chads,plaud,oskin,oiran,manks,adopt,triol,logan,decos,glams,sadhe,cirls,theme,siver,quats,mbube,drole,mhorr,garbs,quyte,kells,mitch,adage,ozeki,vrils,mohos,leeps,skivy,plaps,clied,saith,saiga,swain,klutz,varan,ahing,louse,clink,peery,burke,scold,kunas,forze,syboe,pagod,wicca,infos,guimp,kails,evils,hosed,vaned,charr,muras,matzo,draff,range,buffo,alist,epoch,roral,yucko,crack,filet,pouff,biggy,festa,moyle,ramee,bajan,margs,gored,copha,dangs,bardo,micas,hiree,vegie,beers,aalii,yoghs,navel,heare,fease,jorum,exeme,upped,nepit,cover,smack,poney,preif,cauls,gecks,burka,dates,bonce,ruffy,layer,arbah,mirkn,train,enact,fremd,drave,feare,erect,sweal,pring,batts,thees,nudge,antas,doved,pelsh,pigmy,muiry,flora,bonne,oping,nauch,pawaw,golly,muirs,minae,agloo,faked,jamon,bowne,souly,funsy,claro,whids,hubba,flong,snath,howes,lomas,quass,aboil,nabis,shako,shoos,pooks,huger,totes,glial,atigi,mirth,loans,fagin,phpht,china,toter,fleek,bocce,henge,sunis,nenta,booky,miles,steez,pions,rapin,wolve,popup,unode,gymps,stane,naids,pleas,orgia,dames,abjad,peece,lurgi,frill,gitch,feued,lowps,stong,price,holed,eaved,humas,dered,swags,imide,hydel,annus,trons,moppy,rello,bents,bubal,dinlo,kiwis,urine,namer,feens,idler,lanes,scrog,mased,hider,ruffe,fakey,zaris,perts,satyr,suped,ganch,tibia,ceded,rabbi,stuns,stoop,abysm,aulic,carpe,moste,signs,steak,mixes,panir,grids,saddy,chode,viola,gigue,xerox,mirid,manor,strut,curet,bonze,winks,morts,geals,amlas,stubs,kembo,subah,daled,hells,apres,lifer,jhils,kerry,gauss,dayal,films,kophs,suede,unlap,valid,wayed,mechs,picot,halva,funic,zexes,pitas,nondo,waddy,lobar,rowth,threw,efits,nosir,iller,dobes,kabar,toffs,rehem,reign,lenti,hucks,knock,lovey,lants,skies,grouf,smuts,rifts,mauve,retro,tikia,chomp,nazar,clonk,reget,ovoid,sechs,mukim,kyars,amaze,valor,woald,fisks,giber,cames,round,leese,pubic,barbs,issue,razor,myths,kranz,baaps,poxed,vadas,jowls,twill,frita,naiad,ureal,gusla,lipid,sojas,nempt,huers,puler,whoop,obied,litho,debus,panax,befog,kilig,nites,carex,logic,swage,frati,edict,dalle,iliad,boots,scour,bacon,tares,sexer,masha,monal,pappi,flume,abord,chivy,parol,neons,mucko,event,yapon,fusks,sownd,frows,paxes,whaur,skean,owing,gilet,coops,abbed,onlay,akees,zouks,biers,mooni,kafir,lysin,xviii,rusas,reeds,yohay,salon,hones,urupa,smirs,shirr,meter,agrin,paved,lipas,ensky,trust,gippy,enjoy,appuy,fitna,moues,waxes,koiwi,lungi,bunch,goier,frape,keirs,hertz,nairu,promo,sunup,refis,scudo,olent,bromo,soole,conch,tepid,menge,aught,yecch,burns,bogie,carpi,arete,braky,naled,boned,talon,gonia,deray,ceres,inker,ranga,panga,reune,slomo,trema,ycled,heder,narco,quake,mixie,belle,genro,hurty,smeke,gossLine truncated
|
|
||||||
"ooids,gully,ramen,suber,sutra,preak,drere,bowel,hedgy,deles,refer,tofts,milty,frosh,manas,octan,kerfs,enorm,rebel,guaco,nisei,pelma,nasis,goeth,oared,segar,aflow,skims,wited,sough,hokku,pardy,teems,michi,decks,twonk,fales,ideas,dirls,snive,clows,leses,wakas,wahoo,memic,eniac,sexor,kimbo,oases,derms,pulka,sutor,botch,unaus,vughs,resto,kimet,malwa,rioty,enemy,ruder,ahent,yoker,shmoe,grame,lytic,potty,odism,acini,mules,soler,antae,lound,nicky,brags,doeks,ulnas,dagga,cadre,coypu,cotts,galis,lowes,bezzy,skran,iliac,pases,halve,flesh,runer,wefts,rebbe,isnae,siroc,gules,clomb,amaut,newts,ladle,gibes,taggy,haply,kalpa,bilks,blown,yomim,attap,educt,ingan,linos,gooey,fibro,maise,ngoma,adzed,flawy,toran,jades,offal,twilt,wager,booby,koban,yules,irone,azygy,tryke,sweys,neist,nunks,rogue,riato,mulai,obeah,emule,mocos,girns,sorta,cooky,causa,ayelp,mitta,emote,pelau,thang,appui,momus,asity,taunt,damme,ulzie,suids,cymes,muzzy,anata,spyre,roate,boppy,kelep,pilaf,caver,pheer,derat,peeps,tania,murva,surer,yatra,kapur,udons,coate,thelf,robbo,chynd,noups,brize,texes,bosky,aargh,alert,shews,lirot,lofty,jolly,palea,geode,suety,ponga,fores,voila,beech,cumin,polyp,murid,laufs,alarm,tyros,ragee,berry,ytost,welts,tinct,cacks,snuff,ecigs,plein,reded,dived,kests,mucky,grays,berth,adore,raksi,whift,pirks,roven,syncs,nomad,medal,cerge,gruff,macho,rooty,yabby,linty,delft,dawah,resow,blink,salty,sowff,lweis,tufts,gipon,veale,tigon,jumps,crick,pacos,porae,doter,rewax,doofs,sarus,vales,douse,cheka,gores,crusy,weals,pause,cours,kakas,nixer,scran,cumec,metes,wifie,eleet,heart,coste,duped,aloin,drags,nouny,vacas,riffs,locos,botty,catch,burnt,belli,swack,thole,stimy,holos,tapet,recti,fasts,musty,keech,moult,hella,tends,rugas,reede,spyal,blitz,octad,fiery,using,robot,unsaw,lipes,methy,gived,faces,touse,bikie,stulm,palla,toled,whies,herls,write,kanat,perch,shirk,roofy,skeps,beamy,rully,swops,hauns,horse,giust,minis,sized,zizit,crump,hulas,haika,verve,mooch,velum,techy,fouds,manty,mesal,alkie,roons,capos,grump,nooit,afanc,packs,mores,ambry,rugal,parly,alifs,legge,wawls,nadir,tenny,erned,solde,yerks,eagly,abeer,reply,gybes,cabre,vifda,vivid,gyver,psoai,pacas,piums,emits,touts,jotun,regal,sheen,tesla,unmix,grace,peasy,sohur,ganja,pylon,sente,gumbo,gruel,tanty,edile,rhumb,tilde,slyer,lasts,carry,kaifs,leche,bunks,moats,woose,mists,nihil,buffy,cabby,sarod,quoys,sered,livid,attar,craig,chave,macro,blech,steik,umiaq,donee,yonks,nopal,tells,gluts,bdays,flics,metas,eagre,spoon,hogos,pinol,fezzy,doody,alaap,rugae,upsey,chyme,raile,urbia,booth,manga,preen,hilum,luffs,baits,raven,preux,gauze,galed,pungi,hedge,heirs,reive,indue,wyted,torsk,fuffy,filmy,carks,neosa,lownd,quaky,lofts,hemin,vodun,pared,kawed,gurly,horas,gelly,foyle,shawm,faine,ulcer,podex,ariot,krays,towny,frags,humid,mints,sifts,merer,inerm,exude,selva,aspis,cinqs,yogic,auris,zests,bazoo,agios,rotal,binal,sella,astir,wacke,owler,saick,kylin,coxae,zokor,vying,ameer,taken,yests,haver,mugga,axiom,primi,pikau,scout,nears,sozin,pooly,roped,sezes,lavas,pilis,tabis,lazar,smote,feyly,japer,inros,griot,alurk,duvet,sepoy,rusts,curse,hahas,kerve,kyaks,longa,degum,dauts,ungum,walds,hollo,forty,howfs,nazis,enlit,gilpy,odeon,wheal,flobs,forby,lumen,opted,neebs,gaged,sulfa,toyon,clous,apart,merde,sukhs,abmho,rheid,bumfs,cogon,larks,parki,rotos,movie,nines,sambo,saint,fungo,snafu,alkos,staun,agros,bawks,takhi,snell,banks,inlet,rumen,shape,pesky,bacco,warst,dukes,typps,jauks,napoh,niton,khula,prese,tranq,gazes,majos,tuism,bacca,lasso,askew,anigh,heaps,sages,brise,kaims,tikes,bulge,gemma,tafia,annat,casks,taxol,nitty,miter,riqqs,cecum,avant,smurs,stray,yesty,boyly,skate,rangy,dosed,edify,gride,burds,agone,coxal,djinn,fadge,abele,skail,apeek,toons,spaes,payor,legit,gapes,takin,cuits,aisle,amici,ceroc,warms,soldi,spaws,naans,dolor,arnas,image,mouly,axels,codec,faffy,slopy,peppy,laari,oligo,prior,lupus,chare,rindy,proto,haick,leash,xysts,mufti,dandy,oxter,fries,hylic,musse,advts,musta,farad,ontal,above,punto,nicad,coirs,knosp,miros,samfu,doggo,oiler,mowie,mirza,fecal,rouet,yikes,jorts,denay,fulla,liart,sojus,ajupa,yumps,limos,gaped,miggs,haint,micos,weids,rorid,logos,mopey,axled,prove,lapje,ramps,oxlip,petal,aphis,fauch,goods,chiao,lazed,opahs,titch,lento,cahow,hutia,mochi,atlas,jolts,prats,omees,nipas,danio,dhoti,vents,allel,loure,erses,dumka,salop,zante,douma,agush,girsh,scyes,apism,ceaze,dicta,miffs,blady,feebs,tyiyn,arear,ruote,chewy,bonks,stogs,fuzil,suhur,oxeye,swamp,proyn,coped,grape,tichy,aarti,rudas,inbye,mopsy,tasca,amiga,gland,beeps,metis,bogey,glatt,nutty,dearn,ranse,aural,sleek,acton,talea,ovine,saist,rivet,leapt,wiper,alums,skimo,skimp,rouse,delay,gazal,appts,blert,cajun,anion,soxes,flips,tipsy,cuspy,trays,amate,yente,ictal,acoel,tumpy,scrim,scums,boing,roils,coffs,shily,tronk,tours,brood,dumas,cokes,dictu,think,teend,haugh,kenaf,lousy,wreak,maqui,radio,pasmo,grens,skint,mneme,liker,bukos,cisco,clang,cycad,micht,desex,naevi,salue,binge,abask,cager,orals,fryer,photo,grins,nurrs,meils,gilly,prorLine truncated
|
|
||||||
"flair,goofs,laiks,karas,amity,gawsy,moggy,lordy,samba,alone,eatin,muset,poker,trins,grist,paver,istle,plaid,groat,blond,bortz,galop,aside,calpa,augur,limes,yrivd,quail,mongo,pagle,yechs,unwit,aback,pilot,acids,ewked,beray,prian,rypin,folic,plied,okies,gushy,banda,worms,divis,pakki,muxes,cudda,conga,dined,tiffs,moxas,terce,thine,douar,gemel,dreks,pedal,towai,thigs,taits,morat,nappe,novia,wembs,smaze,talik,oncet,pecks,pruny,blays,dwaal,luaus,urger,manna,xenon,spags,biter,bunty,sinky,otary,euked,apays,scala,ostia,nasty,oopsy,dauds,beget,harry,meath,voxel,jelly,hotch,sties,creme,rules,dobra,kloof,unmad,podus,yowsa,aiyah,folia,lowry,acedy,alecs,prowl,prune,elude,xylem,lumme,nisin,ruble,tulps,yopos,duits,lulus,necks,tapir,lezzo,leaze,evegs,bumps,odder,grips,prone,fugal,hullo,morne,owies,lobby,yarns,teade,smirk,yandy,cusks,jures,psyop,rhino,kanji,traik,areic,butle,spina,letup,khets,loess,mason,orpin,ureid,nurls,suona,bingo,namak,bassy,hasps,linky,molar,hoghs,walls,comma,titas,mache,trace,crine,coles,spard,hoked,eisel,pooay,rider,haldi,algas,tempi,absey,ancho,fetas,gojis,cleve,lohan,tasks,sedes,chang,pikul,roins,vatic,reast,catty,rafee,laika,soums,whiss,mayas,peple,kyack,pujah,percs,nexal,lochy,fordo,boyey,crumb,glums,demit,wanle,quate,amins,stuff,booty,spook,shool,sluit,manoa,antar,karat,nalla,chimp,frowy,buoys,kissy,furos,tenia,zloty,blear,kotow,sweed,oinks,midgy,unsub,golpe,lades,graph,minor,agbas,celom,wands,gonif,grime,mbuga,dozen,clunk,firth,kurus,meane,fenny,jaspe,golds,latex,diazo,brash,ahigh,pinot,pioye,swipe,flexi,buats,pamby,salut,humus,oleyl,kohen,deems,padou,colin,lepra,yorga,rokey,onces,weets,caput,pilae,yenta,ancon,belly,ripen,raake,palis,treed,boygs,slart,scuzz,tenno,aggie,kooks,petti,weeks,aided,hypos,imago,ameba,pager,award,scute,cippi,asdic,brins,meson,sunny,pyots,babby,ditts,spaul,patel,ching,loams,styed,nante,slipe,grese,wythe,heles,nummy,ketch,hoast,chump,dixie,idles,vodka,fermi,maize,aimed,azons,kamme,moits,exeem,goral,melch,shuck,taluk,pawls,gajos,ghaut,guile,gleys,jukus,gluon,manly,walty,yiked,corby,zaire,chary,arrah,droog,subby,ragde,ponds,oseys,grass,gurdy,aixes,marma,crimp,gassy,bronc,coopt,glibs,toman,dimps,vaids,liken,blowy,sware,print,yourt,unite,tadah,coria,whamo,teene,gormy,urvas,izzat,gyans,syens,fidos,strap,rebar,chile,rifer,urase,hings,major,rabid,tauon,ontic,garms,bombe,firni,germy,tunny,baboo,tulle,rendu,brule,oidia,dorse,apian,dabba,jumby,zobos,akoja,mated,waney,maaed,frank,flute,dryad,jupon,gyals,rurps,lovat,extol,sheol,wrate,afizz,septs,brede,chemo,vieux,sores,noxas,trock,nerts,misto,local,yourn,klong,missa,sukuk,peine,cabas,vardy,issei,boric,aleph,husky,hoven,aiery,apses,wharf,addas,assay,plast,succi,tales,datum,ulmin,eusol,grief,prong,whaps,vocal,vower,nides,rebus,brows,scath,scabs,rozes,blunt,adbot,myons,rally,eyers,fille,frist,zimbs,aymag,leeks,judas,flirs,prunt,inorb,fyked,dicto,chili,spial,lisks,earth,scone,bemud,tosas,tribe,daynt,cohab,preop,oware,atilt,shrow,glass,pavvy,raved,mindi,ochre,poley,deave,umpie,ranch,clair,fugus,bunny,tarps,doomy,rexes,vroom,lauan,aster,meets,blini,pavan,stull,flimp,mirks,shola,passe,skart,gazar,trefa,teind,widdy,dinos,cline,toked,cubic,touch,steys,lazos,samey,chino,rajah,lycee,popia,shaws,sates,other,duchy,moove,orcas,point,beaus,vigor,scaud,girls,gigas,folly,rumpy,gaols,motis,sauch,salud,pents,vozhd,obbos,hokas,kombi,bokeh,laics,namaz,slain,teets,force,phies,genic,inver,tachi,argus,prick,users,bluff,hecks,bewdy,silds,vivat,knowe,besaw,muons,noils,buiks,krait,green,dooky,yeeds,gings,kalis,chugs,soras,buyin,silks,serer,mercs,arses,limbo,moufs,carta,venin,crudo,stoit,cynic,rhabd,kaphs,arsed,noois,flier,ylkes,firie,thowl,virtu,tules,silva,trest,krill,houri,lezes,infra,honda,ansae,nicol,unkey,stims,trapt,abbot,pelch,greed,fault,jolie,axial,estoc,misls,norma,pleep,moire,kudzu,goose,flamy,gayal,gamba,urped,sybil,goxes,wives,muruk,often,welsh,poste,bisom,walie,tuber,doura,reerd,baons,rubin,relic,towzy,tinea,after,volva,egger,dungy,shone,haugo,zitty,yummo,caups,margo,lanas,tinds,fabbo,blanc,quilt,pekoe,napas,chaft,fique,milly,sigma,shmek,rumly,umbra,ovary,foley,nitid,nyong,ogled,tewed,bytes,litie,auger,cimar,seiza,tamps,bruit,tough,kopek,algae,rioja,deare,plips,rheas,proot,lolog,denet,hames,drubs,saute,swoon,fogle,tidal,deals,haler,aglet,segas,seric,neifs,dynel,oldie,feoff,ustad,hance,pixie,netop,raupo,keets,fusty,biked,buroo,mozes,paolo,phoca,dykey,ksars,rejon,dinks,egmas,nital,kilns,malas,hopak,pacai,kreef,lunch,kilps,losed,etwee,tenne,texta,wench,pects,mazey,spork,hatha,cotes,poncy,while,ozone,bantu,salol,remit,lippy,cocus,urbex,purls,saeta,linch,plock,levis,slant,murti,fades,found,hakam,buses,gogga,fouet,silky,bigha,begem,lease,spire,binds,sampi,pyres,newel,baghs,rudis,niefs,donne,howto,yucky,ummed,domal,essay,nujol,limba,blain,kbars,boets,lotta,diker,aloes,felch,aggry,kutus,amuck,smeik,herns,witch,yaird,pryse,munch,finos,molas,dolee,rubor,zonae,boyed,novas,kheth,fudge,wodge,aflap,guyle,arepa,hault,stobs,faxed,cento,avail,usnic,songLine truncated
|
|
||||||
};
|
|
||||||
private static final Set<String> WORDS = load();
|
|
||||||
|
|
||||||
private BlockleDictionary() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public static boolean contains(String word) {
|
|
||||||
return word != null && WORDS.contains(word.toLowerCase(Locale.ROOT));
|
|
||||||
}
|
|
||||||
|
|
||||||
public static int size() {
|
|
||||||
return WORDS.size();
|
|
||||||
}
|
|
||||||
|
|
||||||
private static Set<String> load() {
|
|
||||||
Set<String> words = new HashSet<>();
|
|
||||||
for (String chunk : CHUNKS) {
|
|
||||||
Collections.addAll(words, chunk.split(","));
|
|
||||||
}
|
|
||||||
return Set.copyOf(words);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
-30
@@ -1,30 +0,0 @@
|
|||||||
package com.craisinlord.antarchy.content.computer.blockle;
|
|
||||||
|
|
||||||
public final class BlockleGame {
|
|
||||||
private BlockleGame() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public static String evaluate(String answer, String guess) {
|
|
||||||
if (answer == null || guess == null || answer.length() != 5 || guess.length() != 5) return "XXXXX";
|
|
||||||
char[] result = {'X', 'X', 'X', 'X', 'X'};
|
|
||||||
int[] remaining = new int[26];
|
|
||||||
for (int index = 0; index < 5; index++) {
|
|
||||||
if (answer.charAt(index) == guess.charAt(index)) {
|
|
||||||
result[index] = 'G';
|
|
||||||
} else {
|
|
||||||
remaining[answer.charAt(index) - 'a']++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for (int index = 0; index < 5; index++) {
|
|
||||||
if (result[index] == 'G') {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
int letter = guess.charAt(index) - 'a';
|
|
||||||
if (letter >= 0 && letter < remaining.length && remaining[letter] > 0) {
|
|
||||||
result[index] = 'Y';
|
|
||||||
remaining[letter]--;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return new String(result);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+3
-3
@@ -38,8 +38,6 @@ public final class CreativeTabContents {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static final List<CatalogEntry> CATALOG = List.of(
|
private static final List<CatalogEntry> CATALOG = List.of(
|
||||||
entry("bug_spray", "tools"),
|
|
||||||
entry("ant_trap", "building_blocks"),
|
|
||||||
entry("ouranwood_log", "building_blocks"),
|
entry("ouranwood_log", "building_blocks"),
|
||||||
entry("ouranwood_wood", "building_blocks"),
|
entry("ouranwood_wood", "building_blocks"),
|
||||||
entry("mossy_ouranwood_log", "building_blocks"),
|
entry("mossy_ouranwood_log", "building_blocks"),
|
||||||
@@ -386,6 +384,7 @@ public final class CreativeTabContents {
|
|||||||
entry("dead_star_coral_fan", "natural_blocks"),
|
entry("dead_star_coral_fan", "natural_blocks"),
|
||||||
entry("dead_star_coral_block", "natural_blocks"),
|
entry("dead_star_coral_block", "natural_blocks"),
|
||||||
entry("duct_tape", "tools_and_utilities", "shears"),
|
entry("duct_tape", "tools_and_utilities", "shears"),
|
||||||
|
entry("bug_spray", "tools_and_utilities"),
|
||||||
entry("music_disc_underside", "tools_and_utilities"),
|
entry("music_disc_underside", "tools_and_utilities"),
|
||||||
entry("diamond_minecart", "tools_and_utilities", "minecart"),
|
entry("diamond_minecart", "tools_and_utilities", "minecart"),
|
||||||
entry("bile_bucket", "tools_and_utilities"),
|
entry("bile_bucket", "tools_and_utilities"),
|
||||||
@@ -549,6 +548,7 @@ public final class CreativeTabContents {
|
|||||||
entry("hoverboard_green", "building_blocks"),
|
entry("hoverboard_green", "building_blocks"),
|
||||||
entry("hoverboard_red", "building_blocks"),
|
entry("hoverboard_red", "building_blocks"),
|
||||||
entry("hoverboard_black", "building_blocks"),
|
entry("hoverboard_black", "building_blocks"),
|
||||||
|
entry("ant_trap", "building_blocks"),
|
||||||
entry("easter_bunny_spawn_egg", "spawn_eggs"),
|
entry("easter_bunny_spawn_egg", "spawn_eggs"),
|
||||||
entry("flying_squirrel_spawn_egg", "spawn_eggs"),
|
entry("flying_squirrel_spawn_egg", "spawn_eggs"),
|
||||||
entry("caterpillar_spawn_egg", "spawn_eggs"),
|
entry("caterpillar_spawn_egg", "spawn_eggs"),
|
||||||
@@ -639,7 +639,7 @@ public final class CreativeTabContents {
|
|||||||
for (String potionPath : ANTARCHY_POTION_FAMILIES) {
|
for (String potionPath : ANTARCHY_POTION_FAMILIES) {
|
||||||
acceptPotionFamily(output, potionPath);
|
acceptPotionFamily(output, potionPath);
|
||||||
}
|
}
|
||||||
for (String diskId : List.of("antarchy:introduction", "antarchy:chronosphere", "antarchy:toreterror_arena", "antarchy:high_fructose_corn_syrup",
|
for (String diskId : List.of("antarchy:introduction", "antarchy:toreterror_arena", "antarchy:high_fructose_corn_syrup",
|
||||||
"antarchy:elythia", "antarchy:flying_squirrel", "antarchy:cavaryn", "antarchy:thoraxis", "antarchy:temporal_fields", "antarchy:bloodglass", "antarchy:vortex")) {
|
"antarchy:elythia", "antarchy:flying_squirrel", "antarchy:cavaryn", "antarchy:thoraxis", "antarchy:temporal_fields", "antarchy:bloodglass", "antarchy:vortex")) {
|
||||||
ItemStack disk = new ItemStack(com.craisinlord.antos.content.AntOSObjects.FLOPPY_DISK.get());
|
ItemStack disk = new ItemStack(com.craisinlord.antos.content.AntOSObjects.FLOPPY_DISK.get());
|
||||||
disk.set(com.craisinlord.antos.content.AntOSObjects.FLOPPY_DISK_COMPONENT.get(), ResourceLocation.parse(diskId));
|
disk.set(com.craisinlord.antos.content.AntOSObjects.FLOPPY_DISK_COMPONENT.get(), ResourceLocation.parse(diskId));
|
||||||
|
|||||||
-8
@@ -68,14 +68,6 @@ public class HoverboardEntity extends PathfinderMob implements GeoEntity {
|
|||||||
this.setPersistenceRequired();
|
this.setPersistenceRequired();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void tick() {
|
|
||||||
super.tick();
|
|
||||||
if (!this.level().isClientSide && this.isVehicle() && this.tickCount % 100 == 0) {
|
|
||||||
this.playSound(AntarchySoundEvents.HOVERBOARD_IDLE.get(), 0.55F, 1.0F);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean canBeAffected(MobEffectInstance effectInstance) {
|
public boolean canBeAffected(MobEffectInstance effectInstance) {
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
+1
-1
@@ -25,7 +25,7 @@ public final class ComputerScientistTradeManager extends SimpleJsonResourceReloa
|
|||||||
private static final Gson GSON = new Gson();
|
private static final Gson GSON = new Gson();
|
||||||
private static final String DIRECTORY = "computer_scientist_trades";
|
private static final String DIRECTORY = "computer_scientist_trades";
|
||||||
private static final List<ResourceLocation> GENERAL_DISKS = List.of(
|
private static final List<ResourceLocation> GENERAL_DISKS = List.of(
|
||||||
id("introduction"), id("chronosphere"), id("high_fructose_corn_syrup"),
|
id("introduction"), id("high_fructose_corn_syrup"),
|
||||||
id("elythia"), id("flying_squirrel"), id("cavaryn"), id("thoraxis"),
|
id("elythia"), id("flying_squirrel"), id("cavaryn"), id("thoraxis"),
|
||||||
id("temporal_fields"), id("bloodglass"), id("vortex"));
|
id("temporal_fields"), id("bloodglass"), id("vortex"));
|
||||||
private static volatile List<TradeEntry> loadedTrades = List.of();
|
private static volatile List<TradeEntry> loadedTrades = List.of();
|
||||||
|
|||||||
+1
-1
@@ -27,7 +27,7 @@ public final class PestControlTradeManager extends SimpleJsonResourceReloadListe
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static int[] slotsPerLevel() {
|
public static int[] slotsPerLevel() {
|
||||||
return new int[] {2, 2, 2, 1, 1};
|
return new int[] {3, 4, 3, 2, 2};
|
||||||
}
|
}
|
||||||
|
|
||||||
public static VillagerTrades.ItemListing listing(int level, int index) {
|
public static VillagerTrades.ItemListing listing(int level, int index) {
|
||||||
|
|||||||
+28
-21
@@ -7,6 +7,7 @@ import net.minecraft.sounds.SoundSource;
|
|||||||
import net.minecraft.world.InteractionHand;
|
import net.minecraft.world.InteractionHand;
|
||||||
import net.minecraft.world.InteractionResultHolder;
|
import net.minecraft.world.InteractionResultHolder;
|
||||||
import net.minecraft.world.entity.Entity;
|
import net.minecraft.world.entity.Entity;
|
||||||
|
import net.minecraft.world.entity.LivingEntity;
|
||||||
import net.minecraft.world.entity.Mob;
|
import net.minecraft.world.entity.Mob;
|
||||||
import net.minecraft.tags.EntityTypeTags;
|
import net.minecraft.tags.EntityTypeTags;
|
||||||
import net.minecraft.tags.TagKey;
|
import net.minecraft.tags.TagKey;
|
||||||
@@ -33,28 +34,34 @@ public final class BugSprayItem extends Item {
|
|||||||
if (!level.isClientSide && level instanceof ServerLevel serverLevel) {
|
if (!level.isClientSide && level instanceof ServerLevel serverLevel) {
|
||||||
Vec3 look = player.getLookAngle().normalize();
|
Vec3 look = player.getLookAngle().normalize();
|
||||||
Vec3 origin = player.getEyePosition().add(look.scale(0.6D));
|
Vec3 origin = player.getEyePosition().add(look.scale(0.6D));
|
||||||
var sprayParticle = AntarchyObjects.BUG_SPRAY_PARTICLE.get();
|
spray(serverLevel, origin, look, player.position(), SoundSource.PLAYERS, player.blockPosition());
|
||||||
serverLevel.sendParticles(sprayParticle, origin.x, origin.y, origin.z, 18,
|
stack.hurtAndBreak(1, player, LivingEntity.getSlotForHand(hand));
|
||||||
look.x * 0.45D, look.y * 0.45D, look.z * 0.45D, 0.06D);
|
|
||||||
AABB bounds = new AABB(origin, origin.add(look.scale(7.0D))).inflate(2.2D);
|
|
||||||
for (Entity entity : level.getEntities(player, bounds, candidate -> candidate instanceof Mob mob
|
|
||||||
&& (mob.getType().is(EntityTypeTags.SENSITIVE_TO_BANE_OF_ARTHROPODS)
|
|
||||||
|| mob.getType().is(ANARCHY_ARTHROPODS) || mob instanceof BaseAntEntity))) {
|
|
||||||
if (!(entity instanceof Mob mob)) continue;
|
|
||||||
Vec3 toward = mob.position().subtract(origin);
|
|
||||||
double distance = toward.length();
|
|
||||||
if (distance > 9.0D || distance < 0.001D || toward.normalize().dot(look) < 0.55D) continue;
|
|
||||||
Vec3 flee = mob.position().subtract(player.position()).normalize();
|
|
||||||
mob.getNavigation().moveTo(mob.getX() + flee.x * 6.0D, mob.getY(), mob.getZ() + flee.z * 6.0D, 1.25D);
|
|
||||||
mob.setTarget(null);
|
|
||||||
mob.setLastHurtByMob(null);
|
|
||||||
mob.setDeltaMovement(mob.getDeltaMovement().add(flee.scale(0.55D)).add(0.0D, 0.15D, 0.0D));
|
|
||||||
mob.hurtMarked = true;
|
|
||||||
serverLevel.sendParticles(sprayParticle, mob.getX(), mob.getY() + mob.getBbHeight() * 0.5D, mob.getZ(), 5, 0.12D, 0.12D, 0.12D, 0.02D);
|
|
||||||
}
|
|
||||||
level.playSound(null, player.blockPosition(), SoundEvents.FIRE_EXTINGUISH, SoundSource.PLAYERS, 0.7F, 1.2F);
|
|
||||||
stack.shrink(1);
|
|
||||||
}
|
}
|
||||||
return InteractionResultHolder.sidedSuccess(stack, level.isClientSide);
|
return InteractionResultHolder.sidedSuccess(stack, level.isClientSide);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void spray(ServerLevel level, Vec3 origin, Vec3 direction, Vec3 repellerPosition,
|
||||||
|
SoundSource soundSource, net.minecraft.core.BlockPos soundPosition) {
|
||||||
|
Vec3 look = direction.normalize();
|
||||||
|
var sprayParticle = AntarchyObjects.BUG_SPRAY_PARTICLE.get();
|
||||||
|
level.sendParticles(sprayParticle, origin.x, origin.y, origin.z, 18,
|
||||||
|
look.x * 0.45D, look.y * 0.45D, look.z * 0.45D, 0.06D);
|
||||||
|
AABB bounds = new AABB(origin, origin.add(look.scale(7.0D))).inflate(2.2D);
|
||||||
|
for (Entity entity : level.getEntities((Entity) null, bounds, candidate -> candidate instanceof Mob mob
|
||||||
|
&& (mob.getType().is(EntityTypeTags.SENSITIVE_TO_BANE_OF_ARTHROPODS)
|
||||||
|
|| mob.getType().is(ANARCHY_ARTHROPODS) || mob instanceof BaseAntEntity))) {
|
||||||
|
if (!(entity instanceof Mob mob)) continue;
|
||||||
|
Vec3 toward = mob.position().subtract(origin);
|
||||||
|
double distance = toward.length();
|
||||||
|
if (distance > 9.0D || distance < 0.001D || toward.normalize().dot(look) < 0.55D) continue;
|
||||||
|
Vec3 flee = mob.position().subtract(repellerPosition).normalize();
|
||||||
|
mob.getNavigation().moveTo(mob.getX() + flee.x * 6.0D, mob.getY(), mob.getZ() + flee.z * 6.0D, 1.25D);
|
||||||
|
mob.setTarget(null);
|
||||||
|
mob.setLastHurtByMob(null);
|
||||||
|
mob.setDeltaMovement(mob.getDeltaMovement().add(flee.scale(0.55D)).add(0.0D, 0.15D, 0.0D));
|
||||||
|
mob.hurtMarked = true;
|
||||||
|
level.sendParticles(sprayParticle, mob.getX(), mob.getY() + mob.getBbHeight() * 0.5D, mob.getZ(), 5, 0.12D, 0.12D, 0.12D, 0.02D);
|
||||||
|
}
|
||||||
|
level.playSound(null, soundPosition, SoundEvents.FIRE_EXTINGUISH, soundSource, 0.7F, 1.2F);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
-49
@@ -1,10 +1,6 @@
|
|||||||
package com.craisinlord.antarchy.content.network;
|
package com.craisinlord.antarchy.content.network;
|
||||||
|
|
||||||
import com.craisinlord.antarchy.config.AntarchySettings;
|
|
||||||
import com.craisinlord.antarchy.content.computer.AntarchyGameSavedData;
|
import com.craisinlord.antarchy.content.computer.AntarchyGameSavedData;
|
||||||
import com.craisinlord.antarchy.content.computer.blockle.BlockleAnswers;
|
|
||||||
import com.craisinlord.antarchy.content.computer.blockle.BlockleDictionary;
|
|
||||||
import com.craisinlord.antarchy.content.computer.blockle.BlockleGame;
|
|
||||||
import java.util.function.BiConsumer;
|
import java.util.function.BiConsumer;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
@@ -38,8 +34,6 @@ public final class AntarchyGameNetworkHandler {
|
|||||||
switch (payload.action()) {
|
switch (payload.action()) {
|
||||||
case AntarchyGamePayload.BASILISK_STATE -> basilisk(player, payload, state);
|
case AntarchyGamePayload.BASILISK_STATE -> basilisk(player, payload, state);
|
||||||
case AntarchyGamePayload.ANTMAN_STATE -> antman(player, payload, state);
|
case AntarchyGamePayload.ANTMAN_STATE -> antman(player, payload, state);
|
||||||
case AntarchyGamePayload.BLOCKLE_STATE -> blockle(player, computer, payload, state, false);
|
|
||||||
case AntarchyGamePayload.BLOCKLE_GUESS -> blockle(player, computer, payload, state, true);
|
|
||||||
default -> send(player, payload, false, "", "invalid");
|
default -> send(player, payload, false, "", "invalid");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -71,49 +65,6 @@ public final class AntarchyGameNetworkHandler {
|
|||||||
catch (NumberFormatException ignored) { return null; }
|
catch (NumberFormatException ignored) { return null; }
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void blockle(ServerPlayer player,
|
|
||||||
com.craisinlord.antos.content.block.entity.ComputerBlockEntity computer,
|
|
||||||
AntarchyGamePayload payload, AntarchyGameSavedData.GameState state, boolean submit) {
|
|
||||||
ResourceLocation disk = ResourceLocation.fromNamespaceAndPath("antarchy", "blockle_game");
|
|
||||||
if (!AntarchySettings.unlockAllArchives() && !computer.diskIds().contains(disk)) {
|
|
||||||
send(player, payload, false, "", "not_installed"); return;
|
|
||||||
}
|
|
||||||
ServerLevel overworld = player.server.getLevel(Level.OVERWORLD);
|
|
||||||
if (overworld == null) { send(player, payload, false, "", "overworld_unavailable"); return; }
|
|
||||||
long day = overworld.getDayTime() / 24000L;
|
|
||||||
if (state.blockleDay != day) {
|
|
||||||
state.blockleDay = day;
|
|
||||||
state.blockleGuesses.clear();
|
|
||||||
AntarchyGameSavedData.changed(player.server);
|
|
||||||
}
|
|
||||||
BlockleAnswers.Answer answer = BlockleAnswers.answerForDay(day);
|
|
||||||
if (answer == null) { send(player, payload, false, "", "answers_unavailable"); return; }
|
|
||||||
if (submit) {
|
|
||||||
String guess = payload.value().toLowerCase(java.util.Locale.ROOT);
|
|
||||||
if (guess.length() != 5 || !guess.chars().allMatch(value -> value >= 'a' && value <= 'z') || !BlockleDictionary.contains(guess)) {
|
|
||||||
send(player, payload, false, "", "invalid_word"); return;
|
|
||||||
}
|
|
||||||
if (state.blockleGuesses.size() >= 6 || state.blockleGuesses.contains(answer.word())) {
|
|
||||||
send(player, payload, false, "", "game_over"); return;
|
|
||||||
}
|
|
||||||
state.blockleGuesses.add(guess);
|
|
||||||
AntarchyGameSavedData.changed(player.server);
|
|
||||||
}
|
|
||||||
send(player, payload, true, encodeBlockle(day, answer, state.blockleGuesses), "");
|
|
||||||
}
|
|
||||||
|
|
||||||
private static String encodeBlockle(long day, BlockleAnswers.Answer answer, java.util.List<String> guesses) {
|
|
||||||
StringBuilder result = new StringBuilder(Long.toString(day));
|
|
||||||
boolean solved = false;
|
|
||||||
for (String guess : guesses) {
|
|
||||||
result.append('|').append(guess).append(',').append(BlockleGame.evaluate(answer.word(), guess));
|
|
||||||
if (guess.equals(answer.word())) solved = true;
|
|
||||||
}
|
|
||||||
if (solved || guesses.size() >= 6) result.append('|').append(solved ? "SOLVED" : "FAILED").append('|').append(answer.word()).append('|').append(answer.itemId());
|
|
||||||
else result.append('|').append("PLAYING");
|
|
||||||
return result.toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void send(ServerPlayer player, AntarchyGamePayload payload, boolean success, String data, String error) {
|
private static void send(ServerPlayer player, AntarchyGamePayload payload, boolean success, String data, String error) {
|
||||||
resultSender.accept(player, new AntarchyGameResultPayload(payload.pos(), success,
|
resultSender.accept(player, new AntarchyGameResultPayload(payload.pos(), success,
|
||||||
payload.action() + "\0" + error + "\0" + data));
|
payload.action() + "\0" + error + "\0" + data));
|
||||||
|
|||||||
-2
@@ -13,8 +13,6 @@ public final class AntarchyGameNetworking {
|
|||||||
public static void saveBasiliskScore(BlockPos pos, int score) { send(pos, AntarchyGamePayload.BASILISK_STATE, Integer.toString(Math.max(0, score))); }
|
public static void saveBasiliskScore(BlockPos pos, int score) { send(pos, AntarchyGamePayload.BASILISK_STATE, Integer.toString(Math.max(0, score))); }
|
||||||
public static void requestAntmanState(BlockPos pos) { send(pos, AntarchyGamePayload.ANTMAN_STATE, ""); }
|
public static void requestAntmanState(BlockPos pos) { send(pos, AntarchyGamePayload.ANTMAN_STATE, ""); }
|
||||||
public static void saveAntmanScore(BlockPos pos, int score) { send(pos, AntarchyGamePayload.ANTMAN_STATE, Integer.toString(Math.max(0, score))); }
|
public static void saveAntmanScore(BlockPos pos, int score) { send(pos, AntarchyGamePayload.ANTMAN_STATE, Integer.toString(Math.max(0, score))); }
|
||||||
public static void requestBlockleState(BlockPos pos) { send(pos, AntarchyGamePayload.BLOCKLE_STATE, ""); }
|
|
||||||
public static void submitBlockleGuess(BlockPos pos, String guess) { send(pos, AntarchyGamePayload.BLOCKLE_GUESS, guess); }
|
|
||||||
|
|
||||||
private static void send(BlockPos pos, int action, String value) { sender.accept(new AntarchyGamePayload(pos, action, value)); }
|
private static void send(BlockPos pos, int action, String value) { sender.accept(new AntarchyGamePayload(pos, action, value)); }
|
||||||
}
|
}
|
||||||
-2
@@ -11,8 +11,6 @@ import net.minecraft.resources.ResourceLocation;
|
|||||||
public record AntarchyGamePayload(BlockPos pos, int action, String value) implements CustomPacketPayload {
|
public record AntarchyGamePayload(BlockPos pos, int action, String value) implements CustomPacketPayload {
|
||||||
public static final int BASILISK_STATE = 16;
|
public static final int BASILISK_STATE = 16;
|
||||||
public static final int ANTMAN_STATE = 17;
|
public static final int ANTMAN_STATE = 17;
|
||||||
public static final int BLOCKLE_STATE = 18;
|
|
||||||
public static final int BLOCKLE_GUESS = 19;
|
|
||||||
public static final Type<AntarchyGamePayload> TYPE = new Type<>(ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "antarchy_game"));
|
public static final Type<AntarchyGamePayload> TYPE = new Type<>(ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "antarchy_game"));
|
||||||
public static final StreamCodec<RegistryFriendlyByteBuf, AntarchyGamePayload> STREAM_CODEC = StreamCodec.composite(
|
public static final StreamCodec<RegistryFriendlyByteBuf, AntarchyGamePayload> STREAM_CODEC = StreamCodec.composite(
|
||||||
BlockPos.STREAM_CODEC, AntarchyGamePayload::pos,
|
BlockPos.STREAM_CODEC, AntarchyGamePayload::pos,
|
||||||
|
|||||||
@@ -1477,25 +1477,20 @@
|
|||||||
,"guide.antarchy.missing_title": "CORRUPTED FILE"
|
,"guide.antarchy.missing_title": "CORRUPTED FILE"
|
||||||
,"guide.antarchy.missing_disk_title": "UNREADABLE DISK"
|
,"guide.antarchy.missing_disk_title": "UNREADABLE DISK"
|
||||||
,"guide.antarchy.disk.introduction.title": "INITIAL BOOT NOTES"
|
,"guide.antarchy.disk.introduction.title": "INITIAL BOOT NOTES"
|
||||||
,"guide.antarchy.disk.chronosphere.title": "CHRONOSPHERE DATA"
|
|
||||||
,"guide.antarchy.disk.toreterror_arena.title": "TORETERROR ARENA DATA"
|
,"guide.antarchy.disk.toreterror_arena.title": "TORETERROR ARENA DATA"
|
||||||
,"guide.antarchy.disk.high_fructose_corn_syrup.title": "CORN SYRUP DATA"
|
,"guide.antarchy.disk.high_fructose_corn_syrup.title": "CORN SYRUP DATA"
|
||||||
,"guide.antarchy.disk.elythia.title": "ELYTHIA ACCESS RECORD"
|
,"guide.antarchy.disk.elythia.title": "ELYTHIA ACCESS RECORD"
|
||||||
,"guide.antarchy.disk.flying_squirrel.title": "FLYING SQUIRREL FIELD NOTES"
|
,"guide.antarchy.disk.flying_squirrel.title": "FLYING SQUIRREL FIELD NOTES"
|
||||||
,"guide.antarchy.disk.basilisk_game.title": "BASILISK.EXE"
|
,"guide.antarchy.disk.basilisk_game.title": "BASILISK.EXE"
|
||||||
,"guide.antarchy.disk.antman_game.title": "ANTMAN.EXE"
|
,"guide.antarchy.disk.antman_game.title": "ANTMAN.EXE"
|
||||||
,"guide.antarchy.disk.blockle_game.title": "BLOCKLE"
|
|
||||||
,"guide.antarchy.disk.cavaryn.title": "CAVARYN ACCESS RECORD"
|
,"guide.antarchy.disk.cavaryn.title": "CAVARYN ACCESS RECORD"
|
||||||
,"guide.antarchy.disk.thoraxis.title": "THORAXIS ACCESS RECORD"
|
,"guide.antarchy.disk.thoraxis.title": "THORAXIS ACCESS RECORD"
|
||||||
,"guide.antarchy.disk.temporal_fields.title": "TEMPORAL FIELDS MANUAL"
|
,"guide.antarchy.disk.temporal_fields.title": "TEMPORAL MANIPULATION"
|
||||||
,"guide.antarchy.disk.bloodglass.title": "BLOODGLASS SURVIVAL NOTES"
|
,"guide.antarchy.disk.bloodglass.title": "BLOODGLASS SURVIVAL NOTES"
|
||||||
,"guide.antarchy.disk.vortex.title": "VORTEX CONTROL NOTES"
|
,"guide.antarchy.disk.vortex.title": "VORTEX"
|
||||||
,"guide.antarchy.entry.introduction.title": "SYSTEM INITIALIZED"
|
,"guide.antarchy.entry.introduction.title": "SYSTEM INITIALIZED"
|
||||||
,"guide.antarchy.entry.introduction.subtitle": "A machine for remembering what should have stayed forgotten."
|
,"guide.antarchy.entry.introduction.subtitle": "A machine for remembering what should have stayed forgotten."
|
||||||
,"guide.antarchy.entry.introduction.description": "Insert recovered floppy disks to expand this archive. The machine remembers. The machine does not forgive."
|
,"guide.antarchy.entry.introduction.description": "Insert recovered floppy disks to expand this archive. The machine remembers. The machine does not forgive."
|
||||||
,"guide.antarchy.entry.chronosphere.title": "Chronosphere"
|
|
||||||
,"guide.antarchy.entry.chronosphere.subtitle": "Temporal equipment record"
|
|
||||||
,"guide.antarchy.entry.chronosphere.description": "A record for the Chronosphere enchantment will be expanded here. Further data is pending."
|
|
||||||
,"guide.antarchy.entry.toreterror.title": "Toreterror"
|
,"guide.antarchy.entry.toreterror.title": "Toreterror"
|
||||||
,"guide.antarchy.entry.toreterror_arena.subtitle": "Elythia Ocean boss"
|
,"guide.antarchy.entry.toreterror_arena.subtitle": "Elythia Ocean boss"
|
||||||
,"guide.antarchy.entry.toreterror_arena.description": "The nearest Toreterror Arena within search range is listed below. It is always placed in an Elythia Ocean."
|
,"guide.antarchy.entry.toreterror_arena.description": "The nearest Toreterror Arena within search range is listed below. It is always placed in an Elythia Ocean."
|
||||||
@@ -1511,13 +1506,13 @@
|
|||||||
,"guide.antarchy.entry.thoraxis.title": "Thoraxis"
|
,"guide.antarchy.entry.thoraxis.title": "Thoraxis"
|
||||||
,"guide.antarchy.entry.thoraxis.subtitle": "Dimension and portal access record"
|
,"guide.antarchy.entry.thoraxis.subtitle": "Dimension and portal access record"
|
||||||
,"guide.antarchy.entry.thoraxis.description": "Thoraxis is reached through a Thoraxis portal made with a valid frame. A sacrificed Red Ant activates the portal. Its vertical progression includes Dream Dunes, Umbral Hills, Lucid Pools, and Nadir Forest."
|
,"guide.antarchy.entry.thoraxis.description": "Thoraxis is reached through a Thoraxis portal made with a valid frame. A sacrificed Red Ant activates the portal. Its vertical progression includes Dream Dunes, Umbral Hills, Lucid Pools, and Nadir Forest."
|
||||||
,"guide.antarchy.entry.temporal_fields.title": "Temporal Fields"
|
,"guide.antarchy.entry.temporal_fields.title": "Temporal Manipulation"
|
||||||
,"guide.antarchy.entry.temporal_fields.subtitle": "Time dilation and Chronosphere reference"
|
,"guide.antarchy.entry.temporal_fields.subtitle": "Time dilation, contraction, and Chronosphere reference"
|
||||||
,"guide.antarchy.entry.temporal_fields.description": "Time Dilation and Time Contraction alter the rate of affected entities. Chronosphere armor creates a player-centered field at 35 percent rate; higher levels expand its radius."
|
,"guide.antarchy.entry.temporal_fields.description": "Time Dilation and Time Contraction alter the rate of affected entities. The Chronosphere enchantment creates a player-centered field at 35 percent rate; higher levels expand its radius."
|
||||||
,"guide.antarchy.entry.bloodglass.title": "Bloodglass"
|
,"guide.antarchy.entry.bloodglass.title": "Bloodglass"
|
||||||
,"guide.antarchy.entry.bloodglass.subtitle": "Reactive protection system"
|
,"guide.antarchy.entry.bloodglass.subtitle": "Reactive protection system"
|
||||||
,"guide.antarchy.entry.bloodglass.description": "Blood Crystal armor grants Bloodglass Hearts that block an incoming hit, shatter, and recharge. Blood Crystal Apples grant temporary Bloodglass Ward, and the Katana provides launch, dash, and crimson-trail mobility."
|
,"guide.antarchy.entry.bloodglass.description": "Blood Crystal armor grants Bloodglass Hearts that block an incoming hit, shatter, and recharge. Blood Crystal Apples grant temporary Bloodglass Ward, and the Katana provides launch, dash, and crimson-trail mobility."
|
||||||
,"guide.antarchy.entry.vortex.title": "Vortex Systems"
|
,"guide.antarchy.entry.vortex.title": "Vortex"
|
||||||
,"guide.antarchy.entry.vortex.subtitle": "Vortex Lens and Eye of the Storm reference"
|
,"guide.antarchy.entry.vortex.subtitle": "Vortex Lens and Eye of the Storm reference"
|
||||||
,"guide.antarchy.entry.vortex.description": "Redstone power pulls entities into a Vortex Lens beam while Bluestone power blasts them away. The Eye of the Storm launches an updraft and can hurl a homing tornado that carries foes."
|
,"guide.antarchy.entry.vortex.description": "Redstone power pulls entities into a Vortex Lens beam while Bluestone power blasts them away. The Eye of the Storm launches an updraft and can hurl a homing tornado that carries foes."
|
||||||
,"guide.antarchy.entry.nightmare.title": "Nightmare"
|
,"guide.antarchy.entry.nightmare.title": "Nightmare"
|
||||||
|
|||||||
@@ -1,46 +1,14 @@
|
|||||||
[
|
{
|
||||||
"anvil",
|
"replace": false,
|
||||||
"apple",
|
"values": ["cheep", "jerry", "lucid", "queen", "ichor", "lotus", "mucus", "peach"],
|
||||||
"arrow",
|
"items": {
|
||||||
"bread",
|
"cheep": "antarchy:cheep_spawn_egg",
|
||||||
"brick",
|
"jerry": "antarchy:jerry_spawn_egg",
|
||||||
"chain",
|
"lucid": "antarchy:lucid_spawn_egg",
|
||||||
"chest",
|
"queen": "antarchy:queen_spawn_egg",
|
||||||
"clock",
|
"ichor": "antarchy:ichor",
|
||||||
"cocoa",
|
"lotus": "antarchy:lotus",
|
||||||
"flint",
|
"mucus": "antarchy:mucus",
|
||||||
"glass",
|
"peach": "antarchy:peach"
|
||||||
"melon",
|
}
|
||||||
"paper",
|
}
|
||||||
"poppy",
|
|
||||||
"sculk",
|
|
||||||
"stone",
|
|
||||||
"stick",
|
|
||||||
"sugar",
|
|
||||||
"torch",
|
|
||||||
"vault",
|
|
||||||
"wheat",
|
|
||||||
"allay",
|
|
||||||
"blaze",
|
|
||||||
"camel",
|
|
||||||
"drown",
|
|
||||||
"ghast",
|
|
||||||
"horse",
|
|
||||||
"llama",
|
|
||||||
"panda",
|
|
||||||
"sheep",
|
|
||||||
"slime",
|
|
||||||
"squid",
|
|
||||||
"stray",
|
|
||||||
"witch",
|
|
||||||
"lever",
|
|
||||||
"sword",
|
|
||||||
"cheep",
|
|
||||||
"jerry",
|
|
||||||
"lucid",
|
|
||||||
"queen",
|
|
||||||
"ichor",
|
|
||||||
"lotus",
|
|
||||||
"mucus",
|
|
||||||
"peach"
|
|
||||||
]
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
"category": "antarchy:general",
|
|
||||||
"title": "guide.antarchy.disk.blockle_game.title",
|
|
||||||
"entries": []
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
"category": "antarchy:thoraxis",
|
|
||||||
"title": "guide.antarchy.disk.chronosphere.title",
|
|
||||||
"entries": ["antarchy:chronosphere"]
|
|
||||||
}
|
|
||||||
@@ -5,5 +5,6 @@
|
|||||||
"subtitle": "guide.antarchy.entry.cavaryn.subtitle",
|
"subtitle": "guide.antarchy.entry.cavaryn.subtitle",
|
||||||
"description": ["guide.antarchy.entry.cavaryn.description"],
|
"description": ["guide.antarchy.entry.cavaryn.description"],
|
||||||
"cover_entity": "antarchy:termite",
|
"cover_entity": "antarchy:termite",
|
||||||
|
"rotation": 45,
|
||||||
"dimension": "antarchy:cavaryn"
|
"dimension": "antarchy:cavaryn"
|
||||||
}
|
}
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "enchantment",
|
|
||||||
"category": "thoraxis",
|
|
||||||
"title": "guide.antarchy.entry.chronosphere.title",
|
|
||||||
"subtitle": "guide.antarchy.entry.chronosphere.subtitle",
|
|
||||||
"description": ["guide.antarchy.entry.chronosphere.description"],
|
|
||||||
"enchantment": "antarchy:chronosphere"
|
|
||||||
}
|
|
||||||
@@ -5,5 +5,6 @@
|
|||||||
"subtitle": "guide.antarchy.entry.easter_bunny.subtitle",
|
"subtitle": "guide.antarchy.entry.easter_bunny.subtitle",
|
||||||
"description": ["guide.antarchy.entry.easter_bunny.description"],
|
"description": ["guide.antarchy.entry.easter_bunny.description"],
|
||||||
"entity": "antarchy:easter_bunny",
|
"entity": "antarchy:easter_bunny",
|
||||||
"cover_entity": "antarchy:easter_bunny"
|
"cover_entity": "antarchy:easter_bunny",
|
||||||
|
"rotation": 45
|
||||||
}
|
}
|
||||||
@@ -5,5 +5,6 @@
|
|||||||
"subtitle": "guide.antarchy.entry.elythia.subtitle",
|
"subtitle": "guide.antarchy.entry.elythia.subtitle",
|
||||||
"description": ["guide.antarchy.entry.elythia.description"],
|
"description": ["guide.antarchy.entry.elythia.description"],
|
||||||
"cover_entity": "antarchy:brown_ant",
|
"cover_entity": "antarchy:brown_ant",
|
||||||
|
"rotation": 45,
|
||||||
"dimension": "antarchy:elythia"
|
"dimension": "antarchy:elythia"
|
||||||
}
|
}
|
||||||
@@ -5,5 +5,7 @@
|
|||||||
"subtitle": "guide.antarchy.entry.king.subtitle",
|
"subtitle": "guide.antarchy.entry.king.subtitle",
|
||||||
"description": ["guide.antarchy.entry.king.description"],
|
"description": ["guide.antarchy.entry.king.description"],
|
||||||
"entity": "antarchy:king",
|
"entity": "antarchy:king",
|
||||||
"cover_entity": "antarchy:king"
|
"cover_entity": "antarchy:king",
|
||||||
|
"rotation": 45,
|
||||||
|
"render_scale": 0.5
|
||||||
}
|
}
|
||||||
@@ -5,5 +5,6 @@
|
|||||||
"subtitle": "guide.antarchy.entry.kraken.subtitle",
|
"subtitle": "guide.antarchy.entry.kraken.subtitle",
|
||||||
"description": ["guide.antarchy.entry.kraken.description"],
|
"description": ["guide.antarchy.entry.kraken.description"],
|
||||||
"entity": "antarchy:kraken",
|
"entity": "antarchy:kraken",
|
||||||
"cover_entity": "antarchy:kraken"
|
"cover_entity": "antarchy:kraken",
|
||||||
|
"render_scale": 0.5
|
||||||
}
|
}
|
||||||
@@ -4,6 +4,5 @@
|
|||||||
"title": "guide.antarchy.entry.nightmare.title",
|
"title": "guide.antarchy.entry.nightmare.title",
|
||||||
"subtitle": "guide.antarchy.entry.nightmare.subtitle",
|
"subtitle": "guide.antarchy.entry.nightmare.subtitle",
|
||||||
"description": ["guide.antarchy.entry.nightmare.description"],
|
"description": ["guide.antarchy.entry.nightmare.description"],
|
||||||
"entity": "antarchy:nightmare",
|
"entity": "antarchy:nightmare"
|
||||||
"recipe": "antarchy:nightmare/nightmare_sword"
|
|
||||||
}
|
}
|
||||||
@@ -5,5 +5,6 @@
|
|||||||
"subtitle": "guide.antarchy.entry.prince.subtitle",
|
"subtitle": "guide.antarchy.entry.prince.subtitle",
|
||||||
"description": ["guide.antarchy.entry.prince.description"],
|
"description": ["guide.antarchy.entry.prince.description"],
|
||||||
"entity": "antarchy:prince",
|
"entity": "antarchy:prince",
|
||||||
"cover_entity": "antarchy:prince"
|
"cover_entity": "antarchy:prince",
|
||||||
|
"rotation": 45
|
||||||
}
|
}
|
||||||
@@ -5,5 +5,6 @@
|
|||||||
"subtitle": "guide.antarchy.entry.princess.subtitle",
|
"subtitle": "guide.antarchy.entry.princess.subtitle",
|
||||||
"description": ["guide.antarchy.entry.princess.description"],
|
"description": ["guide.antarchy.entry.princess.description"],
|
||||||
"entity": "antarchy:princess",
|
"entity": "antarchy:princess",
|
||||||
"cover_entity": "antarchy:princess"
|
"cover_entity": "antarchy:princess",
|
||||||
|
"rotation": 45
|
||||||
}
|
}
|
||||||
@@ -5,5 +5,7 @@
|
|||||||
"subtitle": "guide.antarchy.entry.queen.subtitle",
|
"subtitle": "guide.antarchy.entry.queen.subtitle",
|
||||||
"description": ["guide.antarchy.entry.queen.description"],
|
"description": ["guide.antarchy.entry.queen.description"],
|
||||||
"entity": "antarchy:queen",
|
"entity": "antarchy:queen",
|
||||||
"cover_entity": "antarchy:queen"
|
"cover_entity": "antarchy:queen",
|
||||||
|
"rotation": 45,
|
||||||
|
"render_scale": 0.5
|
||||||
}
|
}
|
||||||
@@ -5,5 +5,6 @@
|
|||||||
"subtitle": "guide.antarchy.entry.rainbow_ant.subtitle",
|
"subtitle": "guide.antarchy.entry.rainbow_ant.subtitle",
|
||||||
"description": ["guide.antarchy.entry.rainbow_ant.description"],
|
"description": ["guide.antarchy.entry.rainbow_ant.description"],
|
||||||
"entity": "antarchy:rainbow_ant",
|
"entity": "antarchy:rainbow_ant",
|
||||||
"cover_entity": "antarchy:rainbow_ant"
|
"cover_entity": "antarchy:rainbow_ant",
|
||||||
|
"rotation": 45
|
||||||
}
|
}
|
||||||
@@ -5,5 +5,6 @@
|
|||||||
"subtitle": "guide.antarchy.entry.thoraxis.subtitle",
|
"subtitle": "guide.antarchy.entry.thoraxis.subtitle",
|
||||||
"description": ["guide.antarchy.entry.thoraxis.description"],
|
"description": ["guide.antarchy.entry.thoraxis.description"],
|
||||||
"cover_entity": "antarchy:red_ant",
|
"cover_entity": "antarchy:red_ant",
|
||||||
|
"rotation": 45,
|
||||||
"dimension": "antarchy:thoraxis"
|
"dimension": "antarchy:thoraxis"
|
||||||
}
|
}
|
||||||
+1
-2
@@ -14,7 +14,6 @@
|
|||||||
{"level": 5, "index": 0, "buy": {"item": "minecraft:emerald", "min": 32, "max": 64}, "sell": {"item": "antarchy:uranium_nugget", "min": 1, "max": 1}},
|
{"level": 5, "index": 0, "buy": {"item": "minecraft:emerald", "min": 32, "max": 64}, "sell": {"item": "antarchy:uranium_nugget", "min": 1, "max": 1}},
|
||||||
{"level": 5, "index": 1, "buy": {"item": "minecraft:emerald", "min": 32, "max": 64}, "sell": {"item": "antarchy:titanium_nugget", "min": 1, "max": 1}},
|
{"level": 5, "index": 1, "buy": {"item": "minecraft:emerald", "min": 32, "max": 64}, "sell": {"item": "antarchy:titanium_nugget", "min": 1, "max": 1}},
|
||||||
{"level": 5, "index": 2, "buy": {"item": "minecraft:emerald", "min": 16, "max": 32}, "sell": {"item": "antarchy:rainbow_sugar", "min": 1, "max": 2}},
|
{"level": 5, "index": 2, "buy": {"item": "minecraft:emerald", "min": 16, "max": 32}, "sell": {"item": "antarchy:rainbow_sugar", "min": 1, "max": 2}},
|
||||||
{"level": 5, "index": 3, "buy": {"item": "minecraft:emerald", "min": 24, "max": 40}, "sell": {"item": "antos:floppy_disk", "min": 1, "max": 1}, "sell_disk": "antarchy:antman_game", "max_uses": 1, "chance": 0.35},
|
{"level": 5, "index": 3, "buy": {"item": "minecraft:emerald", "min": 24, "max": 40}, "sell": {"item": "antos:floppy_disk", "min": 1, "max": 1}, "sell_disk": "antarchy:antman_game", "max_uses": 1, "chance": 0.35}
|
||||||
{"level": 5, "index": 4, "buy": {"item": "minecraft:emerald", "min": 24, "max": 40}, "sell": {"item": "antos:floppy_disk", "min": 1, "max": 1}, "sell_disk": "antarchy:blockle_game", "max_uses": 1, "chance": 0.35}
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -1 +1,216 @@
|
|||||||
{"trades":[{"level":1,"index":0,"buy":{"item":"antarchy:raw_bug_meat","count":16},"sell":{"item":"minecraft:emerald","count":1},"max_uses":16,"villager_xp":2},{"level":1,"index":1,"buy":{"item":"antarchy:chitin","count":8},"sell":{"item":"minecraft:emerald","count":2},"max_uses":12,"villager_xp":2},{"level":2,"index":0,"buy":{"item":"minecraft:emerald","count":5},"sell":{"item":"antarchy:bug_spray","count":1},"max_uses":8,"villager_xp":10},{"level":2,"index":1,"buy":{"item":"antarchy:raw_bug_meat","count":12},"sell":{"item":"minecraft:emerald","count":2},"max_uses":16,"villager_xp":5},{"level":3,"index":0,"buy":{"item":"minecraft:emerald","count":4},"second_buy":{"item":"antarchy:chitin","count":4},"sell":{"item":"antarchy:bug_spray","count":1},"max_uses":8,"villager_xp":15},{"level":3,"index":1,"buy":{"item":"antarchy:chitin","count":6},"sell":{"item":"minecraft:emerald","count":3},"max_uses":12,"villager_xp":10},{"level":4,"index":0,"buy":{"item":"minecraft:emerald","count":3},"sell":{"item":"antarchy:bug_spray","count":1},"max_uses":12,"villager_xp":20},{"level":5,"index":0,"buy":{"item":"minecraft:emerald","count":2},"second_buy":{"item":"antarchy:chitin","count":2},"sell":{"item":"antarchy:bug_spray","count":1},"max_uses":16,"villager_xp":30}]}
|
{
|
||||||
|
"trades": [
|
||||||
|
{
|
||||||
|
"level": 1,
|
||||||
|
"index": 0,
|
||||||
|
"buy": {
|
||||||
|
"item": "antarchy:raw_bug_meat",
|
||||||
|
"count": 16
|
||||||
|
},
|
||||||
|
"sell": {
|
||||||
|
"item": "minecraft:emerald",
|
||||||
|
"count": 1
|
||||||
|
},
|
||||||
|
"max_uses": 16,
|
||||||
|
"villager_xp": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": 1,
|
||||||
|
"index": 1,
|
||||||
|
"buy": {
|
||||||
|
"item": "antarchy:chitin",
|
||||||
|
"count": 8
|
||||||
|
},
|
||||||
|
"sell": {
|
||||||
|
"item": "minecraft:emerald",
|
||||||
|
"count": 2
|
||||||
|
},
|
||||||
|
"max_uses": 12,
|
||||||
|
"villager_xp": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": 1,
|
||||||
|
"index": 2,
|
||||||
|
"buy": {
|
||||||
|
"item": "minecraft:emerald",
|
||||||
|
"count": 3
|
||||||
|
},
|
||||||
|
"sell": {
|
||||||
|
"item": "antarchy:bed_bug_egg",
|
||||||
|
"count": 1
|
||||||
|
},
|
||||||
|
"max_uses": 12,
|
||||||
|
"villager_xp": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": 2,
|
||||||
|
"index": 0,
|
||||||
|
"buy": {
|
||||||
|
"item": "minecraft:emerald",
|
||||||
|
"count": 5
|
||||||
|
},
|
||||||
|
"sell": {
|
||||||
|
"item": "antarchy:bug_spray",
|
||||||
|
"count": 1
|
||||||
|
},
|
||||||
|
"max_uses": 8,
|
||||||
|
"villager_xp": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": 2,
|
||||||
|
"index": 1,
|
||||||
|
"buy": {
|
||||||
|
"item": "antarchy:raw_bug_meat",
|
||||||
|
"count": 12
|
||||||
|
},
|
||||||
|
"sell": {
|
||||||
|
"item": "minecraft:emerald",
|
||||||
|
"count": 2
|
||||||
|
},
|
||||||
|
"max_uses": 16,
|
||||||
|
"villager_xp": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": 2,
|
||||||
|
"index": 2,
|
||||||
|
"buy": {
|
||||||
|
"item": "minecraft:emerald",
|
||||||
|
"count": 5
|
||||||
|
},
|
||||||
|
"sell": {
|
||||||
|
"item": "antarchy:springbug_egg",
|
||||||
|
"count": 1
|
||||||
|
},
|
||||||
|
"max_uses": 12,
|
||||||
|
"villager_xp": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": 2,
|
||||||
|
"index": 3,
|
||||||
|
"buy": {
|
||||||
|
"item": "minecraft:emerald",
|
||||||
|
"count": 6
|
||||||
|
},
|
||||||
|
"sell": {
|
||||||
|
"item": "antarchy:spit_bug_egg",
|
||||||
|
"count": 1
|
||||||
|
},
|
||||||
|
"max_uses": 12,
|
||||||
|
"villager_xp": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": 3,
|
||||||
|
"index": 0,
|
||||||
|
"buy": {
|
||||||
|
"item": "minecraft:emerald",
|
||||||
|
"count": 4
|
||||||
|
},
|
||||||
|
"second_buy": {
|
||||||
|
"item": "antarchy:chitin",
|
||||||
|
"count": 4
|
||||||
|
},
|
||||||
|
"sell": {
|
||||||
|
"item": "antarchy:bug_spray",
|
||||||
|
"count": 1
|
||||||
|
},
|
||||||
|
"max_uses": 8,
|
||||||
|
"villager_xp": 15
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": 3,
|
||||||
|
"index": 1,
|
||||||
|
"buy": {
|
||||||
|
"item": "antarchy:chitin",
|
||||||
|
"count": 6
|
||||||
|
},
|
||||||
|
"sell": {
|
||||||
|
"item": "minecraft:emerald",
|
||||||
|
"count": 3
|
||||||
|
},
|
||||||
|
"max_uses": 12,
|
||||||
|
"villager_xp": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": 3,
|
||||||
|
"index": 2,
|
||||||
|
"buy": {
|
||||||
|
"item": "minecraft:emerald",
|
||||||
|
"count": 4
|
||||||
|
},
|
||||||
|
"second_buy": {
|
||||||
|
"item": "antarchy:chitin",
|
||||||
|
"count": 2
|
||||||
|
},
|
||||||
|
"sell": {
|
||||||
|
"item": "antarchy:ant_trap",
|
||||||
|
"count": 1
|
||||||
|
},
|
||||||
|
"max_uses": 8,
|
||||||
|
"villager_xp": 15
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": 4,
|
||||||
|
"index": 0,
|
||||||
|
"buy": {
|
||||||
|
"item": "minecraft:emerald",
|
||||||
|
"count": 3
|
||||||
|
},
|
||||||
|
"sell": {
|
||||||
|
"item": "antarchy:bug_spray",
|
||||||
|
"count": 1
|
||||||
|
},
|
||||||
|
"max_uses": 12,
|
||||||
|
"villager_xp": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": 4,
|
||||||
|
"index": 1,
|
||||||
|
"buy": {
|
||||||
|
"item": "minecraft:emerald",
|
||||||
|
"count": 8
|
||||||
|
},
|
||||||
|
"sell": {
|
||||||
|
"item": "antarchy:crawling_blight_egg",
|
||||||
|
"count": 1
|
||||||
|
},
|
||||||
|
"max_uses": 8,
|
||||||
|
"villager_xp": 20,
|
||||||
|
"second_buy": {
|
||||||
|
"item": "antarchy:chitin",
|
||||||
|
"count": 2
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": 5,
|
||||||
|
"index": 0,
|
||||||
|
"buy": {
|
||||||
|
"item": "minecraft:emerald",
|
||||||
|
"count": 2
|
||||||
|
},
|
||||||
|
"sell": {
|
||||||
|
"item": "antarchy:bug_spray",
|
||||||
|
"count": 1
|
||||||
|
},
|
||||||
|
"max_uses": 16,
|
||||||
|
"villager_xp": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": 5,
|
||||||
|
"index": 1,
|
||||||
|
"buy": {
|
||||||
|
"item": "minecraft:emerald",
|
||||||
|
"count": 18
|
||||||
|
},
|
||||||
|
"sell": {
|
||||||
|
"item": "antarchy:jerry_nucleus",
|
||||||
|
"count": 1
|
||||||
|
},
|
||||||
|
"max_uses": 4,
|
||||||
|
"villager_xp": 30,
|
||||||
|
"second_buy": {
|
||||||
|
"item": "antarchy:chitin",
|
||||||
|
"count": 4
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
+6
-1
@@ -4,8 +4,13 @@
|
|||||||
"minecraft:grass_block",
|
"minecraft:grass_block",
|
||||||
"minecraft:gravel",
|
"minecraft:gravel",
|
||||||
"minecraft:sand",
|
"minecraft:sand",
|
||||||
|
"minecraft:dirt",
|
||||||
|
"minecraft:mud",
|
||||||
|
"minecraft:coarse_dirt",
|
||||||
"antarchy:dream_sand",
|
"antarchy:dream_sand",
|
||||||
"antarchy:antigravel",
|
"antarchy:antigravel",
|
||||||
"antarchy:nyxite"
|
"antarchy:nyxite",
|
||||||
|
"antarchy:verdant_nyxium",
|
||||||
|
"antarchy:nadir_nyxium"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -39,7 +39,7 @@ dependencies {
|
|||||||
modApi "net.fabricmc.fabric-api:fabric-api:${fabric_api_version_1_21_1}"
|
modApi "net.fabricmc.fabric-api:fabric-api:${fabric_api_version_1_21_1}"
|
||||||
modImplementation "software.bernie.geckolib:geckolib-fabric-1.21.1:${geckolib_version}"
|
modImplementation "software.bernie.geckolib:geckolib-fabric-1.21.1:${geckolib_version}"
|
||||||
// AntOS is developed beside Antarchy as a separate local project.
|
// AntOS is developed beside Antarchy as a separate local project.
|
||||||
modImplementation files("$rootDir/../AntOS/fabric-1.21.1/build/libs/antos-fabric-1.21.1-0.1.0.jar")
|
modImplementation files("$rootDir/../AntOS/fabric-1.21.1/build/libs/antos-fabric-1.21.1-1.0.1.jar")
|
||||||
modCompileOnly("curse.maven:intapi-${intapi_curseforge_id}:${intapi_curseforge_file_id_fabric}")
|
modCompileOnly("curse.maven:intapi-${intapi_curseforge_id}:${intapi_curseforge_file_id_fabric}")
|
||||||
modLocalRuntime("curse.maven:intapi-${intapi_curseforge_id}:${intapi_curseforge_file_id_fabric}")
|
modLocalRuntime("curse.maven:intapi-${intapi_curseforge_id}:${intapi_curseforge_file_id_fabric}")
|
||||||
modLocalRuntime("dev.architectury:architectury-fabric:${architectury_api_version}")
|
modLocalRuntime("dev.architectury:architectury-fabric:${architectury_api_version}")
|
||||||
|
|||||||
@@ -160,20 +160,6 @@ public final class AntarchyFabric implements ModInitializer {
|
|||||||
Antarchy.init();
|
Antarchy.init();
|
||||||
BloodCrystalShardItem.SYNC_BLOODGLASS = BloodglassManager::syncBloodglass;
|
BloodCrystalShardItem.SYNC_BLOODGLASS = BloodglassManager::syncBloodglass;
|
||||||
registerTradeReloadListener();
|
registerTradeReloadListener();
|
||||||
ResourceManagerHelper.get(PackType.SERVER_DATA).registerReloadListener(new IdentifiableResourceReloadListener() {
|
|
||||||
@Override
|
|
||||||
public ResourceLocation getFabricId() {
|
|
||||||
return ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "blockle_answers");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public CompletableFuture<Void> reload(PreparableReloadListener.PreparationBarrier barrier, ResourceManager manager,
|
|
||||||
ProfilerFiller prepareProfiler, ProfilerFiller applyProfiler,
|
|
||||||
Executor prepareExecutor, Executor applyExecutor) {
|
|
||||||
return com.craisinlord.antarchy.content.computer.blockle.BlockleAnswers.instance().reload(
|
|
||||||
barrier, manager, prepareProfiler, applyProfiler, prepareExecutor, applyExecutor);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void registerTradeReloadListener() {
|
private static void registerTradeReloadListener() {
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ import com.craisinlord.antarchy.content.dispenser.SquidzookaDispenseBehavior;
|
|||||||
import com.craisinlord.antarchy.content.dispenser.RpoLauncherDispenseBehavior;
|
import com.craisinlord.antarchy.content.dispenser.RpoLauncherDispenseBehavior;
|
||||||
import com.craisinlord.antarchy.content.dispenser.SizeRayDispenseBehavior;
|
import com.craisinlord.antarchy.content.dispenser.SizeRayDispenseBehavior;
|
||||||
import com.craisinlord.antarchy.content.dispenser.WaterCannonDispenseBehavior;
|
import com.craisinlord.antarchy.content.dispenser.WaterCannonDispenseBehavior;
|
||||||
|
import com.craisinlord.antarchy.content.dispenser.BugSprayDispenseBehavior;
|
||||||
import net.minecraft.world.level.block.ComposterBlock;
|
import net.minecraft.world.level.block.ComposterBlock;
|
||||||
import net.minecraft.world.level.block.DispenserBlock;
|
import net.minecraft.world.level.block.DispenserBlock;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
@@ -106,6 +107,7 @@ public final class AntarchyFabricEvents {
|
|||||||
DispenserBlock.registerBehavior(AntarchyFabricItems.WATER_CANNON.get(), new WaterCannonDispenseBehavior());
|
DispenserBlock.registerBehavior(AntarchyFabricItems.WATER_CANNON.get(), new WaterCannonDispenseBehavior());
|
||||||
DispenserBlock.registerBehavior(AntarchyFabricItems.SHRINK_RAY.get(), new SizeRayDispenseBehavior());
|
DispenserBlock.registerBehavior(AntarchyFabricItems.SHRINK_RAY.get(), new SizeRayDispenseBehavior());
|
||||||
DispenserBlock.registerBehavior(AntarchyFabricItems.GROWTH_RAY.get(), new SizeRayDispenseBehavior());
|
DispenserBlock.registerBehavior(AntarchyFabricItems.GROWTH_RAY.get(), new SizeRayDispenseBehavior());
|
||||||
|
DispenserBlock.registerBehavior(AntarchyFabricItems.BUG_SPRAY.get(), new BugSprayDispenseBehavior());
|
||||||
AntarchyFabricDispenserBehaviors.register();
|
AntarchyFabricDispenserBehaviors.register();
|
||||||
registerTrades();
|
registerTrades();
|
||||||
|
|
||||||
|
|||||||
-8
@@ -22,14 +22,6 @@ public final class AntarchyFabricClient implements ClientModInitializer {
|
|||||||
AntarchyFabricClientNetworking.bootstrapMultipartClient();
|
AntarchyFabricClientNetworking.bootstrapMultipartClient();
|
||||||
AntarchyFabricClientBootstrap.register();
|
AntarchyFabricClientBootstrap.register();
|
||||||
AntarchyComputerGames.register();
|
AntarchyComputerGames.register();
|
||||||
ResourceManagerHelper.get(PackType.CLIENT_RESOURCES).registerReloadListener(new IdentifiableResourceReloadListener() {
|
|
||||||
@Override public ResourceLocation getFabricId() { return ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "antos_computer_data"); }
|
|
||||||
@Override public CompletableFuture<Void> reload(PreparableReloadListener.PreparationBarrier barrier, ResourceManager manager,
|
|
||||||
ProfilerFiller prepareProfiler, ProfilerFiller applyProfiler, Executor prepareExecutor, Executor applyExecutor) {
|
|
||||||
return com.craisinlord.antos.content.guide.ComputerGuideData.instance().reload(
|
|
||||||
barrier, manager, prepareProfiler, applyProfiler, prepareExecutor, applyExecutor);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
ResourceManagerHelper.get(PackType.CLIENT_RESOURCES).registerReloadListener(new IdentifiableResourceReloadListener() {
|
ResourceManagerHelper.get(PackType.CLIENT_RESOURCES).registerReloadListener(new IdentifiableResourceReloadListener() {
|
||||||
@Override
|
@Override
|
||||||
public ResourceLocation getFabricId() {
|
public ResourceLocation getFabricId() {
|
||||||
|
|||||||
+2
@@ -6,6 +6,7 @@ import com.craisinlord.antarchy.fabric.registry.AntarchyFabricMisc;
|
|||||||
|
|
||||||
import com.craisinlord.antarchy.Antarchy;
|
import com.craisinlord.antarchy.Antarchy;
|
||||||
import com.craisinlord.antarchy.content.client.CameraShakeClientState;
|
import com.craisinlord.antarchy.content.client.CameraShakeClientState;
|
||||||
|
import com.craisinlord.antarchy.content.client.AntarchyArchivePreviews;
|
||||||
import com.craisinlord.antarchy.content.client.HerculesBeetleImpactShakeClientState;
|
import com.craisinlord.antarchy.content.client.HerculesBeetleImpactShakeClientState;
|
||||||
import com.craisinlord.antarchy.content.client.HordeClientState;
|
import com.craisinlord.antarchy.content.client.HordeClientState;
|
||||||
import com.craisinlord.antarchy.content.client.KingJudgmentFlashClientState;
|
import com.craisinlord.antarchy.content.client.KingJudgmentFlashClientState;
|
||||||
@@ -65,6 +66,7 @@ public final class AntarchyFabricClientBootstrap {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void register() {
|
public static void register() {
|
||||||
|
AntarchyArchivePreviews.register();
|
||||||
AntarchyKeyBindings.register();
|
AntarchyKeyBindings.register();
|
||||||
MenuScreens.register(AntarchyFabricMisc.DORRIE_INVENTORY_MENU.get(), com.craisinlord.antarchy.content.client.screen.DorrieInventoryScreen::new);
|
MenuScreens.register(AntarchyFabricMisc.DORRIE_INVENTORY_MENU.get(), com.craisinlord.antarchy.content.client.screen.DorrieInventoryScreen::new);
|
||||||
MenuScreens.register(AntarchyFabricMisc.ROYAL_JUDGMENT_MENU.get(), com.craisinlord.antarchy.content.client.screen.RoyalJudgmentScreen::new);
|
MenuScreens.register(AntarchyFabricMisc.ROYAL_JUDGMENT_MENU.get(), com.craisinlord.antarchy.content.client.screen.RoyalJudgmentScreen::new);
|
||||||
|
|||||||
+5
-1
@@ -1,5 +1,6 @@
|
|||||||
package com.craisinlord.antarchy.fabric.client;
|
package com.craisinlord.antarchy.fabric.client;
|
||||||
|
|
||||||
|
import com.craisinlord.antarchy.content.client.HoverboardSoundSystem;
|
||||||
import com.craisinlord.antarchy.content.client.HoverboardTrailSystem;
|
import com.craisinlord.antarchy.content.client.HoverboardTrailSystem;
|
||||||
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
|
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
|
||||||
import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderEvents;
|
import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderEvents;
|
||||||
@@ -9,7 +10,10 @@ public final class HoverboardTrailHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void register() {
|
public static void register() {
|
||||||
ClientTickEvents.END_CLIENT_TICK.register(client -> HoverboardTrailSystem.tick());
|
ClientTickEvents.END_CLIENT_TICK.register(client -> {
|
||||||
|
HoverboardTrailSystem.tick();
|
||||||
|
HoverboardSoundSystem.tick();
|
||||||
|
});
|
||||||
WorldRenderEvents.AFTER_TRANSLUCENT.register(context -> HoverboardTrailSystem.render(context.camera(), context.matrixStack().last().pose()));
|
WorldRenderEvents.AFTER_TRANSLUCENT.register(context -> HoverboardTrailSystem.render(context.camera(), context.matrixStack().last().pose()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+1
-1
@@ -509,7 +509,7 @@ public final class AntarchyFabricItems {
|
|||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> ANT_TRAP_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.ANT_TRAP);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> ANT_TRAP_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.ANT_TRAP);
|
||||||
|
|
||||||
public static final DeferredItem<Item> BUG_SPRAY = ITEMS.register("bug_spray",
|
public static final DeferredItem<Item> BUG_SPRAY = ITEMS.register("bug_spray",
|
||||||
() -> new com.craisinlord.antarchy.content.item.BugSprayItem(new Item.Properties().stacksTo(16)));
|
() -> new com.craisinlord.antarchy.content.item.BugSprayItem(new Item.Properties().durability(128)));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> URANIUM_ORE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.URANIUM_ORE, new Item.Properties().rarity(Rarity.UNCOMMON));
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> URANIUM_ORE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.URANIUM_ORE, new Item.Properties().rarity(Rarity.UNCOMMON));
|
||||||
|
|||||||
@@ -18,7 +18,9 @@
|
|||||||
"BloodglassRespawnMixin",
|
"BloodglassRespawnMixin",
|
||||||
"DreamCampfireBlockEntityMixin",
|
"DreamCampfireBlockEntityMixin",
|
||||||
"SpringyBootsFallDamageMixin",
|
"SpringyBootsFallDamageMixin",
|
||||||
|
"ThoraxisWaterBucketMixin",
|
||||||
"entity.MultipartEntityLevelRegistryMixin",
|
"entity.MultipartEntityLevelRegistryMixin",
|
||||||
|
"entity.ParalyzedMobFreezeMixin",
|
||||||
"WoodTypeInvoker",
|
"WoodTypeInvoker",
|
||||||
"infinity.PortalCreatorMixin",
|
"infinity.PortalCreatorMixin",
|
||||||
"infinity.WarpLogicMixin",
|
"infinity.WarpLogicMixin",
|
||||||
|
|||||||
@@ -47,8 +47,8 @@ neoForge {
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
// AntOS is developed beside Antarchy as a separate local project.
|
// AntOS is developed beside Antarchy as a separate local project.
|
||||||
compileOnly(files("$rootDir/../AntOS/neoforge-1.21.1/build/libs/antos-neoforge-1.21.1-0.1.0.jar"))
|
compileOnly(files("$rootDir/../AntOS/neoforge-1.21.1/build/libs/antos-neoforge-1.21.1-1.0.1.jar"))
|
||||||
runtimeOnly(files("$rootDir/../AntOS/neoforge-1.21.1/build/libs/antos-neoforge-1.21.1-0.1.0.jar"))
|
runtimeOnly(files("$rootDir/../AntOS/neoforge-1.21.1/build/libs/antos-neoforge-1.21.1-1.0.1.jar"))
|
||||||
compileOnly("curse.maven:intapi-${intapi_curseforge_id}:${intapi_curseforge_file_id_neoforge}")
|
compileOnly("curse.maven:intapi-${intapi_curseforge_id}:${intapi_curseforge_file_id_neoforge}")
|
||||||
runtimeOnly("curse.maven:intapi-${intapi_curseforge_id}:${intapi_curseforge_file_id_neoforge}")
|
runtimeOnly("curse.maven:intapi-${intapi_curseforge_id}:${intapi_curseforge_file_id_neoforge}")
|
||||||
implementation "software.bernie.geckolib:geckolib-neoforge-1.21.1:${geckolib_version}"
|
implementation "software.bernie.geckolib:geckolib-neoforge-1.21.1:${geckolib_version}"
|
||||||
|
|||||||
+5
-2
@@ -2,6 +2,7 @@ package com.craisinlord.antarchy.neoforge.client;
|
|||||||
|
|
||||||
import com.craisinlord.antarchy.Antarchy;
|
import com.craisinlord.antarchy.Antarchy;
|
||||||
import com.craisinlord.antarchy.content.client.GoopedHudRenderer;
|
import com.craisinlord.antarchy.content.client.GoopedHudRenderer;
|
||||||
|
import com.craisinlord.antarchy.content.client.AntarchyArchivePreviews;
|
||||||
import com.craisinlord.antarchy.content.client.game.AntarchyComputerGames;
|
import com.craisinlord.antarchy.content.client.game.AntarchyComputerGames;
|
||||||
import com.craisinlord.antarchy.content.client.HordeHudRenderer;
|
import com.craisinlord.antarchy.content.client.HordeHudRenderer;
|
||||||
import com.craisinlord.antarchy.content.client.TigerEyeClientHooks;
|
import com.craisinlord.antarchy.content.client.TigerEyeClientHooks;
|
||||||
@@ -95,7 +96,10 @@ public final class AntarchyNeoForgeClient {
|
|||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public static void clientSetup(FMLClientSetupEvent event) {
|
public static void clientSetup(FMLClientSetupEvent event) {
|
||||||
event.enqueueWork(AntarchyComputerGames::register);
|
event.enqueueWork(() -> {
|
||||||
|
AntarchyArchivePreviews.register();
|
||||||
|
AntarchyComputerGames.register();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
@@ -723,7 +727,6 @@ public final class AntarchyNeoForgeClient {
|
|||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public static void registerClientReloadListeners(RegisterClientReloadListenersEvent event) {
|
public static void registerClientReloadListeners(RegisterClientReloadListenersEvent event) {
|
||||||
event.registerReloadListener(com.craisinlord.antos.content.guide.ComputerGuideData.instance());
|
|
||||||
event.registerReloadListener(new net.minecraft.server.packs.resources.SimplePreparableReloadListener<Void>() {
|
event.registerReloadListener(new net.minecraft.server.packs.resources.SimplePreparableReloadListener<Void>() {
|
||||||
@Override
|
@Override
|
||||||
protected Void prepare(net.minecraft.server.packs.resources.ResourceManager resourceManager, net.minecraft.util.profiling.ProfilerFiller profiler) {
|
protected Void prepare(net.minecraft.server.packs.resources.ResourceManager resourceManager, net.minecraft.util.profiling.ProfilerFiller profiler) {
|
||||||
|
|||||||
+2
@@ -1,6 +1,7 @@
|
|||||||
package com.craisinlord.antarchy.neoforge.client;
|
package com.craisinlord.antarchy.neoforge.client;
|
||||||
|
|
||||||
import com.craisinlord.antarchy.Antarchy;
|
import com.craisinlord.antarchy.Antarchy;
|
||||||
|
import com.craisinlord.antarchy.content.client.HoverboardSoundSystem;
|
||||||
import com.craisinlord.antarchy.content.client.HoverboardTrailSystem;
|
import com.craisinlord.antarchy.content.client.HoverboardTrailSystem;
|
||||||
import net.neoforged.api.distmarker.Dist;
|
import net.neoforged.api.distmarker.Dist;
|
||||||
import net.neoforged.bus.api.SubscribeEvent;
|
import net.neoforged.bus.api.SubscribeEvent;
|
||||||
@@ -16,6 +17,7 @@ public final class HoverboardTrailHandler {
|
|||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public static void onClientTick(ClientTickEvent.Post event) {
|
public static void onClientTick(ClientTickEvent.Post event) {
|
||||||
HoverboardTrailSystem.tick();
|
HoverboardTrailSystem.tick();
|
||||||
|
HoverboardSoundSystem.tick();
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
|
|||||||
+18
-1
@@ -8,6 +8,7 @@ import com.craisinlord.antarchy.content.recipe.CustomBrewingRecipes;
|
|||||||
import com.craisinlord.antarchy.content.block.DuctTapeBlock;
|
import com.craisinlord.antarchy.content.block.DuctTapeBlock;
|
||||||
import com.craisinlord.antarchy.content.dispenser.RpoLauncherDispenseBehavior;
|
import com.craisinlord.antarchy.content.dispenser.RpoLauncherDispenseBehavior;
|
||||||
import com.craisinlord.antarchy.content.dispenser.SizeRayDispenseBehavior;
|
import com.craisinlord.antarchy.content.dispenser.SizeRayDispenseBehavior;
|
||||||
|
import com.craisinlord.antarchy.content.dispenser.BugSprayDispenseBehavior;
|
||||||
import com.craisinlord.antarchy.content.dispenser.SquidzookaDispenseBehavior;
|
import com.craisinlord.antarchy.content.dispenser.SquidzookaDispenseBehavior;
|
||||||
import com.craisinlord.antarchy.content.dispenser.WaterCannonDispenseBehavior;
|
import com.craisinlord.antarchy.content.dispenser.WaterCannonDispenseBehavior;
|
||||||
import com.craisinlord.antarchy.content.dispenser.AntimetalMinecartDispenseBehavior;
|
import com.craisinlord.antarchy.content.dispenser.AntimetalMinecartDispenseBehavior;
|
||||||
@@ -29,6 +30,7 @@ import com.craisinlord.antarchy.content.item.*;
|
|||||||
import com.craisinlord.antarchy.content.worldgen.thoraxis.ThoraxisUndersideManager;
|
import com.craisinlord.antarchy.content.worldgen.thoraxis.ThoraxisUndersideManager;
|
||||||
import com.craisinlord.antarchy.content.item.ultimate.UltimateGearHelper;
|
import com.craisinlord.antarchy.content.item.ultimate.UltimateGearHelper;
|
||||||
import com.craisinlord.antarchy.content.AntarchyTags;
|
import com.craisinlord.antarchy.content.AntarchyTags;
|
||||||
|
import com.craisinlord.antarchy.mixins.PoiTypesAccessor;
|
||||||
import com.craisinlord.antarchy.content.portal.PermanentPortalManager;
|
import com.craisinlord.antarchy.content.portal.PermanentPortalManager;
|
||||||
import com.craisinlord.antarchy.content.time.TimeDilationManager;
|
import com.craisinlord.antarchy.content.time.TimeDilationManager;
|
||||||
import com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageController;
|
import com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageController;
|
||||||
@@ -37,6 +39,11 @@ import com.craisinlord.antarchy.neoforge.AntarchyNeoForgeFluidTypes;
|
|||||||
import com.craisinlord.antarchy.neoforge.entity.multipart.MultipartPartEntity;
|
import com.craisinlord.antarchy.neoforge.entity.multipart.MultipartPartEntity;
|
||||||
import com.craisinlord.antarchy.neoforge.network.AntarchyGravityNetworking;
|
import com.craisinlord.antarchy.neoforge.network.AntarchyGravityNetworking;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
|
import net.minecraft.core.Holder;
|
||||||
|
import net.minecraft.core.registries.BuiltInRegistries;
|
||||||
|
import net.minecraft.core.registries.Registries;
|
||||||
|
import net.minecraft.resources.ResourceKey;
|
||||||
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.server.level.ServerLevel;
|
import net.minecraft.server.level.ServerLevel;
|
||||||
import net.minecraft.server.level.ServerPlayer;
|
import net.minecraft.server.level.ServerPlayer;
|
||||||
import net.minecraft.world.InteractionResult;
|
import net.minecraft.world.InteractionResult;
|
||||||
@@ -63,6 +70,8 @@ import net.neoforged.neoforge.common.ItemAbilities;
|
|||||||
import net.neoforged.neoforge.common.NeoForge;
|
import net.neoforged.neoforge.common.NeoForge;
|
||||||
import net.neoforged.neoforge.common.NeoForgeMod;
|
import net.neoforged.neoforge.common.NeoForgeMod;
|
||||||
import net.minecraft.world.entity.npc.VillagerProfession;
|
import net.minecraft.world.entity.npc.VillagerProfession;
|
||||||
|
import net.minecraft.world.entity.ai.village.poi.PoiType;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
import net.minecraft.world.entity.npc.VillagerTrades;
|
import net.minecraft.world.entity.npc.VillagerTrades;
|
||||||
import net.minecraft.world.item.trading.ItemCost;
|
import net.minecraft.world.item.trading.ItemCost;
|
||||||
import net.minecraft.world.item.trading.MerchantOffer;
|
import net.minecraft.world.item.trading.MerchantOffer;
|
||||||
@@ -401,7 +410,6 @@ public final class AntarchyNeoForgeEvents {
|
|||||||
event.addListener(new DrTrayaurusTradeManager());
|
event.addListener(new DrTrayaurusTradeManager());
|
||||||
event.addListener(new ComputerScientistTradeManager());
|
event.addListener(new ComputerScientistTradeManager());
|
||||||
event.addListener(new com.craisinlord.antarchy.content.entity.trades.PestControlTradeManager());
|
event.addListener(new com.craisinlord.antarchy.content.entity.trades.PestControlTradeManager());
|
||||||
event.addListener(com.craisinlord.antarchy.content.computer.blockle.BlockleAnswers.instance());
|
|
||||||
}
|
}
|
||||||
static void handleStartTracking(PlayerEvent.StartTracking event) {
|
static void handleStartTracking(PlayerEvent.StartTracking event) {
|
||||||
if (event.getTarget().level().isClientSide()) {
|
if (event.getTarget().level().isClientSide()) {
|
||||||
@@ -1414,6 +1422,14 @@ public final class AntarchyNeoForgeEvents {
|
|||||||
static void onCommonSetup(FMLCommonSetupEvent event) {
|
static void onCommonSetup(FMLCommonSetupEvent event) {
|
||||||
BloodCrystalShardItem.SYNC_BLOODGLASS = AntarchyNeoForgeEvents::syncBloodglass;
|
BloodCrystalShardItem.SYNC_BLOODGLASS = AntarchyNeoForgeEvents::syncBloodglass;
|
||||||
event.enqueueWork(() -> {
|
event.enqueueWork(() -> {
|
||||||
|
Holder<PoiType> computerPoi = BuiltInRegistries.POINT_OF_INTEREST_TYPE.getHolderOrThrow(
|
||||||
|
ResourceKey.create(Registries.POINT_OF_INTEREST_TYPE,
|
||||||
|
ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "computer")));
|
||||||
|
Block computerBlock = Block.byItem(com.craisinlord.antos.content.AntOSObjects.COMPUTER_ITEM.get());
|
||||||
|
for (BlockState state : computerBlock.getStateDefinition().getPossibleStates()) {
|
||||||
|
PoiTypesAccessor.antarchy$getTypeByState().put(state, computerPoi);
|
||||||
|
}
|
||||||
|
|
||||||
DispenserBlock.registerBehavior(AntarchyNeoforgeItems.SHRINK_RAY.get(), new SizeRayDispenseBehavior());
|
DispenserBlock.registerBehavior(AntarchyNeoforgeItems.SHRINK_RAY.get(), new SizeRayDispenseBehavior());
|
||||||
DispenserBlock.registerBehavior(AntarchyNeoforgeItems.GROWTH_RAY.get(), new SizeRayDispenseBehavior());
|
DispenserBlock.registerBehavior(AntarchyNeoforgeItems.GROWTH_RAY.get(), new SizeRayDispenseBehavior());
|
||||||
DispenserBlock.registerBehavior(AntarchyNeoforgeItems.SQUIDZOOKA.get(), new SquidzookaDispenseBehavior());
|
DispenserBlock.registerBehavior(AntarchyNeoforgeItems.SQUIDZOOKA.get(), new SquidzookaDispenseBehavior());
|
||||||
@@ -1421,6 +1437,7 @@ public final class AntarchyNeoForgeEvents {
|
|||||||
DispenserBlock.registerBehavior(AntarchyNeoforgeItems.WATER_CANNON.get(), new WaterCannonDispenseBehavior());
|
DispenserBlock.registerBehavior(AntarchyNeoforgeItems.WATER_CANNON.get(), new WaterCannonDispenseBehavior());
|
||||||
DispenserBlock.registerBehavior(AntarchyNeoforgeItems.VORTEX_CHARGE.get(), new com.craisinlord.antarchy.content.dispenser.VortexChargeDispenseBehavior());
|
DispenserBlock.registerBehavior(AntarchyNeoforgeItems.VORTEX_CHARGE.get(), new com.craisinlord.antarchy.content.dispenser.VortexChargeDispenseBehavior());
|
||||||
DispenserBlock.registerBehavior(AntarchyNeoforgeItems.EYE_OF_THE_STORM.get(), new com.craisinlord.antarchy.content.dispenser.EyeOfTheStormDispenseBehavior());
|
DispenserBlock.registerBehavior(AntarchyNeoforgeItems.EYE_OF_THE_STORM.get(), new com.craisinlord.antarchy.content.dispenser.EyeOfTheStormDispenseBehavior());
|
||||||
|
DispenserBlock.registerBehavior(AntarchyNeoforgeItems.BUG_SPRAY.get(), new BugSprayDispenseBehavior());
|
||||||
AntimetalMinecartDispenseBehavior antimetalMinecartDispenseBehavior = new AntimetalMinecartDispenseBehavior();
|
AntimetalMinecartDispenseBehavior antimetalMinecartDispenseBehavior = new AntimetalMinecartDispenseBehavior();
|
||||||
DispenserBlock.registerBehavior(Items.MINECART, antimetalMinecartDispenseBehavior);
|
DispenserBlock.registerBehavior(Items.MINECART, antimetalMinecartDispenseBehavior);
|
||||||
DispenserBlock.registerBehavior(Items.CHEST_MINECART, antimetalMinecartDispenseBehavior);
|
DispenserBlock.registerBehavior(Items.CHEST_MINECART, antimetalMinecartDispenseBehavior);
|
||||||
|
|||||||
+1
-1
@@ -397,7 +397,7 @@ public final class AntarchyNeoforgeItems {
|
|||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> ANT_TRAP_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.ANT_TRAP);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> ANT_TRAP_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.ANT_TRAP);
|
||||||
|
|
||||||
public static final DeferredItem<Item> BUG_SPRAY = ITEMS.register("bug_spray",
|
public static final DeferredItem<Item> BUG_SPRAY = ITEMS.register("bug_spray",
|
||||||
() -> new com.craisinlord.antarchy.content.item.BugSprayItem(new Item.Properties().stacksTo(16)));
|
() -> new com.craisinlord.antarchy.content.item.BugSprayItem(new Item.Properties().durability(128)));
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> URANIUM_ORE_ITEM = ITEMS.register("uranium_ore",
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> URANIUM_ORE_ITEM = ITEMS.register("uranium_ore",
|
||||||
() -> new net.minecraft.world.item.BlockItem(AntarchyNeoforgeBlocks.URANIUM_ORE.get(), new Item.Properties().rarity(Rarity.UNCOMMON)));
|
() -> new net.minecraft.world.item.BlockItem(AntarchyNeoforgeBlocks.URANIUM_ORE.get(), new Item.Properties().rarity(Rarity.UNCOMMON)));
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> DEEPSLATE_URANIUM_ORE_ITEM = ITEMS.register("deepslate_uranium_ore",
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> DEEPSLATE_URANIUM_ORE_ITEM = ITEMS.register("deepslate_uranium_ore",
|
||||||
|
|||||||
Reference in new issue
Block a user