Class FarmlandWaterManager


  • public class FarmlandWaterManager
    extends java.lang.Object
    • Field Detail

      • DEBUG

        private static final boolean DEBUG
      • LOGGER

        private static final org.apache.logging.log4j.Logger LOGGER
    • Constructor Detail

      • FarmlandWaterManager

        public FarmlandWaterManager()
    • Method Detail

      • addCustomTicket

        public static <T extends SimpleTicket<Vector3d>> T addCustomTicket​(World world,
                                                                           T ticket,
                                                                           ChunkPos masterChunk,
                                                                           ChunkPos... additionalChunks)
        Adds a custom ticket. Use addAABBTicket(World, AxisAlignedBB) if you just need a ticket that can water a certain area.
        If you don't want to water the region anymore, call SimpleTicket.invalidate(). Also call this when the region this is unloaded (e.g. your TE is unloaded or the block is removed), and validate once it is loaded
        Parameters:
        world - The world where the region should be marked. Only server-side worlds are allowed
        ticket - Your ticket you want to have registered
        masterChunk - The chunk pos that is controls when the ticket may be unloaded. The ticket should originate from here.
        additionalChunks - The chunks in that this ticket wants to operate as well.
        Returns:
        The ticket for your requested region.
      • addAABBTicket

        public static AABBTicket addAABBTicket​(World world,
                                               AxisAlignedBB aabb)
        Convenience method to add a ticket that is backed by an AABB.
        If you don't want to water the region anymore, call SimpleTicket.invalidate(). Also call this when the region this is unloaded (e.g. your TE is unloaded or the block is removed), and validate once it is loaded
        The AABB in the ticket is immutable
        Parameters:
        world - The world where the region should be marked. Only server-side worlds are allowed
        aabb - The region where blocks should be watered
        Returns:
        The ticket for your requested region.
      • getDistanceSq

        private static double getDistanceSq​(ChunkPos pos,
                                            Vector3d vec3d)
      • hasBlockWaterTicket

        public static boolean hasBlockWaterTicket​(IWorldReader world,
                                                  BlockPos pos)
        Tests if a block is in a region that is watered by blocks. This does not check vanilla water, see net.minecraft.block.FarmlandBlock#hasWater(IWorldReader, BlockPos)
        Returns:
        true if there is a ticket with an AABB that includes your block
      • removeTickets

        static void removeTickets​(IChunk chunk)