Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

[1.8] Proper way to prevent block updates


Recommended Posts

Is there a way to prevent a cluster of blocks to not update physics on the regular tick until I "release" them ?


The problem I am having is that I can cut portions of the map (set the block one at a time to "Air"), but there are a few caveats:


1. If I cut from the lowest to highest level (one block at a time), things that are supported (e.g. pressure plates on fences to look like tables) fall when their block below them is removed.


2. If I cut from highest to lowest, doors drop (they look like they have to be removed from the bottom or they drop onto the map).


Right now I use 2 passes to successfully remove things- 1st where not(isSolidCube) then anything else on the 2nd pass.


The problem child is doors- they are not(isFullCube) so get removed top down in pass 1 (which does not destroy it but harvest it and leaves it on the ground).


It would optimally be great to not allow the blocks to be updated until I have run through the delete loop. Not sure this is doable however.....

I don't keep an open mind lest someone try to fill it with garbage - Mark Twain

Link to comment
Share on other sites

Sorry that you think this is a double post- I think I can use THREE passes to totally remove all blocks. I'll update the other post with the solution I found as well.


1st- from bottom of selected cube to top- only blocks that are one blocklayer CUTOUT_MIPPED, or CUTOUT.


2nd- from top down to bottom of cube- blocks that are not FullCube


3rd- any left over.


This seems to clean it up (does not drop doors all over the place).


The reason I ask is that it seems strange that it appears you have to manipulate the blocks one at a time (in loops) and there is no batch processor where you can do them all then have the physics update after you have done what you want to do to those blocks.


Of course, for some strange reason Minecraft uses the Y axis as the 3rd dimension too, so I guess its par the course :D


I don't keep an open mind lest someone try to fill it with garbage - Mark Twain

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • I tried to debug some of the points in the code where I need the client to get the NBT data from the server, and I figured out that none of them are working. For example, I tried to print out a line in the console with the StartTracking method: @SubscribeEvent public void onPlayerTracking(PlayerEvent.StartTracking event) { if(event.getTarget() instanceof PlayerEntity) { PlayerEntity player = (PlayerEntity)event.getTarget(); ServerPlayerEntity target = (ServerPlayerEntity)event.getPlayer(); if(!player.getCommandSenderWorld().isClientSide()) { player.getCapability(TitanShiftersProvider.TITAN_SHIFTERS_CAPABILITY).ifPresent(capability -> { CompoundNBT nbt = new CompoundNBT(); Capability<ITitanShifters> cap = TitanShiftersProvider.TITAN_SHIFTERS_CAPABILITY; Capability.IStorage<ITitanShifters> storage = cap.getStorage(); nbt.put(cap.getName(), storage.writeNBT(cap, capability, TitanShiftersMod.direction)); ClientMessage message = new ClientMessage(nbt); TitanShiftersNetwork.CLIENTCHANNEL.send(PacketDistributor.PLAYER.with(() -> target), message); System.out.println("Tracking working!"); }); } } } Which didn't work. I even got rid of the line where it checks if the player is in the server side, and that didn't work either. Maybe the player doesn't have the capability? The capability system has been working fine for me so far, however.
    • It requires 6G for minimum and recommends 7-8G
    • Sorry for the delay. -Xmx16G -Xms12G -Dminecraft.applet.TargetDirectory="C:\Users\jorge_vk76vma\curseforge\minecraft\Instances\Mineshafts & Monsters" -Dfml.ignorePatchDiscrepancies=true -Dfml.ignoreInvalidMinecraftCertificates=true -Duser.language=en -Duser.country=US
    • Okay thank you a lot for your help ! So either I create a BlockEntity and set it in a sphere shape using the BER or I use the RenderLevelLastEvent to draw something ? I don't really understand how the RenderLevelLastEvent For you wich option is the best ?
    • Hey i was just installing forge 1.8.9 latest and it wont install, it is saying that certain libraries have failed to download, i am 100% sure that I have no firewalls enabled, i have gone into my routers settings, everything is fine, i have even tethered to my mobile data and i get the same message. ( not gonna embed images as the formatting just dies and takes up half the screen and moves text lol ) https://i.imgur.com/8ZfSfzT.png error message, and progress bar, after dismissing the message the installer just hangs there... taking a quick look into the log its saying that files arent found in the installer archive, there are a bunch of ssl cert errors???    javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target File not found in installer archive: /maven/org/scala-lang/scala-swing_2.11/1.0.1/scala-swing_2.11-1.0.1.jar pastebin to full log  https://pastebin.com/PTX1ah8c ( edit: i just read the rules and you cant ask about older versions or you risk getting warned, this issue is persistent on 1.19 too, after i tried installing it. The error message is the same as what appears in the log file )
  • Topics

  • Create New...

Important Information

By using this site, you agree to our Terms of Use.