net.minecraft.world.World.getCapability()方法的使用及代码示例

x33g5p2x  于2022-02-02 转载在 其他  
字(10.7k)|赞(0)|评价(0)|浏览(125)

本文整理了Java中net.minecraft.world.World.getCapability()方法的一些代码示例,展示了World.getCapability()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。World.getCapability()方法的具体详情如下:
包路径:net.minecraft.world.World
类名称:World
方法名:getCapability

World.getCapability介绍

暂无

代码示例

代码示例来源:origin: AppliedEnergistics/Applied-Energistics-2

@Override
public ISpatialDimension getSpatialDimension()
{
  final int id = AppEng.instance().getStorageDimensionID();
  World w = DimensionManager.getWorld( id );
  if( w == null )
  {
    DimensionManager.initDimension( id );
    w = DimensionManager.getWorld( id );
  }
  if( w != null && w.hasCapability( Capabilities.SPATIAL_DIMENSION, null ) )
  {
    return w.getCapability( Capabilities.SPATIAL_DIMENSION, null );
  }
  return null;
}

代码示例来源:origin: gegy1000/Terrarium

public final TerrariumWorldData getWorldData(World world) {
  TerrariumWorldData worldData = world.getCapability(TerrariumCapabilities.worldDataCapability, null);
  if (worldData == null) {
    throw new IllegalStateException("Terrarium world capability not yet present");
  }
  return worldData;
}

代码示例来源:origin: SleepyTrousers/EnderIO

@Override
public <T> T getCapability(@Nonnull Capability<T> capability, @Nullable EnumFacing facing) {
 return wrapped.getCapability(capability, facing);
}

代码示例来源:origin: gegy1000/Terrarium

public WorldCap(World world, Function<TerrariumWorldData, T> function) {
    super(() -> {
      TerrariumWorldData capability = world.getCapability(TerrariumCapabilities.worldDataCapability, null);
      if (capability != null) {
        return function.apply(capability);
      }
      throw new IllegalStateException("Tried to get world capability before it was present");
    });
  }
}

代码示例来源:origin: amadornes/MCMultiPart

@Override
public <T> T getCapability(Capability<T> capability, EnumFacing facing) {
  return getActualWorld().getCapability(capability, facing);
}

代码示例来源:origin: ldtteam/minecolonies

/**
 * Get all colonies in this world.
 *
 * @param w World.
 * @return a list of colonies.
 */
@NotNull
public static List<Colony> getColonies(@NotNull final World w)
{
  final IColonyManagerCapability cap = w.getCapability(COLONY_MANAGER_CAP, null);
  if (cap == null)
  {
    Log.getLogger().warn(MISSING_WORLD_CAP_MESSAGE);
    return Collections.emptyList();
  }
  return cap.getColonies();
}

代码示例来源:origin: ldtteam/minecolonies

/**
 * Get Colony by UUID.
 *
 * @param id ID of colony.
 * @return Colony with given ID.
 */
@Nullable
public static Colony getColonyByWorld(final int id, final World world)
{
  final IColonyManagerCapability cap = world.getCapability(COLONY_MANAGER_CAP, null);
  if (cap == null)
  {
    Log.getLogger().warn(MISSING_WORLD_CAP_MESSAGE);
    return null;
  }
  return cap.getColony(id);
}

代码示例来源:origin: gegy1000/Terrarium

public ComposableBiomeProvider(World world) {
  this.world = world;
  this.regionHandler = new Lazy<>(() -> {
    TerrariumWorldData capability = this.world.getCapability(TerrariumCapabilities.worldDataCapability, null);
    if (capability != null) {
      return capability.getRegionHandler();
    }
    throw new IllegalStateException("Tried to load RegionGenerationHandler before it was present");
  });
  this.compositionProcedure = new Lazy.WorldCap<>(world, TerrariumWorldData::getCompositionProcedure);
}

代码示例来源:origin: ldtteam/minecolonies

/**
 * Get all colonies in all worlds.
 *
 * @return a list of colonies.
 */
@NotNull
public static List<Colony> getAllColonies()
{
  final List<Colony> allColonies = new ArrayList<>();
  for (final World world : FMLCommonHandler.instance().getMinecraftServerInstance().worlds)
  {
    final IColonyManagerCapability cap = world.getCapability(COLONY_MANAGER_CAP, null);
    if (cap != null)
    {
      allColonies.addAll(cap.getColonies());
    }
  }
  return allColonies;
}

代码示例来源:origin: gegy1000/Terrarium

public ComposableChunkGenerator(World world) {
  this.world = world;
  this.random = new Random(world.getWorldInfo().getSeed());
  this.compositionProcedure = new Lazy.WorldCap<>(world, TerrariumWorldData::getCompositionProcedure);
  this.regionHandler = new Lazy<>(() -> {
    TerrariumWorldData capability = this.world.getCapability(TerrariumCapabilities.worldDataCapability, null);
    if (capability != null) {
      return capability.getRegionHandler();
    }
    throw new IllegalStateException("Tried to load RegionGenerationHandler before it was present");
  });
}

代码示例来源:origin: gegy1000/Terrarium

@Nullable
  @Override
  public State update(World world, EntityPlayer player) {
    EarthCapability earthData = world.getCapability(TerrariumEarth.earthCap, null);
    if (earthData != null) {
      double blockX = earthData.getX(this.latitude, this.longitude);
      double blockZ = earthData.getZ(this.latitude, this.longitude);
      double deltaX = player.posX - blockX;
      double deltaZ = player.posZ - blockZ;
      if (deltaX * deltaX + deltaZ * deltaZ < IMMERSION_MIN_DISTANCE) {
        return new Immersed(this.id, blockX, player.posY, blockZ);
      }
      return this;
    }
    return null;
  }
}

代码示例来源:origin: TeamWizardry/Wizardry

public static WizardryWorld get(World world) {
  WizardryWorld cap = world.getCapability(capability(), null);
  if (cap == null) {
    throw new IllegalStateException("Missing capability: " + world.getWorldInfo().getWorldName() + "/" + world.provider.getDimensionType().getName());
  }
  return cap;
}

代码示例来源:origin: ldtteam/minecolonies

/**
 * Get Colony by UUID.
 *
 * @param id ID of colony.
 * @return Colony with given ID.
 */
@Nullable
public static Colony getColonyByDimension(final int id, final int dimension)
{
  final World world = FMLCommonHandler.instance().getMinecraftServerInstance().getWorld(dimension);
  final IColonyManagerCapability cap = world.getCapability(COLONY_MANAGER_CAP, null);
  if (cap == null)
  {
    Log.getLogger().warn(MISSING_WORLD_CAP_MESSAGE);
    return null;
  }
  return cap.getColony(id);
}

代码示例来源:origin: ldtteam/minecolonies

/**
 * check if a position is too close to another colony.
 *
 * @param w   World.
 * @param pos coordinates.
 * @return true if so.
 */
public static boolean isTooCloseToColony(@NotNull final World w, @NotNull final BlockPos pos)
{
  final IChunkmanagerCapability worldCapability = w.getCapability(CHUNK_STORAGE_UPDATE_CAP, null);
  if (worldCapability == null)
  {
    return true;
  }
  final Chunk centralChunk = w.getChunk(pos);
  final IColonyTagCapability colonyCap = centralChunk.getCapability(CLOSE_COLONY_CAP, null);
  if (colonyCap == null)
  {
    return true;
  }
  final ChunkLoadStorage storage = worldCapability.getChunkStorage(centralChunk.x, centralChunk.z);
  if (storage != null)
  {
    storage.applyToCap(colonyCap);
  }
  return !colonyCap.getAllCloseColonies().isEmpty();
}

代码示例来源:origin: ldtteam/minecolonies

/**
 * Load the colony info for a certain chunk.
 * @param chunk the chunk.
 * @param world the worldg to.
 */
public static void loadChunk(final Chunk chunk, final World world)
{
  final IColonyManagerCapability cap = world.getCapability(COLONY_MANAGER_CAP, null);
  if (cap == null)
  {
    return;
  }
  //todo get world cap to get chunksToLoad and decrease it!
  if(cap.getMissingChunksToLoad() > 0)
  {
    final IChunkmanagerCapability chunkManager = world.getCapability(CHUNK_STORAGE_UPDATE_CAP, null);
    if (chunkManager == null)
    {
      Log.getLogger().error(UNABLE_TO_FIND_WORLD_CAP_TEXT);
      return;
    }
    final ChunkLoadStorage existingStorage = chunkManager.getChunkStorage(chunk.x, chunk.z);
    if(existingStorage != null)
    {
      addStorageToChunk(chunk, existingStorage);
      cap.setMissingChunksToLoad(cap.getMissingChunksToLoad()-1);
    }
  }
}

代码示例来源:origin: ldtteam/minecolonies

/**
   * Get the top colony id of all colonies.
   *
   * @return the top id.
   */
  public static int getTopColonyId()
  {
    int top = 0;
    for (final World world : FMLCommonHandler.instance().getMinecraftServerInstance().worlds)
    {
      final IColonyManagerCapability cap = world.getCapability(COLONY_MANAGER_CAP, null);
      if (cap != null)
      {
        final int tempTop = cap.getTopID();
        if (tempTop > top)
        {
          top = tempTop;
        }
      }
    }
    return top;
  }
}

代码示例来源:origin: gegy1000/Terrarium

public static void provideSettings(World world, GenerationSettings settings) {
  providedSettings = settings;
  if (world == null || !(world.getWorldType() instanceof TerrariumWorldType)) {
    return;
  }
  TerrariumExternalCapProvider external = world.getCapability(TerrariumCapabilities.externalProviderCapability, null);
  if (external == null) {
    return;
  }
  TerrariumWorldType worldType = (TerrariumWorldType) world.getWorldType();
  Collection<ICapabilityProvider> capabilities = worldType.createCapabilities(world, providedSettings);
  for (ICapabilityProvider provider : capabilities) {
    external.addExternal(provider);
  }
}

代码示例来源:origin: gegy1000/Terrarium

@Override
public void execute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException {
  Entity entity = getTeleportedEntity(server, sender, args);
  EarthCapability earthData = entity.world.getCapability(TerrariumEarth.earthCap, null);
  if (earthData != null) {
    String argument = String.join(" ", args).replace(',', ' ');
    String[] locationInput = argument.split("\\s+");
    Thread thread = new Thread(() -> {
      try {
        CommandLocation location = this.parseLocation(sender, locationInput);
        this.teleport(entity, location.getCoordinate(sender, earthData));
      } catch (CommandException e) {
        TextComponentTranslation message = new TextComponentTranslation(e.getMessage(), e.getErrorObjects());
        message.getStyle().setColor(TextFormatting.RED);
        sender.sendMessage(message);
      }
    });
    thread.setDaemon(true);
    thread.start();
  } else {
    throw DeferredTranslator.createException(entity, "commands.earth.wrong_world");
  }
}

代码示例来源:origin: gegy1000/Terrarium

@Override
public void displayPanorama() {
  Minecraft mc = Minecraft.getMinecraft();
  World world = mc.world;
  EarthCapability earthData = world.getCapability(TerrariumEarth.earthCap, null);
  if (earthData != null) {
    EntityPlayer player = mc.player;
    player.sendStatusMessage(new TextComponentTranslation("status.earth.panorama.searching"), true);
    double latitude = earthData.getLatitude(player.posX, player.posZ);
    double longitude = earthData.getLongitude(player.posX, player.posZ);
    Thread thread = new Thread(() -> {
      try {
        PanoramaLookupHandler.Result result = PanoramaLookupHandler.queryPanorama(latitude, longitude);
        if (result != null) {
          Minecraft.getMinecraft().addScheduledTask(() -> this.setPanoramaState(earthData, player, result));
        } else {
          player.sendStatusMessage(new TextComponentTranslation("status.earth.panorama.none_found"), true);
        }
      } catch (Exception e) {
        TerrariumEarth.LOGGER.error("Failed to lookup panorama", e);
        player.sendStatusMessage(new TextComponentTranslation("status.earth.panorama.error"), true);
      }
    });
    thread.setDaemon(true);
    thread.setName("Panorama Lookup");
    thread.start();
  }
}

代码示例来源:origin: gegy1000/Terrarium

@Override
public void execute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException {
  EntityPlayerMP player = CommandBase.getCommandSenderAsPlayer(sender);
  EarthCapability earthData = player.world.getCapability(TerrariumEarth.earthCap, null);
  if (earthData != null) {
    ContainerUi.Builder builder = ContainerUi.builder(player)
        .withTitle(DeferredTranslator.translate(player, new TextComponentTranslation("container.earth.geotool.name")))
        .withElement(Items.COMPASS, TextFormatting.BOLD + "Where am I?", () -> this.handleLocate(player, earthData));
    if (TerrariumHandshakeTracker.isFriendly(player)) {
      builder = builder
          .withElement(Items.ENDER_PEARL, TextFormatting.BOLD + "Go to place", () -> this.handleTeleport(player, earthData))
          .withElement(Items.PAINTING, TextFormatting.BOLD + "Display Panorama", () -> this.handlePanorama(player));
    }
    ContainerUi ui = builder.build();
    player.displayGUIChest(ui.createInventory());
  } else {
    throw DeferredTranslator.createException(player, "commands.earth.wrong_world");
  }
}

相关文章

微信公众号

最新文章

更多

World类方法