use of net.minecraft.profiler.IProfiler in project Arclight by IzzelAliz.
the class ServerChunkProviderMixin method func_217233_c.
/**
* @author IzzelAliz
* @reason
*/
@Overwrite
private CompletableFuture<Either<IChunk, ChunkHolder.IChunkLoadingError>> func_217233_c(int chunkX, int chunkZ, ChunkStatus requiredStatus, boolean load) {
ChunkPos chunkpos = new ChunkPos(chunkX, chunkZ);
long i = chunkpos.asLong();
int j = 33 + ChunkStatus.getDistance(requiredStatus);
ChunkHolder chunkholder = this.func_217213_a(i);
boolean unloading = false;
if (chunkholder != null) {
ChunkHolder.LocationType chunkStatus = ChunkHolder.getLocationTypeFromLevel(((ChunkHolderBridge) chunkholder).bridge$getOldTicketLevel());
ChunkHolder.LocationType currentStatus = ChunkHolder.getLocationTypeFromLevel(chunkholder.getChunkLevel());
unloading = chunkStatus.isAtLeast(ChunkHolder.LocationType.BORDER) && !currentStatus.isAtLeast(ChunkHolder.LocationType.BORDER);
}
if (load && !unloading) {
this.ticketManager.registerWithLevel(TicketType.UNKNOWN, chunkpos, j, chunkpos);
if (this.func_217224_a(chunkholder, j)) {
IProfiler iprofiler = this.world.getProfiler();
iprofiler.startSection("chunkLoad");
this.func_217235_l();
chunkholder = this.func_217213_a(i);
iprofiler.endSection();
if (this.func_217224_a(chunkholder, j)) {
throw new IllegalStateException("No chunk holder after ticket has been added");
}
}
}
return this.func_217224_a(chunkholder, j) ? ChunkHolder.MISSING_CHUNK_FUTURE : chunkholder.func_219276_a(requiredStatus, this.chunkManager);
}
use of net.minecraft.profiler.IProfiler in project Arclight by IzzelAliz.
the class RecipeManagerMixin method apply.
// @formatter:on
/**
* @author IzzelAluz
* @reason
*/
@Overwrite
@SuppressWarnings("unchecked")
protected void apply(Map<ResourceLocation, JsonObject> splashList, IResourceManager resourceManagerIn, IProfiler profilerIn) {
this.someRecipesErrored = false;
Map<IRecipeType<?>, Object2ObjectLinkedOpenHashMap<ResourceLocation, IRecipe<?>>> map = Maps.newHashMap();
for (IRecipeType<?> type : Registry.RECIPE_TYPE) {
map.put(type, new Object2ObjectLinkedOpenHashMap<>());
}
for (Map.Entry<ResourceLocation, JsonObject> entry : splashList.entrySet()) {
ResourceLocation resourcelocation = entry.getKey();
if (resourcelocation.getPath().startsWith("_"))
// Forge: filter anything beginning with "_" as it's used for metadata.
continue;
try {
if (!CraftingHelper.processConditions(entry.getValue(), "conditions")) {
LOGGER.info("Skipping loading recipe {} as it's conditions were not met", resourcelocation);
continue;
}
IRecipe<?> irecipe = deserializeRecipe(resourcelocation, entry.getValue());
if (irecipe == null) {
LOGGER.info("Skipping loading recipe {} as it's serializer returned null", resourcelocation);
continue;
}
map.computeIfAbsent(irecipe.getType(), (p_223391_0_) -> new Object2ObjectLinkedOpenHashMap<>()).putAndMoveToFirst(resourcelocation, irecipe);
} catch (IllegalArgumentException | JsonParseException jsonparseexception) {
LOGGER.error("Parsing error loading recipe {}", resourcelocation, jsonparseexception);
}
}
this.recipes = (Map) map;
LOGGER.info("Loaded {} recipes", (int) map.size());
}
use of net.minecraft.profiler.IProfiler in project Mekanism by mekanism.
the class RenderTickHandler method onBlockHover.
@SubscribeEvent
public void onBlockHover(DrawHighlightEvent.HighlightBlock event) {
PlayerEntity player = minecraft.player;
if (player == null) {
return;
}
BlockRayTraceResult rayTraceResult = event.getTarget();
if (!rayTraceResult.getType().equals(Type.MISS)) {
World world = player.getCommandSenderWorld();
BlockPos pos = rayTraceResult.getBlockPos();
IRenderTypeBuffer renderer = event.getBuffers();
ActiveRenderInfo info = event.getInfo();
MatrixStack matrix = event.getMatrix();
IProfiler profiler = world.getProfiler();
BlockState blockState = world.getBlockState(pos);
boolean shouldCancel = false;
profiler.push(ProfilerConstants.MEKANISM_OUTLINE);
if (!blockState.isAir(world, pos) && world.getWorldBorder().isWithinBounds(pos)) {
BlockPos actualPos = pos;
BlockState actualState = blockState;
if (blockState.getBlock() instanceof BlockBounding) {
TileEntityBoundingBlock tile = WorldUtils.getTileEntity(TileEntityBoundingBlock.class, world, pos);
if (tile != null) {
actualPos = tile.getMainPos();
actualState = world.getBlockState(actualPos);
}
}
AttributeCustomSelectionBox customSelectionBox = Attribute.get(actualState, AttributeCustomSelectionBox.class);
if (customSelectionBox != null) {
WireFrameRenderer renderWireFrame = null;
if (customSelectionBox.isJavaModel()) {
// If we use a TER to render the wire frame, grab the tile
TileEntity tile = WorldUtils.getTileEntity(world, actualPos);
if (tile != null) {
TileEntityRenderer<TileEntity> tileRenderer = TileEntityRendererDispatcher.instance.getRenderer(tile);
if (tileRenderer instanceof IWireFrameRenderer) {
IWireFrameRenderer wireFrameRenderer = (IWireFrameRenderer) tileRenderer;
if (wireFrameRenderer.hasSelectionBox(actualState)) {
renderWireFrame = (buffer, matrixStack, state, red, green, blue, alpha) -> {
if (wireFrameRenderer.isCombined()) {
renderQuadsWireFrame(state, buffer, matrixStack.last().pose(), world.random, red, green, blue, alpha);
}
wireFrameRenderer.renderWireFrame(tile, event.getPartialTicks(), matrixStack, buffer, red, green, blue, alpha);
};
}
}
}
} else {
// Otherwise, skip getting the tile and just grab the model
renderWireFrame = (buffer, matrixStack, state, red, green, blue, alpha) -> renderQuadsWireFrame(state, buffer, matrixStack.last().pose(), world.random, red, green, blue, alpha);
}
if (renderWireFrame != null) {
matrix.pushPose();
Vector3d viewPosition = info.getPosition();
matrix.translate(actualPos.getX() - viewPosition.x, actualPos.getY() - viewPosition.y, actualPos.getZ() - viewPosition.z);
renderWireFrame.render(renderer.getBuffer(RenderType.lines()), matrix, actualState, 0, 0, 0, 0.4F);
matrix.popPose();
shouldCancel = true;
}
}
}
profiler.pop();
ItemStack stack = player.getMainHandItem();
if (stack.isEmpty() || !(stack.getItem() instanceof ItemConfigurator)) {
// If we are not holding a configurator, look if we are in the offhand
stack = player.getOffhandItem();
if (stack.isEmpty() || !(stack.getItem() instanceof ItemConfigurator)) {
if (shouldCancel) {
event.setCanceled(true);
}
return;
}
}
profiler.push(ProfilerConstants.CONFIGURABLE_MACHINE);
ConfiguratorMode state = ((ItemConfigurator) stack.getItem()).getMode(stack);
if (state.isConfigurating()) {
TransmissionType type = Objects.requireNonNull(state.getTransmission(), "Configurating state requires transmission type");
TileEntity tile = WorldUtils.getTileEntity(world, pos);
if (tile instanceof ISideConfiguration) {
ISideConfiguration configurable = (ISideConfiguration) tile;
TileComponentConfig config = configurable.getConfig();
if (config.supports(type)) {
Direction face = rayTraceResult.getDirection();
DataType dataType = config.getDataType(type, RelativeSide.fromDirections(configurable.getDirection(), face));
if (dataType != null) {
Vector3d viewPosition = info.getPosition();
matrix.pushPose();
matrix.translate(pos.getX() - viewPosition.x, pos.getY() - viewPosition.y, pos.getZ() - viewPosition.z);
MekanismRenderer.renderObject(getOverlayModel(face, type), matrix, renderer.getBuffer(Atlases.translucentCullBlockSheet()), MekanismRenderer.getColorARGB(dataType.getColor(), 0.6F), MekanismRenderer.FULL_LIGHT, OverlayTexture.NO_OVERLAY, FaceDisplay.FRONT);
matrix.popPose();
}
}
}
}
profiler.pop();
if (shouldCancel) {
event.setCanceled(true);
}
}
}
use of net.minecraft.profiler.IProfiler in project minecolonies by ldtteam.
the class TextureReloadListener method prepare.
@NotNull
@Override
protected TexturePacks prepare(@NotNull final IResourceManager manager, @NotNull final IProfiler profiler) {
final Set<String> set = new HashSet<>();
final List<ResourceLocation> resLocs = new ArrayList<>(manager.listResources("textures/entity/citizen", f -> true));
for (final ResourceLocation res : resLocs) {
if (!res.getPath().contains("png")) {
final String folder = res.getPath().replace("textures/entity/citizen", "").replace("/", "");
if (!folder.isEmpty()) {
set.add(folder);
}
}
}
final TexturePacks packs = new TexturePacks();
packs.packs = new ArrayList<>(set);
return packs;
}
use of net.minecraft.profiler.IProfiler in project minecolonies by Minecolonies.
the class TextureReloadListener method prepare.
@NotNull
@Override
protected TexturePacks prepare(@NotNull final IResourceManager manager, @NotNull final IProfiler profiler) {
final Set<String> set = new HashSet<>();
final List<ResourceLocation> resLocs = new ArrayList<>(manager.listResources("textures/entity/citizen", f -> true));
for (final ResourceLocation res : resLocs) {
if (!res.getPath().contains("png")) {
final String folder = res.getPath().replace("textures/entity/citizen", "").replace("/", "");
if (!folder.isEmpty()) {
set.add(folder);
}
}
}
final TexturePacks packs = new TexturePacks();
packs.packs = new ArrayList<>(set);
return packs;
}
Aggregations