def _create_in_world(self, skip=False):
        """
        Create NodePath and Geom node to perform both collision detection and render

        Note: Override the create_in_world() function instead of this one, since this method severing as a wrapper to
        help improve efficiency
        """
        self.lane_line_node_path = NodePath(RigidBodyCombiner(self.name + "_lane_line"))
        self.sidewalk_node_path = NodePath(RigidBodyCombiner(self.name + "_sidewalk"))
        self.crosswalk_node_path = NodePath(RigidBodyCombiner(self.name + "_crosswalk"))
        self.lane_node_path = NodePath(RigidBodyCombiner(self.name + "_lane"))

        if skip:  # for debug
            pass
        else:
            self.create_in_world()

        self.lane_line_node_path.flattenStrong()
        self.lane_line_node_path.node().collect()
        self.lane_line_node_path.hide(CamMask.AllOn)
        self.lane_line_node_path.show(CamMask.SemanticCam)

        self.sidewalk_node_path.flattenStrong()
        self.sidewalk_node_path.node().collect()
        if self.render:
            # np.setShaderInput("p3d_TextureBaseColor", self.side_texture)
            # np.setShaderInput("p3d_TextureNormal", self.side_normal)
            self.sidewalk_node_path.setTexture(self.side_texture)
            ts = TextureStage("normal")
            ts.setMode(TextureStage.MNormal)
            self.sidewalk_node_path.setTexture(ts, self.side_normal)
            material = Material()
            self.sidewalk_node_path.setMaterial(material, True)

        self.crosswalk_node_path.flattenStrong()
        self.crosswalk_node_path.node().collect()
        self.crosswalk_node_path.hide(CamMask.AllOn)
        self.crosswalk_node_path.show(CamMask.SemanticCam)

        # only bodies reparent to this node
        self.lane_node_path.flattenStrong()
        self.lane_node_path.node().collect()

        self.origin.hide(CamMask.Shadow)

        self.sidewalk_node_path.reparentTo(self.origin)
        self.crosswalk_node_path.reparentTo(self.origin)
        self.lane_line_node_path.reparentTo(self.origin)
        self.lane_node_path.reparentTo(self.origin)

        # semantics
        self.sidewalk_node_path.setTag(CameraTagStateKey.Semantic, Semantics.SIDEWALK.label)

        try:
            self._bounding_box = self.block_network.get_bounding_box()
        except:
            if len(self.block_network.graph) > 0:
                logging.warning("Can not find bounding box for it")
            self._bounding_box = None, None, None, None

        self._node_path_list.append(self.sidewalk_node_path)
        self._node_path_list.append(self.crosswalk_node_path)
        self._node_path_list.append(self.lane_line_node_path)
        self._node_path_list.append(self.lane_node_path)

        Create NodePath and Geom node to perform both collision detection and render

        Note: Override the create_in_world() function instead of this one, since this method severing as a wrapper to
        help improve efficiency
        
metadrive/component/block/base_block.py