1.19 three classes remain.

This commit is contained in:
Waterpicker 2022-06-27 08:08:01 -05:00
parent f3813bc452
commit 04958364fd
68 changed files with 525 additions and 639 deletions

View file

@ -1,6 +1,6 @@
plugins {
id "java"
id "fabric-loom" version "0.10-SNAPSHOT"
id "fabric-loom" version "0.12-SNAPSHOT"
id "maven-publish"
id "com.matthewprenger.cursegradle" version "1.4.0"
}
@ -123,15 +123,15 @@ loom {
assemble.dependsOn runDatagen
dependencies {
minecraft "com.mojang:minecraft:1.18.2"
mappings "net.fabricmc:yarn:1.18.2+build.2:v2"
modImplementation "net.fabricmc:fabric-loader:0.13.3"
modImplementation "net.fabricmc.fabric-api:fabric-api:0.48.0+1.18.2"
minecraft "com.mojang:minecraft:1.19"
mappings "net.fabricmc:yarn:1.19+build.4:v2"
modImplementation "net.fabricmc:fabric-loader:0.14.8"
modImplementation "net.fabricmc.fabric-api:fabric-api:0.56.3+1.19"
includeCompile("com.flowpowered", "flow-math", "1.0.3")
includeCompile("org.jgrapht", "jgrapht-core", "1.1.0")
includeCompile("com.github.DimensionalDevelopment", "poly2tri.java", "0.1.1")
includeCompile("com.github.DimensionalDevelopment", "Matrix", "1.0.0")
includeCompile("me.shedaniel.cloth", "cloth-config-fabric", "6.2.57")
includeCompile("me.shedaniel.cloth", "cloth-config-fabric", "7.0.72")
includeCompile("curse.maven", "cardinal_base-318449", "${project.cardinal_components_base}")
includeCompile("curse.maven", "cardinal_item-318449", "${project.cardinal_components_item}")
@ -142,7 +142,7 @@ dependencies {
//includeCompile("curse.maven", "wthit-3707010", "${project.wthit}")
modCompileOnly("com.terraformersmc:modmenu:3.1.0") {
modCompileOnly("com.terraformersmc:modmenu:4.0.0") {
exclude module: "fabric-api"
}
@ -151,8 +151,8 @@ dependencies {
// exclude module: "fabric-api"
// }
modCompileOnly "curse.maven:worldedit-225608:3697298"
modCompileOnly "curse.maven:wthit-440979:3707010"
modCompileOnly "curse.maven:worldedit-225608:3836903"
modCompileOnly "curse.maven:wthit-440979:3841975"
testImplementation('org.junit.jupiter:junit-jupiter:5.8.2')
// testImplementation("junit:junit:4.13.2")

View file

@ -1,14 +1,14 @@
mod_version=4.0.4
minecraft_version=1.18.2
minecraft_version=1.19
org.gradle.jvmargs=-Xmx2048m
cardinal_components_base=3669770
cardinal_components_item=3669774
cardinal_components_entity=3669773
cardinal_components_level=3669775
cardinal_components_world=3669777
cardinal_components_chunk=3669772
cardinal_components_base=3801039
cardinal_components_item=3801043
cardinal_components_entity=3801042
cardinal_components_level=3801044
cardinal_components_world=3801046
cardinal_components_chunk=3801041
wthit=440979
wthit=3841975

View file

@ -1,15 +1,5 @@
package org.dimdev.dimdoors.client.util;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Optional;
import java.util.Set;
import java.util.stream.Stream;
import com.google.common.base.Preconditions;
import me.shedaniel.clothconfig2.api.ConfigBuilder;
import me.shedaniel.clothconfig2.api.ConfigCategory;
@ -18,14 +8,20 @@ import me.shedaniel.clothconfig2.impl.builders.BooleanToggleBuilder;
import me.shedaniel.clothconfig2.impl.builders.DoubleFieldBuilder;
import me.shedaniel.clothconfig2.impl.builders.IntFieldBuilder;
import me.shedaniel.clothconfig2.impl.builders.IntListBuilder;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.text.LiteralText;
import net.minecraft.text.Text;
import net.minecraft.text.TranslatableText;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.text.MutableText;
import net.minecraft.text.Text;
import net.minecraft.text.TranslatableTextContent;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Optional;
import java.util.Set;
import java.util.stream.Stream;
@Environment(EnvType.CLIENT)
public class ScreenGenerator {
@ -35,7 +31,7 @@ public class ScreenGenerator {
Preconditions.checkNotNull(saveAction);
ConfigBuilder configBuilder = ConfigBuilder.create();
ConfigEntryBuilder entryBuilder = configBuilder.entryBuilder();
configBuilder.setTitle(new TranslatableText(configClass.getAnnotation(Title.class).value()));
configBuilder.setTitle(MutableText.of(new TranslatableTextContent(configClass.getAnnotation(Title.class).value())));
configBuilder.setSavingRunnable(saveAction);
configBuilder.setParentScreen(parent);
for (Field field : configClass.getDeclaredFields()) {
@ -45,7 +41,7 @@ public class ScreenGenerator {
continue;
}
ConfigCategory category = configBuilder.getOrCreateCategory(new TranslatableText(configClass.getName().toLowerCase() + ":" + field.getName()));
ConfigCategory category = configBuilder.getOrCreateCategory(MutableText.of(new TranslatableTextContent(configClass.getName().toLowerCase() + ":" + field.getName())));
Object value;
try {
if (field.isAnnotationPresent(Private.class)) {
@ -71,8 +67,8 @@ public class ScreenGenerator {
.map(Arrays::stream)
.orElse(Stream.empty())
.map(tooltip -> {
if (tooltip.absolute()) return new LiteralText(tooltip.value());
else return new TranslatableText(valueClass.getName().toLowerCase() + "." + innerField.getName() + ":" + tooltip.value());
if (tooltip.absolute()) return Text.of(tooltip.value());
else return MutableText.of(new TranslatableTextContent(valueClass.getName().toLowerCase() + "." + innerField.getName() + ":" + tooltip.value()));
})
.map(text -> (Text) text)
.toArray(Text[]::new))
@ -80,7 +76,7 @@ public class ScreenGenerator {
try {
if (innerField.getType() == boolean.class) {
BooleanToggleBuilder builder = entryBuilder.startBooleanToggle(new TranslatableText(valueClass.getName().toLowerCase() + ":" + innerField.getName()), innerField.getBoolean(value))
BooleanToggleBuilder builder = entryBuilder.startBooleanToggle(MutableText.of(new TranslatableTextContent(valueClass.getName().toLowerCase() + ":" + innerField.getName())), innerField.getBoolean(value))
.setTooltip(tooltipSupplier)
.setSaveConsumer(bool -> {
try {
@ -92,7 +88,7 @@ public class ScreenGenerator {
builder.requireRestart(field.isAnnotationPresent(RequiresRestart.class));
category.addEntry(builder.build());
} else if (innerField.getType() == int.class) {
IntFieldBuilder builder = entryBuilder.startIntField(new TranslatableText(valueClass.getName().toLowerCase() + ":" + innerField.getName()), innerField.getInt(value))
IntFieldBuilder builder = entryBuilder.startIntField(MutableText.of(new TranslatableTextContent(valueClass.getName().toLowerCase() + ":" + innerField.getName())), innerField.getInt(value))
.setTooltip(tooltipSupplier)
.setSaveConsumer(i -> {
try {
@ -104,7 +100,7 @@ public class ScreenGenerator {
builder.requireRestart(field.isAnnotationPresent(RequiresRestart.class));
category.addEntry(builder.build());
} else if (innerField.getType() == double.class) {
DoubleFieldBuilder builder = entryBuilder.startDoubleField(new TranslatableText(valueClass.getName().toLowerCase() + ":" + innerField.getName()), innerField.getDouble(value))
DoubleFieldBuilder builder = entryBuilder.startDoubleField(MutableText.of(new TranslatableTextContent(valueClass.getName().toLowerCase() + ":" + innerField.getName())), innerField.getDouble(value))
.setTooltip(tooltipSupplier)
.setSaveConsumer(d -> {
try {
@ -116,7 +112,7 @@ public class ScreenGenerator {
builder.requireRestart(field.isAnnotationPresent(RequiresRestart.class));
category.addEntry(builder.build());
} else if (innerField.isAnnotationPresent(IntSet.class)) {
IntListBuilder builder = entryBuilder.startIntList(new TranslatableText(valueClass.getName().toLowerCase() + ":" + innerField.getName()), new ArrayList<>(((Set<Integer>) innerField.get(value))))
IntListBuilder builder = entryBuilder.startIntList(MutableText.of(new TranslatableTextContent(valueClass.getName().toLowerCase() + ":" + innerField.getName())), new ArrayList<>(((Set<Integer>) innerField.get(value))))
.setTooltip(tooltipSupplier)
.setSaveConsumer(set -> {
try {

View file

@ -1,41 +1,33 @@
package org.dimdev.dimdoors.datagen;
import java.util.function.Consumer;
import net.minecraft.tag.TagKey;
import org.dimdev.dimdoors.criteria.PocketSpawnPointSetCondition;
import org.dimdev.dimdoors.criteria.RiftTrackedCriterion;
import org.dimdev.dimdoors.item.ModItems;
import org.dimdev.dimdoors.world.ModDimensions;
import net.minecraft.advancement.Advancement;
import net.minecraft.advancement.AdvancementDisplay;
import net.minecraft.advancement.AdvancementFrame;
import net.minecraft.advancement.criterion.ChangedDimensionCriterion;
import net.minecraft.advancement.criterion.InventoryChangedCriterion;
import net.minecraft.advancement.criterion.ItemUsedOnBlockCriterion;
import net.minecraft.advancement.criterion.PlacedBlockCriterion;
import net.minecraft.block.Blocks;
import net.minecraft.item.ItemConvertible;
import net.minecraft.item.Items;
import net.minecraft.predicate.BlockPredicate;
import net.minecraft.predicate.FluidPredicate;
import net.minecraft.predicate.LightPredicate;
import net.minecraft.predicate.NbtPredicate;
import net.minecraft.predicate.NumberRange;
import net.minecraft.predicate.entity.EntityPredicate;
import net.minecraft.predicate.entity.LocationPredicate;
import net.minecraft.predicate.item.EnchantmentPredicate;
import net.minecraft.predicate.item.ItemPredicate;
import net.minecraft.text.TranslatableText;
import net.minecraft.tag.TagKey;
import net.minecraft.text.MutableText;
import net.minecraft.text.TranslatableTextContent;
import net.minecraft.util.Identifier;
import net.minecraft.util.registry.Registry;
import org.dimdev.dimdoors.criteria.PocketSpawnPointSetCondition;
import org.dimdev.dimdoors.criteria.RiftTrackedCriterion;
import org.dimdev.dimdoors.item.ModItems;
import org.dimdev.dimdoors.world.ModDimensions;
import java.util.function.Consumer;
public class AdvancementTab implements Consumer<Consumer<Advancement>> {
static AdvancementDisplay makeDisplay(ItemConvertible item, String titleKey) {
return new AdvancementDisplay(item.asItem().getDefaultStack(),
new TranslatableText("dimdoors.advancement." + titleKey),
new TranslatableText("dimdoors.advancement." + titleKey + ".desc"),
MutableText.of(new TranslatableTextContent("dimdoors.advancement." + titleKey)),
MutableText.of(new TranslatableTextContent("dimdoors.advancement." + titleKey + ".desc")),
new Identifier("dimdoors:textures/block/unravelled_fabric.png"),
AdvancementFrame.TASK,
true,
@ -46,8 +38,8 @@ public class AdvancementTab implements Consumer<Consumer<Advancement>> {
static AdvancementDisplay makeDisplay(ItemConvertible item, String titleKey, AdvancementFrame advancementFrame) {
return new AdvancementDisplay(item.asItem().getDefaultStack(),
new TranslatableText("dimdoors.advancement." + titleKey),
new TranslatableText("dimdoors.advancement." + titleKey + ".desc"),
MutableText.of(new TranslatableTextContent("dimdoors.advancement." + titleKey)),
MutableText.of(new TranslatableTextContent("dimdoors.advancement." + titleKey + ".desc")),
new Identifier("dimdoors:textures/block/unravelled_fabric.png"),
advancementFrame,
true,
@ -97,37 +89,37 @@ public class AdvancementTab implements Consumer<Consumer<Advancement>> {
.parent(holeInTheSky)
.criterion("enter_dungeon", ChangedDimensionCriterion.Conditions.to(ModDimensions.DUNGEON))
.build(advancementConsumer, "dimdoors:dimdoors/door_to_adventure");
Advancement.Builder.create()
.display(makeDisplay(Items.CHEST, "lost_and_found"))
.parent(doorToAdventure)
.criterion("open_chest", new ItemUsedOnBlockCriterion.Conditions
(
EntityPredicate.Extended.EMPTY,
new LocationPredicate(
NumberRange.FloatRange.ANY,
NumberRange.FloatRange.ANY,
NumberRange.FloatRange.ANY,
null,
null,
ModDimensions.DUNGEON,
null,
LightPredicate.ANY,
BlockPredicate.Builder.create().blocks(Blocks.CHEST, Blocks.TRAPPED_CHEST).build(),
FluidPredicate.ANY
),
new ItemPredicate(
null,
null,
NumberRange.IntRange.ANY,
NumberRange.IntRange.ANY,
EnchantmentPredicate.ARRAY_OF_ANY,
EnchantmentPredicate.ARRAY_OF_ANY,
null,
NbtPredicate.ANY
)
)
)
.build(advancementConsumer, "dimdoors:dimdoors/lost_and_found");
// Advancement.Builder.create() TODO: Figure out what the heck ItemUsedOnBlockCriterion
// .display(makeDisplay(Items.CHEST, "lost_and_found"))
// .parent(doorToAdventure)
// .criterion("open_chest", new ItemUsedOnBlockCriterion.Conditions
// (
// EntityPredicate.Extended.EMPTY,
// new LocationPredicate(
// NumberRange.FloatRange.ANY,
// NumberRange.FloatRange.ANY,
// NumberRange.FloatRange.ANY,
// null,
// null,
// ModDimensions.DUNGEON,
// null,
// LightPredicate.ANY,
// BlockPredicate.Builder.create().blocks(Blocks.CHEST, Blocks.TRAPPED_CHEST).build(),
// FluidPredicate.ANY
// ),
// new ItemPredicate(
// null,
// null,
// NumberRange.IntRange.ANY,
// NumberRange.IntRange.ANY,
// EnchantmentPredicate.ARRAY_OF_ANY,
// EnchantmentPredicate.ARRAY_OF_ANY,
// null,
// NbtPredicate.ANY
// )
// )
// )
// .build(advancementConsumer, "dimdoors:dimdoors/lost_and_found");
Advancement.Builder.create()
.display(makeDisplay(ModItems.BLACK_FABRIC, "darklight"))
.parent(doorToAdventure)

View file

@ -2,43 +2,32 @@ package org.dimdev.dimdoors.datagen;
import net.fabricmc.fabric.api.datagen.v1.DataGeneratorEntrypoint;
import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator;
import net.fabricmc.fabric.api.datagen.v1.provider.FabricBlockStateDefinitionProvider;
import net.minecraft.block.Block;
import net.minecraft.block.Blocks;
import net.minecraft.data.client.*;
import net.minecraft.item.Item;
import net.minecraft.util.Identifier;
import net.minecraft.util.registry.Registry;
import org.dimdev.dimdoors.block.ModBlocks;
import static net.minecraft.data.client.BlockStateModelGenerator.createBlockStateWithTwoModelAndRandomInversion;
import static net.minecraft.data.client.BlockStateModelGenerator.createDoorBlockState;
public class DatagenInitializer implements DataGeneratorEntrypoint {
@Override
public void onInitializeDataGenerator(FabricDataGenerator dataGenerator) {
dataGenerator.addProvider(new FabricBlockStateDefinitionProvider(dataGenerator) {
@Override
public void generateBlockStateModels(BlockStateModelGenerator blockStateModelGenerator) {
registerDoor(blockStateModelGenerator, ModBlocks.STONE_DOOR, Blocks.STONE);
}
@Override
public void generateItemModels(ItemModelGenerator itemModelGenerator) {
}
public void registerDoor(BlockStateModelGenerator generator, Block doorBlock, Block base) {
TextureMap textureMap = TextureMap.all(base);
Identifier identifier = Models.DOOR_BOTTOM.upload(doorBlock, textureMap, generator.modelCollector);
Identifier identifier2 = Models.DOOR_BOTTOM_RH.upload(doorBlock, textureMap, generator.modelCollector);
Identifier identifier3 = Models.DOOR_TOP.upload(doorBlock, textureMap, generator.modelCollector);
Identifier identifier4 = Models.DOOR_TOP_RH.upload(doorBlock, textureMap, generator.modelCollector);
generator.registerItemModel(doorBlock.asItem());
generator.blockStateCollector.accept(createDoorBlockState(doorBlock, identifier, identifier2, identifier3, identifier4));
}
});
// dataGenerator.addProvider(new FabricBlockStateDefinitionProvider(dataGenerator) {
//
// @Override
// public void generateBlockStateModels(BlockStateModelGenerator blockStateModelGenerator) {
// registerDoor(blockStateModelGenerator, ModBlocks.STONE_DOOR, Blocks.STONE);
// }
//
// @Override
// public void generateItemModels(ItemModelGenerator itemModelGenerator) {
// }
//
// public void registerDoor(BlockStateModelGenerator generator, Block doorBlock, Block base) {
// TextureMap textureMap = TextureMap.all(base);
// Identifier identifier = Models.DOOR_BOTTOM_LEFT.DOOR_BOTTOM.upload(doorBlock, textureMap, generator.modelCollector);
// Identifier identifier2 = Models.DOOR_BOTTOM_RH.upload(doorBlock, textureMap, generator.modelCollector);
// Identifier identifier3 = Models.DOOR_TOP.upload(doorBlock, textureMap, generator.modelCollector);
// Identifier identifier4 = Models.DOOR_TOP_RH.upload(doorBlock, textureMap, generator.modelCollector);
// generator.registerItemModel(doorBlock.asItem());
// generator.blockStateCollector.accept(createDoorBlockState(doorBlock, identifier, identifier2, identifier3, identifier4));
// }
//
// });
dataGenerator.addProvider(new FabricRecipeProvider(dataGenerator));
dataGenerator.addProvider(new AdvancementProvider(dataGenerator));

View file

@ -3,6 +3,7 @@ package org.dimdev.dimdoors.datagen;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonObject;
import net.minecraft.data.DataWriter;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.dimdev.dimdoors.api.util.ResourceUtil;
@ -37,14 +38,14 @@ public class LimboDecayProvider implements DataProvider {
}
@Override
public void run(DataCache cache) throws IOException {
public void run(DataWriter cache) throws IOException {
Path path = this.generator.getOutput();
BiConsumer<Identifier, JsonObject> consumer = (identifier, json) -> {
Path outputPath = getOutput(path, identifier);
try {
DataProvider.writeToPath(GSON, cache, json, outputPath);
DataProvider.writeToPath(cache, json, outputPath);
} catch (IOException var6) {
LOGGER.error("Couldn't save decay pattern {}", outputPath, var6);
}

View file

@ -3,7 +3,7 @@ package org.dimdev.dimdoors.datagen;
import java.io.IOException;
import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator;
import net.fabricmc.fabric.api.datagen.v1.provider.FabricBlockLootTablesProvider;
import net.fabricmc.fabric.api.datagen.v1.provider.FabricBlockLootTableProvider;
import net.minecraft.block.Blocks;
import net.minecraft.enchantment.Enchantments;
import net.minecraft.item.Items;
@ -16,7 +16,7 @@ import org.dimdev.dimdoors.block.ModBlocks;
import net.minecraft.block.Block;
import org.dimdev.dimdoors.item.ModItems;
public class LootTableProvider extends FabricBlockLootTablesProvider {
public class LootTableProvider extends FabricBlockLootTableProvider {
public LootTableProvider(FabricDataGenerator dataGenerator) {
super(dataGenerator);

View file

@ -1,7 +1,7 @@
package org.dimdev.dimdoors.api.client;
import java.util.Collections;
import java.util.Random;
import net.minecraft.util.math.random.Random;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;

View file

@ -1,25 +1,22 @@
package org.dimdev.dimdoors.api.util;
import java.util.concurrent.ThreadLocalRandom;
import net.fabricmc.fabric.api.dimension.v1.FabricDimensions;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.network.packet.s2c.play.EntityVelocityUpdateS2CPacket;
import net.minecraft.server.world.ChunkTicketType;
import net.minecraft.util.math.*;
import org.dimdev.dimdoors.DimensionalDoorsInitializer;
import net.minecraft.entity.Entity;
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.server.world.ChunkTicketType;
import net.minecraft.server.world.ServerWorld;
import net.minecraft.util.math.*;
import net.minecraft.world.TeleportTarget;
import net.minecraft.world.World;
import net.fabricmc.fabric.api.dimension.v1.FabricDimensions;
import org.dimdev.dimdoors.DimensionalDoorsInitializer;
import org.dimdev.dimdoors.entity.stat.ModStats;
import org.dimdev.dimdoors.network.ExtendedServerPlayNetworkHandler;
import org.dimdev.dimdoors.world.ModDimensions;
import java.util.concurrent.ThreadLocalRandom;
@SuppressWarnings("deprecation")
public final class TeleportUtil {
public static <E extends Entity> E teleport(E entity, World world, BlockPos pos, float yaw) {
@ -99,7 +96,7 @@ public final class TeleportUtil {
}
public static <E extends Entity> E teleportUntargeted(E entity, World world) {
double actualScale = entity.world.getDimension().getCoordinateScale() / world.getDimension().getCoordinateScale();
double actualScale = entity.world.getDimension().coordinateScale() / world.getDimension().coordinateScale();
return teleport(
entity,
world,
@ -109,7 +106,7 @@ public final class TeleportUtil {
}
public static <E extends Entity> E teleportUntargeted(E entity, World world, double y) {
double actualScale = entity.world.getDimension().getCoordinateScale() / world.getDimension().getCoordinateScale();
double actualScale = entity.world.getDimension().coordinateScale() / world.getDimension().coordinateScale();
return teleport(
entity,
world,

View file

@ -1,11 +1,12 @@
package org.dimdev.dimdoors.api.util;
import net.minecraft.util.math.random.Random;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Random;
public class WeightedList<T extends Weighted<C>, C> extends ArrayList<T> {
private final Random random = new Random();
private final Random random = Random.create();
private T peekedRandom;
private boolean peeked = false;

View file

@ -6,7 +6,7 @@ import net.minecraft.util.math.EulerAngle;
import net.minecraft.util.math.Vec3d;
import java.util.Map;
import java.util.Random;
import net.minecraft.util.math.random.Random;
import org.dimdev.dimdoors.api.util.math.TransformationMatrix3d;
@ -17,7 +17,7 @@ public final class MathUtil {
for (float weight : weights.values()) {
totalWeight += weight;
}
Random random = new Random();
Random random = Random.create();
float f = random.nextFloat() * totalWeight;
for (Map.Entry<T, Float> e : weights.entrySet()) {
f -= e.getValue();

View file

@ -1,11 +1,10 @@
package org.dimdev.dimdoors.block;
import java.util.Random;
import net.minecraft.block.*;
import net.minecraft.state.StateManager;
import net.minecraft.state.property.BooleanProperty;
import net.minecraft.state.property.Properties;
import net.minecraft.util.math.random.Random;
import org.dimdev.dimdoors.block.entity.DetachedRiftBlockEntity;
import org.dimdev.dimdoors.block.entity.ModBlockEntityTypes;
import org.dimdev.dimdoors.particle.client.RiftParticleEffect;

View file

@ -46,7 +46,7 @@ public final class ModBlocks {
public static final Block OAK_DIMENSIONAL_TRAPDOOR = register(new DimensionalTrapdoorBlock(FabricBlockSettings.copyOf(Blocks.OAK_TRAPDOOR).luminance(state -> 10)));
@RegistryEntry("dimensional_portal")
public static final Block DIMENSIONAL_PORTAL = register(new DimensionalPortalBlock(FabricBlockSettings.of(Material.AIR).collidable(false).strength(-1.0F, 3600000.0F).nonOpaque().dropsNothing().luminance(10)));
public static final Block DIMENSIONAL_PORTAL = register(new DimensionalPortalBlock(FabricBlockSettings.of(Material.AIR).collidable(false).strength(-1.0F, 3600000.0F).nonOpaque().dropsNothing().luminance(blockState -> 10)));
@RegistryEntry("detached_rift")
public static final Block DETACHED_RIFT = register(new DetachedRiftBlock(FabricBlockSettings.of(Material.AIR).strength(-1.0F, 3600000.0F).noCollision().nonOpaque()));

View file

@ -1,7 +1,6 @@
package org.dimdev.dimdoors.block;
import java.util.Random;
import net.minecraft.util.math.random.Random;
import org.dimdev.dimdoors.world.ModDimensions;
import org.dimdev.dimdoors.world.decay.LimboDecay;

View file

@ -12,7 +12,7 @@ import net.minecraft.client.render.RenderLayer;
import net.minecraft.state.StateManager;
import net.minecraft.state.property.Property;
import net.minecraft.text.MutableText;
import net.minecraft.text.TranslatableText;
import net.minecraft.text.TranslatableTextContent;
import net.minecraft.util.Identifier;
import net.minecraft.util.registry.Registry;
@ -133,7 +133,7 @@ public class DimensionalDoorBlockRegistrar {
@Override
public MutableText getName() {
return new TranslatableText("dimdoors.autogen_block_prefix").append(originalBlock.getName());
return MutableText.of(new TranslatableTextContent("dimdoors.autogen_block_prefix")).append(originalBlock.getName());
}
}
@ -161,7 +161,7 @@ public class DimensionalDoorBlockRegistrar {
@Override
public MutableText getName() {
return new TranslatableText("dimdoors.autogen_block_prefix").append(originalBlock.getName());
return MutableText.of(new TranslatableTextContent("dimdoors.autogen_block_prefix")).append(originalBlock.getName());
}
}
}

View file

@ -1,6 +1,6 @@
package org.dimdev.dimdoors.block.entity;
import java.util.Random;
import net.minecraft.util.math.random.Random;
import net.minecraft.util.math.EulerAngle;
import net.minecraft.util.math.Vec3d;
@ -22,7 +22,7 @@ import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
public class DetachedRiftBlockEntity extends RiftBlockEntity {
private static final Random random = new Random();
private static final Random random = Random.create();
public boolean closing = false;
public boolean stabilized = false;

View file

@ -3,6 +3,8 @@ package org.dimdev.dimdoors.block.entity;
import java.util.Optional;
import net.minecraft.server.world.ServerWorld;
import net.minecraft.text.MutableText;
import net.minecraft.text.TranslatableTextContent;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.dimdev.dimdoors.DimensionalDoorsInitializer;
@ -26,7 +28,6 @@ import net.minecraft.entity.Entity;
import net.minecraft.entity.LivingEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NbtCompound;
import net.minecraft.text.TranslatableText;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Direction;
import net.minecraft.util.math.EulerAngle;
@ -69,7 +70,7 @@ public class EntranceRiftBlockEntity extends RiftBlockEntity {
return innerTeleport(entity);
}
EntityUtils.chat(entity, new TranslatableText("rifts.isLocked"));
EntityUtils.chat(entity, MutableText.of(new TranslatableTextContent("rifts.isLocked")));
}
return false;
}

View file

@ -1,12 +1,14 @@
package org.dimdev.dimdoors.block.entity;
import java.util.Objects;
import java.util.Objects;
import net.minecraft.block.Block;
import net.minecraft.network.Packet;
import net.minecraft.network.listener.ClientPlayPacketListener;
import net.minecraft.network.packet.s2c.play.BlockEntityUpdateS2CPacket;
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.text.MutableText;
import net.minecraft.text.TranslatableTextContent;
import net.minecraft.util.math.EulerAngle;
import net.minecraft.util.math.Vec3d;
import org.apache.logging.log4j.LogManager;
@ -35,7 +37,6 @@ import net.minecraft.block.entity.BlockEntityType;
import net.minecraft.entity.Entity;
import net.minecraft.nbt.NbtCompound;
import net.minecraft.server.world.ServerWorld;
import net.minecraft.text.LiteralText;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
@ -206,11 +207,11 @@ public abstract class RiftBlockEntity extends BlockEntity implements Target, Ent
if (target.receiveEntity(entity, relativePos, relativeAngle, relativeVelocity)) {
VirtualLocation vLoc = VirtualLocation.fromLocation(new Location((ServerWorld) entity.world, entity.getBlockPos()));
EntityUtils.chat(entity, new LiteralText("You are at x = " + vLoc.getX() + ", y = ?, z = " + vLoc.getZ() + ", w = " + vLoc.getDepth()));
EntityUtils.chat(entity, MutableText.of(new TranslatableTextContent("You are at x = " + vLoc.getX() + ", y = ?, z = " + vLoc.getZ() + ", w = " + vLoc.getDepth())));
return true;
}
} catch (Exception e) {
EntityUtils.chat(entity, new LiteralText("Something went wrong while trying to teleport you, please report this bug."));
EntityUtils.chat(entity, MutableText.of(new TranslatableTextContent("Something went wrong while trying to teleport you, please report this bug.")));
LOGGER.error("Teleporting failed with the following exception: ", e);
}

View file

@ -4,7 +4,6 @@ import org.dimdev.dimdoors.rift.registry.LinkProperties;
import org.dimdev.dimdoors.rift.targets.VirtualTarget;
import org.dimdev.dimdoors.api.util.RGBA;
import net.minecraft.nbt.NbtCompound;
import net.minecraft.text.LiteralText;
public class RiftData {
private VirtualTarget destination = VirtualTarget.NoneTarget.INSTANCE; // How the rift acts as a source

View file

@ -89,7 +89,8 @@ public class DimensionRenderering {
bufferBuilder.vertex(matrix4f, s, 100.0F, s).texture(1.0F, 1.0F).next();
bufferBuilder.vertex(matrix4f, -s, 100.0F, s).texture(0.0F, 1.0F).next();
bufferBuilder.end();
BufferRenderer.draw(bufferBuilder);
tessellator.draw();
// BufferRenderer.draw(bufferBuilder);
RenderSystem.setShaderTexture(0, MOON_RENDER_PATH);
bufferBuilder.begin(VertexFormat.DrawMode.QUADS, VertexFormats.POSITION_TEXTURE);
bufferBuilder.vertex(matrix4f, -s, -100.0F, -s).texture(0.0F, 0.0F).next();
@ -97,7 +98,8 @@ public class DimensionRenderering {
bufferBuilder.vertex(matrix4f, s, -100.0F, s).texture(1.0F, 1.0F).next();
bufferBuilder.vertex(matrix4f, -s, -100.0F, s).texture(0.0F, 1.0F).next();
bufferBuilder.end();
BufferRenderer.draw(bufferBuilder);
tessellator.draw();
// BufferRenderer.draw(bufferBuilder);
RenderSystem.depthMask(true);
RenderSystem.enableTexture();

View file

@ -2,6 +2,7 @@ package org.dimdev.dimdoors.client;
import net.fabricmc.fabric.api.client.model.ModelLoadingRegistry;
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents;
import net.fabricmc.fabric.api.client.rendering.v1.BlockEntityRendererRegistry;
import org.dimdev.dimdoors.block.ModBlocks;
import org.dimdev.dimdoors.block.entity.ModBlockEntityTypes;
import org.dimdev.dimdoors.entity.ModEntityTypes;
@ -12,7 +13,6 @@ import org.dimdev.dimdoors.particle.ModParticleTypes;
import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.fabricmc.fabric.api.client.rendereregistry.v1.BlockEntityRendererRegistry;
@Environment(EnvType.CLIENT)
public class DimensionalDoorsClientInitializer implements ClientModInitializer {
@ -23,8 +23,8 @@ public class DimensionalDoorsClientInitializer implements ClientModInitializer {
ModEntityTypes.initClient();
ModFluids.initClient();
// ModBlockEntityTypes.initClient();
BlockEntityRendererRegistry.INSTANCE.register(ModBlockEntityTypes.ENTRANCE_RIFT, ctx -> new EntranceRiftBlockEntityRenderer());
BlockEntityRendererRegistry.INSTANCE.register(ModBlockEntityTypes.DETACHED_RIFT, ctx -> new DetachedRiftBlockEntityRenderer());
BlockEntityRendererRegistry.register(ModBlockEntityTypes.ENTRANCE_RIFT, ctx -> new EntranceRiftBlockEntityRenderer());
BlockEntityRendererRegistry.register(ModBlockEntityTypes.DETACHED_RIFT, ctx -> new DetachedRiftBlockEntityRenderer());
ModBlocks.initClient();
ModEntityModelLayers.initClient();
ModParticleTypes.initClient();

View file

@ -1,6 +1,6 @@
package org.dimdev.dimdoors.client;
import java.util.Random;
import net.minecraft.util.math.random.Random;
import com.flowpowered.math.vector.VectorNi;
import com.mojang.blaze3d.systems.RenderSystem;
@ -20,7 +20,7 @@ public class MyRenderLayer extends RenderLayer {
public static final VectorNi COLORLESS = new VectorNi(255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255);
private static final Identifier KEY_PATH = new Identifier("dimdoors:textures/other/keyhole.png");
private static final Identifier KEYHOLE_LIGHT = new Identifier("dimdoors:textures/other/keyhole_light.png");
private static final Random RANDOM = new Random(31100L);
private static final Random RANDOM = Random.create(31100L);
public MyRenderLayer(String string, VertexFormat vertexFormat, VertexFormat.DrawMode drawMode, int j, boolean bl, boolean bl2, Runnable runnable, Runnable runnable2) {
super(string, vertexFormat, drawMode, j, bl, bl2, runnable, runnable2);

View file

@ -1,18 +1,19 @@
package org.dimdev.dimdoors.client;
import java.util.List;
import net.minecraft.client.resource.language.I18n;
import net.minecraft.text.MutableText;
import net.minecraft.text.Text;
import net.minecraft.text.TranslatableText;
import net.minecraft.text.TranslatableTextContent;
import java.util.List;
public class ToolTipHelper {
public static void processTranslation(List<Text> list, String key, Object... args) {
if(I18n.hasTranslation(key)) {
list.add(new TranslatableText(key, args));
list.add(MutableText.of(new TranslatableTextContent(key, args)));
} else {
for (int i = 0; I18n.hasTranslation(key + i); i++) {
list.add(new TranslatableText(key + i, args));
list.add(MutableText.of(new TranslatableTextContent(key + i, args)));
}
}
}

View file

@ -1,35 +1,35 @@
package org.dimdev.dimdoors.client.wthit;
import java.util.List;
import java.util.Objects;
import mcp.mobius.waila.api.IComponentProvider;
import mcp.mobius.waila.api.IDataAccessor;
import mcp.mobius.waila.api.IBlockAccessor;
import mcp.mobius.waila.api.IBlockComponentProvider;
import mcp.mobius.waila.api.IPluginConfig;
import mcp.mobius.waila.api.ITooltip;
import net.minecraft.text.MutableText;
import net.minecraft.text.Text;
import net.minecraft.text.TranslatableTextContent;
import net.minecraft.util.Identifier;
import org.dimdev.dimdoors.block.entity.EntranceRiftBlockEntity;
import org.dimdev.dimdoors.rift.targets.VirtualTarget;
import net.minecraft.text.Text;
import net.minecraft.text.TranslatableText;
import net.minecraft.util.Identifier;
import java.util.Objects;
// FIXME: is not actually client sided
public enum EntranceRiftProvider implements IComponentProvider {
public enum EntranceRiftProvider implements IBlockComponentProvider {
INSTANCE;
private static final Identifier ID = new Identifier("dimdoors", "entrance_rift_provider");
@Override
public void appendBody(List<Text> tooltip, IDataAccessor accessor, IPluginConfig config) {
if (!config.get(ID, true)) {
public void appendBody(ITooltip tooltip, IBlockAccessor accessor, IPluginConfig config) {
if (!config.getBoolean(ID)) {
return;
}
EntranceRiftBlockEntity blockEntity = ((EntranceRiftBlockEntity) accessor.getBlockEntity());
VirtualTarget destination = Objects.requireNonNull(blockEntity).getDestination();
if (destination != null) {
TranslatableText tKey = new TranslatableText(destination.getType().getTranslationKey());
Text main = new TranslatableText("dimdoors.destination").append(": ").append(tKey);
tooltip.add(main);
Text tKey = MutableText.of(new TranslatableTextContent(destination.getType().getTranslationKey()));
Text main = MutableText.of(new TranslatableTextContent("dimdoors.destination")).append(": ").append(tKey);
tooltip.addLine(main);
}
}
}

View file

@ -12,6 +12,6 @@ import org.dimdev.dimdoors.block.entity.EntranceRiftBlockEntity;
public class WthitPlugin implements IWailaPlugin {
@Override
public void register(IRegistrar registrar) {
registrar.registerComponentProvider(EntranceRiftProvider.INSTANCE, TooltipPosition.BODY, EntranceRiftBlockEntity.class);
registrar.addComponent(EntranceRiftProvider.INSTANCE, TooltipPosition.BODY, EntranceRiftBlockEntity.class);
}
}

View file

@ -1,10 +1,10 @@
package org.dimdev.dimdoors.command;
import net.fabricmc.fabric.api.command.v1.CommandRegistrationCallback;
import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback;
public final class ModCommands {
public static void init() {
CommandRegistrationCallback.EVENT.register((dispatcher, dedicated) -> {
CommandRegistrationCallback.EVENT.register((dispatcher, registryAccess, dedicated) -> {
DimTeleportCommand.register(dispatcher);
PocketCommand.register(dispatcher);
});

View file

@ -3,6 +3,11 @@ package org.dimdev.dimdoors.command;
import com.mojang.brigadier.Command;
import com.mojang.brigadier.CommandDispatcher;
import com.mojang.brigadier.exceptions.CommandSyntaxException;
import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.server.command.ServerCommandSource;
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.text.MutableText;
import net.minecraft.text.TranslatableTextContent;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.dimdev.dimdoors.api.util.BlockPlacementType;
@ -11,12 +16,6 @@ import org.dimdev.dimdoors.command.arguments.PocketTemplateArgumentType;
import org.dimdev.dimdoors.pockets.PocketTemplate;
import org.dimdev.dimdoors.util.schematic.SchematicPlacer;
import net.minecraft.server.command.ServerCommandSource;
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.text.TranslatableText;
import net.fabricmc.loader.api.FabricLoader;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
@ -66,10 +65,10 @@ public class PocketCommand {
UUID playerUUID = commandSource.getPlayer().getUuid();
if (logSetting.containsKey(playerUUID)) {
logSetting.remove(playerUUID);
commandSource.sendFeedback(new TranslatableText("commands.pocket.log.creation.off"), false);
commandSource.sendFeedback(MutableText.of(new TranslatableTextContent("commands.pocket.log.creation.off")), false);
} else {
logSetting.put(playerUUID, commandSource);
commandSource.sendFeedback(new TranslatableText("commands.pocket.log.creation.on"), false);
commandSource.sendFeedback(MutableText.of(new TranslatableTextContent("commands.pocket.log.creation.on")), false);
}
return Command.SINGLE_SUCCESS;
})
@ -96,7 +95,7 @@ public class PocketCommand {
);
String id = template.getId().toString();
source.getCommandSource().sendFeedback(new TranslatableText("commands.pocket.placedSchem", id, "" + source.getBlockPos().getX() + ", " + source.getBlockPos().getY() + ", " + source.getBlockPos().getZ(), source.world.getRegistryKey().getValue().toString()), true);
source.getCommandSource().sendFeedback(MutableText.of(new TranslatableTextContent("commands.pocket.placedSchem", id, "" + source.getBlockPos().getX() + ", " + source.getBlockPos().getY() + ", " + source.getBlockPos().getZ(), source.world.getRegistryKey().getValue().toString())), true);
return Command.SINGLE_SUCCESS;
}
}

View file

@ -1,11 +1,5 @@
package org.dimdev.dimdoors.command;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.concurrent.CompletableFuture;
import java.util.function.Consumer;
import com.mojang.brigadier.Command;
import com.mojang.brigadier.exceptions.CommandSyntaxException;
import com.sk89q.jnbt.NBTInputStream;
@ -14,15 +8,21 @@ import com.sk89q.worldedit.extent.clipboard.Clipboard;
import com.sk89q.worldedit.extent.clipboard.io.SpongeSchematicReader;
import com.sk89q.worldedit.fabric.FabricAdapter;
import com.sk89q.worldedit.session.ClipboardHolder;
import org.dimdev.dimdoors.DimensionalDoorsInitializer;
import org.dimdev.dimdoors.pockets.PocketTemplate;
import org.dimdev.dimdoors.util.schematic.Schematic;
import net.minecraft.nbt.NbtCompound;
import net.minecraft.nbt.NbtIo;
import net.minecraft.server.command.ServerCommandSource;
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.text.TranslatableText;
import net.minecraft.text.MutableText;
import net.minecraft.text.TranslatableTextContent;
import org.dimdev.dimdoors.DimensionalDoorsInitializer;
import org.dimdev.dimdoors.pockets.PocketTemplate;
import org.dimdev.dimdoors.util.schematic.Schematic;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.concurrent.CompletableFuture;
import java.util.function.Consumer;
public class WorldeditHelper {
static int load(ServerCommandSource source, PocketTemplate template) throws CommandSyntaxException {
@ -45,7 +45,7 @@ public class WorldeditHelper {
}
taskAcceptor.accept(() -> {
WorldEdit.getInstance().getSessionManager().get(FabricAdapter.adaptPlayer(player)).setClipboard(new ClipboardHolder(clipboard));
source.sendFeedback(new TranslatableText("commands.pocket.loadedSchem", template.getId()), true);
source.sendFeedback(MutableText.of(new TranslatableTextContent("commands.pocket.loadedSchem", template.getId())), true);
});
};
if (async) {

View file

@ -1,28 +1,21 @@
package org.dimdev.dimdoors.command.arguments;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
import java.util.concurrent.CompletableFuture;
import com.mojang.brigadier.StringReader;
import com.mojang.brigadier.arguments.ArgumentType;
import com.mojang.brigadier.context.CommandContext;
import com.mojang.brigadier.exceptions.CommandSyntaxException;
import com.mojang.brigadier.exceptions.DynamicCommandExceptionType;
import com.mojang.brigadier.exceptions.SimpleCommandExceptionType;
import com.mojang.brigadier.suggestion.Suggestions;
import com.mojang.brigadier.suggestion.SuggestionsBuilder;
import net.minecraft.command.CommandSource;
import net.minecraft.text.TranslatableText;
import net.minecraft.text.MutableText;
import net.minecraft.text.TranslatableTextContent;
import java.util.*;
import java.util.concurrent.CompletableFuture;
public class EnumArgumentType<T extends Enum<T>> implements ArgumentType<T> {
public static final DynamicCommandExceptionType UNKNOWN_VALUE = new DynamicCommandExceptionType(str -> new TranslatableText("commands.generic.unknownValue", str));
public static final DynamicCommandExceptionType UNKNOWN_VALUE = new DynamicCommandExceptionType(str -> MutableText.of(new TranslatableTextContent("commands.generic.unknownValue", str)));
private final Map<String, T> values;
private final Set<String> valueList;

View file

@ -8,23 +8,21 @@ import com.mojang.brigadier.exceptions.DynamicCommandExceptionType;
import com.mojang.brigadier.suggestion.Suggestions;
import com.mojang.brigadier.suggestion.SuggestionsBuilder;
import net.minecraft.command.CommandSource;
import net.minecraft.text.TranslatableText;
import net.minecraft.util.Identifier;
import net.minecraft.text.MutableText;
import net.minecraft.text.TranslatableTextContent;
import org.dimdev.dimdoors.api.util.Path;
import org.dimdev.dimdoors.api.util.SimpleTree;
import org.dimdev.dimdoors.pockets.PocketLoader;
import org.dimdev.dimdoors.pockets.PocketTemplate;
import java.util.Collection;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.TreeSet;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors;
public class PocketTemplateArgumentType implements ArgumentType<PocketTemplate> {
public static final DynamicCommandExceptionType UNKNOWN_POCKET_TEMPLATE = new DynamicCommandExceptionType(s -> new TranslatableText("commands.pocket.unknownPocketTemplate", s));
public static final DynamicCommandExceptionType UNKNOWN_POCKET_TEMPLATE = new DynamicCommandExceptionType(s -> MutableText.of(new TranslatableTextContent("commands.pocket.unknownPocketTemplate",s)));
@Override
public PocketTemplate parse(StringReader reader) throws CommandSyntaxException {

View file

@ -1,6 +1,6 @@
package org.dimdev.dimdoors.entity;
import java.util.Random;
import net.minecraft.util.math.random.Random;
import net.fabricmc.fabric.api.util.NbtType;
import net.minecraft.util.math.Box;
@ -47,7 +47,7 @@ public class MonolithEntity extends MobEntity {
private static final TrackedData<Float> PITCH = DataTracker.registerData(MonolithEntity.class, TrackedDataHandlerRegistry.FLOAT);
private static final float EYE_HEIGHT_PERCENTAGE = 0.55f;
@Environment(EnvType.CLIENT)
private static final Random clientRandom = new Random();
private static final Random clientRandom = Random.create();
private int soundTime = 0;
private final int aggroCap;

View file

@ -1,8 +1,13 @@
package org.dimdev.dimdoors.entity.ai;
import java.util.EnumSet;
import java.util.Random;
import net.minecraft.entity.ai.TargetPredicate;
import net.minecraft.entity.ai.goal.Goal;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.predicate.entity.EntityPredicates;
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.sound.SoundCategory;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.random.Random;
import org.dimdev.dimdoors.DimensionalDoorsInitializer;
import org.dimdev.dimdoors.entity.MonolithEntity;
import org.dimdev.dimdoors.entity.stat.ModStats;
@ -12,13 +17,7 @@ import org.dimdev.dimdoors.network.packet.s2c.MonolithAggroParticlesPacket;
import org.dimdev.dimdoors.network.packet.s2c.MonolithTeleportParticlesPacket;
import org.dimdev.dimdoors.sound.ModSoundEvents;
import net.minecraft.entity.ai.TargetPredicate;
import net.minecraft.entity.ai.goal.Goal;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.predicate.entity.EntityPredicates;
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.sound.SoundCategory;
import net.minecraft.util.math.BlockPos;
import java.util.EnumSet;
import static org.dimdev.dimdoors.entity.MonolithEntity.MAX_AGGRO;
@ -63,7 +62,7 @@ public class MonolithAggroGoal extends Goal {
}
if (this.target != null && (this.target.getInventory().armor.get(0).getItem() == ModItems.WORLD_THREAD_HELMET && this.target.getInventory().armor.get(1).getItem() == ModItems.WORLD_THREAD_CHESTPLATE && this.target.getInventory().armor.get(2).getItem() == ModItems.WORLD_THREAD_LEGGINGS && this.target.getInventory().armor.get(3).getItem() == ModItems.WORLD_THREAD_BOOTS)) {
Random random = new Random();
Random random = Random.create();
int i = random.nextInt(64);
if (this.target instanceof ServerPlayerEntity) {
if (i < 4) {

View file

@ -2,17 +2,17 @@ package org.dimdev.dimdoors.entity.limbo;
import net.minecraft.entity.damage.DamageSource;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.network.MessageType;
import net.minecraft.network.message.MessageType;
import net.minecraft.server.MinecraftServer;
import net.minecraft.text.MutableText;
import net.minecraft.text.Text;
import net.minecraft.text.TranslatableText;
import net.minecraft.util.Util;
import net.minecraft.text.TranslatableTextContent;
public abstract class LimboEntranceSource {
public abstract Text getMessage(PlayerEntity player);
public void broadcast(PlayerEntity player, MinecraftServer server) {
server.getPlayerManager().broadcast(this.getMessage(player), MessageType.SYSTEM, Util.NIL_UUID);
server.getPlayerManager().broadcast(this.getMessage(player), MessageType.SYSTEM);
}
public static LimboDeathEntranceSource ofDamageSource(DamageSource source) {
@ -28,8 +28,8 @@ public abstract class LimboEntranceSource {
@Override
public Text getMessage(PlayerEntity player) {
TranslatableText message = (TranslatableText) this.damageSource.getDeathMessage(player);
return new TranslatableText("limbo." + message.getKey(), message.getArgs());
TranslatableTextContent message = (TranslatableTextContent) this.damageSource.getDeathMessage(player).getContent();
return MutableText.of(new TranslatableTextContent("limbo." + message.getKey(), message.getArgs()));
}
}
}

View file

@ -1,10 +1,10 @@
package org.dimdev.dimdoors.entity.limbo;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.network.MessageType;
import net.minecraft.text.TranslatableText;
import net.minecraft.network.message.MessageType;
import net.minecraft.text.MutableText;
import net.minecraft.text.TranslatableTextContent;
import net.minecraft.util.StringIdentifiable;
import net.minecraft.util.Util;
public enum LimboExitReason implements StringIdentifiable {
ETERNAL_FLUID,
@ -18,6 +18,6 @@ public enum LimboExitReason implements StringIdentifiable {
public void broadcast(PlayerEntity player) {
//noinspection ConstantConditions
player.getServer().getPlayerManager().broadcast(new TranslatableText(asString(), player.getGameProfile().getName()), MessageType.SYSTEM, Util.NIL_UUID);
player.getServer().getPlayerManager().broadcast(MutableText.of(new TranslatableTextContent(asString(), player.getGameProfile().getName())), MessageType.SYSTEM);
}
}

View file

@ -1,6 +1,6 @@
package org.dimdev.dimdoors.fluid;
import java.util.Random;
import net.minecraft.util.math.random.Random;
import org.dimdev.dimdoors.block.ModBlocks;
import org.dimdev.dimdoors.item.ModItems;
@ -57,7 +57,7 @@ public abstract class EternalFluid extends FlowableFluid {
@Override
public int getFlowSpeed(WorldView worldView) {
return worldView.getDimension().isUltrawarm() ? 4 : 2;
return worldView.getDimension().ultrawarm() ? 4 : 2;
}
@Override
@ -72,7 +72,7 @@ public abstract class EternalFluid extends FlowableFluid {
@Override
public int getLevelDecreasePerBlock(WorldView worldView) {
return worldView.getDimension().isUltrawarm() ? 1 : 2;
return worldView.getDimension().ultrawarm() ? 1 : 2;
}
@Override
@ -82,7 +82,7 @@ public abstract class EternalFluid extends FlowableFluid {
@Override
public int getTickRate(WorldView worldView) {
return worldView.getDimension().isUltrawarm() ? 10 : 30;
return worldView.getDimension().ultrawarm() ? 10 : 30;
}
@Override

View file

@ -1,16 +1,19 @@
package org.dimdev.dimdoors.item;
import java.util.List;
import java.util.function.Consumer;
import java.util.stream.IntStream;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.item.TooltipContext;
import net.minecraft.client.resource.language.I18n;
import net.minecraft.item.BlockItem;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
import net.minecraft.client.item.TooltipContext;
import net.minecraft.item.BlockItem;
import net.minecraft.item.ItemPlacementContext;
import net.minecraft.item.ItemStack;
import net.minecraft.text.MutableText;
import net.minecraft.text.Text;
import net.minecraft.text.TranslatableTextContent;
import net.minecraft.util.ActionResult;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import org.dimdev.dimdoors.DimensionalDoorsInitializer;
import org.dimdev.dimdoors.block.ModBlocks;
import org.dimdev.dimdoors.block.RiftProvider;
@ -19,15 +22,8 @@ import org.dimdev.dimdoors.block.entity.EntranceRiftBlockEntity;
import org.dimdev.dimdoors.block.entity.RiftBlockEntity;
import org.dimdev.dimdoors.client.ToolTipHelper;
import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
import net.minecraft.item.ItemPlacementContext;
import net.minecraft.item.ItemStack;
import net.minecraft.text.Text;
import net.minecraft.text.TranslatableText;
import net.minecraft.util.ActionResult;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import java.util.List;
import java.util.function.Consumer;
public class DimensionalDoorItem extends BlockItem {
private final Consumer<? super EntranceRiftBlockEntity> setupFunction;
@ -67,7 +63,7 @@ public class DimensionalDoorItem extends BlockItem {
// without sending custom packets.
if (context.getWorld().isClient) {
context.getPlayer().sendMessage(new TranslatableText("rifts.entrances.rift_too_close"), true);
context.getPlayer().sendMessage(MutableText.of(new TranslatableTextContent("rifts.entrances.rift_too_close")), true);
RiftBlockEntity.showRiftCoreUntil = System.currentTimeMillis() + DimensionalDoorsInitializer.getConfig().getGraphicsConfig().highlightRiftCoreFor;
}

View file

@ -4,7 +4,6 @@ import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.fabricmc.fabric.api.client.rendering.v1.BuiltinItemRendererRegistry;
import net.fabricmc.fabric.api.event.registry.RegistryEntryAddedCallback;
import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.block.Block;
import net.minecraft.block.DoorBlock;
@ -12,14 +11,14 @@ import net.minecraft.block.TrapdoorBlock;
import net.minecraft.client.resource.language.I18n;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.item.*;
import net.minecraft.text.MutableText;
import net.minecraft.text.Text;
import net.minecraft.text.TranslatableText;
import net.minecraft.text.TranslatableTextContent;
import net.minecraft.util.ActionResult;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.Quaternion;
import net.minecraft.util.math.Vec3f;
import net.minecraft.util.registry.Registry;
import org.apache.commons.lang3.tuple.ImmutableTriple;
import org.apache.commons.lang3.tuple.Triple;
import org.dimdev.dimdoors.DimensionalDoorsInitializer;
@ -143,12 +142,12 @@ public class DimensionalDoorItemRegistrar {
@Override
public Text getName(ItemStack stack) {
return new TranslatableText("dimdoors.autogen_item_prefix", I18n.translate(originalItem.getTranslationKey()));
return MutableText.of(new TranslatableTextContent("dimdoors.autogen_item_prefix", I18n.translate(originalItem.getTranslationKey())));
}
@Override
public Text getName() {
return new TranslatableText("dimdoors.autogen_item_prefix", I18n.translate(originalItem.getTranslationKey()));
return MutableText.of(new TranslatableTextContent("dimdoors.autogen_item_prefix", I18n.translate(originalItem.getTranslationKey())));
}
@Override
@ -173,12 +172,12 @@ public class DimensionalDoorItemRegistrar {
@Override
public Text getName(ItemStack stack) {
return new TranslatableText("dimdoors.autogen_item_prefix", I18n.translate(originalItem.getTranslationKey()));
return MutableText.of(new TranslatableTextContent("dimdoors.autogen_item_prefix", I18n.translate(originalItem.getTranslationKey())));
}
@Override
public Text getName() {
return new TranslatableText("dimdoors.autogen_item_prefix", I18n.translate(originalItem.getTranslationKey()));
return MutableText.of(new TranslatableTextContent("dimdoors.autogen_item_prefix", I18n.translate(originalItem.getTranslationKey())));
}
@Override

View file

@ -1,23 +1,22 @@
package org.dimdev.dimdoors.item;
import java.util.List;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import net.fabricmc.api.Environment;
import net.minecraft.client.item.TooltipContext;
import net.minecraft.client.resource.language.I18n;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.text.MutableText;
import net.minecraft.text.Text;
import net.minecraft.text.TranslatableText;
import net.minecraft.text.TranslatableTextContent;
import net.minecraft.util.Hand;
import net.minecraft.util.TypedActionResult;
import net.minecraft.util.hit.HitResult;
import net.minecraft.world.World;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import net.fabricmc.api.Environment;
import java.util.List;
import static net.fabricmc.api.EnvType.CLIENT;
@ -51,7 +50,7 @@ import static net.fabricmc.api.EnvType.CLIENT;
@Environment(CLIENT)
public void appendTooltip(ItemStack itemStack, World world, List<Text> list, TooltipContext tooltipContext) {
if (I18n.hasTranslation(this.getTranslationKey() + ".info")) {
list.add(new TranslatableText(this.getTranslationKey() + ".info"));
list.add(MutableText.of(new TranslatableTextContent(this.getTranslationKey() + ".info")));
}
}
}

View file

@ -1,25 +1,16 @@
package org.dimdev.dimdoors.item;
import java.util.List;
import java.util.Objects;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import org.dimdev.dimdoors.DimensionalDoorsInitializer;
import org.dimdev.dimdoors.block.DimensionalPortalBlock;
import org.dimdev.dimdoors.block.ModBlocks;
import org.dimdev.dimdoors.block.entity.EntranceRiftBlockEntity;
import org.dimdev.dimdoors.block.entity.RiftBlockEntity;
import org.dimdev.dimdoors.client.ToolTipHelper;
import net.minecraft.client.item.TooltipContext;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.item.SwordItem;
import net.minecraft.item.ToolMaterials;
import net.minecraft.text.MutableText;
import net.minecraft.text.Text;
import net.minecraft.text.TranslatableText;
import net.minecraft.text.TranslatableTextContent;
import net.minecraft.util.ActionResult;
import net.minecraft.util.Hand;
import net.minecraft.util.TypedActionResult;
@ -28,6 +19,15 @@ import net.minecraft.util.hit.HitResult;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Vec3d;
import net.minecraft.world.World;
import org.dimdev.dimdoors.DimensionalDoorsInitializer;
import org.dimdev.dimdoors.block.DimensionalPortalBlock;
import org.dimdev.dimdoors.block.ModBlocks;
import org.dimdev.dimdoors.block.entity.EntranceRiftBlockEntity;
import org.dimdev.dimdoors.block.entity.RiftBlockEntity;
import org.dimdev.dimdoors.client.ToolTipHelper;
import java.util.List;
import java.util.Objects;
public class RiftBladeItem extends SwordItem {
public static final String ID = "rift_blade";
@ -73,7 +73,7 @@ public class RiftBladeItem extends SwordItem {
if (RaycastHelper.hitsLivingEntity(hit) || RaycastHelper.hitsRift(hit, world)) {
return new TypedActionResult<>(ActionResult.SUCCESS, stack);
} else {
player.sendMessage(new TranslatableText(this.getTranslationKey() + ".rift_miss"), true);
player.sendMessage(MutableText.of(new TranslatableTextContent(this.getTranslationKey() + ".rift_miss")), true);
RiftBlockEntity.showRiftCoreUntil = System.currentTimeMillis() + DimensionalDoorsInitializer.getConfig().getGraphicsConfig().highlightRiftCoreFor;
return new TypedActionResult<>(ActionResult.FAIL, stack);
}

View file

@ -1,16 +1,6 @@
package org.dimdev.dimdoors.item;
import java.util.List;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.dimdev.dimdoors.api.item.ExtendedItem;
import org.dimdev.dimdoors.block.entity.RiftBlockEntity;
import org.dimdev.dimdoors.network.ServerPacketHandler;
import org.dimdev.dimdoors.rift.targets.IdMarker;
import org.dimdev.dimdoors.api.util.EntityUtils;
import org.dimdev.dimdoors.item.component.CounterComponent;
import net.fabricmc.api.Environment;
import net.minecraft.block.entity.BlockEntity;
import net.minecraft.client.item.TooltipContext;
import net.minecraft.client.resource.language.I18n;
@ -18,8 +8,9 @@ import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.text.MutableText;
import net.minecraft.text.Text;
import net.minecraft.text.TranslatableText;
import net.minecraft.text.TranslatableTextContent;
import net.minecraft.util.Hand;
import net.minecraft.util.TypedActionResult;
import net.minecraft.util.hit.BlockHitResult;
@ -27,8 +18,16 @@ import net.minecraft.util.hit.HitResult;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Direction;
import net.minecraft.world.World;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.dimdev.dimdoors.api.item.ExtendedItem;
import org.dimdev.dimdoors.api.util.EntityUtils;
import org.dimdev.dimdoors.block.entity.RiftBlockEntity;
import org.dimdev.dimdoors.item.component.CounterComponent;
import org.dimdev.dimdoors.network.ServerPacketHandler;
import org.dimdev.dimdoors.rift.targets.IdMarker;
import net.fabricmc.api.Environment;
import java.util.List;
import static net.fabricmc.api.EnvType.CLIENT;
@ -112,7 +111,7 @@ public class RiftConfigurationToolItem extends Item implements ExtendedItem {
@Environment(CLIENT)
public void appendTooltip(ItemStack itemStack, World world, List<Text> list, TooltipContext tooltipContext) {
if (I18n.hasTranslation(this.getTranslationKey() + ".info")) {
list.add(new TranslatableText(this.getTranslationKey() + ".info"));
list.add(MutableText.of(new TranslatableTextContent(this.getTranslationKey() + ".info")));
}
}
}

View file

@ -1,21 +1,6 @@
package org.dimdev.dimdoors.item;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;
import org.dimdev.dimdoors.block.RiftProvider;
import org.dimdev.dimdoors.block.entity.EntranceRiftBlockEntity;
import org.dimdev.dimdoors.block.entity.RiftBlockEntity;
import org.dimdev.dimdoors.mixin.accessor.ListTagAccessor;
import org.dimdev.dimdoors.network.ServerPacketHandler;
import org.dimdev.dimdoors.rift.registry.Rift;
import org.dimdev.dimdoors.api.util.EntityUtils;
import org.dimdev.dimdoors.api.util.Location;
import org.dimdev.dimdoors.world.level.registry.DimensionalRegistry;
import org.jetbrains.annotations.Nullable;
import net.fabricmc.fabric.api.util.NbtType;
import net.minecraft.block.BlockState;
import net.minecraft.client.item.TooltipContext;
import net.minecraft.entity.player.PlayerEntity;
@ -25,15 +10,28 @@ import net.minecraft.item.ItemStack;
import net.minecraft.item.ItemUsageContext;
import net.minecraft.nbt.NbtIntArray;
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.text.LiteralText;
import net.minecraft.text.MutableText;
import net.minecraft.text.Text;
import net.minecraft.text.TranslatableText;
import net.minecraft.text.TranslatableTextContent;
import net.minecraft.util.ActionResult;
import net.minecraft.util.collection.DefaultedList;
import net.minecraft.util.dynamic.DynamicSerializableUuid;
import net.minecraft.world.World;
import org.dimdev.dimdoors.api.util.EntityUtils;
import org.dimdev.dimdoors.api.util.Location;
import org.dimdev.dimdoors.block.RiftProvider;
import org.dimdev.dimdoors.block.entity.EntranceRiftBlockEntity;
import org.dimdev.dimdoors.block.entity.RiftBlockEntity;
import org.dimdev.dimdoors.mixin.accessor.ListTagAccessor;
import org.dimdev.dimdoors.network.ServerPacketHandler;
import org.dimdev.dimdoors.rift.registry.Rift;
import org.dimdev.dimdoors.world.level.registry.DimensionalRegistry;
import org.jetbrains.annotations.Nullable;
import net.fabricmc.fabric.api.util.NbtType;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;
public class RiftKeyItem extends Item {
public RiftKeyItem(Settings settings) {
@ -43,10 +41,10 @@ public class RiftKeyItem extends Item {
@Override
public void appendTooltip(ItemStack stack, @Nullable World world, List<Text> tooltip, TooltipContext context) {
if (isEmpty(stack)) {
tooltip.add(new TranslatableText("item.dimdoors.rift_key.no_links"));
tooltip.add(MutableText.of(new TranslatableTextContent("item.dimdoors.rift_key.no_links")));
} else if (context.isAdvanced()) {
for (UUID id : getIds(stack)) {
tooltip.add(new LiteralText(" " + id.toString()));
tooltip.add(Text.of(" " + id.toString()));
}
}
super.appendTooltip(stack, world, tooltip, context);
@ -97,17 +95,17 @@ public class RiftKeyItem extends Item {
if (tryRemove(context.getStack(), rift.getId())) {
entranceRiftBlockEntity.setLocked(false);
entranceRiftBlockEntity.markDirty();
EntityUtils.chat(player, new TranslatableText("rifts.unlocked"));
EntityUtils.chat(player, MutableText.of(new TranslatableTextContent("rifts.unlocked")));
ServerPacketHandler.get((ServerPlayerEntity) player).sync(context.getStack(), context.getHand());
return ActionResult.SUCCESS;
} else {
EntityUtils.chat(player, new TranslatableText("rifts.cantUnlock"));
EntityUtils.chat(player, MutableText.of(new TranslatableTextContent("rifts.cantUnlock")));
}
} else {
entranceRiftBlockEntity.setLocked(true);
add(context.getStack(), rift.getId());
entranceRiftBlockEntity.markDirty();
EntityUtils.chat(player, new TranslatableText("rifts.locked"));
EntityUtils.chat(player, MutableText.of(new TranslatableTextContent("rifts.locked")));
ServerPacketHandler.get((ServerPlayerEntity) player).sync(context.getStack(), context.getHand());
return ActionResult.SUCCESS;
}

View file

@ -1,31 +1,29 @@
package org.dimdev.dimdoors.item;
import java.util.List;
import java.util.Objects;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.item.TooltipContext;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.sound.SoundCategory;
import net.minecraft.text.MutableText;
import net.minecraft.text.Text;
import net.minecraft.text.TranslatableTextContent;
import net.minecraft.util.ActionResult;
import net.minecraft.util.Hand;
import net.minecraft.util.TypedActionResult;
import net.minecraft.util.hit.BlockHitResult;
import net.minecraft.util.hit.HitResult;
import net.minecraft.world.World;
import org.dimdev.dimdoors.DimensionalDoorsInitializer;
import org.dimdev.dimdoors.block.entity.DetachedRiftBlockEntity;
import org.dimdev.dimdoors.block.entity.RiftBlockEntity;
import org.dimdev.dimdoors.client.ToolTipHelper;
import org.dimdev.dimdoors.sound.ModSoundEvents;
import net.minecraft.client.item.TooltipContext;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.sound.SoundCategory;
import net.minecraft.text.Text;
import net.minecraft.text.TranslatableText;
import net.minecraft.util.ActionResult;
import net.minecraft.util.Hand;
import net.minecraft.util.TypedActionResult;
import net.minecraft.util.hit.HitResult;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import java.util.List;
import java.util.Objects;
public class RiftRemoverItem extends Item {
public static final String ID = "rift_remover";
@ -47,7 +45,7 @@ public class RiftRemoverItem extends Item {
if (world.isClient) {
if (!RaycastHelper.hitsDetachedRift(hit, world)) {
player.sendMessage(new TranslatableText("tools.rift_miss"), true);
player.sendMessage(MutableText.of(new TranslatableTextContent("tools.rift_miss")), true);
RiftBlockEntity.showRiftCoreUntil = System.currentTimeMillis() + DimensionalDoorsInitializer.getConfig().getGraphicsConfig().highlightRiftCoreFor;
}
return new TypedActionResult<>(ActionResult.FAIL, stack);
@ -60,10 +58,10 @@ public class RiftRemoverItem extends Item {
rift.setClosing(true);
world.playSound(null, player.getBlockPos(), ModSoundEvents.RIFT_CLOSE, SoundCategory.BLOCKS, 0.6f, 1);
stack.damage(10, player, a -> a.sendToolBreakStatus(hand));
player.sendMessage(new TranslatableText(this.getTranslationKey() + ".closing"), true);
player.sendMessage(MutableText.of(new TranslatableTextContent(this.getTranslationKey() + ".closing")), true);
return new TypedActionResult<>(ActionResult.SUCCESS, stack);
} else {
player.sendMessage(new TranslatableText(this.getTranslationKey() + ".already_closing"), true);
player.sendMessage(MutableText.of(new TranslatableTextContent(this.getTranslationKey() + ".already_closing")), true);
}
}
return new TypedActionResult<>(ActionResult.FAIL, stack);

View file

@ -1,20 +1,7 @@
package org.dimdev.dimdoors.item;
import java.util.List;
import net.fabricmc.api.ModInitializer;
import org.dimdev.dimdoors.DimensionalDoorsInitializer;
import org.dimdev.dimdoors.ModConfig;
import org.dimdev.dimdoors.block.ModBlocks;
import org.dimdev.dimdoors.block.entity.DetachedRiftBlockEntity;
import org.dimdev.dimdoors.client.ToolTipHelper;
import org.dimdev.dimdoors.rift.targets.RiftReference;
import org.dimdev.dimdoors.sound.ModSoundEvents;
import org.dimdev.dimdoors.api.util.Location;
import org.dimdev.dimdoors.api.util.RotatedLocation;
import org.dimdev.dimdoors.world.ModDimensions;
import org.jetbrains.annotations.NotNull;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.item.TooltipContext;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.Item;
@ -24,17 +11,27 @@ import net.minecraft.item.ItemUsageContext;
import net.minecraft.nbt.NbtCompound;
import net.minecraft.server.world.ServerWorld;
import net.minecraft.sound.SoundCategory;
import net.minecraft.text.MutableText;
import net.minecraft.text.Text;
import net.minecraft.text.TranslatableText;
import net.minecraft.text.TranslatableTextContent;
import net.minecraft.util.ActionResult;
import net.minecraft.util.Formatting;
import net.minecraft.util.Hand;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Direction;
import net.minecraft.world.World;
import org.dimdev.dimdoors.DimensionalDoorsInitializer;
import org.dimdev.dimdoors.api.util.Location;
import org.dimdev.dimdoors.api.util.RotatedLocation;
import org.dimdev.dimdoors.block.ModBlocks;
import org.dimdev.dimdoors.block.entity.DetachedRiftBlockEntity;
import org.dimdev.dimdoors.client.ToolTipHelper;
import org.dimdev.dimdoors.rift.targets.RiftReference;
import org.dimdev.dimdoors.sound.ModSoundEvents;
import org.dimdev.dimdoors.world.ModDimensions;
import org.jetbrains.annotations.NotNull;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import java.util.List;
public class RiftSignatureItem extends Item {
public static final String ID = "rift_signature";
@ -71,7 +68,7 @@ public class RiftSignatureItem extends Item {
}
if(ModDimensions.isPrivatePocketDimension(world) && !DimensionalDoorsInitializer.getConfig().getPocketsConfig().canUseRiftSignatureInPrivatePockets) {
player.sendMessage(new TranslatableText("tools.signature_blocked").formatted(Formatting.BLACK), true);
player.sendMessage(MutableText.of(new TranslatableTextContent("tools.signature_blocked")).formatted(Formatting.BLACK), true);
return ActionResult.FAIL;
}
@ -80,13 +77,13 @@ public class RiftSignatureItem extends Item {
if (target == null) {
// The link signature has not been used. Store its current target as the first location.
setSource(stack, new RotatedLocation(world.getRegistryKey(), pos, player.getYaw(), 0));
player.sendMessage(new TranslatableText(this.getTranslationKey() + ".stored"), true);
player.sendMessage(MutableText.of(new TranslatableTextContent(this.getTranslationKey() + ".stored")), true);
world.playSound(null, player.getBlockPos(), ModSoundEvents.RIFT_START, SoundCategory.BLOCKS, 0.6f, 1);
} else {
// Place a rift at the saved point
if (target.getBlockState().getBlock() != ModBlocks.DETACHED_RIFT) {
if (!target.getBlockState().getBlock().canMobSpawnInside()) {
player.sendMessage(new TranslatableText("tools.target_became_block"), true);
player.sendMessage(MutableText.of(new TranslatableTextContent("tools.target_became_block")), true);
clearSource(stack); // TODO: But is this fair? It's a rather hidden way of unbinding your signature!
return ActionResult.FAIL;
}
@ -107,7 +104,7 @@ public class RiftSignatureItem extends Item {
}); // TODO: calculate damage based on position?
clearSource(stack);
player.sendMessage(new TranslatableText(this.getTranslationKey() + ".created"), true);
player.sendMessage(MutableText.of(new TranslatableTextContent(this.getTranslationKey() + ".created")), true);
// null = send sound to the player too, we have to do this because this code is not run client-side
world.playSound(null, player.getBlockPos(), ModSoundEvents.RIFT_END, SoundCategory.BLOCKS, 0.6f, 1);
}
@ -139,8 +136,8 @@ public class RiftSignatureItem extends Item {
public void appendTooltip(ItemStack itemStack, World world, List<Text> list, TooltipContext tooltipContext) {
RotatedLocation transform = getSource(itemStack);
if (transform != null) {
list.add(new TranslatableText(this.getTranslationKey() + ".bound.info0", transform.getX(), transform.getY(), transform.getZ(), transform.getWorldId().getValue()));
list.add(new TranslatableText(this.getTranslationKey() + ".bound.info1", transform.getWorldId().getValue()));
list.add(MutableText.of(new TranslatableTextContent(this.getTranslationKey() + ".bound.info0", transform.getX(), transform.getY(), transform.getZ(), transform.getWorldId().getValue())));
list.add(MutableText.of(new TranslatableTextContent(this.getTranslationKey() + ".bound.info1", transform.getWorldId().getValue())));
} else {
ToolTipHelper.processTranslation(list, this.getTranslationKey() + ".unbound.info");
}

View file

@ -1,28 +1,27 @@
package org.dimdev.dimdoors.item;
import java.util.List;
import org.dimdev.dimdoors.DimensionalDoorsInitializer;
import org.dimdev.dimdoors.block.entity.DetachedRiftBlockEntity;
import org.dimdev.dimdoors.block.entity.RiftBlockEntity;
import org.dimdev.dimdoors.sound.ModSoundEvents;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.item.TooltipContext;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.sound.SoundCategory;
import net.minecraft.text.MutableText;
import net.minecraft.text.Text;
import net.minecraft.text.TranslatableText;
import net.minecraft.text.TranslatableTextContent;
import net.minecraft.util.ActionResult;
import net.minecraft.util.Hand;
import net.minecraft.util.TypedActionResult;
import net.minecraft.util.hit.HitResult;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import org.dimdev.dimdoors.DimensionalDoorsInitializer;
import org.dimdev.dimdoors.block.entity.DetachedRiftBlockEntity;
import org.dimdev.dimdoors.block.entity.RiftBlockEntity;
import org.dimdev.dimdoors.sound.ModSoundEvents;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import java.util.List;
public class RiftStabilizerItem extends Item {
public RiftStabilizerItem(Settings settings) {
@ -39,7 +38,7 @@ public class RiftStabilizerItem extends Item {
// TODO: not necessarily success, fix this and all other similar cases to make arm swing correct
return new TypedActionResult<>(ActionResult.SUCCESS, stack);
} else {
player.sendMessage(new TranslatableText("tools.rift_miss"), true);
player.sendMessage(MutableText.of(new TranslatableTextContent("tools.rift_miss")), true);
RiftBlockEntity.showRiftCoreUntil = System.currentTimeMillis() + DimensionalDoorsInitializer.getConfig().getGraphicsConfig().highlightRiftCoreFor;
return new TypedActionResult<>(ActionResult.FAIL, stack);
}
@ -52,10 +51,10 @@ public class RiftStabilizerItem extends Item {
world.playSound(null, player.getBlockPos(), ModSoundEvents.RIFT_CLOSE, SoundCategory.BLOCKS, 0.6f, 1); // TODO: different sound
stack.damage(1, player, a -> {
});
player.sendMessage(new TranslatableText(this.getTranslationKey() + ".stabilized"), true);
player.sendMessage(MutableText.of(new TranslatableTextContent(this.getTranslationKey() + ".stabilized")), true);
return new TypedActionResult<>(ActionResult.SUCCESS, stack);
} else {
player.sendMessage(new TranslatableText(this.getTranslationKey() + ".already_stabilized"), true);
player.sendMessage(MutableText.of(new TranslatableTextContent(this.getTranslationKey() + ".already_stabilized")), true);
}
}
return new TypedActionResult<>(ActionResult.FAIL, stack);
@ -64,6 +63,6 @@ public class RiftStabilizerItem extends Item {
@Environment(EnvType.CLIENT)
@Override
public void appendTooltip(ItemStack itemStack, World world, List<Text> list, TooltipContext tooltipContext) {
list.add(new TranslatableText(this.getTranslationKey() + ".info"));
list.add(MutableText.of(new TranslatableTextContent(this.getTranslationKey() + ".info")));
}
}

View file

@ -1,19 +1,5 @@
package org.dimdev.dimdoors.item;
import java.util.List;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import org.dimdev.dimdoors.DimensionalDoorsInitializer;
import org.dimdev.dimdoors.block.ModBlocks;
import org.dimdev.dimdoors.block.entity.DetachedRiftBlockEntity;
import org.dimdev.dimdoors.client.ToolTipHelper;
import org.dimdev.dimdoors.rift.targets.RiftReference;
import org.dimdev.dimdoors.sound.ModSoundEvents;
import org.dimdev.dimdoors.api.util.Location;
import org.dimdev.dimdoors.api.util.RotatedLocation;
import net.minecraft.client.item.TooltipContext;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.Item;
import net.minecraft.item.ItemPlacementContext;
@ -22,13 +8,20 @@ import net.minecraft.item.ItemUsageContext;
import net.minecraft.nbt.NbtCompound;
import net.minecraft.server.world.ServerWorld;
import net.minecraft.sound.SoundCategory;
import net.minecraft.text.Text;
import net.minecraft.text.TranslatableText;
import net.minecraft.text.MutableText;
import net.minecraft.text.TranslatableTextContent;
import net.minecraft.util.ActionResult;
import net.minecraft.util.Hand;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Direction;
import net.minecraft.world.World;
import org.dimdev.dimdoors.DimensionalDoorsInitializer;
import org.dimdev.dimdoors.api.util.Location;
import org.dimdev.dimdoors.api.util.RotatedLocation;
import org.dimdev.dimdoors.block.ModBlocks;
import org.dimdev.dimdoors.block.entity.DetachedRiftBlockEntity;
import org.dimdev.dimdoors.rift.targets.RiftReference;
import org.dimdev.dimdoors.sound.ModSoundEvents;
public class StabilizedRiftSignatureItem extends Item { // TODO: common superclass with rift signature
public static final String ID = "stabilized_rift_signature";
@ -68,13 +61,13 @@ public class StabilizedRiftSignatureItem extends Item { // TODO: common supercla
if (target == null) {
// The link signature has not been used. Store its current target as the first location.
setSource(stack, new RotatedLocation(world.getRegistryKey(), pos, player.getYaw(), 0));
player.sendMessage(new TranslatableText(this.getTranslationKey() + ".stored"), true);
player.sendMessage(MutableText.of(new TranslatableTextContent(this.getTranslationKey() + ".stored")), true);
world.playSound(null, player.getBlockPos(), ModSoundEvents.RIFT_START, SoundCategory.BLOCKS, 0.6f, 1);
} else {
// Place a rift at the target point
if (target.getBlockState().getBlock() != ModBlocks.DETACHED_RIFT) {
if (!target.getBlockState().getBlock().canReplace(world.getBlockState(target.getBlockPos()), itemPlacementContext)) {
player.sendMessage(new TranslatableText("tools.target_became_block"), true);
player.sendMessage(MutableText.of(new TranslatableTextContent("tools.target_became_block")), true);
// Don't clear source, stabilized signatures always stay bound
return ActionResult.FAIL;
}
@ -93,7 +86,7 @@ public class StabilizedRiftSignatureItem extends Item { // TODO: common supercla
stack.damage(1, player, playerEntity -> {
});
player.sendMessage(new TranslatableText(this.getTranslationKey() + ".created"), true);
player.sendMessage(MutableText.of(new TranslatableTextContent(this.getTranslationKey() + ".created")), true);
world.playSound(null, player.getBlockPos(), ModSoundEvents.RIFT_END, SoundCategory.BLOCKS, 0.6f, 1);
}

View file

@ -24,7 +24,7 @@ public class ExplosionMixin {
@Mutable @Shadow
private List<BlockPos> affectedBlocks;
@Inject(method = "affectWorld", at = @At(value = "INVOKE", target = "Ljava/util/Collections;shuffle(Ljava/util/List;Ljava/util/Random;)V", ordinal = 0, shift = At.Shift.AFTER))
@Inject(method = "affectWorld", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/Util;shuffle(Lit/unimi/dsi/fastutil/objects/ObjectArrayList;Lnet/minecraft/util/math/random/Random;)V", ordinal = 0, shift = At.Shift.AFTER))
private void handleExplosionConvertibleBlocks(boolean b1, CallbackInfo ci) {
this.affectedBlocks = this.affectedBlocks.stream().filter(blockPos -> {
BlockState state = this.world.getBlockState(blockPos);

View file

@ -1,18 +1,22 @@
package org.dimdev.dimdoors.mixin;
import net.minecraft.block.BlockState;
import net.minecraft.item.ItemStack;
import net.minecraft.entity.EntityType;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.damage.DamageSource;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.nbt.NbtCompound;
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.server.network.ServerRecipeBook;
import org.dimdev.dimdoors.DimensionalDoorsInitializer;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.random.Random;
import net.minecraft.util.registry.RegistryKey;
import net.minecraft.world.World;
import org.dimdev.dimdoors.api.util.TeleportUtil;
import org.dimdev.dimdoors.block.UnravelledFabricBlock;
import org.dimdev.dimdoors.criteria.ModCriteria;
import org.dimdev.dimdoors.entity.limbo.LimboEntranceSource;
import org.dimdev.dimdoors.entity.stat.ModStats;
import org.dimdev.dimdoors.api.util.TeleportUtil;
import org.dimdev.dimdoors.item.ModItems;
import org.dimdev.dimdoors.network.ExtendedServerPlayNetworkHandler;
import org.dimdev.dimdoors.network.packet.s2c.PlayerInventorySlotUpdateS2CPacket;
import org.dimdev.dimdoors.world.ModDimensions;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
@ -21,17 +25,6 @@ import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import net.minecraft.entity.EntityType;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.damage.DamageSource;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.registry.RegistryKey;
import net.minecraft.world.World;
import java.util.Random;
@Mixin(value = ServerPlayerEntity.class, priority = 900)
public abstract class ServerPlayerEntityMixin extends PlayerEntityMixin {
@Shadow
@ -46,7 +39,7 @@ public abstract class ServerPlayerEntityMixin extends PlayerEntityMixin {
private static final int CHUNK_SIZES = 25;
private static final int POSITION_AWAY = 50;
private static final float RANDOM_LIQUID_CHANCE = 0.7F;
Random random = new Random();
Random random = Random.create();
public ServerPlayerEntityMixin(EntityType<? extends LivingEntity> entityType, World world) {
super(entityType, world);

View file

@ -33,7 +33,7 @@ public abstract class WorldMixin {
at = @At(value = "INVOKE_ASSIGN",
target = "Lnet/minecraft/world/World;getFluidState(Lnet/minecraft/util/math/BlockPos;)Lnet/minecraft/fluid/FluidState;",
ordinal = 0))
private FluidState replaceFluidStateWithCustomHackyFluidState(FluidState original, BlockPos pos, boolean drop, @Nullable Entity breakingEntity, int maxUpdateDepth) {
private FluidState replaceFluidStateWithCustomHackyFluidState(FluidState original, BlockPos pos, boolean drop, @Nullable Entity breakingEntity, int maxUpdateDepth) { //TODO: Fix
World world = (World) (Object) this;
BlockState blockState = world.getBlockState(pos);
Block block = blockState.getBlock();

View file

@ -1,12 +1,8 @@
package org.dimdev.dimdoors.mixin.accessor;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;
import net.minecraft.world.gen.chunk.ChunkGenerator;
import org.spongepowered.asm.mixin.Mixin;
@Mixin(ChunkGenerator.class)
public interface ChunkGeneratorAccessor {
@Accessor("field_37261")
long getWorldSeed();
}

View file

@ -1,23 +1,22 @@
package org.dimdev.dimdoors.mixin.accessor;
import java.nio.file.Path;
import com.google.gson.JsonObject;
import net.minecraft.data.DataWriter;
import net.minecraft.data.server.RecipeProvider;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Invoker;
import net.minecraft.data.DataCache;
import java.nio.file.Path;
@Mixin(RecipeProvider.class)
public interface RecipesProviderAccessor {
@Invoker
static void callSaveRecipe(DataCache cache, JsonObject json, Path path) {
static void callSaveRecipe(DataWriter cache, JsonObject json, Path path) {
throw new UnsupportedOperationException();
}
@Invoker
static void callSaveRecipeAdvancement(DataCache cache, JsonObject json, Path path) {
static void callSaveRecipeAdvancement(DataWriter cache, JsonObject json, Path path) {
throw new UnsupportedOperationException();
}
}

View file

@ -6,7 +6,7 @@ import net.minecraft.client.particle.*;
import net.minecraft.client.world.ClientWorld;
import net.minecraft.particle.DefaultParticleType;
import java.util.Random;
import net.minecraft.util.math.random.Random;
@Environment(EnvType.CLIENT)
public class LimboAshParticle extends AscendingParticle {

View file

@ -73,7 +73,7 @@ public final class PocketGenerator {
public static Pocket generateDungeonPocket(VirtualLocation virtualLocation, VirtualTarget linkTo, LinkProperties linkProperties) {
int depth = virtualLocation.getDepth();
float netherProbability = DimensionalDoorsInitializer.getWorld(virtualLocation.getWorld()).getDimension().isUltrawarm() ? 1 : (float) depth / 200; // TODO: improve nether probability
Random random = new Random();
Random random = Random.create();
String group = random.nextFloat() < netherProbability ? "nether" : "ruins";
PocketTemplate pocketTemplate = SchematicHandler.INSTANCE.getRandomTemplate(group, depth, DimensionalDoorsInitializer.getConfig().getPocketsConfig().maxPocketSize, false);

View file

@ -1,11 +1,15 @@
package org.dimdev.dimdoors.pockets.generator;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.fabricmc.fabric.api.util.NbtType;
import net.minecraft.nbt.NbtCompound;
import net.minecraft.resource.ResourceManager;
import net.minecraft.server.world.ServerWorld;
import net.minecraft.text.MutableText;
import net.minecraft.text.TranslatableTextContent;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Vec3i;
import net.minecraft.world.chunk.Chunk;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.dimdev.dimdoors.api.util.BlockPlacementType;
@ -22,15 +26,10 @@ import org.dimdev.dimdoors.world.level.registry.DimensionalRegistry;
import org.dimdev.dimdoors.world.pocket.type.LazyGenerationPocket;
import org.dimdev.dimdoors.world.pocket.type.Pocket;
import net.minecraft.nbt.NbtCompound;
import net.minecraft.server.world.ServerWorld;
import net.minecraft.text.TranslatableText;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Vec3i;
import net.minecraft.world.chunk.Chunk;
import net.fabricmc.fabric.api.util.NbtType;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class SchematicGenerator extends LazyPocketGenerator{
private static final Logger LOGGER = LogManager.getLogger();
@ -143,7 +142,7 @@ public class SchematicGenerator extends LazyPocketGenerator{
Pocket pocket = DimensionalRegistry.getPocketDirectory(world.getRegistryKey()).newPocket(builder);
BlockPos origin = pocket.getOrigin();
LOGGER.info("Generating pocket from template " + templateID + " at location " + origin);
PocketCommand.logSetting.values().forEach(commandSource -> commandSource.sendFeedback(new TranslatableText("commands.pocket.log.creation.generating", templateID, origin.getX(), origin.getY(), origin.getZ()), false));
PocketCommand.logSetting.values().forEach(commandSource -> commandSource.sendFeedback(MutableText.of(new TranslatableTextContent("commands.pocket.log.creation.generating", templateID, origin.getX(), origin.getY(), origin.getZ())), false));
if (pocket instanceof LazyGenerationPocket) {

View file

@ -1,38 +1,29 @@
package org.dimdev.dimdoors.rift.targets;
import java.util.Random;
import java.util.UUID;
import com.mojang.serialization.Codec;
import com.mojang.serialization.codecs.RecordCodecBuilder;
import com.sk89q.worldedit.util.formatting.text.BlockNbtComponent;
import net.minecraft.block.Block;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.server.PlayerManager;
import net.minecraft.entity.Entity;
import net.minecraft.nbt.NbtCompound;
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.world.World;
import net.minecraft.text.MutableText;
import net.minecraft.text.TranslatableTextContent;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.EulerAngle;
import net.minecraft.util.math.Vec3d;
import net.minecraft.util.math.random.Random;
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.dimdev.dimdoors.DimensionalDoorsInitializer;
import org.dimdev.dimdoors.ModConfig;
import org.dimdev.dimdoors.api.rift.target.EntityTarget;
import org.dimdev.dimdoors.api.util.Location;
import org.dimdev.dimdoors.api.util.TeleportUtil;
import org.dimdev.dimdoors.block.ModBlocks;
import org.dimdev.dimdoors.block.UnravelUtil;
import org.dimdev.dimdoors.block.entity.RiftBlockEntity;
import org.dimdev.dimdoors.world.ModDimensions;
import org.dimdev.dimdoors.world.level.registry.DimensionalRegistry;
import org.dimdev.dimdoors.world.pocket.VirtualLocation;
import net.minecraft.entity.Entity;
import net.minecraft.nbt.NbtCompound;
import net.minecraft.server.world.ServerWorld;
import net.minecraft.text.TranslatableText;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.EulerAngle;
import net.minecraft.util.math.Vec3d;
import java.util.UUID;
import static org.dimdev.dimdoors.api.util.EntityUtils.chat;
@ -52,11 +43,11 @@ public class EscapeTarget extends VirtualTarget implements EntityTarget { // TOD
@Override
public boolean receiveEntity(Entity entity, Vec3d relativePos, EulerAngle relativeAngle, Vec3d relativeVelocity) {
if (!ModDimensions.isPocketDimension(entity.world) && !(ModDimensions.isLimboDimension(entity.world))) {
chat(entity, new TranslatableText("rifts.destinations.escape.not_in_pocket_dim"));
chat(entity, MutableText.of(new TranslatableTextContent("rifts.destinations.escape.not_in_pocket_dim")));
return false;
}
if (ModDimensions.isLimboDimension(entity.world) && !this.canEscapeLimbo) {
chat(entity, new TranslatableText("rifts.destinations.escape.cannot_escape_limbo"));
chat(entity, MutableText.of(new TranslatableTextContent("rifts.destinations.escape.cannot_escape_limbo")));
return false;
}
if (entity.getEntityWorld().isClient)
@ -84,9 +75,9 @@ public class EscapeTarget extends VirtualTarget implements EntityTarget { // TOD
TeleportUtil.teleport(entity, destLoc.getWorld(), destLoc.getBlockPos(), relativeAngle, relativeVelocity);
} else {
if (destLoc == null) {
chat(entity, new TranslatableText("rifts.destinations.escape.did_not_use_rift"));
chat(entity, MutableText.of(new TranslatableTextContent("rifts.destinations.escape.did_not_use_rift"));
} else {
chat(entity, new TranslatableText("rifts.destinations.escape.rift_has_closed"));
chat(entity, MutableText.of(new TranslatableTextContent("rifts.destinations.escape.rift_has_closed"));
}
if (ModDimensions.LIMBO_DIMENSION != null) {
TeleportUtil.teleport(entity, ModDimensions.LIMBO_DIMENSION, new BlockPos(this.location.getX(), this.location.getY(), this.location.getZ()), relativeAngle, relativeVelocity);
@ -99,7 +90,7 @@ public class EscapeTarget extends VirtualTarget implements EntityTarget { // TOD
Location location = destLoc; //VirtualLocation.fromLocation(new Location((ServerWorld) entity.world, destLoc.pos)).projectToWorld(false); //TODO Fix world projection.
entity = TeleportUtil.teleport(entity, location.getWorld(), location.getBlockPos(), relativeAngle, relativeVelocity);
entity.fallDistance = 0;
Random random = new Random();
Random random = Random.create();
BlockPos.iterateOutwards(location.pos.add(0, -3, 0), 3, 2, 3).forEach((pos1 -> {
if (random.nextFloat() < (1 / ((float) location.pos.getSquaredDistance(pos1))) * DimensionalDoorsInitializer.getConfig().getLimboConfig().limboBlocksCorruptingOverworldAmount) {
Block block = location.getWorld().getBlockState(pos1).getBlock();
@ -112,9 +103,9 @@ public class EscapeTarget extends VirtualTarget implements EntityTarget { // TOD
}));
} else {
if (destLoc == null) {
chat(entity, new TranslatableText("rifts.destinations.escape.did_not_use_rift"));
chat(entity, MutableText.of(new TranslatableTextContent("rifts.destinations.escape.did_not_use_rift")));
} else {
chat(entity, new TranslatableText("rifts.destinations.escape.rift_has_closed"));
chat(entity, MutableText.of(new TranslatableTextContent("rifts.destinations.escape.rift_has_closed")));
}
if (ModDimensions.LIMBO_DIMENSION != null) {
entity = TeleportUtil.teleport(entity, ModDimensions.LIMBO_DIMENSION, new BlockPos(this.location.getX(), this.location.getY(), this.location.getZ()), relativeAngle, relativeVelocity);

View file

@ -1,15 +1,14 @@
package org.dimdev.dimdoors.rift.targets;
import net.minecraft.entity.Entity;
import net.minecraft.text.MutableText;
import net.minecraft.text.TranslatableTextContent;
import net.minecraft.util.math.EulerAngle;
import net.minecraft.util.math.Vec3d;
import org.dimdev.dimdoors.api.rift.target.EntityTarget;
import org.dimdev.dimdoors.api.rift.target.Target;
import org.dimdev.dimdoors.api.util.EntityUtils;
import net.minecraft.entity.Entity;
import net.minecraft.text.TranslatableText;
public class MessageTarget implements EntityTarget {
private final Target forwardTo;
private final String message;
@ -27,7 +26,7 @@ public class MessageTarget implements EntityTarget {
@Override
public boolean receiveEntity(Entity entity, Vec3d relativePos, EulerAngle relativeAngle, Vec3d relativeVelocity) {
EntityUtils.chat(entity, new TranslatableText(this.message, this.messageParams));
EntityUtils.chat(entity, MutableText.of(new TranslatableTextContent(this.message, this.messageParams)));
if (this.forwardTo != null) {
this.forwardTo.as(Targets.ENTITY).receiveEntity(entity, relativePos, relativeAngle, relativeVelocity);

View file

@ -1,15 +1,14 @@
package org.dimdev.dimdoors.rift.targets;
import net.minecraft.util.math.EulerAngle;
import net.minecraft.util.math.Vec3d;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.dimdev.dimdoors.api.rift.target.EntityTarget;
import org.dimdev.dimdoors.api.util.EntityUtils;
import net.minecraft.entity.Entity;
import net.minecraft.nbt.NbtCompound;
import net.minecraft.text.TranslatableText;
import net.minecraft.text.MutableText;
import net.minecraft.text.TranslatableTextContent;
import net.minecraft.util.math.EulerAngle;
import net.minecraft.util.math.Vec3d;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.dimdev.dimdoors.api.rift.target.EntityTarget;
import org.dimdev.dimdoors.api.util.EntityUtils;
public class PocketEntranceMarker extends VirtualTarget implements EntityTarget {
private final float weight;
@ -32,7 +31,7 @@ public class PocketEntranceMarker extends VirtualTarget implements EntityTarget
@Override
public boolean receiveEntity(Entity entity, Vec3d relativePos, EulerAngle relativeAngle, Vec3d relativeVelocity) {
EntityUtils.chat(entity, new TranslatableText("The entrance of this dungeon has not been converted. If this is a normally generated pocket, please report this bug."));
EntityUtils.chat(entity, MutableText.of(new TranslatableTextContent("The entrance of this dungeon has not been converted. If this is a normally generated pocket, please report this bug.")));
return false;
}

View file

@ -1,15 +1,14 @@
package org.dimdev.dimdoors.rift.targets;
import com.mojang.serialization.Codec;
import net.minecraft.entity.Entity;
import net.minecraft.text.MutableText;
import net.minecraft.text.TranslatableTextContent;
import net.minecraft.util.math.EulerAngle;
import net.minecraft.util.math.Vec3d;
import org.dimdev.dimdoors.api.rift.target.EntityTarget;
import org.dimdev.dimdoors.api.util.EntityUtils;
import net.minecraft.entity.Entity;
import net.minecraft.text.TranslatableText;
public class PocketExitMarker extends VirtualTarget implements EntityTarget {
public static final Codec<PocketExitMarker> CODEC = Codec.unit(PocketExitMarker::new);
@ -18,7 +17,7 @@ public class PocketExitMarker extends VirtualTarget implements EntityTarget {
@Override
public boolean receiveEntity(Entity entity, Vec3d relativePos, EulerAngle relativeAngle, Vec3d relativeVelocity) {
EntityUtils.chat(entity, new TranslatableText("The exit of this dungeon has not been linked. If this is a normally generated pocket, please report this bug."));
EntityUtils.chat(entity, MutableText.of(new TranslatableTextContent("The exit of this dungeon has not been linked. If this is a normally generated pocket, please report this bug.")));
return false;
}

View file

@ -1,22 +1,21 @@
package org.dimdev.dimdoors.rift.targets;
import java.util.UUID;
import net.minecraft.entity.Entity;
import net.minecraft.text.MutableText;
import net.minecraft.text.TranslatableTextContent;
import net.minecraft.util.math.EulerAngle;
import net.minecraft.util.math.Vec3d;
import org.dimdev.dimdoors.api.rift.target.EntityTarget;
import org.dimdev.dimdoors.block.entity.RiftBlockEntity;
import org.dimdev.dimdoors.api.util.EntityUtils;
import org.dimdev.dimdoors.api.util.Location;
import org.dimdev.dimdoors.api.util.RGBA;
import org.dimdev.dimdoors.block.entity.RiftBlockEntity;
import org.dimdev.dimdoors.world.ModDimensions;
import org.dimdev.dimdoors.world.level.registry.DimensionalRegistry;
import org.dimdev.dimdoors.world.pocket.type.Pocket;
import org.dimdev.dimdoors.world.pocket.PocketDirectory;
import org.dimdev.dimdoors.world.pocket.type.Pocket;
import net.minecraft.entity.Entity;
import net.minecraft.text.TranslatableText;
import java.util.UUID;
public class PrivatePocketExitTarget extends VirtualTarget implements EntityTarget {
public static final RGBA COLOR = new RGBA(0, 1, 0, 1);
@ -37,9 +36,9 @@ public class PrivatePocketExitTarget extends VirtualTarget implements EntityTarg
}
if (destLoc == null || !(destLoc.getBlockEntity() instanceof RiftBlockEntity)) {
if (destLoc == null) {
EntityUtils.chat(entity, new TranslatableText("rifts.destinations.private_pocket_exit.did_not_use_rift"));
EntityUtils.chat(entity, MutableText.of(new TranslatableTextContent("rifts.destinations.private_pocket_exit.did_not_use_rift")));
} else {
EntityUtils.chat(entity, new TranslatableText("rifts.destinations.private_pocket_exit.rift_has_closed"));
EntityUtils.chat(entity, MutableText.of(new TranslatableTextContent("rifts.destinations.private_pocket_exit.rift_has_closed")));
}
return false;
} else {

View file

@ -1,15 +1,11 @@
package org.dimdev.dimdoors.rift.targets;
import org.dimdev.dimdoors.api.rift.target.DefaultTargets;
import org.dimdev.dimdoors.api.rift.target.EntityTarget;
import org.dimdev.dimdoors.api.rift.target.FluidTarget;
import org.dimdev.dimdoors.api.rift.target.ItemTarget;
import org.dimdev.dimdoors.api.rift.target.RedstoneTarget;
import org.dimdev.dimdoors.api.util.EntityUtils;
import net.minecraft.fluid.Fluid;
import net.minecraft.text.TranslatableText;
import net.minecraft.text.MutableText;
import net.minecraft.text.TranslatableTextContent;
import net.minecraft.util.math.Direction;
import org.dimdev.dimdoors.api.rift.target.*;
import org.dimdev.dimdoors.api.util.EntityUtils;
// A list of the default targets provided by dimcore. Add your own in ModTargets
public final class Targets {
@ -20,7 +16,7 @@ public final class Targets {
public static void registerDefaultTargets() {
DefaultTargets.registerDefaultTarget(ENTITY, (entity, relativePos, relativeRotation, relativeVelocity) -> {
EntityUtils.chat(entity, new TranslatableText("rifts.unlinked2"));
EntityUtils.chat(entity, MutableText.of(new TranslatableTextContent("rifts.unlinked2")));
return false;
});
DefaultTargets.registerDefaultTarget(ITEM, stack -> false);

View file

@ -1,16 +1,15 @@
package org.dimdev.dimdoors.rift.targets;
import java.util.Collections;
import java.util.Random;
import org.dimdev.dimdoors.api.rift.target.EntityTarget;
import net.minecraft.entity.Entity;
import net.minecraft.util.math.EulerAngle;
import net.minecraft.util.math.Vec3d;
import net.minecraft.util.math.random.Random;
import org.dimdev.dimdoors.api.rift.target.EntityTarget;
import java.util.Collections;
public class UnstableTarget extends VirtualTarget implements EntityTarget {
private static final Random RANDOM = new Random();
private static final Random RANDOM = Random.create();
@Override
public VirtualTargetType<? extends VirtualTarget> getType() {

View file

@ -55,8 +55,9 @@ public final class ModBiomes {
}
static {
Biome.Builder voidBiomeBuilder = new Biome.Builder()
.category(Biome.Category.NONE)
// .category(Biome.Category.NONE) //TODO: Find out analog or if needed?
.downfall(0)
.generationSettings(new GenerationSettings.Builder().build())
.precipitation(Biome.Precipitation.NONE)
@ -71,7 +72,7 @@ public final class ModBiomes {
PUBLIC_BLACK_VOID_BIOME = voidBiomeBuilder.effects(createEffect(false)).build();
DUNGEON_DANGEROUS_BLACK_VOID_BIOME = voidBiomeBuilder.effects(createEffect(false)).build();
LIMBO_BIOME = new Biome.Builder()
.category(Biome.Category.NONE)
// .category(Biome.Category.NONE) TODO: FInd if needed
.downfall(0.0f)
.effects(new BiomeEffects.Builder()
.fogColor(0x404040)

View file

@ -1,33 +1,31 @@
package org.dimdev.dimdoors.world.decay;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors;
import net.fabricmc.fabric.api.resource.SimpleSynchronousResourceReloadListener;
import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
import net.minecraft.nbt.NbtCompound;
import net.minecraft.nbt.NbtElement;
import net.minecraft.predicate.entity.EntityPredicates;
import net.minecraft.resource.ResourceManager;
import net.minecraft.server.world.ServerWorld;
import net.minecraft.sound.SoundCategory;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Direction;
import net.minecraft.util.math.random.Random;
import net.minecraft.util.registry.RegistryKey;
import net.minecraft.world.World;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.dimdev.dimdoors.DimensionalDoorsInitializer;
import org.dimdev.dimdoors.api.util.ResourceUtil;
import org.dimdev.dimdoors.network.ExtendedServerPlayNetworkHandler;
import org.dimdev.dimdoors.network.packet.s2c.RenderBreakBlockS2CPacket;
import org.dimdev.dimdoors.sound.ModSoundEvents;
import org.dimdev.dimdoors.api.util.ResourceUtil;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors;
/**
* Provides methods for applying Limbo decay. Limbo decay refers to the effect that most blocks placed in Limbo
@ -37,7 +35,7 @@ public final class LimboDecay {
private static final Logger LOGGER = LogManager.getLogger();
private static final Map<RegistryKey<World>, Set<DecayTask>> DECAY_QUEUE = new HashMap<>();
private static final Random RANDOM = new Random();
private static final Random RANDOM = Random.create();
/**
* Checks the blocks orthogonally around a given location (presumably the location of an Unraveled Fabric block)

View file

@ -1,39 +1,28 @@
package org.dimdev.dimdoors.world.feature;
import net.fabricmc.fabric.api.biome.v1.TheEndBiomes;
import net.fabricmc.fabric.api.biome.v1.BiomeModifications;
import net.fabricmc.fabric.api.tag.convention.v1.ConventionalBiomeTags;
import net.minecraft.block.Block;
import net.minecraft.fluid.Fluids;
import net.minecraft.structure.rule.BlockMatchRuleTest;
import net.minecraft.util.Identifier;
import net.minecraft.util.registry.Registry;
import net.minecraft.util.registry.RegistryEntry;
import net.minecraft.util.registry.RegistryEntryList;
import net.minecraft.world.biome.BiomeKeys;
import net.minecraft.world.gen.GenerationStep;
import net.minecraft.world.gen.YOffset;
import net.minecraft.world.gen.feature.*;
import net.minecraft.world.gen.placementmodifier.*;
import org.dimdev.dimdoors.DimensionalDoorsInitializer;
import org.dimdev.dimdoors.block.ModBlocks;
import org.dimdev.dimdoors.world.feature.gateway.LimboGatewayFeature;
import org.dimdev.dimdoors.world.feature.gateway.schematic.*;
import net.minecraft.fluid.Fluids;
import net.minecraft.structure.rule.BlockMatchRuleTest;
import net.minecraft.util.Identifier;
import net.minecraft.util.registry.Registry;
import net.minecraft.world.biome.Biome;
import net.minecraft.world.biome.Biome.Category;
import net.minecraft.world.gen.GenerationStep;
import net.minecraft.world.gen.YOffset;
import net.minecraft.world.gen.feature.ConfiguredFeature;
import net.minecraft.world.gen.feature.ConfiguredFeatures;
import net.minecraft.world.gen.feature.DefaultFeatureConfig;
import net.minecraft.world.gen.feature.Feature;
import net.minecraft.world.gen.feature.OreFeatureConfig;
import net.minecraft.world.gen.feature.PlacedFeature;
import net.minecraft.world.gen.feature.PlacedFeatures;
import net.minecraft.world.gen.feature.SpringFeatureConfig;
import net.fabricmc.fabric.api.biome.v1.BiomeModifications;
import java.util.List;
import static net.minecraft.world.gen.feature.Feature.*;
import static net.minecraft.world.gen.feature.OrePlacedFeatures.modifiersWithCount;
import static net.minecraft.world.gen.feature.Feature.ORE;
import static net.minecraft.world.gen.feature.Feature.SPRING_FEATURE;
public final class ModFeatures {
public static final SchematicGateway SANDSTONE_PILLARS_GATEWAY = new SandstonePillarsGateway();
@ -74,20 +63,14 @@ public final class ModFeatures {
public static final RegistryEntry<PlacedFeature> ETERNAL_FLUID_SPRING_PLACED_FEATURE = PlacedFeatures.register("dimdoors:eternal_fluid_spring", Configured.ETERNAL_FLUID_SPRING_CONFIGURED_FEATURE, List.of(CountPlacementModifier.of(25), SquarePlacementModifier.of(), HeightRangePlacementModifier.uniform(YOffset.getBottom(), YOffset.fixed(192)), BiomePlacementModifier.of()));
public static void init() {
BiomeModifications.addFeature(ctx -> {
Biome biome = ctx.getBiome();
return biome.getCategory() != Category.NONE &&
biome.getCategory() != Category.THEEND &&
biome.getCategory() != Category.DESERT &&
biome.getCategory() != Category.NETHER &&
biome.getCategory() != Category.OCEAN &&
!(ctx.getBiomeKey().equals(BiomeKeys.END_HIGHLANDS) || ctx.getBiomeKey().equals(BiomeKeys.END_MIDLANDS) || ctx.getBiomeKey().equals(BiomeKeys.SMALL_END_ISLANDS));
},
BiomeModifications.addFeature(ctx -> ctx.hasTag(ConventionalBiomeTags.IN_OVERWORLD) &&
!ctx.hasTag(ConventionalBiomeTags.DESERT) &&
!ctx.hasTag(ConventionalBiomeTags.OCEAN),
GenerationStep.Feature.SURFACE_STRUCTURES,
TWO_PILLARS_PLACED_FEATURE.getKey().get()
);
BiomeModifications.addFeature(
ctx -> ctx.getBiome().getCategory() == Category.DESERT,
ctx -> ctx.hasTag(ConventionalBiomeTags.DESERT),
GenerationStep.Feature.SURFACE_STRUCTURES,
SANDSTONE_PILLARS_PLACED_FEATURE.getKey().get()
);

View file

@ -1,16 +1,16 @@
package org.dimdev.dimdoors.world.level.registry;
import java.util.function.BiFunction;
import com.mojang.datafixers.DSL;
import com.mojang.datafixers.DataFixer;
import com.mojang.datafixers.DataFixerBuilder;
import com.mojang.datafixers.schemas.Schema;
import com.mojang.serialization.Dynamic;
import org.dimdev.dimdoors.world.level.registry.schema.Schema1;
import net.minecraft.nbt.NbtCompound;
import net.minecraft.nbt.NbtOps;
import net.minecraft.util.Util;
import org.dimdev.dimdoors.world.level.registry.schema.Schema1;
import java.util.function.BiFunction;
public class RiftSchemas {
public static final DSL.TypeReference RIFT_DATA_TYPE_REF = () -> "rift_data";
@ -19,7 +19,7 @@ public class RiftSchemas {
public static final DataFixer DATA_FIXER = Util.make(new DataFixerBuilder(RIFT_DATA_VERSION), builder -> {
builder.addSchema(1, Schema1::new);
// TODO: add schemas if schema changes
}).build(Runnable::run);
}).buildUnoptimized();
public static NbtCompound update(int oldVersion, NbtCompound original) {
return (NbtCompound) DATA_FIXER.update(RIFT_DATA_TYPE_REF, new Dynamic<>( NbtOps.INSTANCE, original), oldVersion, RIFT_DATA_VERSION).getValue();

View file

@ -1,41 +1,35 @@
package org.dimdev.dimdoors.world.pocket;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.Executor;
import com.mojang.datafixers.kinds.Applicative;
import com.mojang.serialization.Codec;
import com.mojang.serialization.codecs.RecordCodecBuilder;
import net.minecraft.block.BlockState;
import net.minecraft.structure.StructureManager;
import net.minecraft.structure.StructureSet;
import net.minecraft.util.dynamic.RegistryOps;
import net.minecraft.structure.StructureTemplateManager;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.registry.DynamicRegistryManager;
import net.minecraft.util.registry.Registry;
import net.minecraft.world.BlockView;
import net.minecraft.world.ChunkRegion;
import net.minecraft.world.HeightLimitView;
import net.minecraft.world.Heightmap;
import net.minecraft.world.StructureWorldAccess;
import net.minecraft.world.WorldAccess;
import net.minecraft.world.biome.source.BiomeAccess;
import net.minecraft.world.biome.source.BiomeSource;
import net.minecraft.world.biome.source.util.MultiNoiseUtil;
import net.minecraft.world.chunk.Chunk;
import net.minecraft.world.gen.GenerationStep;
import net.minecraft.world.gen.StructureAccessor;
import net.minecraft.world.gen.chunk.Blender;
import net.minecraft.world.gen.chunk.ChunkGenerator;
import net.minecraft.world.gen.chunk.VerticalBlockSample;
import net.minecraft.world.gen.noise.NoiseConfig;
import java.util.List;
import java.util.Optional;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.Executor;
public class BlankChunkGenerator extends ChunkGenerator {
public static final Codec<BlankChunkGenerator> CODEC = RecordCodecBuilder.create((instance) ->
BlankChunkGenerator.method_41042(instance).and(
ChunkGenerator.createStructureSetRegistryGetter(instance).and(
BiomeSource.CODEC.fieldOf("biome_source")
.forGetter((generator) -> generator.biomeSource)
).apply(instance, instance.stable(BlankChunkGenerator::of))
@ -54,24 +48,22 @@ public class BlankChunkGenerator extends ChunkGenerator {
return CODEC;
}
// @Override
// public ChunkGenerator withSeed(long seed) {
// return this;
// }
//
// @Override
// public MultiNoiseUtil.MultiNoiseSampler getMultiNoiseSampler() {
// return null;
// }
@Override
public ChunkGenerator withSeed(long seed) {
return this;
public void carve(ChunkRegion chunkRegion, long seed, NoiseConfig noiseConfig, BiomeAccess world, StructureAccessor structureAccessor, Chunk chunk, GenerationStep.Carver carverStep) {
}
@Override
public MultiNoiseUtil.MultiNoiseSampler getMultiNoiseSampler() {
return null;
}
@Override
public void carve(ChunkRegion chunkRegion, long seed, BiomeAccess biomeAccess, StructureAccessor structureAccessor, Chunk chunk, GenerationStep.Carver generationStep) {
}
@Override
public void buildSurface(ChunkRegion region, StructureAccessor structures, Chunk chunk) {
public void buildSurface(ChunkRegion region, StructureAccessor structures, NoiseConfig noiseConfig, Chunk chunk) {
}
@Override
@ -85,7 +77,7 @@ public class BlankChunkGenerator extends ChunkGenerator {
}
@Override
public void setStructureStarts(DynamicRegistryManager dynamicRegistryManager, StructureAccessor structureAccessor, Chunk chunk, StructureManager structureManager, long worldSeed) {
public void setStructureStarts(DynamicRegistryManager registryManager, NoiseConfig noiseConfig, StructureAccessor structureAccessor, Chunk chunk, StructureTemplateManager structureTemplateManager, long seed) {
}
@Override
@ -93,7 +85,7 @@ public class BlankChunkGenerator extends ChunkGenerator {
}
@Override
public CompletableFuture<Chunk> populateNoise(Executor executor, Blender blender, StructureAccessor structureAccessor, Chunk chunk) {
public CompletableFuture<Chunk> populateNoise(Executor executor, Blender blender, NoiseConfig noiseConfig, StructureAccessor structureAccessor, Chunk chunk) {
return CompletableFuture.supplyAsync(() -> chunk);
}
@ -108,17 +100,16 @@ public class BlankChunkGenerator extends ChunkGenerator {
}
@Override
public int getHeight(int x, int z, Heightmap.Type heightmap, HeightLimitView world) {
public int getHeight(int x, int z, Heightmap.Type heightmap, HeightLimitView world, NoiseConfig noiseConfig) {
return 0;
}
@Override
public VerticalBlockSample getColumnSample(int x, int z, HeightLimitView world) {
public VerticalBlockSample getColumnSample(int x, int z, HeightLimitView world, NoiseConfig noiseConfig) {
return new VerticalBlockSample(0, new BlockState[0]);
}
@Override
public void getDebugHudText(List<String> text, BlockPos pos) {
public void getDebugHudText(List<String> text, NoiseConfig noiseConfig, BlockPos pos) {
}
}

View file

@ -4,15 +4,16 @@ import net.minecraft.block.BlockState;
import net.minecraft.entity.Entity;
import net.minecraft.nbt.NbtCompound;
import net.minecraft.server.world.ServerWorld;
import net.minecraft.text.TranslatableText;
import net.minecraft.text.MutableText;
import net.minecraft.text.TranslatableTextContent;
import net.minecraft.util.DyeColor;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.BlockPos;
import org.dimdev.dimdoors.DimensionalDoorsInitializer;
import org.dimdev.dimdoors.api.util.EntityUtils;
import org.dimdev.dimdoors.block.AncientFabricBlock;
import org.dimdev.dimdoors.block.FabricBlock;
import org.dimdev.dimdoors.block.ModBlocks;
import org.dimdev.dimdoors.api.util.EntityUtils;
import org.dimdev.dimdoors.world.pocket.type.Pocket;
import org.dimdev.dimdoors.world.pocket.type.PocketColor;
import org.dimdev.dimdoors.world.pocket.type.PrivatePocket;
@ -53,7 +54,7 @@ public class DyeableAddon implements PocketAddon {
int maxDye = amountOfDyeRequiredToColor(pocket);
if (this.dyeColor == color) {
EntityUtils.chat(entity, new TranslatableText("dimdoors.pockets.dyeAlreadyAbsorbed"));
EntityUtils.chat(entity, MutableText.of(new TranslatableTextContent("dimdoors.pockets.dyeAlreadyAbsorbed")));
return false;
}
@ -63,15 +64,15 @@ public class DyeableAddon implements PocketAddon {
this.dyeColor = color;
this.nextDyeColor = PocketColor.NONE;
this.count = 0;
EntityUtils.chat(entity, new TranslatableText("dimdoors.pocket.pocketHasBeenDyed", dyeColor));
EntityUtils.chat(entity, MutableText.of(new TranslatableTextContent("dimdoors.pocket.pocketHasBeenDyed", dyeColor)));
} else {
this.count++;
EntityUtils.chat(entity, new TranslatableText("dimdoors.pocket.remainingNeededDyes", this.count, maxDye, color));
EntityUtils.chat(entity, MutableText.of(new TranslatableTextContent("dimdoors.pocket.remainingNeededDyes", this.count, maxDye, color)));
}
} else {
this.nextDyeColor = color;
this.count = 1;
EntityUtils.chat(entity, new TranslatableText("dimdoors.pocket.remainingNeededDyes", this.count, maxDye, color));
EntityUtils.chat(entity, MutableText.of(new TranslatableTextContent("dimdoors.pocket.remainingNeededDyes", this.count, maxDye, color)));
}
return true;
}

View file

@ -20,10 +20,12 @@ accessible method net/minecraft/server/world/ThreadedAnvilChunkStorage entryIter
accessible method net/minecraft/client/render/WorldRenderer renderEndSky (Lnet/minecraft/client/util/math/MatrixStack;)V
accessible method net/minecraft/world/biome/Biome getCategory ()Lnet/minecraft/world/biome/Biome$Category;
#accessible method net/minecraft/world/biome/Biome getCategory ()Lnet/minecraft/world/biome/Biome$Category;
accessible field net/minecraft/block/Block LOGGER Lorg/slf4j/Logger;
accessible method net/minecraft/world/gen/feature/OrePlacedFeatures modifiersWithCount (ILnet/minecraft/world/gen/placementmodifier/PlacementModifier;)Ljava/util/List;
accessible class net/minecraft/data/client/BlockStateModelGenerator$BlockTexturePool
accessible method net/minecraft/command/argument/BlockArgumentParser parse ()V

View file

@ -1,25 +1,19 @@
package org.dimdev.dimdoors.util.schematic;
import java.util.Iterator;
import java.util.Objects;
import com.mojang.brigadier.ImmutableStringReader;
import com.mojang.brigadier.StringReader;
import com.mojang.brigadier.exceptions.CommandSyntaxException;
import com.mojang.serialization.Codec;
import com.mojang.serialization.DataResult;
import com.mojang.serialization.codecs.UnboundedMapCodec;
import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
import net.minecraft.command.argument.BlockArgumentParser;
import net.minecraft.command.argument.BlockStateArgument;
import net.minecraft.command.argument.BlockStateArgumentType;
import net.minecraft.state.property.Property;
import net.minecraft.util.Identifier;
import net.minecraft.util.StringIdentifiable;
import net.minecraft.util.registry.Registry;
import java.util.Iterator;
import java.util.Objects;
public class SchematicBlockPalette {
public static final UnboundedMapCodec<BlockState, Integer> CODEC = Codec.unboundedMap(Entry.CODEC, Codec.INT);
@ -32,13 +26,15 @@ public class SchematicBlockPalette {
static DataResult<BlockState> to(String string) {
StringReader reader = new StringReader(string);
BlockArgumentParser parser = new BlockArgumentParser(reader, true);
BlockArgumentParser.BlockResult parser = null;
try {
parser.parse(true);
BlockArgumentParser.block(Registry.BLOCK, reader, true);
} catch (CommandSyntaxException e) {
return DataResult.error(e.getMessage());
}
return DataResult.success(parser.getBlockState());
return DataResult.success(parser.blockState());
// if (!string.contains("[") && !string.contains("]")) {
// BlockState state = Registry.BLOCK.get(new Identifier(string)).getDefaultState();
// return DataResult.success(state);