Initial 1.20.1
This commit is contained in:
parent
f581f48126
commit
aef627af6b
46 changed files with 176 additions and 193 deletions
|
@ -22,7 +22,10 @@ subprojects {
|
|||
mavenCentral()
|
||||
maven("https://maven.shedaniel.me/")
|
||||
maven("https://jitpack.io")
|
||||
maven("https://maven.bai.lol")
|
||||
maven("https://maven.bai.lol").content {
|
||||
includeGroup("lol.bai")
|
||||
includeGroup("mcp.mobius.waila")
|
||||
}
|
||||
maven("https://cursemaven.com").content { includeGroup("curse.maven") }
|
||||
maven("https://maven.enginehub.org/repo/")
|
||||
maven("https://maven.parchmentmc.org")
|
||||
|
|
|
@ -11,7 +11,7 @@ dependencies {
|
|||
modImplementation("net.fabricmc:fabric-loader:${project.properties["fabric_loader_version"]}")
|
||||
// Remove the next line if you don't want to depend on the API
|
||||
modApi("dev.architectury:architectury:${project.properties["architectury_version"]}")
|
||||
modApi("me.shedaniel.cloth:cloth-config:9.0.94")
|
||||
modApi("me.shedaniel.cloth:cloth-config:${rootProject.properties["cloth_config"]}")
|
||||
modCompileOnlyApi("mcp.mobius.waila:wthit-api:fabric-${project.properties["wthitVersion"]}")
|
||||
|
||||
modApi("com.flowpowered:flow-math:1.0.3")
|
||||
|
|
|
@ -69,7 +69,7 @@ public final class TeleportUtil {
|
|||
((ServerLevel) world).getChunkSource().addRegionTicket(TicketType.POST_TELEPORT, chunkPos, 1, entity.getId());
|
||||
entity.stopRiding();
|
||||
|
||||
if (entity.level.dimension().equals(world.dimension())) {
|
||||
if (entity.level().dimension().equals(world.dimension())) {
|
||||
serverPlayer.connection.teleport(pos.x(), pos.y(), pos.z(), yaw, pitch);
|
||||
} else {
|
||||
entity = teleport(entity, (ServerLevel) world, new PortalInfo(pos, velocity, yaw, pitch));
|
||||
|
@ -82,7 +82,7 @@ public final class TeleportUtil {
|
|||
serverPlayer.awardStat(ModStats.TIMES_BEEN_TO_DUNGEON);
|
||||
}
|
||||
} else {
|
||||
if (entity.level.dimension().equals(world.dimension())) {
|
||||
if (entity.level().dimension().equals(world.dimension())) {
|
||||
entity.moveTo(pos.x(), pos.y(), pos.z(), yaw, pitch);
|
||||
} else {
|
||||
entity = teleport(entity, (ServerLevel) world, new PortalInfo(pos, velocity, yaw, pitch));
|
||||
|
@ -122,7 +122,7 @@ public final class TeleportUtil {
|
|||
);
|
||||
}
|
||||
public static <E extends Entity> E teleportUntargeted(E entity, Level world) {
|
||||
double actualScale = entity.level.dimensionType().coordinateScale() / world.dimensionType().coordinateScale();
|
||||
double actualScale = entity.level().dimensionType().coordinateScale() / world.dimensionType().coordinateScale();
|
||||
return teleport(
|
||||
entity,
|
||||
world,
|
||||
|
@ -132,7 +132,7 @@ public final class TeleportUtil {
|
|||
}
|
||||
|
||||
public static <E extends Entity> E teleportUntargeted(E entity, Level world, double y) {
|
||||
double actualScale = entity.level.dimensionType().coordinateScale() / world.dimensionType().coordinateScale();
|
||||
double actualScale = entity.level().dimensionType().coordinateScale() / world.dimensionType().coordinateScale();
|
||||
return teleport(
|
||||
entity,
|
||||
world,
|
||||
|
|
|
@ -4,10 +4,9 @@ import net.minecraft.world.item.DyeColor;
|
|||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||
import net.minecraft.world.level.material.Material;
|
||||
|
||||
public class AncientFabricBlock extends Block {
|
||||
public AncientFabricBlock(DyeColor color) {
|
||||
super(BlockBehaviour.Properties.of(Material.STONE, color).strength(-1.0F, 3600000.0F).dropsLike(Blocks.AIR).lightLevel(state -> 15));
|
||||
super(BlockBehaviour.Properties.copy(Blocks.STONE).mapColor(color).strength(-1.0F, 3600000.0F).dropsLike(Blocks.AIR).lightLevel(state -> 15));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,14 +7,15 @@ import net.minecraft.world.item.context.BlockPlaceContext;
|
|||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.EntityBlock;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.material.Material;
|
||||
import org.dimdev.dimdoors.DimensionalDoors;
|
||||
|
||||
import static net.minecraft.world.level.block.Blocks.STONE;
|
||||
|
||||
public class FabricBlock extends Block {
|
||||
public static final TagKey<Block> BLOCK_TAG = TagKey.create(Registries.BLOCK, DimensionalDoors.id("fabric"));
|
||||
|
||||
FabricBlock(DyeColor color) {
|
||||
super(Properties.of(Material.STONE, color).strength(1.2F).lightLevel(state -> 15));
|
||||
super(Properties.copy(STONE).mapColor(color).strength(1.2F).lightLevel(state -> 15));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -15,10 +15,7 @@ import net.minecraft.world.level.block.*;
|
|||
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||
import net.minecraft.world.level.block.state.properties.BlockSetType;
|
||||
import net.minecraft.world.level.block.state.properties.WoodType;
|
||||
import net.minecraft.world.level.material.Material;
|
||||
import net.minecraft.world.level.material.MaterialColor;
|
||||
import org.dimdev.dimdoors.DimensionalDoors;
|
||||
import org.dimdev.dimdoors.block.door.DimensionalDoorBlock;
|
||||
import org.dimdev.dimdoors.block.door.DimensionalTrapdoorBlock;
|
||||
import org.dimdev.dimdoors.fluid.ModFluids;
|
||||
|
||||
|
@ -26,7 +23,13 @@ import java.util.HashMap;
|
|||
import java.util.Map;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import static net.minecraft.world.level.block.Blocks.CLAY;
|
||||
import static net.minecraft.world.level.block.Blocks.SAND;
|
||||
import static net.minecraft.world.level.block.Blocks.STONE;
|
||||
import static net.minecraft.world.level.block.Blocks.WATER;
|
||||
import static net.minecraft.world.level.block.Blocks.*;
|
||||
import static net.minecraft.world.level.block.state.BlockBehaviour.Properties.copy;
|
||||
import static net.minecraft.world.level.material.MapColor.*;
|
||||
import static org.dimdev.dimdoors.item.ModItems.DIMENSIONAL_DOORS;
|
||||
|
||||
public final class ModBlocks {
|
||||
|
@ -37,19 +40,19 @@ public final class ModBlocks {
|
|||
|
||||
private static final Map<DyeColor, RegistrySupplier<Block>> ANCIENT_FABRIC_BLOCKS = new HashMap<DyeColor, RegistrySupplier<Block>>();
|
||||
|
||||
public static final RegistrySupplier<Block> STONE_PLAYER = registerWithoutTab("stone_player", () -> new Block(of(Material.STONE).strength(0.5F).noOcclusion()));
|
||||
public static final RegistrySupplier<Block> STONE_PLAYER = registerWithoutTab("stone_player", () -> new Block(copy(STONE).strength(0.5F).noOcclusion()));
|
||||
|
||||
public static final RegistrySupplier<Block> GOLD_DOOR = register("gold_door", () -> new DoorBlock(of(Material.METAL, MaterialColor.GOLD).strength(5.0F).requiresCorrectToolForDrops().noCollission(), BlockSetType.IRON));
|
||||
public static final RegistrySupplier<Block> GOLD_DOOR = register("gold_door", () -> new DoorBlock(copy(IRON_BLOCK).mapColor(GOLD).strength(5.0F).requiresCorrectToolForDrops().noCollission(), BlockSetType.IRON));
|
||||
|
||||
public static final RegistrySupplier<Block> STONE_DOOR = register("stone_door", () -> new DoorBlock(of(Material.METAL, MaterialColor.WOOD).strength(5.0F).requiresCorrectToolForDrops().noOcclusion(), BlockSetType.IRON));
|
||||
public static final RegistrySupplier<Block> STONE_DOOR = register("stone_door", () -> new DoorBlock(copy(STONE).mapColor(WOOD).strength(5.0F).requiresCorrectToolForDrops().noOcclusion(), BlockSetType.IRON));
|
||||
|
||||
public static final RegistrySupplier<Block> QUARTZ_DOOR = register("quartz_door", () -> new DoorBlock(of(Material.STONE, MaterialColor.TERRACOTTA_WHITE).strength(5.0F).requiresCorrectToolForDrops().noOcclusion(), BlockSetType.IRON));
|
||||
public static final RegistrySupplier<Block> QUARTZ_DOOR = register("quartz_door", () -> new DoorBlock(copy(STONE).mapColor(TERRACOTTA_WHITE).strength(5.0F).requiresCorrectToolForDrops().noOcclusion(), BlockSetType.IRON));
|
||||
|
||||
public static final RegistrySupplier<Block> OAK_DIMENSIONAL_TRAPDOOR = registerWithoutTab("wood_dimensional_trapdoor", () -> new DimensionalTrapdoorBlock(of(Blocks.OAK_TRAPDOOR).lightLevel(state -> 10), BlockSetType.OAK));
|
||||
|
||||
public static final RegistrySupplier<Block> DIMENSIONAL_PORTAL = registerWithoutTab("dimensional_portal", () -> new DimensionalPortalBlock(of(Material.AIR).noCollission().strength(-1.0F, 3600000.0F).noOcclusion().dropsLike(AIR).lightLevel(blockState -> 10)));
|
||||
public static final RegistrySupplier<Block> DIMENSIONAL_PORTAL = registerWithoutTab("dimensional_portal", () -> new DimensionalPortalBlock(copy(AIR).noCollission().strength(-1.0F, 3600000.0F).noOcclusion().dropsLike(AIR).lightLevel(blockState -> 10)));
|
||||
|
||||
public static final RegistrySupplier<Block> DETACHED_RIFT = registerWithoutTab("detached_rift", () -> new DetachedRiftBlock(of(Material.AIR, MaterialColor.COLOR_BLACK).strength(-1.0F, 3600000.0F).noCollission().noOcclusion()));
|
||||
public static final RegistrySupplier<Block> DETACHED_RIFT = registerWithoutTab("detached_rift", () -> new DetachedRiftBlock(copy(AIR).mapColor(COLOR_BLACK).strength(-1.0F, 3600000.0F).noCollission().noOcclusion()));
|
||||
|
||||
public static final RegistrySupplier<Block> WHITE_FABRIC = registerFabric(DyeColor.WHITE);
|
||||
|
||||
|
@ -115,11 +118,11 @@ public final class ModBlocks {
|
|||
public static final RegistrySupplier<Block> RED_ANCIENT_FABRIC = registerAncientFabric(DyeColor.RED);
|
||||
|
||||
public static final RegistrySupplier<Block> BLACK_ANCIENT_FABRIC = registerAncientFabric(DyeColor.BLACK);
|
||||
private static final BlockBehaviour.Properties UNRAVELLED_FABRIC_BLOCK_SETTINGS = of(Material.STONE, MaterialColor.COLOR_BLACK).randomTicks().lightLevel(state -> 15).strength(0.3F, 0.3F);
|
||||
private static final BlockBehaviour.Properties UNRAVELLED_FABRIC_BLOCK_SETTINGS = copy(STONE).mapColor(COLOR_BLACK).randomTicks().lightLevel(state -> 15).strength(0.3F, 0.3F);
|
||||
|
||||
public static final RegistrySupplier<LiquidBlock> ETERNAL_FLUID = registerWithoutTab("eternal_fluid", () -> new EternalFluidBlock(of(Material.LAVA, MaterialColor.COLOR_RED).lightLevel(state -> 15)));
|
||||
public static final RegistrySupplier<LiquidBlock> ETERNAL_FLUID = registerWithoutTab("eternal_fluid", () -> new EternalFluidBlock(copy(LAVA).mapColor(COLOR_RED).lightLevel(state -> 15)));
|
||||
|
||||
public static final RegistrySupplier<LiquidBlock> LEAK = registerWithoutTab("leak", () -> new ArchitecturyLiquidBlock(ModFluids.LEAK, of(WATER)));
|
||||
public static final RegistrySupplier<LiquidBlock> LEAK = registerWithoutTab("leak", () -> new ArchitecturyLiquidBlock(ModFluids.LEAK, copy(WATER)));
|
||||
|
||||
public static final RegistrySupplier<Block> DECAYED_BLOCK = registerWithoutTab("decayed_block", () -> new UnravelledFabricBlock(UNRAVELLED_FABRIC_BLOCK_SETTINGS));
|
||||
|
||||
|
@ -131,18 +134,18 @@ public final class ModBlocks {
|
|||
|
||||
public static final RegistrySupplier<Block> UNRAVELLED_FABRIC = register("unravelled_fabric", () -> new UnravelledFabricBlock(UNRAVELLED_FABRIC_BLOCK_SETTINGS));
|
||||
|
||||
public static final RegistrySupplier<Block> MARKING_PLATE = registerWithoutTab("marking_plate", () -> new MarkingPlateBlock(of(Material.METAL, DyeColor.BLACK).noOcclusion()));
|
||||
public static final RegistrySupplier<Block> MARKING_PLATE = registerWithoutTab("marking_plate", () -> new MarkingPlateBlock(copy(IRON_BLOCK).mapColor(DyeColor.BLACK).noOcclusion()));
|
||||
|
||||
public static final RegistrySupplier<Block> SOLID_STATIC = register("solid_static", () -> new UnravelledFabricBlock(of(Material.STONE).strength(7, 25).randomTicks().requiresCorrectToolForDrops().sound(SoundType.SAND)));
|
||||
public static final RegistrySupplier<Block> SOLID_STATIC = register("solid_static", () -> new UnravelledFabricBlock(copy(STONE).strength(7, 25).randomTicks().requiresCorrectToolForDrops().sound(SoundType.SAND)));
|
||||
|
||||
public static final RegistrySupplier<Block> TESSELATING_LOOM = register("tesselating_loom", () -> new TesselatingLoomBlock(of(LOOM)));
|
||||
|
||||
public static final RegistrySupplier<Block> REALITY_SPONGE = register("reality_sponge", () -> new RealitySpongeBlock(UNRAVELLED_FABRIC_BLOCK_SETTINGS));
|
||||
|
||||
//Decay graph filler.
|
||||
public static final RegistrySupplier<Block> DRIFTWOOD_WOOD = register("driftwood_wood", () -> new RotatedPillarBlock(of(Material.WOOD, MaterialColor.COLOR_LIGHT_GRAY).strength(2.0F).sound(SoundType.WOOD)));
|
||||
public static final RegistrySupplier<Block> DRIFTWOOD_LOG = register("driftwood_log", () -> new RotatedPillarBlock(of(Material.WOOD, MaterialColor.COLOR_LIGHT_GRAY).strength(2.0F).sound(SoundType.WOOD)));
|
||||
public static final RegistrySupplier<Block> DRIFTWOOD_PLANKS = register("driftwood_planks", () -> new Block(of(Material.WOOD, MaterialColor.COLOR_LIGHT_GRAY).strength(2.0F, 3.0F).sound(SoundType.WOOD)));
|
||||
public static final RegistrySupplier<Block> DRIFTWOOD_WOOD = register("driftwood_wood", () -> new RotatedPillarBlock(copy(OAK_WOOD).mapColor(COLOR_LIGHT_GRAY).strength(2.0F).sound(SoundType.WOOD)));
|
||||
public static final RegistrySupplier<Block> DRIFTWOOD_LOG = register("driftwood_log", () -> new RotatedPillarBlock(copy(OAK_WOOD).mapColor(COLOR_LIGHT_GRAY).strength(2.0F).sound(SoundType.WOOD)));
|
||||
public static final RegistrySupplier<Block> DRIFTWOOD_PLANKS = register("driftwood_planks", () -> new Block(copy(OAK_WOOD).mapColor(COLOR_LIGHT_GRAY).strength(2.0F, 3.0F).sound(SoundType.WOOD)));
|
||||
public static final RegistrySupplier<Block> DRIFTWOOD_LEAVES = register("driftwood_leaves", () -> new LeavesBlock(of(OAK_LEAVES)));
|
||||
public static final RegistrySupplier<Block> DRIFTWOOD_SAPLING = register("driftwood_sapling", () -> new Block(of(OAK_SAPLING)));
|
||||
public static final RegistrySupplier<Block> DRIFTWOOD_FENCE = registerFence("driftwood_fence", DRIFTWOOD_PLANKS);
|
||||
|
@ -150,19 +153,19 @@ public final class ModBlocks {
|
|||
public static final RegistrySupplier<Block> DRIFTWOOD_BUTTON = registerButton("driftwood_button", DRIFTWOOD_PLANKS);
|
||||
public static final RegistrySupplier<Block> DRIFTWOOD_SLAB = registerSlab("driftwood_slab", DRIFTWOOD_PLANKS);
|
||||
public static final RegistrySupplier<Block> DRIFTWOOD_STAIRS = registerStairs("driftwood_stairs", DRIFTWOOD_PLANKS);
|
||||
public static final RegistrySupplier<Block> DRIFTWOOD_DOOR = register("driftwood_door", () -> new DoorBlock(of(Material.WOOD, MaterialColor.COLOR_GRAY).strength(3.0F).sound(SoundType.WOOD).noOcclusion(), BlockSetType.OAK));
|
||||
public static final RegistrySupplier<Block> DRIFTWOOD_TRAPDOOR = register("driftwood_trapdoor", () -> new TrapDoorBlock(of(Material.WOOD, MaterialColor.COLOR_GRAY).strength(3.0F).sound(SoundType.WOOD).noOcclusion().isValidSpawn((state, world, pos, type) -> false), BlockSetType.OAK));
|
||||
public static final RegistrySupplier<Block> DRIFTWOOD_DOOR = register("driftwood_door", () -> new DoorBlock(copy(OAK_WOOD).mapColor(COLOR_GRAY).strength(3.0F).sound(SoundType.WOOD).noOcclusion(), BlockSetType.OAK));
|
||||
public static final RegistrySupplier<Block> DRIFTWOOD_TRAPDOOR = register("driftwood_trapdoor", () -> new TrapDoorBlock(copy(OAK_WOOD).mapColor(COLOR_GRAY).strength(3.0F).sound(SoundType.WOOD).noOcclusion().isValidSpawn((state, world, pos, type) -> false), BlockSetType.OAK));
|
||||
|
||||
public static final RegistrySupplier<Block> AMALGAM_BLOCK = register("amalgam_block", () -> new Block(of(Material.METAL, MaterialColor.COLOR_LIGHT_GRAY).requiresCorrectToolForDrops().strength(5.0F, 6.0F).sound(SoundType.METAL)));
|
||||
public static final RegistrySupplier<Block> AMALGAM_DOOR = register("amalgam_door", () -> new DoorBlock(of(Material.METAL, MaterialColor.COLOR_LIGHT_GRAY).requiresCorrectToolForDrops().strength(5.0F).sound(SoundType.METAL).noOcclusion(), BlockSetType.IRON));
|
||||
public static final RegistrySupplier<Block> AMALGAM_TRAPDOOR = register("amalgam_trapdoor", () -> new TrapDoorBlock(of(Material.METAL).requiresCorrectToolForDrops().strength(5.0F).sound(SoundType.METAL).isValidSpawn((state, world, pos, type) -> false), BlockSetType.IRON));
|
||||
public static final RegistrySupplier<Block> RUST = register("rust", () -> new Block(of(Material.WOOD)));
|
||||
public static final RegistrySupplier<Block> AMALGAM_BLOCK = register("amalgam_block", () -> new Block(copy(IRON_BLOCK).mapColor(COLOR_LIGHT_GRAY).requiresCorrectToolForDrops().strength(5.0F, 6.0F).sound(SoundType.METAL)));
|
||||
public static final RegistrySupplier<Block> AMALGAM_DOOR = register("amalgam_door", () -> new DoorBlock(copy(IRON_BLOCK).mapColor(COLOR_LIGHT_GRAY).requiresCorrectToolForDrops().strength(5.0F).sound(SoundType.METAL).noOcclusion(), BlockSetType.IRON));
|
||||
public static final RegistrySupplier<Block> AMALGAM_TRAPDOOR = register("amalgam_trapdoor", () -> new TrapDoorBlock(copy(IRON_BLOCK).requiresCorrectToolForDrops().strength(5.0F).sound(SoundType.METAL).isValidSpawn((state, world, pos, type) -> false), BlockSetType.IRON));
|
||||
public static final RegistrySupplier<Block> RUST = register("rust", () -> new Block(copy(OAK_WOOD)));
|
||||
public static final RegistrySupplier<Block> AMALGAM_SLAB = registerSlab("amalgam_slab", AMALGAM_BLOCK);
|
||||
public static final RegistrySupplier<Block> AMALGAM_STAIRS = registerStairs("amalgam_stairs", AMALGAM_BLOCK);
|
||||
public static final RegistrySupplier<Block> AMALGAM_ORE = register("amalgam_ore", () -> new DropExperienceBlock(of(Material.STONE).requiresCorrectToolForDrops().strength(3.0F, 3.0F)));
|
||||
public static final RegistrySupplier<Block> AMALGAM_ORE = register("amalgam_ore", () -> new DropExperienceBlock(copy(STONE).requiresCorrectToolForDrops().strength(3.0F, 3.0F)));
|
||||
|
||||
public static final RegistrySupplier<Block> CLOD_ORE = register("clod_ore", () -> new Block(of(Material.AMETHYST)));
|
||||
public static final RegistrySupplier<Block> CLOD_BLOCK = register("clod_block", () -> new Block(of(Material.AMETHYST)));
|
||||
public static final RegistrySupplier<Block> CLOD_ORE = register("clod_ore", () -> new Block(copy(Blocks.AMETHYST_BLOCK)));
|
||||
public static final RegistrySupplier<Block> CLOD_BLOCK = register("clod_block", () -> new Block(copy(Blocks.AMETHYST_BLOCK)));
|
||||
|
||||
public static final RegistrySupplier<Block> GRAVEL_FENCE = registerFence("gravel_fence", GRAVEL);
|
||||
public static final RegistrySupplier<Block> GRAVEL_BUTTON = registerButton("gravel_button", GRAVEL);
|
||||
|
@ -170,7 +173,7 @@ public final class ModBlocks {
|
|||
public static final RegistrySupplier<Block> GRAVEL_STAIRS = registerStairs("gravel_stairs", GRAVEL);
|
||||
public static final RegistrySupplier<Block> GRAVEL_WALL = registerWall("gravel_wall", GRAVEL);
|
||||
|
||||
public static final RegistrySupplier<Block> DARK_SAND = register("dark_sand", () -> new Block(of(Material.SAND, MaterialColor.COLOR_BLACK).strength(0.5F).sound(SoundType.SAND)));
|
||||
public static final RegistrySupplier<Block> DARK_SAND = register("dark_sand", () -> new Block(copy(SAND).mapColor(COLOR_BLACK).strength(0.5F).sound(SoundType.SAND)));
|
||||
public static final RegistrySupplier<Block> DARK_SAND_FENCE = registerFence("dark_sand_fence", DARK_SAND);
|
||||
public static final RegistrySupplier<Block> DARK_SAND_BUTTON = registerButton("dark_sand_button", DARK_SAND);
|
||||
public static final RegistrySupplier<Block> DARK_SAND_SLAB = registerSlab("dark_sand_slab", DARK_SAND);
|
||||
|
@ -205,9 +208,9 @@ public final class ModBlocks {
|
|||
public static final RegistrySupplier<Block> RED_SAND_STAIRS = registerStairs("red_sand_stairs", Blocks.RED_SAND);
|
||||
public static final RegistrySupplier<Block> RED_SAND_WALL = registerWall("red_sand_wall", Blocks.RED_SAND);
|
||||
|
||||
public static final RegistrySupplier<Block> SAND_SLAB = registerSlab("sand_slab", Blocks.SAND);
|
||||
public static final RegistrySupplier<Block> SAND_STAIRS = registerStairs("sand_stairs", Blocks.SAND);
|
||||
public static final RegistrySupplier<Block> SAND_WALL = registerWall("sand_wall", Blocks.SAND);
|
||||
public static final RegistrySupplier<Block> SAND_SLAB = registerSlab("sand_slab", SAND);
|
||||
public static final RegistrySupplier<Block> SAND_STAIRS = registerStairs("sand_stairs", SAND);
|
||||
public static final RegistrySupplier<Block> SAND_WALL = registerWall("sand_wall", SAND);
|
||||
|
||||
public static final RegistrySupplier<Block> END_STONE_SLAB = registerSlab("end_stone_slab", Blocks.END_STONE);
|
||||
public static final RegistrySupplier<Block> END_STONE_STAIRS = registerStairs("end_stone_stairs", Blocks.END_STONE);
|
||||
|
@ -313,19 +316,19 @@ public final class ModBlocks {
|
|||
return register(name, () -> new WallBlock(of(block.get())));
|
||||
}
|
||||
|
||||
private static BlockBehaviour.Properties of(Material material, MaterialColor color) {
|
||||
return BlockBehaviour.Properties.of(material, color);
|
||||
}
|
||||
|
||||
private static BlockBehaviour.Properties of(Material material) {
|
||||
return BlockBehaviour.Properties.of(material);
|
||||
}
|
||||
|
||||
private static BlockBehaviour.Properties of(Material material, DyeColor dyeColor) {
|
||||
return BlockBehaviour.Properties.of(material, dyeColor);
|
||||
}
|
||||
// private static BlockBehaviour.Properties of(Material material, MaterialColor color) {
|
||||
// return BlockBehaviour.Properties.of(material, color);
|
||||
// }
|
||||
//
|
||||
// private static BlockBehaviour.Properties of(Material material) {
|
||||
// return BlockBehaviour.Properties.of(material);
|
||||
// }
|
||||
//
|
||||
// private static BlockBehaviour.Properties of(Material material, DyeColor dyeColor) {
|
||||
// return BlockBehaviour.Properties.of(material, dyeColor);
|
||||
// }
|
||||
|
||||
private static BlockBehaviour.Properties of(Block block) {
|
||||
return BlockBehaviour.Properties.copy(block);
|
||||
return copy(block);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,7 +27,6 @@ import net.minecraft.world.level.block.state.properties.BlockSetType;
|
|||
import net.minecraft.world.level.block.state.properties.DoubleBlockHalf;
|
||||
import net.minecraft.world.level.gameevent.GameEvent;
|
||||
import net.minecraft.world.level.material.Fluids;
|
||||
import net.minecraft.world.level.material.Material;
|
||||
import net.minecraft.world.level.material.PushReaction;
|
||||
import net.minecraft.world.phys.BlockHitResult;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
|
@ -50,9 +49,11 @@ import org.jetbrains.annotations.Nullable;
|
|||
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import static net.minecraft.world.level.material.PushReaction.BLOCK;
|
||||
|
||||
public class DimensionalDoorBlock extends WaterLoggableDoorBlock implements RiftProvider<EntranceRiftBlockEntity>, CoordinateTransformerBlock, ExplosionConvertibleBlock, CustomBreakBlock, AfterMoveCollidableBlock {
|
||||
public DimensionalDoorBlock(BlockBehaviour.Properties settings, BlockSetType blockSetType) {
|
||||
super(settings, blockSetType);
|
||||
super(settings.pushReaction(BLOCK), blockSetType);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -137,7 +138,7 @@ public class DimensionalDoorBlock extends WaterLoggableDoorBlock implements Rift
|
|||
if (!world.isClientSide && state.getValue(WATERLOGGED)) {
|
||||
world.scheduleTick(pos, Fluids.WATER, Fluids.WATER.getTickDelay(world));
|
||||
}
|
||||
world.levelEvent(player, state.getValue(OPEN) ? this.material == Material.METAL ? 1005 : 1006 : this.material == Material.METAL ? 1011 : 1012, pos, 0);
|
||||
this.playSound(player, world, pos, (Boolean)state.getValue(OPEN));
|
||||
world.gameEvent(player, this.isOpen(state) ? GameEvent.BLOCK_OPEN : GameEvent.BLOCK_CLOSE, pos);
|
||||
return InteractionResult.SUCCESS;
|
||||
}
|
||||
|
@ -286,11 +287,6 @@ public class DimensionalDoorBlock extends WaterLoggableDoorBlock implements Rift
|
|||
return InteractionResult.SUCCESS;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PushReaction getPistonPushReaction(BlockState state) {
|
||||
return state.getValue(HALF) == DoubleBlockHalf.LOWER ? PushReaction.BLOCK : super.getPistonPushReaction(state);
|
||||
}
|
||||
|
||||
@Override
|
||||
public InteractionResultHolder<Pair<BlockState, Consumer<BlockEntity>>> customBreakBlock(Level world, BlockPos pos, BlockState blockState, Entity breakingEntity) {
|
||||
if (blockState.getValue(HALF) != DoubleBlockHalf.LOWER) {
|
||||
|
|
|
@ -198,7 +198,7 @@ public abstract class RiftBlockEntity extends BlockEntity implements Target, Ent
|
|||
}
|
||||
|
||||
if (target.receiveEntity(entity, relativePos, relativeAngle, relativeVelocity)) {
|
||||
VirtualLocation vLoc = VirtualLocation.fromLocation(new Location((ServerLevel) entity.level, entity.blockPosition()));
|
||||
VirtualLocation vLoc = VirtualLocation.fromLocation(new Location((ServerLevel) entity.level(), entity.blockPosition()));
|
||||
EntityUtils.chat(entity, Component.literal("You are at x = " + vLoc.getX() + ", y = ?, z = " + vLoc.getZ() + ", w = " + vLoc.getDepth()));
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -24,7 +24,10 @@ import net.minecraft.world.entity.ExperienceOrb;
|
|||
import net.minecraft.world.entity.player.Inventory;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.entity.player.StackedContents;
|
||||
import net.minecraft.world.inventory.*;
|
||||
import net.minecraft.world.inventory.AbstractContainerMenu;
|
||||
import net.minecraft.world.inventory.ContainerData;
|
||||
import net.minecraft.world.inventory.RecipeHolder;
|
||||
import net.minecraft.world.inventory.StackedContentsCompatible;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.crafting.AbstractCookingRecipe;
|
||||
import net.minecraft.world.item.crafting.Recipe;
|
||||
|
@ -33,7 +36,6 @@ import net.minecraft.world.level.Level;
|
|||
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
import org.dimdev.dimdoors.mixin.accessor.CraftingInventoryAccessor;
|
||||
import org.dimdev.dimdoors.recipe.ModRecipeTypes;
|
||||
import org.dimdev.dimdoors.recipe.TesselatingRecipe;
|
||||
import org.dimdev.dimdoors.screen.TessellatingContainer;
|
||||
|
@ -261,7 +263,7 @@ public class TesselatingLoomBlockEntity extends BlockEntity implements MenuProvi
|
|||
ItemStack outstack = output;
|
||||
if (outstack.isEmpty()) {
|
||||
return true;
|
||||
} else if (!outstack.sameItem(result)) {
|
||||
} else if (!ItemStack.isSameItem(outstack, result)) {
|
||||
return false;
|
||||
} else {
|
||||
return (outstack.getCount() + result.getCount() <= outstack.getMaxStackSize());
|
||||
|
@ -301,7 +303,7 @@ public class TesselatingLoomBlockEntity extends BlockEntity implements MenuProvi
|
|||
if (!remainingStack.isEmpty()) {
|
||||
if (current.isEmpty()) {
|
||||
inventory.set(i, remainingStack);
|
||||
} else if (ItemStack.isSame(current, remainingStack) && ItemStack.matches(current, remainingStack)) {
|
||||
} else if (ItemStack.matches(current, remainingStack)) {
|
||||
current.grow(remainingStack.getCount());
|
||||
} else {
|
||||
drops.add(remainingStack);
|
||||
|
@ -367,7 +369,7 @@ public class TesselatingLoomBlockEntity extends BlockEntity implements MenuProvi
|
|||
}
|
||||
|
||||
public void awardUsedRecipesAndPopExperience(ServerPlayer player) {
|
||||
List<Recipe<?>> list = this.getRecipesToAwardAndPopExperience(player.getLevel(), player.position());
|
||||
List<Recipe<?>> list = this.getRecipesToAwardAndPopExperience(player.serverLevel(), player.position());
|
||||
player.awardRecipes(list);
|
||||
this.recipesUsed.clear();
|
||||
}
|
||||
|
|
|
@ -1,13 +1,10 @@
|
|||
package org.dimdev.dimdoors.client.screen;
|
||||
|
||||
import com.mojang.blaze3d.systems.RenderSystem;
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import net.minecraft.client.gui.GuiComponent;
|
||||
import net.minecraft.client.gui.GuiGraphics;
|
||||
import net.minecraft.client.gui.components.ImageButton;
|
||||
import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen;
|
||||
import net.minecraft.client.gui.screens.recipebook.RecipeBookComponent;
|
||||
import net.minecraft.client.gui.screens.recipebook.RecipeUpdateListener;
|
||||
import net.minecraft.client.renderer.GameRenderer;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.entity.player.Inventory;
|
||||
|
@ -43,7 +40,7 @@ public class TesselatingLoomScreen extends AbstractContainerScreen<TessellatingC
|
|||
}
|
||||
|
||||
|
||||
public void render(PoseStack matrices, int mouseX, int mouseY, float delta) {
|
||||
public void render(GuiGraphics matrices, int mouseX, int mouseY, float delta) {
|
||||
this.renderBackground(matrices);
|
||||
if (this.recipeBook.isVisible() && this.narrow) {
|
||||
this.renderBg(matrices, delta, mouseX, mouseY);
|
||||
|
@ -58,17 +55,14 @@ public class TesselatingLoomScreen extends AbstractContainerScreen<TessellatingC
|
|||
this.recipeBook.renderTooltip(matrices, this.leftPos, this.topPos, mouseX, mouseY);
|
||||
}
|
||||
|
||||
protected void renderBg(PoseStack matrices, float delta, int mouseX, int mouseY) {
|
||||
RenderSystem.setShader(GameRenderer::getPositionTexShader);
|
||||
RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F);
|
||||
RenderSystem.setShaderTexture(0, TEXTURE);
|
||||
protected void renderBg(GuiGraphics matrices, float delta, int mouseX, int mouseY) {
|
||||
int i = this.leftPos;
|
||||
int j = (this.height - this.imageHeight) / 2;
|
||||
GuiComponent.blit(matrices, i, j, 0, 0, this.imageWidth, this.imageWidth);
|
||||
matrices.blit(TEXTURE, i, j, 0, 0, this.imageWidth, this.imageWidth);
|
||||
|
||||
if (this.menu.isWeaving()) {
|
||||
int k = (this.menu).getBurnProgress(22);
|
||||
GuiComponent.blit(matrices, i + 89, j + 34, 176, 0, k + 1, 16);
|
||||
matrices.blit(TEXTURE, i + 89, j + 34, 176, 0, k + 1, 16);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -55,7 +55,7 @@ public class DimTeleportCommand {
|
|||
|
||||
private static int teleport(Entity entity, ServerLevel dimension, Vec3 pos, Rotations angle) {
|
||||
if(entity instanceof Player) {
|
||||
DimensionalRegistry.getRiftRegistry().setOverworldRift(entity.getUUID(), new Location((ServerLevel) entity.getLevel(), entity.blockPosition()));
|
||||
DimensionalRegistry.getRiftRegistry().setOverworldRift(entity.getUUID(), new Location((ServerLevel) entity.level(), entity.blockPosition()));
|
||||
}
|
||||
TeleportUtil.teleport(entity, dimension, pos, angle, entity.getDeltaMovement());
|
||||
return Command.SINGLE_SUCCESS;
|
||||
|
|
|
@ -68,10 +68,10 @@ public class PocketCommand {
|
|||
UUID playerUUID = commandSource.getPlayerOrException().getUUID();
|
||||
if (logSetting.containsKey(playerUUID)) {
|
||||
logSetting.remove(playerUUID);
|
||||
commandSource.sendSuccess(Component.translatable("commands.pocket.log.creation.off"), false);
|
||||
commandSource.sendSuccess(() -> Component.translatable("commands.pocket.log.creation.off"), false);
|
||||
} else {
|
||||
logSetting.put(playerUUID, commandSource);
|
||||
commandSource.sendSuccess(Component.translatable("commands.pocket.log.creation.on"), false);
|
||||
commandSource.sendSuccess(() -> Component.translatable("commands.pocket.log.creation.on"), false);
|
||||
}
|
||||
return Command.SINGLE_SUCCESS;
|
||||
})
|
||||
|
@ -82,7 +82,7 @@ public class PocketCommand {
|
|||
literal("dump")
|
||||
.requires(src -> src.hasPermission(4))
|
||||
.executes(ctx -> {
|
||||
ctx.getSource().sendSuccess(Component.literal("Dumping pocket data"), false);
|
||||
ctx.getSource().sendSuccess(() -> Component.literal("Dumping pocket data"), false);
|
||||
CompletableFuture.runAsync(() -> {
|
||||
try {
|
||||
PocketLoader.getInstance().dump();
|
||||
|
@ -91,7 +91,7 @@ public class PocketCommand {
|
|||
}
|
||||
}).thenRun(() -> {
|
||||
ctx.getSource().getServer().execute(() -> {
|
||||
ctx.getSource().sendSuccess(Component.literal("Dumped pocket data"), false);
|
||||
ctx.getSource().sendSuccess(() -> Component.literal("Dumped pocket data"), false);
|
||||
});
|
||||
});
|
||||
return Command.SINGLE_SUCCESS;
|
||||
|
@ -111,13 +111,13 @@ public class PocketCommand {
|
|||
private static int place(ServerPlayer source, PocketTemplate template, BlockPlacementType blockPlacementType) throws CommandSyntaxException {
|
||||
SchematicPlacer.place(
|
||||
template.getSchematic(),
|
||||
source.getLevel(),
|
||||
source.serverLevel(),
|
||||
source.blockPosition(),
|
||||
blockPlacementType
|
||||
);
|
||||
|
||||
String id = template.getId().toString();
|
||||
source.displayClientMessage(Component.translatable("commands.pocket.placedSchem", id, "" + source.blockPosition().getX() + ", " + source.blockPosition().getY() + ", " + source.blockPosition().getZ(), source.level.dimension().location().toString()), true);
|
||||
source.displayClientMessage(Component.translatable("commands.pocket.placedSchem", id, "" + source.blockPosition().getX() + ", " + source.blockPosition().getY() + ", " + source.blockPosition().getZ(), source.level().dimension().location().toString()), true);
|
||||
return Command.SINGLE_SUCCESS;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -45,7 +45,7 @@ public class WorldeditHelper {
|
|||
}
|
||||
taskAcceptor.accept(() -> {
|
||||
WorldEdit.getInstance().getSessionManager().get(getSessionOwner(player)).setClipboard(new ClipboardHolder(clipboard));
|
||||
source.sendSuccess(Component.translatable("commands.pocket.loadedSchem", template.getId()), true);
|
||||
source.sendSuccess(() -> Component.translatable("commands.pocket.loadedSchem", template.getId()), true);
|
||||
});
|
||||
};
|
||||
if (async) {
|
||||
|
|
|
@ -1,10 +1,7 @@
|
|||
package org.dimdev.dimdoors.criteria;
|
||||
|
||||
import com.google.gson.JsonObject;
|
||||
import net.minecraft.advancements.critereon.AbstractCriterionTriggerInstance;
|
||||
import net.minecraft.advancements.critereon.DeserializationContext;
|
||||
import net.minecraft.advancements.critereon.EntityPredicate;
|
||||
import net.minecraft.advancements.critereon.SimpleCriterionTrigger;
|
||||
import net.minecraft.advancements.critereon.*;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
import org.dimdev.dimdoors.DimensionalDoors;
|
||||
|
@ -13,7 +10,7 @@ public class PocketSpawnPointSetCondition extends SimpleCriterionTrigger<PocketS
|
|||
public static final ResourceLocation ID = DimensionalDoors.id("pocket_spawn_point_set");
|
||||
|
||||
@Override
|
||||
protected Conditions createInstance(JsonObject jsonObject, EntityPredicate.Composite composite, DeserializationContext deserializationContext) {
|
||||
protected Conditions createInstance(JsonObject jsonObject, ContextAwarePredicate composite, DeserializationContext deserializationContext) {
|
||||
return new Conditions(composite);
|
||||
}
|
||||
|
||||
|
@ -27,7 +24,7 @@ public class PocketSpawnPointSetCondition extends SimpleCriterionTrigger<PocketS
|
|||
}
|
||||
|
||||
public static class Conditions extends AbstractCriterionTriggerInstance {
|
||||
public Conditions(EntityPredicate.Composite playerPredicate) {
|
||||
public Conditions(ContextAwarePredicate playerPredicate) {
|
||||
super(ID, playerPredicate);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,10 +1,7 @@
|
|||
package org.dimdev.dimdoors.criteria;
|
||||
|
||||
import com.google.gson.JsonObject;
|
||||
import net.minecraft.advancements.critereon.AbstractCriterionTriggerInstance;
|
||||
import net.minecraft.advancements.critereon.DeserializationContext;
|
||||
import net.minecraft.advancements.critereon.EntityPredicate;
|
||||
import net.minecraft.advancements.critereon.SimpleCriterionTrigger;
|
||||
import net.minecraft.advancements.critereon.*;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
import org.dimdev.dimdoors.DimensionalDoors;
|
||||
|
@ -13,7 +10,7 @@ public class RiftTrackedCriterion extends SimpleCriterionTrigger<RiftTrackedCrit
|
|||
public static final ResourceLocation ID = DimensionalDoors.id("rift_tracked");
|
||||
|
||||
@Override
|
||||
protected Conditions createInstance(JsonObject obj, EntityPredicate.Composite playerPredicate, DeserializationContext predicateDeserializer) {
|
||||
protected Conditions createInstance(JsonObject obj, ContextAwarePredicate playerPredicate, DeserializationContext predicateDeserializer) {
|
||||
return new Conditions(playerPredicate);
|
||||
}
|
||||
|
||||
|
@ -27,7 +24,7 @@ public class RiftTrackedCriterion extends SimpleCriterionTrigger<RiftTrackedCrit
|
|||
}
|
||||
|
||||
public static class Conditions extends AbstractCriterionTriggerInstance {
|
||||
public Conditions(EntityPredicate.Composite playerPredicate) {
|
||||
public Conditions(ContextAwarePredicate playerPredicate) {
|
||||
super(ID, playerPredicate);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,7 +16,7 @@ public class TagBlockBreakCriteria extends SimpleCriterionTrigger<TagBlockBreakC
|
|||
public static final ResourceLocation ID = DimensionalDoors.id("tag_block_break");
|
||||
|
||||
@Override
|
||||
protected Conditions createInstance(JsonObject obj, EntityPredicate.Composite playerPredicate, DeserializationContext predicateDeserializer) {
|
||||
protected Conditions createInstance(JsonObject obj, ContextAwarePredicate playerPredicate, DeserializationContext predicateDeserializer) {
|
||||
return new Conditions(playerPredicate, TagKey.create(Registries.BLOCK, ResourceLocation.tryParse(obj.get("tag").getAsString())));
|
||||
}
|
||||
|
||||
|
@ -32,7 +32,7 @@ public class TagBlockBreakCriteria extends SimpleCriterionTrigger<TagBlockBreakC
|
|||
public static class Conditions extends AbstractCriterionTriggerInstance {
|
||||
private final TagKey<Block> blockTag;
|
||||
|
||||
public Conditions(EntityPredicate.Composite playerPredicate, TagKey<Block> blockTag) {
|
||||
public Conditions(ContextAwarePredicate playerPredicate, TagKey<Block> blockTag) {
|
||||
super(ID, playerPredicate);
|
||||
this.blockTag = Objects.requireNonNull(blockTag);
|
||||
}
|
||||
|
|
|
@ -65,7 +65,7 @@ public class MonolithEntity extends Mob {
|
|||
}
|
||||
|
||||
public boolean isDangerous() {
|
||||
return DimensionalDoors.getConfig().getMonolithsConfig().monolithTeleportation && (ModDimensions.isLimboDimension(this.level) || DimensionalDoors.getConfig().getMonolithsConfig().dangerousLimboMonoliths);
|
||||
return DimensionalDoors.getConfig().getMonolithsConfig().monolithTeleportation && (ModDimensions.isLimboDimension(this.level()) || DimensionalDoors.getConfig().getMonolithsConfig().dangerousLimboMonoliths);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -129,7 +129,7 @@ public class MonolithEntity extends Mob {
|
|||
@Override
|
||||
protected void customServerAiStep() {
|
||||
// Remove this Monolith if it's not in Limbo or in a pocket dungeon
|
||||
if (!(ModDimensions.isLimboDimension(this.level) || ModDimensions.isPocketDimension(this.level))) {
|
||||
if (!(ModDimensions.isLimboDimension(this.level()) || ModDimensions.isPocketDimension(this.level()))) {
|
||||
this.remove(RemovalReason.DISCARDED);
|
||||
super.customServerAiStep();
|
||||
return;
|
||||
|
@ -151,7 +151,7 @@ public class MonolithEntity extends Mob {
|
|||
return;
|
||||
}
|
||||
|
||||
if (!this.level.isClientSide) {
|
||||
if (!this.level().isClientSide) {
|
||||
if (player.distanceTo(this) > 70) {
|
||||
return;
|
||||
}
|
||||
|
@ -160,7 +160,7 @@ public class MonolithEntity extends Mob {
|
|||
// Server side...
|
||||
// Rapidly increase the aggro level if this Monolith can see the player
|
||||
if (visibility) {
|
||||
if (ModDimensions.isLimboDimension(this.level)) {
|
||||
if (ModDimensions.isLimboDimension(this.level())) {
|
||||
if (this.isDangerous()) {
|
||||
aggro++;
|
||||
} else {
|
||||
|
@ -209,11 +209,11 @@ public class MonolithEntity extends Mob {
|
|||
this.soundTime = 100;
|
||||
}
|
||||
if (aggroPercent > 0.70 && this.soundTime < 100) {
|
||||
this.level.playSound(null, new BlockPos(new Vec3i((int) pos.x, (int) pos.y, (int) pos.z)), ModSoundEvents.TEARING.get(), SoundSource.HOSTILE, 1F, (float) (1 + this.getRandom().nextGaussian()));
|
||||
this.level().playSound(null, new BlockPos(new Vec3i((int) pos.x, (int) pos.y, (int) pos.z)), ModSoundEvents.TEARING.get(), SoundSource.HOSTILE, 1F, (float) (1 + this.getRandom().nextGaussian()));
|
||||
this.soundTime = 100 + this.getRandom().nextInt(75);
|
||||
}
|
||||
if (aggroPercent > 0.80 && this.soundTime < MAX_SOUND_COOLDOWN) {
|
||||
this.level.playSound(null, new BlockPos(new Vec3i((int) pos.x, (int) pos.y, (int) pos.z)), ModSoundEvents.TEARING.get(), SoundSource.HOSTILE, 7, 1);
|
||||
this.level().playSound(null, new BlockPos(new Vec3i((int) pos.x, (int) pos.y, (int) pos.z)), ModSoundEvents.TEARING.get(), SoundSource.HOSTILE, 7, 1);
|
||||
this.soundTime = 250;
|
||||
}
|
||||
this.soundTime--;
|
||||
|
|
|
@ -36,7 +36,7 @@ public class MonolithAggroGoal extends Goal {
|
|||
}
|
||||
|
||||
private Player getTarget() {
|
||||
Player playerEntity = this.mob.level.getNearestPlayer(this.targetPredicate, this.mob, this.mob.getX(), this.mob.getEyeY(), this.mob.getZ());
|
||||
Player playerEntity = this.mob.level().getNearestPlayer(this.targetPredicate, this.mob, this.mob.getX(), this.mob.getEyeY(), this.mob.getZ());
|
||||
return playerEntity != null && this.mob.hasLineOfSight(playerEntity) && playerEntity.distanceTo(this.mob) < 50 ? playerEntity : null;
|
||||
}
|
||||
|
||||
|
@ -96,7 +96,7 @@ public class MonolithAggroGoal extends Goal {
|
|||
if (this.mob.getAggro() >= MAX_AGGRO && DimensionalDoors.getConfig().getMonolithsConfig().monolithTeleportation && !this.target.isCreative() && this.mob.isDangerous()) {
|
||||
this.mob.setAggro(0);
|
||||
this.target.teleportTo(this.target.getX(), this.target.getY() + 256, this.target.getZ());
|
||||
this.target.level.playSound(null, new BlockPos(new Vec3i((int) this.target.position().x, (int) this.target.position().y, (int) this.target.position().z)), ModSoundEvents.CRACK.get(), SoundSource.HOSTILE, 13, 1);
|
||||
this.target.level().playSound(null, new BlockPos(new Vec3i((int) this.target.position().x, (int) this.target.position().y, (int) this.target.position().z)), ModSoundEvents.CRACK.get(), SoundSource.HOSTILE, 13, 1);
|
||||
this.target.awardStat(ModStats.TIMES_TELEPORTED_BY_MONOLITH);
|
||||
ServerPacketHandler.get((ServerPlayer) this.target).sendPacket(new MonolithTeleportParticlesPacket());
|
||||
}
|
||||
|
|
|
@ -8,10 +8,8 @@ import dev.architectury.registry.registries.DeferredRegister;
|
|||
import dev.architectury.registry.registries.RegistrySupplier;
|
||||
import net.minecraft.core.registries.BuiltInRegistries;
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.world.item.ArmorItem;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.Items;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.world.item.*;
|
||||
import org.dimdev.dimdoors.DimensionalDoors;
|
||||
import org.dimdev.dimdoors.block.entity.EntranceRiftBlockEntity;
|
||||
import org.dimdev.dimdoors.entity.ModEntityTypes;
|
||||
|
@ -118,7 +116,8 @@ public final class ModItems {
|
|||
|
||||
public static final Set<Item> DOOR_ITEMS = new HashSet<>();
|
||||
|
||||
public static final CreativeTabRegistry.TabSupplier DIMENSIONAL_DOORS = CreativeTabRegistry.create(id("dimensional_doors"), () -> new ItemStack(ModItems.RIFT_BLADE.get()));
|
||||
public static DeferredRegister<CreativeModeTab> CREATIVE_TABS = DeferredRegister.create(DimensionalDoors.MOD_ID, Registries.CREATIVE_MODE_TAB);
|
||||
public static final RegistrySupplier<CreativeModeTab> DIMENSIONAL_DOORS = CREATIVE_TABS.register("dimensional_doors", () -> CreativeTabRegistry.create(builder -> builder.icon(() -> new ItemStack(ModItems.RIFT_BLADE.get())).title(Component.literal("Dimensional Doors"))));
|
||||
|
||||
public static RegistrySupplier<Item> register(String name, Function<Item.Properties, Item> item) {
|
||||
return register(name, () -> item.apply(new Item.Properties().arch$tab(DIMENSIONAL_DOORS)));
|
||||
|
@ -128,6 +127,7 @@ public final class ModItems {
|
|||
}
|
||||
|
||||
public static void init() {
|
||||
CREATIVE_TABS.register();
|
||||
REGISTRY.register();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -89,7 +89,7 @@ public class RiftBladeItem extends SwordItem {
|
|||
|
||||
Vec3 added = entityVec.add(offsetDirection.scale(offsetDistance));
|
||||
BlockPos teleportPosition = new BlockPos(new Vec3i((int) added.x, (int) added. y, (int) added.z));
|
||||
while (world.getBlockState(teleportPosition).getMaterial().blocksMotion())
|
||||
while (world.getBlockState(teleportPosition).blocksMotion())
|
||||
teleportPosition = teleportPosition.above();
|
||||
player.teleportTo(teleportPosition.getX(), teleportPosition.getY(), teleportPosition.getZ());
|
||||
player.setYRot((float) (Math.random() * 2 * Math.PI));
|
||||
|
|
|
@ -16,6 +16,7 @@ import net.minecraft.world.item.ItemStack;
|
|||
import net.minecraft.world.item.TooltipFlag;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.storage.loot.LootContext;
|
||||
import net.minecraft.world.level.storage.loot.LootParams;
|
||||
import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets;
|
||||
import net.minecraft.world.level.storage.loot.parameters.LootContextParams;
|
||||
import net.minecraft.world.phys.BlockHitResult;
|
||||
|
@ -65,8 +66,8 @@ public class RiftRemoverItem extends Item {
|
|||
rift.setClosing(true);
|
||||
world.playSound(null, player.blockPosition(), ModSoundEvents.RIFT_CLOSE.get(), SoundSource.BLOCKS, 0.6f, 1);
|
||||
stack.hurtAndBreak(10, player, a -> a.broadcastBreakEvent(hand));
|
||||
LootContext ctx = new LootContext.Builder((ServerLevel) world).withRandom(world.random).withParameter(LootContextParams.ORIGIN, Vec3.atCenterOf(((BlockHitResult) hit).getBlockPos())).withOptionalParameter(LootContextParams.THIS_ENTITY, player).create(LootContextParamSets.ALL_PARAMS);
|
||||
((ServerLevel) world).getServer().getLootTables().get(REMOVED_RIFT_LOOT_TABLE).getRandomItems(ctx).forEach(stack1 -> {
|
||||
LootParams ctx = new LootParams.Builder((ServerLevel) world).withParameter(LootContextParams.ORIGIN, Vec3.atCenterOf(((BlockHitResult) hit).getBlockPos())).withOptionalParameter(LootContextParams.THIS_ENTITY, player).create(LootContextParamSets.ALL_PARAMS);
|
||||
((ServerLevel) world).getServer().getLootData().getLootTable(REMOVED_RIFT_LOOT_TABLE).getRandomItems(ctx).forEach(stack1 -> {
|
||||
Containers.dropItemStack(world, ((BlockHitResult) hit).getBlockPos().getX(), ((BlockHitResult) hit).getBlockPos().getY(), ((BlockHitResult) hit).getBlockPos().getZ(), stack1);
|
||||
});
|
||||
|
||||
|
|
|
@ -16,6 +16,7 @@ import net.minecraft.world.item.TooltipFlag;
|
|||
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||
import net.minecraft.world.item.context.UseOnContext;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import org.dimdev.dimdoors.DimensionalDoors;
|
||||
import org.dimdev.dimdoors.api.util.Location;
|
||||
import org.dimdev.dimdoors.api.util.RotatedLocation;
|
||||
|
@ -46,6 +47,7 @@ public class RiftSignatureItem extends Item {
|
|||
Level world = itemUsageContext.getLevel();
|
||||
BlockPos pos = itemUsageContext.getClickedPos();
|
||||
InteractionHand hand = itemUsageContext.getHand();
|
||||
BlockState state = world.getBlockState(pos);
|
||||
Direction side = itemUsageContext.getClickedFace();
|
||||
|
||||
BlockPlaceContext placementContext = new BlockPlaceContext(itemUsageContext);
|
||||
|
@ -76,8 +78,8 @@ public class RiftSignatureItem extends Item {
|
|||
world.playSound(null, player.blockPosition(), ModSoundEvents.RIFT_START.get(), SoundSource.BLOCKS, 0.6f, 1);
|
||||
} else {
|
||||
// Place a rift at the saved point
|
||||
if (target.getBlockState().getBlock() != ModBlocks.DETACHED_RIFT) {
|
||||
if (!target.getBlockState().getBlock().isPossibleToRespawnInThis()) {
|
||||
if (target.getBlockState().getBlock() != ModBlocks.DETACHED_RIFT.get()) {
|
||||
if (!target.getBlockState().getBlock().isPossibleToRespawnInThis(state)) {
|
||||
player.displayClientMessage(Component.translatable("tools.target_became_block"), true);
|
||||
clearSource(stack); // TODO: But is this fair? It's a rather hidden way of unbinding your signature!
|
||||
return InteractionResult.FAIL;
|
||||
|
|
|
@ -15,7 +15,7 @@ import org.dimdev.dimdoors.network.packet.c2s.HitBlockWithItemC2SPacket;
|
|||
public class AttackBlockCallbackListener implements InteractionEvent.LeftClickBlock {
|
||||
@Override
|
||||
public EventResult click(Player player, InteractionHand hand, BlockPos pos, Direction direction) {
|
||||
var world = player.getLevel();
|
||||
var world = player.level();
|
||||
|
||||
if (!world.isClientSide) return EventResult.pass();
|
||||
Item item = player.getItemInHand(hand).getItem();
|
||||
|
|
|
@ -13,7 +13,7 @@ public class PocketAttackBlockCallbackListener implements InteractionEvent.LeftC
|
|||
@Override
|
||||
public EventResult click(Player player, InteractionHand hand, BlockPos pos, Direction direction) {
|
||||
List<InteractionEvent.LeftClickBlock> applicableAddons;
|
||||
var level = player.getLevel();
|
||||
var level = player.level();
|
||||
if (level.isClientSide) applicableAddons = PocketListenerUtil.applicableAddonsClient(InteractionEvent.LeftClickBlock.class, level, pos);
|
||||
else applicableAddons = PocketListenerUtil.applicableAddons(InteractionEvent.LeftClickBlock.class, level, pos);
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ public class UseBlockCallbackListener implements InteractionEvent.RightClickBloc
|
|||
@Override
|
||||
public EventResult click(Player player, InteractionHand hand, BlockPos pos, Direction face) {
|
||||
List<InteractionEvent.RightClickBlock> applicableAddons;
|
||||
var world = player.getLevel();
|
||||
var world = player.level();
|
||||
if (world.isClientSide) applicableAddons = PocketListenerUtil.applicableAddonsClient(InteractionEvent.RightClickBlock.class, world, pos);
|
||||
else applicableAddons = PocketListenerUtil.applicableAddons(InteractionEvent.RightClickBlock.class, world, pos);
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ public class UseItemCallbackListener implements InteractionEvent.RightClickItem
|
|||
@Override
|
||||
public CompoundEventResult<ItemStack> click(Player player, InteractionHand hand) {
|
||||
List<InteractionEvent.RightClickItem> applicableAddons;
|
||||
var world = player.getLevel();
|
||||
var world = player.level();
|
||||
if (world.isClientSide) applicableAddons = PocketListenerUtil.applicableAddonsClient(InteractionEvent.RightClickItem.class, world, player.blockPosition());
|
||||
else applicableAddons = PocketListenerUtil.applicableAddons(InteractionEvent.RightClickItem.class, world, player.blockPosition());
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@ public abstract class PlayerEntityMixin extends LivingEntity {
|
|||
|
||||
@Inject(method = "causeFallDamage", at = @At("HEAD"), cancellable = true)
|
||||
public void handleLimboFallDamage(float fallDistance, float damageMultiplier, DamageSource damageSource, CallbackInfoReturnable<Boolean> cir) {
|
||||
if (ModDimensions.isLimboDimension(level)) {
|
||||
if (ModDimensions.isLimboDimension(level())) {
|
||||
cir.setReturnValue(false);
|
||||
}
|
||||
}
|
||||
|
@ -42,7 +42,7 @@ public abstract class PlayerEntityMixin extends LivingEntity {
|
|||
|
||||
@Unique
|
||||
protected void doOnDeathStuff(DamageSource source, CallbackInfo ci) {
|
||||
if (ModDimensions.isPocketDimension(this.level) || DimensionalDoors.getConfig().getLimboConfig().shouldUseLimbo(this.level.dimension())) {
|
||||
if (ModDimensions.isPocketDimension(this.level()) || DimensionalDoors.getConfig().getLimboConfig().shouldUseLimbo(this.level().dimension())) {
|
||||
((EntityAccessor) this).setRemovalReason(null);
|
||||
this.dead = false;
|
||||
this.setHealth(this.getMaxHealth());
|
||||
|
|
|
@ -31,7 +31,7 @@ public class ServerPlayNetworkHandlerMixin {
|
|||
AABB box = player.getBoundingBox();
|
||||
BlockPos blockPos = BlockPos.containing(box.minX + 1.0E-7D, box.minY + 1.0E-7D, box.minZ + 1.0E-7D);
|
||||
BlockPos blockPos2 = BlockPos.containing(box.maxX - 1.0E-7D, box.maxY - 1.0E-7D, box.maxZ - 1.0E-7D);
|
||||
if (player.level.hasChunksAt(blockPos, blockPos2)) {
|
||||
if (player.level().hasChunksAt(blockPos, blockPos2)) {
|
||||
BlockPos.MutableBlockPos mutable = new BlockPos.MutableBlockPos();
|
||||
|
||||
boolean done = false;
|
||||
|
@ -39,9 +39,9 @@ public class ServerPlayNetworkHandlerMixin {
|
|||
for(int j = blockPos.getY(); j <= blockPos2.getY(); ++j) {
|
||||
for(int k = blockPos.getZ(); k <= blockPos2.getZ(); ++k) {
|
||||
mutable.set(i, j, k);
|
||||
BlockState blockState = player.level.getBlockState(mutable);
|
||||
BlockState blockState = player.level().getBlockState(mutable);
|
||||
Block block = blockState.getBlock();
|
||||
if (block instanceof AfterMoveCollidableBlock && ((AfterMoveCollidableBlock) block).onAfterMovePlayerCollision(blockState, player.getLevel(), mutable, player, player.position().subtract(firstGoodX, firstGoodY, firstGoodZ)).consumesAction()) {
|
||||
if (block instanceof AfterMoveCollidableBlock && ((AfterMoveCollidableBlock) block).onAfterMovePlayerCollision(blockState, player.serverLevel(), mutable, player, player.position().subtract(firstGoodX, firstGoodY, firstGoodZ)).consumesAction()) {
|
||||
done = true;
|
||||
}
|
||||
if (done) {
|
||||
|
|
|
@ -53,7 +53,7 @@ public abstract class ServerPlayerEntityMixin extends PlayerEntityMixin {
|
|||
@Inject(method = "tick", at = @At("HEAD"))
|
||||
public void playerTickMixin(CallbackInfo ci) {
|
||||
if (dimdoors_random.nextFloat() <= RANDOM_ACTION_CHANCE) {
|
||||
if(ModDimensions.isLimboDimension(((Player)(Object)(this)).getLevel())) {
|
||||
if(ModDimensions.isLimboDimension(((Player)(Object)(this)).level())) {
|
||||
tryMakingLimboLikeOtherDimensions((Player)(Object)this);
|
||||
}
|
||||
}
|
||||
|
@ -134,7 +134,7 @@ public abstract class ServerPlayerEntityMixin extends PlayerEntityMixin {
|
|||
public void checkDeathServer(DamageSource source, CallbackInfo ci) {
|
||||
this.doOnDeathStuff(source, ci);
|
||||
if (ci.isCancelled()) {
|
||||
if (ModDimensions.isPocketDimension(this.level)) {
|
||||
if (ModDimensions.isPocketDimension(this.level())) {
|
||||
this.awardStat(ModStats.DEATHS_IN_POCKETS);
|
||||
}
|
||||
this.awardStat(ModStats.TIMES_SENT_TO_LIMBO);
|
||||
|
|
|
@ -1,15 +0,0 @@
|
|||
package org.dimdev.dimdoors.mixin.accessor;
|
||||
|
||||
import net.minecraft.core.NonNullList;
|
||||
import net.minecraft.world.inventory.CraftingContainer;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Mutable;
|
||||
import org.spongepowered.asm.mixin.gen.Accessor;
|
||||
|
||||
@Mixin(CraftingContainer.class)
|
||||
public interface CraftingInventoryAccessor {
|
||||
@Mutable
|
||||
@Accessor("items")
|
||||
void setInventory(NonNullList<ItemStack> inventory);
|
||||
}
|
|
@ -4,6 +4,7 @@ import com.mojang.blaze3d.vertex.PoseStack;
|
|||
import net.fabricmc.api.EnvType;
|
||||
import net.fabricmc.api.Environment;
|
||||
import net.minecraft.client.gui.Gui;
|
||||
import net.minecraft.client.gui.GuiGraphics;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Shadow;
|
||||
|
@ -31,6 +32,6 @@ public abstract class InGameHudMixin{
|
|||
// }
|
||||
// }
|
||||
@Inject(method = "render", at = @At("HEAD"), cancellable = true)
|
||||
public void renderOverlayMixin(PoseStack matrices, float tickDelta, CallbackInfo ci) {
|
||||
public void renderOverlayMixin(GuiGraphics guiGraphics, float partialTick, CallbackInfo ci) {
|
||||
}
|
||||
}
|
||||
|
|
|
@ -120,13 +120,13 @@ public class ServerPacketHandler implements ServerPacketListener {
|
|||
getServer().execute(() -> {
|
||||
Item item = getPlayer().getItemInHand(packet.getHand()).getItem();
|
||||
if (item instanceof ExtendedItem) {
|
||||
((ExtendedItem) item).onAttackBlock(getPlayer().level, getPlayer(), packet.getHand(), packet.getPos(), packet.getDirection());
|
||||
((ExtendedItem) item).onAttackBlock(getPlayer().level(), getPlayer(), packet.getHand(), packet.getPos(), packet.getDirection());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNetworkHandlerInitialized(NetworkHandlerInitializedC2SPacket packet) {
|
||||
syncPocketAddonsIfNeeded(getPlayer().level, getPlayer().blockPosition());
|
||||
syncPocketAddonsIfNeeded(getPlayer().level(), getPlayer().blockPosition());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -57,7 +57,7 @@ public class MonolithAggroParticlesPacket {
|
|||
int count = 10 * aggro / MAX_AGGRO;
|
||||
for (int i = 1; i < count; ++i) {
|
||||
//noinspection ConstantConditions
|
||||
player.level.addParticle(ParticleTypes.PORTAL, player.getX() + (clientRandom.nextDouble() - 0.5D) * 3.0,
|
||||
player.level().addParticle(ParticleTypes.PORTAL, player.getX() + (clientRandom.nextDouble() - 0.5D) * 3.0,
|
||||
player.getY() + clientRandom.nextDouble() * player.getBbHeight() - 0.75D,
|
||||
player.getZ() + (clientRandom.nextDouble() - 0.5D) * player.getBbWidth(),
|
||||
(clientRandom.nextDouble() - 0.5D) * 2.0D, -clientRandom.nextDouble(),
|
||||
|
|
|
@ -8,6 +8,7 @@ import net.minecraft.world.level.WorldGenLevel;
|
|||
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||
import net.minecraft.world.level.block.entity.ChestBlockEntity;
|
||||
import net.minecraft.world.level.storage.loot.LootContext;
|
||||
import net.minecraft.world.level.storage.loot.LootParams;
|
||||
import net.minecraft.world.level.storage.loot.LootTable;
|
||||
import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets;
|
||||
import net.minecraft.world.level.storage.loot.parameters.LootContextParams;
|
||||
|
@ -62,13 +63,13 @@ public class TemplateUtils {
|
|||
LootTable table;
|
||||
if (tile instanceof ChestBlockEntity) {
|
||||
logger.debug("Now populating chest.");
|
||||
table = world.getServer().getLootTables().get(DimensionalDoors.id("dungeon_chest"));
|
||||
table = world.getServer().getLootData().getLootTable(DimensionalDoors.id("dungeon_chest"));
|
||||
} else {
|
||||
logger.debug("Now populating dispenser.");
|
||||
table = world.getServer().getLootTables().get(DimensionalDoors.id("dispenser_projectiles"));
|
||||
table = world.getServer().getLootData().getLootTable(DimensionalDoors.id("dispenser_projectiles"));
|
||||
}
|
||||
LootContext ctx = new LootContext.Builder(world).withRandom(world.random).withParameter(LootContextParams.ORIGIN, Vec3.atLowerCornerOf(tile.getBlockPos())).create(LootContextParamSets.CHEST);
|
||||
table.fill(inventory, ctx);
|
||||
LootParams ctx = new LootParams.Builder(world).withParameter(LootContextParams.ORIGIN, Vec3.atLowerCornerOf(tile.getBlockPos())).create(LootContextParamSets.CHEST);
|
||||
table.fill(inventory, ctx, world.getSeed());
|
||||
if (inventory.isEmpty()) {
|
||||
logger.error(", however Inventory is: empty!");
|
||||
}
|
||||
|
|
|
@ -135,7 +135,7 @@ public class ChunkGenerator extends PocketGenerator {
|
|||
genWorldChunkGenerator.applyCarvers(protoRegion, genWorld.getSeed(), config, genWorld.getBiomeManager(), genWorld.structureManager(), protoChunk, carver);
|
||||
ProtoChunk pChunk = ((ProtoChunk) protoChunk);
|
||||
if (pChunk.getStatus() == ChunkStatus.SURFACE) pChunk.setStatus(ChunkStatus.CARVERS);
|
||||
else pChunk.setStatus(ChunkStatus.LIQUID_CARVERS);
|
||||
else pChunk.setStatus(ChunkStatus.CARVERS);
|
||||
}
|
||||
}
|
||||
for (ChunkAccess protoChunk : protoChunks) {
|
||||
|
|
|
@ -142,7 +142,7 @@ public class SchematicGenerator extends LazyPocketGenerator{
|
|||
Pocket pocket = DimensionalRegistry.getPocketDirectory(world.dimension()).newPocket(builder);
|
||||
BlockPos origin = pocket.getOrigin();
|
||||
LOGGER.info("Generating pocket from template " + templateID + " at location " + origin);
|
||||
PocketCommand.logSetting.values().forEach(commandSource -> commandSource.sendSuccess(Component.translatable("commands.pocket.log.creation.generating", templateID, origin.getX(), origin.getY(), origin.getZ()), false));
|
||||
PocketCommand.logSetting.values().forEach(commandSource -> commandSource.sendSuccess(() -> Component.translatable("commands.pocket.log.creation.generating", templateID, origin.getX(), origin.getY(), origin.getZ()), false));
|
||||
|
||||
|
||||
if (pocket instanceof LazyGenerationPocket) {
|
||||
|
|
|
@ -41,27 +41,27 @@ public class EscapeTarget extends VirtualTarget implements EntityTarget { // TOD
|
|||
|
||||
@Override
|
||||
public boolean receiveEntity(Entity entity, Vec3 relativePos, Rotations relativeAngle, Vec3 relativeVelocity) {
|
||||
if (!ModDimensions.isPocketDimension(entity.level) && !(ModDimensions.isLimboDimension(entity.level))) {
|
||||
if (!ModDimensions.isPocketDimension(entity.level()) && !(ModDimensions.isLimboDimension(entity.level()))) {
|
||||
chat(entity, Component.translatable("rifts.destinations.escape.not_in_pocket_dim"));
|
||||
return false;
|
||||
}
|
||||
if (ModDimensions.isLimboDimension(entity.level) && !this.canEscapeLimbo) {
|
||||
if (ModDimensions.isLimboDimension(entity.level()) && !this.canEscapeLimbo) {
|
||||
chat(entity, Component.translatable("rifts.destinations.escape.cannot_escape_limbo"));
|
||||
return false;
|
||||
}
|
||||
if (entity.getLevel().isClientSide)
|
||||
if (entity.level().isClientSide)
|
||||
return false;
|
||||
UUID uuid = entity.getUUID();
|
||||
if (uuid != null) {
|
||||
//Location destLoc = DimensionalRegistry.getRiftRegistry().getOverworldRift(uuid);
|
||||
if (entity.level.getPlayerByUUID(uuid) == null) {
|
||||
if (entity.level().getPlayerByUUID(uuid) == null) {
|
||||
LOGGER.log(Level.ERROR, "Tried to get player for escape target from uuid, but player does not exist, uh oh");
|
||||
return false;
|
||||
}
|
||||
LOGGER.log(Level.INFO, "sending player from limbo to their spawnpoint, good luck!");
|
||||
Location destLoc;
|
||||
if (((ServerPlayer) entity.level.getPlayerByUUID(uuid)).getRespawnPosition() != null) {
|
||||
destLoc = new Location(((ServerPlayer) entity.level.getPlayerByUUID(uuid)).getRespawnDimension(), ((ServerPlayer) entity.level.getPlayerByUUID(uuid)).getRespawnPosition());
|
||||
if (((ServerPlayer) entity.level().getPlayerByUUID(uuid)).getRespawnPosition() != null) {
|
||||
destLoc = new Location(((ServerPlayer) entity.level().getPlayerByUUID(uuid)).getRespawnDimension(), ((ServerPlayer) entity.level().getPlayerByUUID(uuid)).getRespawnPosition());
|
||||
} else {
|
||||
destLoc = new Location(DimensionalDoors.getServer().overworld(), DimensionalDoors.getServer().overworld().getSharedSpawnPos());
|
||||
|
||||
|
|
|
@ -78,7 +78,7 @@ public class TessellatingContainer extends RecipeBookMenu<Container> {
|
|||
|
||||
@Override
|
||||
public boolean recipeMatches(Recipe<? super Container> recipe) {
|
||||
return recipe.matches(recipeInv, playerInventory.player.level);
|
||||
return recipe.matches(recipeInv, playerInventory.player.level());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -189,7 +189,7 @@ public class TessellatingContainer extends RecipeBookMenu<Container> {
|
|||
|
||||
@Override
|
||||
protected void checkTakeAchievements(ItemStack stack) {
|
||||
stack.onCraftedBy(this.player.level, this.player, this.removeCount);
|
||||
stack.onCraftedBy(this.player.level(), this.player, this.removeCount);
|
||||
if(this.player instanceof ServerPlayer serverPlayer && this.container instanceof TesselatingLoomBlockEntity container) container.awardUsedRecipesAndPopExperience(serverPlayer);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,7 +19,7 @@ public class TwoPillarsGateway extends SchematicGateway {
|
|||
//Check that the block is supported by an opaque block.
|
||||
//This prevents us from building over a cliff, on the peak of a mountain,
|
||||
//or the surface of the ocean or a frozen lake.
|
||||
if (world.getBlockState(pos.offset(xc, -1, zc)).getMaterial().isSolid()) {
|
||||
if (world.getBlockState(pos.offset(xc, -1, zc)).isSolid()) {
|
||||
//Randomly choose whether to place bricks or not. The math is designed so that the
|
||||
//chances of placing a block decrease as we get farther from the gateway's center.
|
||||
int i = Math.abs(xc) + Math.abs(zc);
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
"WorldMixin",
|
||||
"accessor.BlockEntityTypeAccessor",
|
||||
"accessor.ChunkGeneratorAccessor",
|
||||
"accessor.CraftingInventoryAccessor",
|
||||
"accessor.DefaultParticleTypeAccessor",
|
||||
"accessor.DirectionAccessor",
|
||||
"accessor.EntityAccessor",
|
||||
|
|
|
@ -42,3 +42,5 @@ accessible class net/minecraft/core/particles/SimpleParticleType
|
|||
|
||||
accessible class net/minecraft/world/level/levelgen/structure/structures/NetherFortressPieces$NetherBridgePiece
|
||||
accessible class net/minecraft/world/level/levelgen/structure/structures/NetherFortressPieces$PieceWeight
|
||||
|
||||
accessible method net/minecraft/world/level/block/DoorBlock playSound (Lnet/minecraft/world/entity/Entity;Lnet/minecraft/world/level/Level;Lnet/minecraft/core/BlockPos;Z)V
|
|
@ -164,7 +164,7 @@ public class RelativeBlockSample implements BlockGetter, LevelWriter {
|
|||
int sectionY = chunk.getSectionIndex(blockPos.getY());
|
||||
LevelChunkSection section = sections[sectionY];
|
||||
if (section == null) {
|
||||
section = new LevelChunkSection(sectionY, world.registryAccess().registryOrThrow(Registries.BIOME));
|
||||
section = new LevelChunkSection(world.registryAccess().registryOrThrow(Registries.BIOME));
|
||||
sections[sectionY] = section;
|
||||
}
|
||||
if(section.getBlockState(x, y, z).isAir()) {
|
||||
|
|
|
@ -49,7 +49,7 @@ dependencies {
|
|||
modApi "net.fabricmc.fabric-api:fabric-api:${rootProject.fabric_api_version}"
|
||||
// Remove the next line if you don't want to depend on the API
|
||||
modApi "dev.architectury:architectury-fabric:${rootProject.architectury_version}"
|
||||
modApi "me.shedaniel.cloth:cloth-config-fabric:10.1.105"
|
||||
modApi "me.shedaniel.cloth:cloth-config-fabric:${rootProject.cloth_config}"
|
||||
|
||||
includeCompile("curse.maven:cardinal-components-base-${project.project.cardinal_components}:${project.cardinal_components_base}")
|
||||
includeCompile("curse.maven:cardinal-components-item-${project.project.cardinal_components}:${project.cardinal_components_item}")
|
||||
|
@ -66,10 +66,10 @@ dependencies {
|
|||
includeCompile "com.github.Chocohead:Fabric-ASM:v2.3"
|
||||
|
||||
modApi "mcp.mobius.waila:wthit:fabric-${wthitVersion}"
|
||||
modApi "lol.bai:badpackets:fabric-0.2.0"
|
||||
modApi "com.sk89q.worldedit:worldedit-fabric-mc${rootProject.minecraft_version}:${rootProject.worldedit}"
|
||||
// modApi "lol.bai:badpackets:fabric-4.2.0"
|
||||
modApi "com.sk89q.worldedit:worldedit-fabric-mc${rootProject.world_edit_minecraft_version}:${rootProject.worldedit}"
|
||||
modApi "mcp.mobius.waila:wthit:fabric-${wthitVersion}"
|
||||
modApi "com.terraformersmc:modmenu:6.3.1"
|
||||
modApi "com.terraformersmc:modmenu:7.2.2"
|
||||
|
||||
// modRuntimeOnly "me.shedaniel:RoughlyEnoughItems-fabric:$rei_version"
|
||||
// modCompileOnly "me.shedaniel:RoughlyEnoughItems-api-fabric:$rei_version"
|
||||
|
|
|
@ -59,12 +59,12 @@ public class AdvancementTab implements Consumer<Consumer<Advancement>> {
|
|||
.save(advancementConsumer, "dimdoors:dimdoors/string_theory");
|
||||
Advancement holeInTheSky = Advancement.Builder.advancement()
|
||||
.display(makeDisplay(ModItems.RIFT_CONFIGURATION_TOOL.get(), "hole_in_the_sky"))
|
||||
.addCriterion("encounter_rift", new RiftTrackedCriterion.Conditions(EntityPredicate.Composite.ANY))
|
||||
.addCriterion("encounter_rift", new RiftTrackedCriterion.Conditions(ContextAwarePredicate.ANY))
|
||||
.parent(root)
|
||||
.save(advancementConsumer, "dimdoors:dimdoors/hole_in_the_sky");
|
||||
Advancement darkOstiology = Advancement.Builder.advancement()
|
||||
.display(makeDisplay(BuiltInRegistries.BLOCK.get(new ResourceLocation("dimdoors:block_ag_dim_minecraft_oak_door")), "dark_ostiology"))
|
||||
.addCriterion("place_door", PlacedBlockTrigger.TriggerInstance.placedBlock(BuiltInRegistries.BLOCK.get(new ResourceLocation("dimdoors:block_ag_dim_minecraft_oak_door"))))
|
||||
.addCriterion("place_door", EnterBlockTrigger.TriggerInstance.entersBlock(BuiltInRegistries.BLOCK.get(new ResourceLocation("dimdoors:block_ag_dim_minecraft_oak_door"))))
|
||||
.parent(holeInTheSky)
|
||||
.save(advancementConsumer, "dimdoors:dimdoors/dark_ostiology");
|
||||
Advancement.Builder.advancement()
|
||||
|
@ -79,7 +79,7 @@ public class AdvancementTab implements Consumer<Consumer<Advancement>> {
|
|||
.save(advancementConsumer, "dimdoors:dimdoors/home_away_from_home");
|
||||
Advancement.Builder.advancement()
|
||||
.display(makeDisplay(Blocks.RESPAWN_ANCHOR, "out_of_time"))
|
||||
.addCriterion("spawn", new PocketSpawnPointSetCondition.Conditions(EntityPredicate.Composite.ANY))
|
||||
.addCriterion("spawn", new PocketSpawnPointSetCondition.Conditions(ContextAwarePredicate.ANY))
|
||||
.parent(darkOstiology)
|
||||
.save(advancementConsumer, "dimdoors:dimdoors/out_of_time");
|
||||
Advancement doorToAdventure = Advancement.Builder.advancement()
|
||||
|
|
|
@ -31,7 +31,7 @@ dependencies {
|
|||
forge "net.minecraftforge:forge:${rootProject.forge_version}"
|
||||
// Remove the next line if you don't want to depend on the API
|
||||
modApi "dev.architectury:architectury-forge:${rootProject.architectury_version}"
|
||||
modApi "me.shedaniel.cloth:cloth-config-forge:10.1.105"
|
||||
modApi "me.shedaniel.cloth:cloth-config-forge:${rootProject.cloth_config}"
|
||||
common(project(path: ":common", configuration: "namedElements")) { transitive false }
|
||||
shadowCommon(project(path: ":common", configuration: "transformProductionForge")) { transitive = false }
|
||||
|
||||
|
@ -41,8 +41,8 @@ dependencies {
|
|||
|
||||
modApi "mcp.mobius.waila:wthit-api:forge-${wthitVersion}"
|
||||
modApi "mcp.mobius.waila:wthit:forge-${wthitVersion}"
|
||||
modApi "lol.bai:badpackets:forge-0.2.0"
|
||||
modApi "com.sk89q.worldedit:worldedit-forge-mc${rootProject.minecraft_version}:${rootProject.worldedit}"
|
||||
// modApi "lol.bai:badpackets:forge-0.4.2"
|
||||
modApi "com.sk89q.worldedit:worldedit-forge-mc${rootProject.world_edit_minecraft_version}:${rootProject.worldedit}"
|
||||
|
||||
// modRuntimeOnly "me.shedaniel:RoughlyEnoughItems-forge:$rei_version"
|
||||
// modCompileOnly "me.shedaniel:RoughlyEnoughItems-api-forge:$rei_version"
|
||||
|
|
|
@ -1,33 +1,33 @@
|
|||
org.gradle.jvmargs=-Xmx4096M
|
||||
|
||||
minecraft_version=1.19.4
|
||||
minecraft_version=1.20.1
|
||||
enabled_platforms=fabric,forge
|
||||
|
||||
archives_base_name=dimdoors
|
||||
mod_version=5.2.0
|
||||
maven_group=org.dimdev
|
||||
|
||||
architectury_version=8.2.89
|
||||
architectury_version=9.1.12
|
||||
|
||||
fabric_loader_version=0.14.22
|
||||
fabric_api_version=0.86.1+1.19.4
|
||||
fabric_api_version=0.89.0+1.20.1
|
||||
|
||||
forge_version=1.19.4-45.1.0
|
||||
forge_version=1.20.1-47.2.1
|
||||
|
||||
parchment=2023.06.26
|
||||
|
||||
cardinal_components_version=5.1.0
|
||||
|
||||
wthitVersion=7.4.0
|
||||
|
||||
worldedit=7.3.0-SNAPSHOT
|
||||
parchment=2023.09.03
|
||||
|
||||
cardinal_components=318449
|
||||
cardinal_components_base=4160617
|
||||
cardinal_components_item=4160621
|
||||
cardinal_components_entity=4160620
|
||||
cardinal_components_level=4160622
|
||||
cardinal_components_world=4160624
|
||||
cardinal_components_chunk=4160619
|
||||
|
||||
rei_version=11.0.644
|
||||
cardinal_components_base=4547792
|
||||
cardinal_components_item=4547796
|
||||
cardinal_components_world=4547799
|
||||
cardinal_components_chunk=4547794
|
||||
|
||||
wthitVersion=8.4.0
|
||||
|
||||
world_edit_minecraft_version=1.20
|
||||
worldedit=7.3.0-SNAPSHOT
|
||||
|
||||
rei_version=12.0.665
|
||||
|
||||
cloth_config=11.1.106
|
Loading…
Reference in a new issue