Move datapack objects to the format package
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
from collections.abc import Iterable
|
||||
from mcpacker.format.datapack.moddata import ModData
|
||||
|
||||
|
||||
# Class ############################################################################################
|
||||
|
||||
class DataPack:
|
||||
"""
|
||||
A collection of data used to configure a Minecraft instance.
|
||||
|
||||
see: https://minecraft.wiki/w/Data_pack
|
||||
"""
|
||||
|
||||
def __init__(self, name:str, mods:Iterable[ModData]|None=None):
|
||||
self.name = name
|
||||
self._mods:dict[str,ModData] = {}
|
||||
self._defaultMod:ModData|None = None
|
||||
|
||||
for mod in (mods or []):
|
||||
self.add(mod)
|
||||
|
||||
def add(self, mod:ModData) -> "DataPack":
|
||||
if not self._defaultMod:
|
||||
self._defaultMod = mod
|
||||
|
||||
self._mods[mod.name] = mod
|
||||
return self
|
||||
|
||||
def get(self, name:str) -> ModData:
|
||||
result = self._mods.get(name, None)
|
||||
if not result:
|
||||
result = self._mods[name] = ModData(name)
|
||||
|
||||
return result
|
||||
|
||||
@property
|
||||
def defaultMod(self) -> ModData|None:
|
||||
return self._defaultMod
|
||||
|
||||
@defaultMod.setter
|
||||
def defaultMod(self, mod:ModData):
|
||||
if mod:
|
||||
existingModData = self.get(mod.name)
|
||||
if not existingModData:
|
||||
self.add(mod)
|
||||
elif existingModData != mod:
|
||||
raise Exception(f"Datapack already has a mod named {mod.name}")
|
||||
|
||||
self._defaultMod = mod
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
import mcpacker.model.datapack
|
||||
import mcpacker.format.datapack
|
||||
|
||||
|
||||
# Tests ############################################################################################
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
from mcpacker.model.datapack.blockstate import BlockState
|
||||
from mcpacker.format.datapack.blockstate import BlockState
|
||||
from pytest import fixture
|
||||
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
from mcpacker.json import JsonBlob
|
||||
from mcpacker.model.datapack.blockstate import BlockState
|
||||
from mcpacker.model.datapack.blockstateprovider import BlockStateProvider
|
||||
from mcpacker.format.datapack.blockstate import BlockState
|
||||
from mcpacker.format.datapack.blockstateprovider import BlockStateProvider
|
||||
from typing import Any
|
||||
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
from mcpacker.model.datapack.blockstate import BlockState
|
||||
from mcpacker.model.datapack.blockstateprovider.simplestateprovider import SimpleStateProvider
|
||||
from mcpacker.format.datapack.blockstate import BlockState
|
||||
from mcpacker.format.datapack.blockstateprovider.simplestateprovider import SimpleStateProvider
|
||||
from pytest import fixture
|
||||
|
||||
|
||||
+2
-2
@@ -1,9 +1,9 @@
|
||||
from mcpacker.model.datapack.configuredfeature import ConfiguredFeature
|
||||
from mcpacker.format.datapack.configuredfeature import ConfiguredFeature
|
||||
from typing import Any
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from mcpacker.model.datapack.placedfeature import PlacedFeature
|
||||
from mcpacker.format.datapack.placedfeature import PlacedFeature
|
||||
|
||||
|
||||
# Class ############################################################################################
|
||||
+3
-3
@@ -1,6 +1,6 @@
|
||||
from mcpacker.model.datapack.blockstate import BlockState
|
||||
from mcpacker.model.datapack.blockstateprovider.simplestateprovider import SimpleStateProvider
|
||||
from mcpacker.model.datapack.configuredfeature.simpleblock import SimpleBlock
|
||||
from mcpacker.format.datapack.blockstate import BlockState
|
||||
from mcpacker.format.datapack.blockstateprovider.simplestateprovider import SimpleStateProvider
|
||||
from mcpacker.format.datapack.configuredfeature.simpleblock import SimpleBlock
|
||||
from pytest import fixture
|
||||
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
from mcpacker.json import JsonBlob
|
||||
from mcpacker.model.datapack.blockstateprovider import BlockStateProvider
|
||||
from mcpacker.model.datapack.configuredfeature import ConfiguredFeature
|
||||
from mcpacker.format.datapack.blockstateprovider import BlockStateProvider
|
||||
from mcpacker.format.datapack.configuredfeature import ConfiguredFeature
|
||||
from typing import Any
|
||||
|
||||
|
||||
+3
-3
@@ -1,6 +1,6 @@
|
||||
from mcpacker.model.datapack.blockstate import BlockState
|
||||
from mcpacker.model.datapack.blockstateprovider.simplestateprovider import SimpleStateProvider
|
||||
from mcpacker.model.datapack.configuredfeature.simpleblock import SimpleBlock
|
||||
from mcpacker.format.datapack.blockstate import BlockState
|
||||
from mcpacker.format.datapack.blockstateprovider.simplestateprovider import SimpleStateProvider
|
||||
from mcpacker.format.datapack.configuredfeature.simpleblock import SimpleBlock
|
||||
from pytest import fixture
|
||||
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
from mcpacker.model.datapack.heightmaptype import HeightMapType
|
||||
from mcpacker.format.datapack.heightmaptype import HeightMapType
|
||||
|
||||
|
||||
# Tests ############################################################################################
|
||||
@@ -1,5 +1,5 @@
|
||||
from mcpacker.model.datapack.configuredfeature import ConfiguredFeature
|
||||
from mcpacker.model.datapack.placedfeature import PlacedFeature
|
||||
from mcpacker.format.datapack.configuredfeature import ConfiguredFeature
|
||||
from mcpacker.format.datapack.placedfeature import PlacedFeature
|
||||
from typing import Any
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import mcpacker.model.datapack.moddata
|
||||
import mcpacker.format.datapack.moddata
|
||||
|
||||
|
||||
# Tests ############################################################################################
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
from mcpacker.model.datapack.placement import Placement
|
||||
from mcpacker.format.datapack.placement import Placement
|
||||
|
||||
|
||||
# Class ############################################################################################
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
from mcpacker.model.datapack.placedfeature import PlacedFeature
|
||||
from mcpacker.format.datapack.placedfeature import PlacedFeature
|
||||
|
||||
|
||||
# Tests ############################################################################################
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
from mcpacker.model.datapack.placement import Placement
|
||||
from mcpacker.format.datapack.placement import Placement
|
||||
from typing import Any
|
||||
|
||||
# Class ############################################################################################
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
from mcpacker.model.datapack.placement.biome import Biome
|
||||
from mcpacker.format.datapack.placement.biome import Biome
|
||||
from pytest import fixture
|
||||
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
from mcpacker.model.datapack.heightmaptype import HeightMapType
|
||||
from mcpacker.model.datapack.placement import Placement
|
||||
from mcpacker.format.datapack.heightmaptype import HeightMapType
|
||||
from mcpacker.format.datapack.placement import Placement
|
||||
from typing import Any
|
||||
|
||||
# Class ############################################################################################
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
from mcpacker.model.datapack.heightmaptype import WORLD_SURFACE
|
||||
from mcpacker.model.datapack.placement.heightmap import HeightMap
|
||||
from mcpacker.format.datapack.heightmaptype import WORLD_SURFACE
|
||||
from mcpacker.format.datapack.placement.heightmap import HeightMap
|
||||
from pytest import fixture
|
||||
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
from mcpacker.model.datapack.placement import Placement
|
||||
from mcpacker.format.datapack.placement import Placement
|
||||
from typing import Any
|
||||
|
||||
# Class ############################################################################################
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
from mcpacker.model.datapack.placement.insquare import InSquare
|
||||
from mcpacker.format.datapack.placement.insquare import InSquare
|
||||
from pytest import fixture
|
||||
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
from mcpacker.model.datapack.placement import Placement
|
||||
from mcpacker.format.datapack.placement import Placement
|
||||
from typing import Any
|
||||
|
||||
# Class ############################################################################################
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
from mcpacker.model.datapack.placement.rarityfilter import RarityFilter
|
||||
from mcpacker.format.datapack.placement.rarityfilter import RarityFilter
|
||||
from pytest import fixture
|
||||
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
from collections.abc import Iterable
|
||||
from collections.abc import Mapping
|
||||
from mcpacker.model.datapack.recipe import Recipe
|
||||
from mcpacker.format.datapack.recipe import Recipe
|
||||
from mcpacker.model.core.resourceid import ResourceId
|
||||
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
from pytest import fixture
|
||||
from mcpacker.model.datapack.recipe.shapedrecipe import ShapedRecipe
|
||||
from mcpacker.format.datapack.recipe.shapedrecipe import ShapedRecipe
|
||||
|
||||
|
||||
# Fixtures #########################################################################################
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
from collections.abc import Iterable
|
||||
from collections.abc import Mapping
|
||||
from mcpacker.model.core.resourceid import ResourceId
|
||||
from mcpacker.model.datapack.recipe import Recipe
|
||||
from mcpacker.format.datapack.recipe import Recipe
|
||||
|
||||
|
||||
# Class ############################################################################################
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
from pytest import fixture
|
||||
from mcpacker.model.datapack.recipe.shapelessrecipe import ShapelessRecipe
|
||||
from mcpacker.format.datapack.recipe.shapelessrecipe import ShapelessRecipe
|
||||
|
||||
|
||||
# Fixtures #########################################################################################
|
||||
@@ -3,7 +3,7 @@ from mcpacker.model.resourcepack.variant import Variant
|
||||
from mcpacker.model.resourcepack.model import Model
|
||||
from mcpacker.model.modpack import ModPack
|
||||
from mcpacker.model.core.resourceid import ResourceId
|
||||
from mcpacker.model.datapack.recipe.shapedrecipe import ShapedRecipe
|
||||
from mcpacker.format.datapack.recipe.shapedrecipe import ShapedRecipe
|
||||
|
||||
|
||||
# Class ############################################################################################
|
||||
|
||||
@@ -1,49 +0,0 @@
|
||||
from collections.abc import Iterable
|
||||
from mcpacker.model.datapack.moddata import ModData
|
||||
|
||||
|
||||
# Class ############################################################################################
|
||||
|
||||
class DataPack:
|
||||
"""
|
||||
A collection of data used to configure a Minecraft instance.
|
||||
|
||||
see: https://minecraft.wiki/w/Data_pack
|
||||
"""
|
||||
|
||||
def __init__(self, name:str, mods:Iterable[ModData]|None=None):
|
||||
self.name = name
|
||||
self._mods:dict[str,ModData] = {}
|
||||
self._defaultMod:ModData|None = None
|
||||
|
||||
for mod in (mods or []):
|
||||
self.add(mod)
|
||||
|
||||
def add(self, mod:ModData) -> "DataPack":
|
||||
if not self._defaultMod:
|
||||
self._defaultMod = mod
|
||||
|
||||
self._mods[mod.name] = mod
|
||||
return self
|
||||
|
||||
def get(self, name:str) -> ModData:
|
||||
result = self._mods.get(name, None)
|
||||
if not result:
|
||||
result = self._mods[name] = ModData(name)
|
||||
|
||||
return result
|
||||
|
||||
@property
|
||||
def defaultMod(self) -> ModData|None:
|
||||
return self._defaultMod
|
||||
|
||||
@defaultMod.setter
|
||||
def defaultMod(self, mod:ModData):
|
||||
if mod:
|
||||
existingModData = self.get(mod.name)
|
||||
if not existingModData:
|
||||
self.add(mod)
|
||||
elif existingModData != mod:
|
||||
raise Exception(f"Datapack already has a mod named {mod.name}")
|
||||
|
||||
self._defaultMod = mod
|
||||
@@ -1,6 +1,6 @@
|
||||
from collections.abc import Iterable
|
||||
from mcpacker.model.core.world import World
|
||||
from mcpacker.model.datapack import DataPack
|
||||
from mcpacker.format.datapack import DataPack
|
||||
from mcpacker.model.mod import Mod
|
||||
from mcpacker.model.resourcepack import ResourcePack
|
||||
from typing import Callable
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
from mcpacker.model.modpack import ModPack
|
||||
from mcpacker.model.datapack import DataPack
|
||||
from mcpacker.format.datapack import DataPack
|
||||
|
||||
|
||||
# Functions ########################################################################################
|
||||
|
||||
Reference in New Issue
Block a user