Checkpoint initial implementation

This commit is contained in:
Andrew Miner
2025-10-06 17:41:18 -06:00
parent 773e0a3d85
commit a8b6e6b15e
106 changed files with 3012 additions and 0 deletions
@@ -0,0 +1,6 @@
# Class ############################################################################################
class ConfiguredFeature:
def __init__(self, gameId:str):
self.gameId = gameId
@@ -0,0 +1,31 @@
from tungston.generator.datapack.configuredfeature.configuredfeature import ConfiguredFeature
from typing import Any
# Class ############################################################################################
class RandomPatch(ConfiguredFeature):
def __init__(
self,
gameId:str,
feature:"PlacedFeature",
tries:int=128,
xzSpread:int=7,
ySpread:int=3,
):
super().__init__("minecraft:random_patch")
self.feature = feature
self.tries = tries
self.xzSpread = xzSpread
self.ySpread = ySpread
def asData(self) -> dict[str,Any]:
return {
"type": self.type,
"feature": self.feature.gameId,
"tries": self.tries,
"xz_spread": self.xySpread,
"y_spread": self.ySpread
}
@@ -0,0 +1,38 @@
from pytest import fixture
from tungston.generator.datapack.blockstate import BlockState
from tungston.generator.datapack.blockstateprovider.simplestateprovider import SimpleStateProvider
from tungston.generator.datapack.configuredfeature.simpleblock import SimpleBlock
# Fixtures #########################################################################################
@fixture(name="state")
def createBlockState():
yield BlockState("minecraft:button", {"waterlogged": "true"})
@fixture(name="provider")
def createProvider(state):
return SimpleStateProvider(state)
@fixture(name="feature")
def createSimpleBlockFeature(provider):
return SimpleBlock(provider)
# Tests ############################################################################################
def test_asData(feature):
assert feature.asData() == {
"type": "minecraft:simple_block",
"config": {
"to_place": {
"type": "minecraft:simple_state_provider",
"state": {
"Name": "minecraft:button",
"Properties": {
"waterlogged": "true"
}
}
}
}
}
@@ -0,0 +1,20 @@
from tungston.generator.datapack.blockstateprovider import BlockStateProvider
from tungston.generator.datapack.configuredfeature import ConfiguredFeature
from typing import Any
# Class ############################################################################################
class SimpleBlock(ConfiguredFeature):
def __init__(self, toPlace:BlockStateProvider):
super().__init__("minecraft:simple_block")
self.toPlace = toPlace
def asData(self) -> dict[str, Any]:
return {
"type": self.gameId,
"config": {
"to_place": self.toPlace.asData()
}
}
@@ -0,0 +1,38 @@
from pytest import fixture
from tungston.generator.datapack.blockstate import BlockState
from tungston.generator.datapack.blockstateprovider.simplestateprovider import SimpleStateProvider
from tungston.generator.datapack.configuredfeature.simpleblock import SimpleBlock
# Fixtures #########################################################################################
@fixture(name="state")
def createBlockState():
yield BlockState("minecraft:button", {"waterlogged": "true"})
@fixture(name="provider")
def createProvider(state):
return SimpleStateProvider(state)
@fixture(name="feature")
def createSimpleBlockFeature(provider):
return SimpleBlock(provider)
# Tests ############################################################################################
def test_asData(feature):
assert feature.asData() == {
"type": "minecraft:simple_block",
"config": {
"to_place": {
"type": "minecraft:simple_state_provider",
"state": {
"Name": "minecraft:button",
"Properties": {
"waterlogged": "true"
}
}
}
}
}