Beispiel #1
0
    def get_blockstate(self, blockstate: str) -> Block:
        """
        Converts a version-specific blockstate string into a :class:`api.blocks.Block` object by parsing the blockstate
        and handling any addition logic that needs to be done (IE: Adding an extra block when `waterlogged=true` for
        Java edition). This method is replaced at runtime with the version specific handler.

        :param blockstate: The blockstate string to parse/convert
        :return: The resulting Block object
        """

        namespace, base_name, properties = Block.parse_blockstate_string(blockstate)
        return Block(namespace=namespace, base_name=base_name, properties=properties)
Beispiel #2
0
def parse_blockstate(blockstate: str) -> Block:
    namespace, base_name, properties = Block.parse_blockstate_string(blockstate)

    if properties.pop("waterlogged", "false").lower() == "true":
        block = Block(
            namespace=namespace,
            base_name=base_name,
            properties=properties,
            extra_blocks=(_WATER_CONSTANT,),
        )
    else:
        block = Block(namespace=namespace, base_name=base_name, properties=properties)

    return block