类net.minecraft.world.dimension.DimensionType源码实例Demo

下面列出了怎么用net.minecraft.world.dimension.DimensionType的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: the-hallow   文件: HallowCharmItem.java
@Override
public ActionResult useOnBlock(ItemUsageContext context) {
	PlayerEntity player = context.getPlayer();
	if (context.getWorld().isClient) return ActionResult.PASS;
	BlockState state = context.getWorld().getBlockState(context.getBlockPos());
	if(state.getBlock() == HallowedBlocks.HALLOWED_GATE) {
		if (context.getWorld().getDimension().getType() == DimensionType.OVERWORLD) {
			if (HallowedGateBlock.isValid(context.getWorld(), context.getBlockPos(), state)) {
				BlockPos pos = player.getBlockPos();
				CompoundTag tag = new CompoundTag();
				tag.putInt("x", pos.getX());
				tag.putInt("y", pos.getY());
				tag.putInt("z", pos.getZ());
				context.getStack().putSubTag("PortalLoc", tag);
				FabricDimensions.teleport(player, HallowedDimensions.THE_HALLOW);
				return ActionResult.SUCCESS;
			} else {
				player.addChatMessage(new TranslatableText("text.thehallow.gate_incomplete"), true);
			}
		} else {
			player.addChatMessage(new TranslatableText("text.thehallow.gate_in_wrong_dimension"), true);
		}
	}
	return ActionResult.PASS;
}
 
源代码2 项目: fabric-carpet   文件: CarpetEventServer.java
@Override
public void onDimensionChange(ServerPlayerEntity player, Vec3d from, Vec3d to, DimensionType fromDim, DimensionType dimTo)
{
    // eligibility already checked in mixin
    Value fromValue = ListValue.fromTriple(from.x, from.y, from.z);
    Value toValue = (to == null)?Value.NULL:ListValue.fromTriple(to.x, to.y, to.z);
    Value fromDimStr = new StringValue(NBTSerializableValue.nameFromRegistryId(Registry.DIMENSION_TYPE.getId(fromDim)));
    Value toDimStr = new StringValue(NBTSerializableValue.nameFromRegistryId(Registry.DIMENSION_TYPE.getId(dimTo)));

    handler.call( () -> Arrays.asList(
            ((c, t) -> new EntityValue(player)),
            ((c, t) -> fromValue),
            ((c, t) -> fromDimStr),
            ((c, t) -> toValue),
            ((c, t) -> toDimStr)
    ), player::getCommandSource);
}
 
源代码3 项目: fabric-carpet   文件: CarpetSettings.java
@Override public Integer validate(ServerCommandSource source, ParsedRule<Integer> currentRule, Integer newValue, String string) {
    if (source == null) return newValue;
    if (newValue < 0 || newValue > 32)
    {
        Messenger.m(source, "r spawn chunk size has to be between 0 and 32");
        return null;
    }
    if (currentRule.get().intValue() == newValue.intValue())
    {
        //must been some startup thing
        return newValue;
    }
    if (CarpetServer.minecraft_server == null) return newValue;
    ServerWorld currentOverworld = CarpetServer.minecraft_server.getWorld(DimensionType.OVERWORLD);
    if (currentOverworld != null)
    {
        changeSpawnSize(newValue);
    }
    return newValue;
}
 
源代码4 项目: fabric-carpet   文件: SpawnReporter.java
public static void registerSpawn(DimensionType dim, MobEntity mob, EntityCategory cat, BlockPos pos)
{
    if (lower_spawning_limit != null)
    {
        if (!( (lower_spawning_limit.getX() <= pos.getX() && pos.getX() <= upper_spawning_limit.getX()) &&
             (lower_spawning_limit.getY() <= pos.getY() && pos.getY() <= upper_spawning_limit.getY()) && 
             (lower_spawning_limit.getZ() <= pos.getZ() && pos.getZ() <= upper_spawning_limit.getZ())
           ))
        {
            return;
        }
    }
    Pair<DimensionType, EntityCategory> key = Pair.of(mob.dimension, cat);
    long count = spawn_stats.get(key).getOrDefault(mob.getType(), 0L);
    spawn_stats.get(key).put(mob.getType(), count + 1);
    spawned_mobs.get(key).put(Pair.of(mob.getType(), pos));
    local_spawns.put(cat, local_spawns.get(cat)+1);
}
 
源代码5 项目: multiconnect   文件: Protocol_1_15_2.java
private static Identifier dimensionIdToName(int dimensionId) {
    switch (dimensionId) {
        case -1:
            return DimensionType.THE_NETHER_REGISTRY_KEY.getValue();
        case 1:
            return DimensionType.THE_END_REGISTRY_KEY.getValue();
        case 0:
        default:
            return DimensionType.OVERWORLD_REGISTRY_KEY.getValue();
    }
}
 
源代码6 项目: patchwork-api   文件: PacketDistributor.java
/**
 * A target point that excludes the provided player entity.
 */
public TargetPoint(final ServerPlayerEntity excluded, final double x, final double y, final double z, final double radius, final DimensionType dim) {
	this.excluded = excluded;
	this.x = x;
	this.y = y;
	this.z = z;
	this.radius = radius;
	this.dim = dim;
}
 
源代码7 项目: patchwork-api   文件: PacketDistributor.java
/**
 * A target point that does not exclude any entities.
 */
public TargetPoint(final double x, final double y, final double z, final double radius, final DimensionType dim) {
	this.excluded = null;
	this.x = x;
	this.y = y;
	this.z = z;
	this.radius = radius;
	this.dim = dim;
}
 
源代码8 项目: patchwork-api   文件: MixinMinecraftServer.java
@Redirect(method = "createWorlds", at = @At(value = "INVOKE", target = "java/util/Iterator.next ()Ljava/lang/Object;"))
private Object proxyNextWorldToSpecialCaseOverworld(Iterator<DimensionType> iterator) {
	DimensionType type = iterator.next();

	if (type == DimensionType.OVERWORLD) {
		WorldEvents.onWorldLoad(this.worlds.get(type));
	}

	return type;
}
 
源代码9 项目: fabric-carpet   文件: HopperCounter.java
public void add(MinecraftServer server, ItemStack stack)
{
    if (startTick == 0)
    {
        startTick = server.getWorld(DimensionType.OVERWORLD).getTime();
        startMillis = System.currentTimeMillis();
    }
    Item item = stack.getItem();
    counter.put(item, counter.getLong(item) + stack.getCount());
    // pubSubProvider.publish();
}
 
源代码10 项目: fabric-carpet   文件: HopperCounter.java
public void reset(MinecraftServer server)
{
    counter.clear();
    startTick = server.getWorld(DimensionType.OVERWORLD).getTime();
    startMillis = System.currentTimeMillis();
    // pubSubProvider.publish();
}
 
源代码11 项目: fabric-carpet   文件: CarpetEventServer.java
@Override
public void onTick()
{
    handler.call(Collections::emptyList, () ->
            CarpetServer.minecraft_server.getCommandSource().
                    withWorld(CarpetServer.minecraft_server.getWorld(DimensionType.OVERWORLD))
    );
}
 
源代码12 项目: fabric-carpet   文件: CarpetEventServer.java
@Override
public void onTick()
{
    handler.call(Collections::emptyList, () ->
            CarpetServer.minecraft_server.getCommandSource().
                    withWorld(CarpetServer.minecraft_server.getWorld(DimensionType.THE_NETHER))
    );
}
 
源代码13 项目: fabric-carpet   文件: CarpetEventServer.java
@Override
public void onTick()
{
    handler.call(Collections::emptyList, () ->
            CarpetServer.minecraft_server.getCommandSource().
                    withWorld(CarpetServer.minecraft_server.getWorld(DimensionType.THE_END))
    );
}
 
源代码14 项目: fabric-carpet   文件: ShapeDispatcher.java
@Override
public Value validate(Map<String, Value> options, CarpetContext cc, Value value)
{
    String dimStr = value.getString();
    Optional<DimensionType> dimOp = Registry.DIMENSION_TYPE.getOrEmpty(new Identifier(dimStr));
    if (!dimOp.isPresent()) throw new InternalExpressionException("Unknown dimension "+dimStr);
    return value;
}
 
源代码15 项目: fabric-carpet   文件: ShapesRenderer.java
public void addShape(CompoundTag tag)
{
    ShapeDispatcher.ExpiringShape shape = ShapeDispatcher.fromTag(tag);
    if (shape == null) return;
    BiFunction<MinecraftClient, ShapeDispatcher.ExpiringShape, RenderedShape<? extends ShapeDispatcher.ExpiringShape >> shapeFactory;
    shapeFactory = renderedShapes.get(tag.getString("shape"));
    if (shapeFactory == null)
    {
        CarpetSettings.LOG.info("Unrecognized shape: "+tag.getString("shape"));
    }
    else
    {
        RenderedShape<?> rshape = shapeFactory.apply(client, shape);
        DimensionType dim = shape.shapeDimension;
        long key = rshape.key();
        synchronized (shapes)
        {
            RenderedShape<?> existing = shapes.computeIfAbsent(dim, d -> new Long2ObjectOpenHashMap<>()).get(key);
            if (existing != null)
            {   // promoting previous shape
                existing.expiryTick = rshape.expiryTick;
            }
            else
            {
                shapes.get(dim).put(key, rshape);
            }
        }
    }
}
 
源代码16 项目: fabric-carpet   文件: ShapesRenderer.java
public boolean shouldRender(DimensionType dim)
{
    if (shape.followEntity <=0 ) return true;
    if (client.world == null) return false;
    if (client.world.getEntityById(shape.followEntity) == null) return false;
    return true;
}
 
源代码17 项目: fabric-carpet   文件: CarpetSettings.java
public static void changeSpawnSize(int size)
{
    ServerWorld overworld = CarpetServer.minecraft_server.getWorld(DimensionType.OVERWORLD);
    if (overworld != null) {
        ChunkPos centerChunk = new ChunkPos(new BlockPos(
                overworld.getLevelProperties().getSpawnX(),
                overworld.getLevelProperties().getSpawnY(),
                overworld.getLevelProperties().getSpawnZ()
        ));
        SpawnChunks.changeSpawnChunks(overworld.getChunkManager(), centerChunk, size);
    }
}
 
源代码18 项目: fabric-carpet   文件: SpawnReporter.java
public static void reset_spawn_stats(boolean full)
{

    spawn_stats.clear();
    spawned_mobs.clear();
    for (EntityCategory enumcreaturetype : EntityCategory.values())
    {
        if (full)
        {
            spawn_tries.put(enumcreaturetype, 1);
        }
        for (DimensionType dim : DimensionType.getAll())
        {
            Pair<DimensionType, EntityCategory> key = Pair.of(dim, enumcreaturetype);
            overall_spawn_ticks.put(key, 0L);
            spawn_attempts.put(key, 0L);
            spawn_ticks_full.put(key, 0L);
            spawn_ticks_fail.put(key, 0L);
            spawn_ticks_succ.put(key, 0L);
            spawn_ticks_spawns.put(key, 0L);
            spawn_cap_count.put(key, 0L);
            spawn_stats.put(key, new Object2LongOpenHashMap<>());
            spawned_mobs.put(key, new EvictingQueue<>());
        }
    }
    track_spawns = 0L;
}
 
@Inject(method = "changeDimension", at = @At(
        value = "INVOKE",
        target = "Lnet/minecraft/entity/Entity;getLastNetherPortalDirection()Lnet/minecraft/util/math/Direction;"
))
private void registerEntityDimensionChange(DimensionType newDimension, CallbackInfoReturnable<Entity> cir)
{
    if (CarpetSettings.portalSuffocationFix)
    {
        CarpetSettings.currentTelepotingEntityBox = getBoundingBox();
        CarpetSettings.fixedPosition = null;
    }
}
 
@Inject(method = "changeDimension", at = @At("RETURN"))
private void atChangeDimension(DimensionType newDimension, CallbackInfoReturnable<Entity> cir)
{
    if (PLAYER_CHANGES_DIMENSION.isNeeded())
    {
        ServerPlayerEntity player = (ServerPlayerEntity) (Object)this;
        Vec3d to = null;
        if (!notInAnyWorld || previousDimension != DimensionType.THE_END || newDimension != DimensionType.OVERWORLD)
        {
            to = getPos();
        }
        PLAYER_CHANGES_DIMENSION.onDimensionChange(player, previousLocation, to, previousDimension, newDimension);
    }
}
 
private LegacyStructureDataUtil getLegacyStructureDataUtil() {
    if (this.legacyStructureDataUtil == null) {
        File dataFolder = new File(DimensionType.OVERWORLD.getDirectory(this.saveHandler.getWorldDirectory()), "data");
        this.legacyStructureDataUtil = LegacyStructureDataUtil.func_215130_a(dimensionId.getDimensionType(),
                new DimensionSavedDataManager(dataFolder, this.saveHandler.getFixer()));
    }
    return this.legacyStructureDataUtil;
}
 
private static DimensionId getDimensionId(PayloadReader reader, String name) {
    if (name.equals(NAME)) return reader.readDimensionId();

    int dimensionRawId = reader.readVarInt();
    DimensionType dimensionType = DimensionType.getById(dimensionRawId);
    return DimensionId.from(dimensionType);
}
 
源代码23 项目: patchwork-api   文件: PacketDistributor.java
private Consumer<Packet<?>> playerListDimConsumer(final Supplier<DimensionType> dimensionType) {
	return packet -> getServer().getPlayerManager().sendToDimension(packet, dimensionType.get());
}
 
源代码24 项目: patchwork-api   文件: PacketDistributor.java
/**
 * Helper to build a target point that does not exclude any entities.
 */
public static Supplier<TargetPoint> p(double x, double y, double z, double radius, DimensionType dim) {
	TargetPoint point = new TargetPoint(x, y, z, radius, dim);
	return () -> point;
}
 
源代码25 项目: patchwork-api   文件: MixinServerWorld.java
protected MixinServerWorld(LevelProperties levelProperties, DimensionType dimensionType, BiFunction<World, Dimension, ChunkManager> chunkManagerProvider, Profiler profiler, boolean isClient) {
	super(levelProperties, dimensionType, chunkManagerProvider, profiler, isClient);
}
 
源代码26 项目: patchwork-api   文件: MixinClientWorld.java
protected MixinClientWorld(LevelProperties levelProperties, DimensionType dimensionType, BiFunction<World, Dimension, ChunkManager> chunkManagerProvider, Profiler profiler, boolean isClient) {
	super(levelProperties, dimensionType, chunkManagerProvider, profiler, isClient);
}
 
源代码27 项目: Sandbox   文件: MixinMinecraftServer.java
@Shadow
public abstract ServerWorld getWorld(DimensionType dimensionType_1);
 
源代码28 项目: Sandbox   文件: MixinMinecraftServer.java
public World sbx$getWorld(Identity identity) {
    return (World) getWorld(DimensionType.byId(WrappingUtil.convert(identity)));
}
 
源代码29 项目: bleachhack-1.14   文件: IngameOverlay.java
public void addCoords() {
	boolean nether = Minecraft.getInstance().player.dimension == DimensionType.THE_NETHER;
	BlockPos pos = Minecraft.getInstance().player.getPosition();
			
	bottomLeftList.add("XYZ: " + (nether ? "�4" : "�b") + pos.getX() + " " + pos.getY() + " " + pos.getZ());
}
 
源代码30 项目: fabric-carpet   文件: HopperCounter.java
public List<BaseText> format(MinecraftServer server, boolean realTime, boolean brief)
{
    if (counter.isEmpty())
    {
        if (brief)
        {
            return Collections.singletonList(Messenger.c("g "+color+": -, -/h, - min "));
        }
        return Collections.singletonList(Messenger.s(String.format("No items for %s yet", color.getName())));
    }
    long total = getTotalItems();
    long ticks = Math.max(realTime ? (System.currentTimeMillis() - startMillis) / 50 : server.getWorld(DimensionType.OVERWORLD).getTime() - startTick, 1);
    if (total == 0)
    {
        if (brief)
        {
            return Collections.singletonList(Messenger.c(String.format("c %s: 0, 0/h, %.1f min ", color, ticks / (20.0 * 60.0))));
        }
        return Collections.singletonList(Messenger.c(String.format("w No items for %s yet (%.2f min.%s)",
                color.getName(), ticks / (20.0 * 60.0), (realTime ? " - real time" : "")),
                "nb  [X]", "^g reset", "!/counter " + color.getName() +" reset"));
    }
    if (brief)
    {
        return Collections.singletonList(Messenger.c(String.format("c %s: %d, %d/h, %.1f min ",
                color.getName(), total, total * (20 * 60 * 60) / ticks, ticks / (20.0 * 60.0))));
    }
    List<BaseText> items = new ArrayList<>();
    items.add(Messenger.c(String.format("w Items for %s (%.2f min.%s), total: %d, (%.1f/h):",
            color, ticks*1.0/(20*60), (realTime?" - real time":""), total, total*1.0*(20*60*60)/ticks),
            "nb [X]", "^g reset", "!/counter "+color+" reset"
    ));
    items.addAll(counter.object2LongEntrySet().stream().sorted((e, f) -> Long.compare(f.getLongValue(), e.getLongValue())).map(e ->
    {
        BaseText itemName = new TranslatableText(e.getKey().getTranslationKey());
        long count = e.getLongValue();
        return Messenger.c("w - ", itemName, String.format("w : %d, %.1f/h",
                count,
                count * (20.0 * 60.0 * 60.0) / ticks));
    }).collect(Collectors.toList()));
    return items;
}
 
 类所在包
 类方法
 同包方法