sm-blueprint-lib 0.0.9__py3-none-any.whl → 0.0.11__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. sm_blueprint_lib/__init__.py +1 -1
  2. sm_blueprint_lib/bases/joints/basejoint.py +30 -0
  3. sm_blueprint_lib/bases/joints/basejointcontroller.py +8 -0
  4. sm_blueprint_lib/bases/joints/pistonjoint.py +13 -0
  5. sm_blueprint_lib/bases/joints/pistonjointcontroller.py +9 -0
  6. sm_blueprint_lib/bases/joints/suspensionjoint.py +13 -0
  7. sm_blueprint_lib/bases/joints/suspensionjointcontroller.py +8 -0
  8. sm_blueprint_lib/bases/parts/basepart.py +5 -0
  9. sm_blueprint_lib/blueprint.py +8 -6
  10. sm_blueprint_lib/constants.py +15 -0
  11. sm_blueprint_lib/parts/__init__.py +4 -0
  12. sm_blueprint_lib/parts/bearing.py +9 -0
  13. sm_blueprint_lib/parts/button.py +1 -1
  14. sm_blueprint_lib/parts/piston.py +9 -0
  15. sm_blueprint_lib/parts/suspension.py +14 -0
  16. sm_blueprint_lib/pos.py +17 -0
  17. sm_blueprint_lib/prebuilds/adder.py +2 -2
  18. sm_blueprint_lib/prebuilds/barrel_shifter.py +2 -2
  19. sm_blueprint_lib/prebuilds/clock40hz.py +2 -2
  20. sm_blueprint_lib/prebuilds/comparator.py +2 -2
  21. sm_blueprint_lib/prebuilds/counter.py +2 -2
  22. sm_blueprint_lib/prebuilds/decoder.py +2 -2
  23. sm_blueprint_lib/prebuilds/distance_sensor.py +2 -2
  24. sm_blueprint_lib/prebuilds/ram.py +2 -2
  25. sm_blueprint_lib/prebuilds/register.py +1 -2
  26. sm_blueprint_lib/prebuilds/rom.py +2 -2
  27. sm_blueprint_lib/prebuilds/timer_ram_cached.py +2 -2
  28. sm_blueprint_lib/prebuilds/timer_ram_multiclient.py +2 -2
  29. sm_blueprint_lib/utils.py +0 -15
  30. {sm_blueprint_lib-0.0.9.dist-info → sm_blueprint_lib-0.0.11.dist-info}/METADATA +1 -1
  31. sm_blueprint_lib-0.0.11.dist-info/RECORD +50 -0
  32. sm_blueprint_lib-0.0.9.dist-info/RECORD +0 -41
  33. {sm_blueprint_lib-0.0.9.dist-info → sm_blueprint_lib-0.0.11.dist-info}/WHEEL +0 -0
  34. {sm_blueprint_lib-0.0.9.dist-info → sm_blueprint_lib-0.0.11.dist-info}/licenses/LICENSE +0 -0
@@ -1,4 +1,4 @@
1
- from .blueprint import Blueprint
1
+ from .blueprint import *
2
2
  from .body import *
3
3
  from .bounds import *
4
4
  from .constants import *
@@ -0,0 +1,30 @@
1
+ from dataclasses import dataclass, field
2
+
3
+ from ...constants import SHAPEID
4
+ from ...pos import *
5
+
6
+
7
+ @dataclass
8
+ class BaseJoint:
9
+ childA: int
10
+ childB: int
11
+ color: str
12
+ id: int
13
+ posA: Pos
14
+ posB: Pos
15
+ shapeId: str
16
+ xaxisA: int
17
+ xaxisB: int
18
+ zaxisA: int
19
+ zaxisB: int
20
+
21
+ def __post_init__(self):
22
+ self.posA = check_pos(self.posA)
23
+ self.posB = check_pos(self.posB)
24
+
25
+ def __init_subclass__(cls):
26
+ super().__init_subclass__()
27
+ try:
28
+ SHAPEID.JOINT_TO_CLASS[cls.shapeId.default] = cls
29
+ except AttributeError:
30
+ pass
@@ -0,0 +1,8 @@
1
+ from dataclasses import dataclass
2
+
3
+
4
+ @dataclass
5
+ class BaseJointController:
6
+ controllers: None
7
+ id: int
8
+ joints: None
@@ -0,0 +1,13 @@
1
+ from dataclasses import dataclass
2
+
3
+ from .basejoint import BaseJoint
4
+ from .pistonjointcontroller import PistonJointController
5
+
6
+
7
+ @dataclass
8
+ class PistonJoint(BaseJoint):
9
+ controller: PistonJointController
10
+
11
+ def __post_init__(self):
12
+ super().__post_init__()
13
+ self.controller = PistonJointController(**self.controller)
@@ -0,0 +1,9 @@
1
+ from dataclasses import dataclass, field
2
+
3
+ from .basejointcontroller import BaseJointController
4
+
5
+
6
+ @dataclass
7
+ class PistonJointController(BaseJointController):
8
+ length: int
9
+ speed: int
@@ -0,0 +1,13 @@
1
+ from dataclasses import dataclass, field
2
+
3
+ from .basejoint import BaseJoint
4
+ from .suspensionjointcontroller import SuspensionJointController
5
+
6
+
7
+ @dataclass
8
+ class SuspensionJoin(BaseJoint):
9
+ controller: SuspensionJointController
10
+
11
+ def __post_init__(self):
12
+ super().__post_init__()
13
+ self.controller = SuspensionJointController(**self.controller)
@@ -0,0 +1,8 @@
1
+ from dataclasses import dataclass, field
2
+
3
+ from .basejointcontroller import BaseJointController
4
+
5
+
6
+ @dataclass
7
+ class SuspensionJointController(BaseJointController):
8
+ stiffnessLevel: int
@@ -1,7 +1,9 @@
1
1
  from dataclasses import dataclass, field
2
+ from typing import Optional
2
3
 
3
4
  from ...constants import AXIS, SHAPEID
4
5
  from ...pos import Pos
6
+ from ...id import ID
5
7
 
6
8
 
7
9
  @dataclass
@@ -11,6 +13,7 @@ class BasePart:
11
13
  shapeId: str
12
14
  pos: Pos
13
15
  color: str
16
+ joints: Optional[list[ID]] = field(kw_only=True, default=None)
14
17
  xaxis: int = field(kw_only=True, default=AXIS.DEFAULT_XAXIS)
15
18
  zaxis: int = field(kw_only=True, default=AXIS.DEFAULT_ZAXIS)
16
19
 
@@ -25,6 +28,8 @@ class BasePart:
25
28
  if not isinstance(self.color, str):
26
29
  self.color = "%02X%02X%02X" % (
27
30
  self.color[0], self.color[1], self.color[2])
31
+ if self.joints:
32
+ self.joints = [ID(**id) for id in self.joints]
28
33
 
29
34
  def __init_subclass__(cls):
30
35
  super().__init_subclass__()
@@ -1,20 +1,22 @@
1
1
  from dataclasses import dataclass, field
2
+ from typing import Optional
2
3
 
3
4
  from .bases.parts.basepart import BasePart
4
5
  from .body import Body
5
- from .constants import VERSION
6
+ from .bases.joints.basejoint import BaseJoint
7
+ from .constants import VERSION, SHAPEID
6
8
 
7
9
 
8
10
  @dataclass
9
11
  class Blueprint:
10
- bodies: list[Body] = field(default_factory=lambda: [Body()])
12
+ bodies: list[Body] = field(default_factory=lambda: [{}])
13
+ joints: Optional[list[BaseJoint]] = None
11
14
  version: int = VERSION.BLUEPRINT_VERSION
12
15
 
13
16
  def __post_init__(self):
14
- try:
15
- self.bodies = [Body(**body) for body in self.bodies]
16
- except TypeError:
17
- pass
17
+ self.bodies = [Body(**body) for body in self.bodies]
18
+ if self.joints:
19
+ self.joints = [SHAPEID.JOINT_TO_CLASS[j["shapeId"]](**j) for j in self.joints]
18
20
 
19
21
  def add(self, *obj, body=0):
20
22
  """Adds the object(s) to the blueprint.
@@ -5,7 +5,22 @@ class SHAPEID:
5
5
  SENSOR5 = "20dcd41c-0a11-4668-9b00-97f278ce21af"
6
6
  SWITCH = "7cf717d7-d167-4f2d-a6e7-6b2c70aa3986"
7
7
  BUTTON = "1e8d93a4-506b-470d-9ada-9c0a321e2db5"
8
+
9
+ SPORT_SUSPENSION5 = "52855106-a95c-4427-9970-3f227109b66d"
10
+ OFFROAD_SUSPENSION5 = "73f838db-783e-4a41-bc0f-9008967780f3"
11
+ BEARING = "4a1b886b-913e-4aad-b5b6-6e41b0db23a6"
12
+ PISTON5 = "2f004fdf-bfb0-46f3-a7ac-7711100bee0c"
8
13
  SHAPEID_TO_CLASS = {}
14
+ JOINT_TO_CLASS = {}
15
+
16
+
17
+ class COLOR:
18
+ BARRIER_BLOCK_DEFAULT = "CE9E0C"
19
+ BUTTON_DEFAULT = "DF7F01"
20
+ LOGIC_GATE_DEFAULT = "DF7F01"
21
+ SENSOR5_DEFAULT = "DF7F01"
22
+ SWITCH_DEFAULT = "DF7F01"
23
+ TIMER_DEFAULT = "DF7F01"
9
24
 
10
25
 
11
26
  class AXIS:
@@ -4,3 +4,7 @@ from .sensor import *
4
4
  from .switch import *
5
5
  from .button import *
6
6
  from .timer import *
7
+
8
+ from .suspension import *
9
+ from .bearing import *
10
+ from .piston import *
@@ -0,0 +1,9 @@
1
+ from dataclasses import dataclass, field
2
+
3
+ from ..bases.joints.basejoint import BaseJoint
4
+ from ..constants import SHAPEID
5
+
6
+
7
+ @dataclass
8
+ class Bearing(BaseJoint):
9
+ shapeId: str = field(kw_only=True, default=SHAPEID.BEARING)
@@ -1,7 +1,7 @@
1
1
  from dataclasses import dataclass, field
2
2
 
3
3
  from ..bases.parts.baseinteractablepart import BaseInteractablePart
4
- from ..constants import SHAPEID, AXIS
4
+ from ..constants import SHAPEID
5
5
 
6
6
 
7
7
  @dataclass
@@ -0,0 +1,9 @@
1
+ from dataclasses import dataclass, field
2
+
3
+ from ..bases.joints.pistonjoint import PistonJoint
4
+ from ..constants import SHAPEID
5
+
6
+
7
+ @dataclass
8
+ class Piston5(PistonJoint):
9
+ shapeId: str = field(kw_only=True, default=SHAPEID.PISTON5)
@@ -0,0 +1,14 @@
1
+ from dataclasses import dataclass, field
2
+
3
+ from ..bases.joints.suspensionjoint import SuspensionJoin
4
+ from ..constants import SHAPEID
5
+
6
+
7
+ @dataclass
8
+ class SportSuspension5(SuspensionJoin):
9
+ shapeId: str = field(kw_only=True, default=SHAPEID.SPORT_SUSPENSION5)
10
+
11
+
12
+ @dataclass
13
+ class OffRoadSuspension5(SuspensionJoin):
14
+ shapeId: str = field(kw_only=True, default=SHAPEID.OFFROAD_SUSPENSION5)
sm_blueprint_lib/pos.py CHANGED
@@ -14,3 +14,20 @@ class Pos:
14
14
  if isinstance(o, Pos):
15
15
  return Pos(self.x + o.x, self.y + o.y, self.z + o.z)
16
16
  return Pos(self.x + o[0], self.y + o[1], self.z + o[2])
17
+
18
+
19
+ def check_pos(pos: Sequence | dict) -> Pos:
20
+ """Converts a Sequence or dict into a Pos class if it wasn't already.
21
+
22
+ Args:
23
+ pos (Sequence | dict): The Sequence or dict to be converted.
24
+
25
+ Returns:
26
+ Pos: The converted Pos.
27
+ """
28
+ if not isinstance(pos, Pos):
29
+ if isinstance(pos, Sequence):
30
+ pos = Pos(*list(pos))
31
+ else:
32
+ pos = Pos(**pos)
33
+ return pos
@@ -1,9 +1,9 @@
1
1
  from typing import Sequence
2
2
  from numpy import ndarray
3
- from ..utils import get_bits_required, check_pos, connect, num_to_bit_list
3
+ from ..utils import get_bits_required, connect, num_to_bit_list
4
4
  from ..blueprint import Blueprint
5
5
  from ..parts.logicgate import LogicGate
6
- from ..pos import Pos
6
+ from ..pos import *
7
7
 
8
8
 
9
9
  def simple_adder_subtractor(bp: Blueprint,
@@ -1,9 +1,9 @@
1
1
  from typing import Sequence
2
2
  from numpy import ndarray
3
- from ..utils import get_bits_required, check_pos, connect, num_to_bit_list
3
+ from ..utils import get_bits_required, connect, num_to_bit_list
4
4
  from ..blueprint import Blueprint
5
5
  from ..parts.logicgate import LogicGate
6
- from ..pos import Pos
6
+ from ..pos import *
7
7
 
8
8
 
9
9
  def barrel_shifter(bp: Blueprint, bit_length: int, num_bit_shift: int, pos: Pos | Sequence = (0, 0, 0)):
@@ -1,9 +1,9 @@
1
1
  from typing import Sequence
2
2
  from numpy import ndarray
3
- from ..utils import get_bits_required, check_pos, connect, num_to_bit_list
3
+ from ..utils import get_bits_required, connect, num_to_bit_list
4
4
  from ..blueprint import Blueprint
5
5
  from ..parts.logicgate import LogicGate
6
- from ..pos import Pos
6
+ from ..pos import *
7
7
 
8
8
 
9
9
  def clock40hz(bp: Blueprint, bit_length: int, pos: Pos | Sequence = (0, 0, 0)):
@@ -1,9 +1,9 @@
1
1
  from typing import Sequence
2
2
  from numpy import ndarray
3
- from ..utils import check_pos, connect
3
+ from ..utils import connect
4
4
  from ..blueprint import Blueprint
5
5
  from ..parts.logicgate import LogicGate
6
- from ..pos import Pos
6
+ from ..pos import *
7
7
 
8
8
 
9
9
  def comparator(bp: Blueprint,
@@ -1,9 +1,9 @@
1
1
  from typing import Sequence
2
2
  from numpy import ndarray
3
- from ..utils import get_bits_required, check_pos, connect, num_to_bit_list
3
+ from ..utils import get_bits_required, connect, num_to_bit_list
4
4
  from ..blueprint import Blueprint
5
5
  from ..parts.logicgate import LogicGate
6
- from ..pos import Pos
6
+ from ..pos import *
7
7
 
8
8
 
9
9
  def counter(bp: Blueprint,
@@ -1,9 +1,9 @@
1
1
  from typing import Sequence
2
2
  from numpy import ndarray
3
- from ..utils import get_bits_required, check_pos, connect, num_to_bit_list
3
+ from ..utils import get_bits_required, connect, num_to_bit_list
4
4
  from ..blueprint import Blueprint
5
5
  from ..parts.logicgate import LogicGate
6
- from ..pos import Pos
6
+ from ..pos import *
7
7
 
8
8
 
9
9
  def decoder(bp: Blueprint, num_address: int, pos: Pos | Sequence = (0, 0, 0),
@@ -1,11 +1,11 @@
1
1
  from typing import Sequence
2
2
  from numpy import array, ndarray
3
- from ..utils import get_bits_required, check_pos, connect, num_to_bit_list
3
+ from ..utils import get_bits_required, connect, num_to_bit_list
4
4
  from ..blueprint import Blueprint
5
5
  from ..parts.logicgate import LogicGate
6
6
  from ..parts.sensor import Sensor5
7
7
  from ..parts.timer import Timer
8
- from ..pos import Pos
8
+ from ..pos import *
9
9
 
10
10
 
11
11
  def distance_sensor(bp: Blueprint,
@@ -1,10 +1,10 @@
1
1
  from itertools import cycle
2
2
  from typing import Sequence
3
3
  from numpy import ndarray
4
- from ..utils import get_bits_required, check_pos, connect
4
+ from ..utils import get_bits_required, connect
5
5
  from ..blueprint import Blueprint
6
6
  from ..parts.logicgate import LogicGate
7
- from ..pos import Pos
7
+ from ..pos import *
8
8
  from ..prebuilds.decoder import decoder
9
9
 
10
10
 
@@ -1,9 +1,8 @@
1
1
  from typing import Sequence
2
2
  from numpy import ndarray
3
- from ..utils import check_pos
4
3
  from ..blueprint import Blueprint
5
4
  from ..parts.logicgate import LogicGate
6
- from ..pos import Pos
5
+ from ..pos import *
7
6
  from ..prebuilds.counter import counter, counter_decrement
8
7
 
9
8
 
@@ -2,12 +2,12 @@ from itertools import batched, cycle
2
2
  from math import ceil
3
3
  from typing import Sequence
4
4
  from numpy import ndarray
5
- from ..utils import get_bits_required, check_pos, connect, num_to_bit_list
5
+ from ..utils import get_bits_required, connect, num_to_bit_list
6
6
  from ..blueprint import Blueprint
7
7
  from ..parts.logicgate import LogicGate
8
8
  from ..prebuilds.decoder import decoder
9
9
  from ..parts.timer import Timer
10
- from ..pos import Pos
10
+ from ..pos import *
11
11
 
12
12
 
13
13
  def rom(
@@ -1,14 +1,14 @@
1
1
  from itertools import cycle
2
2
  from typing import Sequence
3
3
  from numpy import array, clip, ndarray
4
- from ..utils import get_bits_required, check_pos, connect, num_to_bit_list
4
+ from ..utils import get_bits_required, connect, num_to_bit_list
5
5
  from ..bases.parts.baseinteractablepart import BaseInteractablePart
6
6
  from ..bases.parts.baselogicpart import BaseLogicPart
7
7
  from ..blueprint import Blueprint
8
8
  from ..constants import TICKS_PER_SECOND
9
9
  from ..parts.logicgate import LogicGate
10
10
  from ..parts.timer import Timer
11
- from ..pos import Pos
11
+ from ..pos import *
12
12
  from ..prebuilds.clock40hz import clock40hz
13
13
  from ..prebuilds.counter import counter
14
14
  from ..prebuilds.decoder import decoder
@@ -1,10 +1,10 @@
1
1
  from typing import Sequence
2
2
  from numpy import ndarray
3
- from ..utils import get_bits_required, check_pos, connect
3
+ from ..utils import get_bits_required, connect
4
4
  from ..blueprint import Blueprint
5
5
  from ..parts.logicgate import LogicGate
6
6
  from ..parts.timer import Timer
7
- from ..pos import Pos
7
+ from ..pos import *
8
8
  from ..prebuilds.clock40hz import clock40hz
9
9
  from ..prebuilds.decoder import decoder
10
10
  from ..prebuilds.ram import ram
sm_blueprint_lib/utils.py CHANGED
@@ -10,7 +10,6 @@ from .blueprint import Blueprint
10
10
  from .parts.barrierblock import BarrierBlock
11
11
  from .parts.logicgate import LogicGate
12
12
  from .parts.timer import Timer
13
- from .pos import Pos
14
13
 
15
14
 
16
15
  def load_blueprint(path: str):
@@ -116,20 +115,6 @@ def connect(_from, _to, *, parallel=True):
116
115
  connect(_from, subto, parallel=parallel)
117
116
 
118
117
 
119
- def check_pos(pos: Sequence) -> Pos:
120
- """Converts a Sequence into a Pos class if it wasn't already.
121
-
122
- Args:
123
- pos (Sequence): The Sequence to be converted.
124
-
125
- Returns:
126
- Pos: The converted Pos.
127
- """
128
- if not isinstance(pos, Pos):
129
- pos = Pos(*list(pos))
130
- return pos
131
-
132
-
133
118
  def get_bits_required(number: int | float):
134
119
  """Calculates how many bits are required to store this number.
135
120
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sm_blueprint_lib
3
- Version: 0.0.9
3
+ Version: 0.0.11
4
4
  Summary: Scrap Mechanic Library for Blueprint manipulation.
5
5
  Project-URL: Homepage, https://github.com/MauriceTZ/sm_blueprint_lib
6
6
  Project-URL: Issues, https://github.com/MauriceTZ/sm_blueprint_lib/issues
@@ -0,0 +1,50 @@
1
+ sm_blueprint_lib/__init__.py,sha256=tKJFVT4WCnexRUoVCgG59mT5FSK_eb6WjX6fDs3S09c,207
2
+ sm_blueprint_lib/blueprint.py,sha256=gdupv6pNygwmoOHpZW8J16kZ3N26rdLkAc7Xq48QbvI,1261
3
+ sm_blueprint_lib/body.py,sha256=sjnS0e1V0bZEhODA6XOxPH2oCt3xrFLQZ47PGhKjD_w,365
4
+ sm_blueprint_lib/bounds.py,sha256=fH-i8PdlZVg8qlEd3FmIf5mbx4RKhdBOFRAe5cSWWiI,183
5
+ sm_blueprint_lib/constants.py,sha256=esKPtnHBUjyMvpKhpH-VC8cCvCT_Qm0U409MrzDqYYg,1243
6
+ sm_blueprint_lib/id.py,sha256=5sBHC8qZJnCaizSBs4KGS1dnZHOSdoq5wkuIpuYNRnw,71
7
+ sm_blueprint_lib/pos.py,sha256=5JhV4jyHZOnolo0Ecj107auLIXXnFqL7uCzPDyikI64,845
8
+ sm_blueprint_lib/utils.py,sha256=KCU9CvTYM5TN7c9ks-8scsHXr-zcwcuXDuO7ESHX4E4,4801
9
+ sm_blueprint_lib/bases/controllers/basecontroller.py,sha256=VFS5J7kGQ8vfWBFjiTPVfXXjyMwJ1VqA3mYuh7Z_8ak,624
10
+ sm_blueprint_lib/bases/controllers/baselogiccontroller.py,sha256=lDoDt9NKFu01CqyJE09_bq9oDeYK7T-fERO54kd-sFA,290
11
+ sm_blueprint_lib/bases/controllers/logicgatecontroller.py,sha256=wzw8kdt65Zg6ucNNy47V3-okYod_ea2NH8erfjRu7uw,223
12
+ sm_blueprint_lib/bases/controllers/sensorcontroller.py,sha256=Do8TJbnm7EhAMqGPprO9lTxAuNQMOFsSo-FslZZWnqk,710
13
+ sm_blueprint_lib/bases/controllers/timercontroller.py,sha256=GcGzSicm0oGMP3gsuOA5t6PqEhRAsUVHWaCjhClbfMI,229
14
+ sm_blueprint_lib/bases/joints/basejoint.py,sha256=C4IkY7yzGkEomVCf-g2mKqioqAAV5jHaSdlKsXdKnmU,628
15
+ sm_blueprint_lib/bases/joints/basejointcontroller.py,sha256=a3w_VPVp9pZuYdeaY8-fHxGYZdJhR1enCULS2SBxJ9o,133
16
+ sm_blueprint_lib/bases/joints/pistonjoint.py,sha256=2Avstib8kHuFjv2uFI5gkWsn-lWv7Lk4g1jd-pF2sgY,348
17
+ sm_blueprint_lib/bases/joints/pistonjointcontroller.py,sha256=NqffDkRzcPrqZXDDPjVFls0d1vAj6pFxJhbqxLx83f4,198
18
+ sm_blueprint_lib/bases/joints/suspensionjoint.py,sha256=w3ChZvaB75y2cnfdV24ib3hcD49RgJHJIcTUIMGN7rw,374
19
+ sm_blueprint_lib/bases/joints/suspensionjointcontroller.py,sha256=0bS6s6rjFivz83AYfFeiBybjULHVrF-7kknoP7SJUR0,194
20
+ sm_blueprint_lib/bases/parts/baseboundablepart.py,sha256=jNx_btmkCTksT6FcpHQxEVJXzN1a3DwwHS-2GdTy2CE,744
21
+ sm_blueprint_lib/bases/parts/baseinteractablepart.py,sha256=VXINrObIr6Y2tFIOI59cB_-625rPwtKZdGDmaa3EgQ8,574
22
+ sm_blueprint_lib/bases/parts/baselogicpart.py,sha256=al9nLCg8YiLKWd_c_ZQmq9f6sazjF6RNbuGGbYROOps,498
23
+ sm_blueprint_lib/bases/parts/basepart.py,sha256=R_ZbW6MURsxH-UT-Z9DboGiBCRIWeJuBwWjleKUdBmg,1330
24
+ sm_blueprint_lib/parts/__init__.py,sha256=KviKNh2cwQz39xX-tqk73t4C1RqS9eVrE3lwpch2MEc,220
25
+ sm_blueprint_lib/parts/barrierblock.py,sha256=GPI8ArKKvzO6wnHfBfgmU4Ezcrw9SmtKR0p4mWczYiw,267
26
+ sm_blueprint_lib/parts/bearing.py,sha256=g54yQEOLGqlFIFx_MN2RhMe9QymottLsYjMU9o2A0xc,233
27
+ sm_blueprint_lib/parts/button.py,sha256=CtAFyjqXndJq3eNWMRyAC-tVALKVaFVQfDbipILtNnw,263
28
+ sm_blueprint_lib/parts/logicgate.py,sha256=In7-d-lCx1zJIT-7S0Mh7s32lj7xZ6wxObJMnKJKQQ4,960
29
+ sm_blueprint_lib/parts/piston.py,sha256=spKPDZ5n1qMK0NhDw1QKlfBWjYxjFwZCUQkiHXy1_Qo,239
30
+ sm_blueprint_lib/parts/sensor.py,sha256=ZJY5xo0NB6wAwgzS7EO-xgsukXYbwV7ptbGOqLfeBKQ,1008
31
+ sm_blueprint_lib/parts/suspension.py,sha256=GneMZcv4QCVbBOOpp400xffmbaHaWrCbOBvAoahv8cg,404
32
+ sm_blueprint_lib/parts/switch.py,sha256=VkPfvux1TeLTZawmYEHMLGnXxk-lqgB6qb2hwpICjms,242
33
+ sm_blueprint_lib/parts/timer.py,sha256=gw9XaWvP2yW3egT72BGowMu-CZFUY-Hke-Dwg0lsxjM,806
34
+ sm_blueprint_lib/prebuilds/__init__.py,sha256=iPrsPMiuoluIDvdLGuQmEJ-I11D5qk563ANKr3md1GM,337
35
+ sm_blueprint_lib/prebuilds/adder.py,sha256=qO1ulOBkXwZ7egJu1dmvvPDsD_DlIJP59LfwlkYbpTI,1737
36
+ sm_blueprint_lib/prebuilds/barrel_shifter.py,sha256=i2Yv5E7-saafb3GxGgIMFSDuKSiTdAykBBRP4Zb2hKE,3543
37
+ sm_blueprint_lib/prebuilds/clock40hz.py,sha256=PrAxTZHX-TiMs8BfgotPoU_0RFVMhi9SiD4cw6HorQ4,831
38
+ sm_blueprint_lib/prebuilds/comparator.py,sha256=Fp5xOqJVTz-yb7M0cczMoyOPQc1TjiSaROvSuKxrffU,2192
39
+ sm_blueprint_lib/prebuilds/counter.py,sha256=d2z9_2zeGmpAQR0V74mZnNVLtjg-FI8UGWvQM7oObXE,2535
40
+ sm_blueprint_lib/prebuilds/decoder.py,sha256=YKQVoWsrm0vF3z6piiI2FWYm-S09_WoNW2-3mJR5oaU,2064
41
+ sm_blueprint_lib/prebuilds/distance_sensor.py,sha256=8g3lZu391Kh8dpKG4Y8Tm2O6mWdwA_1Gssftxw-vDC4,1724
42
+ sm_blueprint_lib/prebuilds/ram.py,sha256=9F9sWZ-BP8F3414dD_z6WD4k073_NflH6yYoKVSu6Cc,4199
43
+ sm_blueprint_lib/prebuilds/register.py,sha256=BMU5ZG92opP4eAklI0qV4B_3CdkpI8mTv3IhCS4fyrU,2642
44
+ sm_blueprint_lib/prebuilds/rom.py,sha256=ed5WOiwt5n5A_RlLsrc9sfOmlu_tzDp-N4R6jslRZoM,3687
45
+ sm_blueprint_lib/prebuilds/timer_ram_cached.py,sha256=RSgoWsT1yogplwbOPx6qvA5eEgHpAKKwO7AgJPaUavo,19044
46
+ sm_blueprint_lib/prebuilds/timer_ram_multiclient.py,sha256=D_yuI09l0Gm5Ye1xKFnQMIrPoV4BzDBkRTVR7zSbWZY,4187
47
+ sm_blueprint_lib-0.0.11.dist-info/METADATA,sha256=WWym1Hiix4LeONmobSBWcUfsrBFfbhW0PgoD_G-ECr0,3379
48
+ sm_blueprint_lib-0.0.11.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
49
+ sm_blueprint_lib-0.0.11.dist-info/licenses/LICENSE,sha256=DWhaodryTSEv07KdWbanCMaEujOXYxnj-IEhmgTkOq0,1084
50
+ sm_blueprint_lib-0.0.11.dist-info/RECORD,,
@@ -1,41 +0,0 @@
1
- sm_blueprint_lib/__init__.py,sha256=yTdxFiDVUYCQoW_vakHBbtoQQfHhYkyGlziEO_BIRWE,215
2
- sm_blueprint_lib/blueprint.py,sha256=fmdB4XKXF-f-iSoq5ckcLdQAX90ftkfvDuOSzHTB_44,1080
3
- sm_blueprint_lib/body.py,sha256=sjnS0e1V0bZEhODA6XOxPH2oCt3xrFLQZ47PGhKjD_w,365
4
- sm_blueprint_lib/bounds.py,sha256=fH-i8PdlZVg8qlEd3FmIf5mbx4RKhdBOFRAe5cSWWiI,183
5
- sm_blueprint_lib/constants.py,sha256=LVAilqV6SR5c8FGurqwk7csI5z9l1eAjgSCg5h4HQuI,763
6
- sm_blueprint_lib/id.py,sha256=5sBHC8qZJnCaizSBs4KGS1dnZHOSdoq5wkuIpuYNRnw,71
7
- sm_blueprint_lib/pos.py,sha256=W0yaIg_nYgRqFwSkHlpd7Tfr69XSVwjTY1DfICHXoDo,411
8
- sm_blueprint_lib/utils.py,sha256=LzsOZfzfpeAgFQczApqtHm3iZ25N9HUWx2Vus95dUqM,5139
9
- sm_blueprint_lib/bases/controllers/basecontroller.py,sha256=VFS5J7kGQ8vfWBFjiTPVfXXjyMwJ1VqA3mYuh7Z_8ak,624
10
- sm_blueprint_lib/bases/controllers/baselogiccontroller.py,sha256=lDoDt9NKFu01CqyJE09_bq9oDeYK7T-fERO54kd-sFA,290
11
- sm_blueprint_lib/bases/controllers/logicgatecontroller.py,sha256=wzw8kdt65Zg6ucNNy47V3-okYod_ea2NH8erfjRu7uw,223
12
- sm_blueprint_lib/bases/controllers/sensorcontroller.py,sha256=Do8TJbnm7EhAMqGPprO9lTxAuNQMOFsSo-FslZZWnqk,710
13
- sm_blueprint_lib/bases/controllers/timercontroller.py,sha256=GcGzSicm0oGMP3gsuOA5t6PqEhRAsUVHWaCjhClbfMI,229
14
- sm_blueprint_lib/bases/parts/baseboundablepart.py,sha256=jNx_btmkCTksT6FcpHQxEVJXzN1a3DwwHS-2GdTy2CE,744
15
- sm_blueprint_lib/bases/parts/baseinteractablepart.py,sha256=VXINrObIr6Y2tFIOI59cB_-625rPwtKZdGDmaa3EgQ8,574
16
- sm_blueprint_lib/bases/parts/baselogicpart.py,sha256=al9nLCg8YiLKWd_c_ZQmq9f6sazjF6RNbuGGbYROOps,498
17
- sm_blueprint_lib/bases/parts/basepart.py,sha256=hzJBcB4uol65THzEZEGq4d2N9SbK1S4XiMghEuB6cuc,1126
18
- sm_blueprint_lib/parts/__init__.py,sha256=Ij9tismamOFKYyAI-RxcCc97L78XJCxPb6Yto4SPSN8,146
19
- sm_blueprint_lib/parts/barrierblock.py,sha256=GPI8ArKKvzO6wnHfBfgmU4Ezcrw9SmtKR0p4mWczYiw,267
20
- sm_blueprint_lib/parts/button.py,sha256=cZomy4n90XZqpUO4IkZff3kIbVkP9yGvscIysfBBxSg,269
21
- sm_blueprint_lib/parts/logicgate.py,sha256=In7-d-lCx1zJIT-7S0Mh7s32lj7xZ6wxObJMnKJKQQ4,960
22
- sm_blueprint_lib/parts/sensor.py,sha256=ZJY5xo0NB6wAwgzS7EO-xgsukXYbwV7ptbGOqLfeBKQ,1008
23
- sm_blueprint_lib/parts/switch.py,sha256=VkPfvux1TeLTZawmYEHMLGnXxk-lqgB6qb2hwpICjms,242
24
- sm_blueprint_lib/parts/timer.py,sha256=gw9XaWvP2yW3egT72BGowMu-CZFUY-Hke-Dwg0lsxjM,806
25
- sm_blueprint_lib/prebuilds/__init__.py,sha256=iPrsPMiuoluIDvdLGuQmEJ-I11D5qk563ANKr3md1GM,337
26
- sm_blueprint_lib/prebuilds/adder.py,sha256=Rq-006N_oD5ExIwQelgfrBKd7g8zFVxk4tj2lZEp82w,1750
27
- sm_blueprint_lib/prebuilds/barrel_shifter.py,sha256=BOvsUg9o6YzVrclmGNzhSbt9eQL23GJHHVyNxkXbcaE,3556
28
- sm_blueprint_lib/prebuilds/clock40hz.py,sha256=ygG8ieqpFzGMnuY5CBTs60liAYyAsBx-YIlb0gl3SXM,844
29
- sm_blueprint_lib/prebuilds/comparator.py,sha256=qUvW1MisQMODLz0BdPp1dQbDQQjSYQ0ro6Rsy6ELDjQ,2205
30
- sm_blueprint_lib/prebuilds/counter.py,sha256=-gQQWvFsNHrCe0SGwNuU3VWkKiXZNx0ippnaz5bfegw,2548
31
- sm_blueprint_lib/prebuilds/decoder.py,sha256=cvs2JomBfSLc3mwkrHk3z-qRUAgVwrLjgIYV6tdmQ1g,2077
32
- sm_blueprint_lib/prebuilds/distance_sensor.py,sha256=ooohDPSXtsPO2Hj5YL-kbeWJ_HgqGULqjR5WNOErIPo,1737
33
- sm_blueprint_lib/prebuilds/ram.py,sha256=YVhswLxG06Ypp8M_PY9PIQdJSbM9I13ktKN6yIgdZ5U,4212
34
- sm_blueprint_lib/prebuilds/register.py,sha256=MAiplmiA2L_VJaxCX2E8QuancnoqvyLY-vXuaP5bppw,2675
35
- sm_blueprint_lib/prebuilds/rom.py,sha256=4dxAaNxRX60kDW17NKew-TJkPB7EMfHuK_zVIm6N-jo,3700
36
- sm_blueprint_lib/prebuilds/timer_ram_cached.py,sha256=PG53hDKYS00fur5vazh7iOs2Gm4G_URJLX7d9xWJOe4,19057
37
- sm_blueprint_lib/prebuilds/timer_ram_multiclient.py,sha256=NlQeJB6ilEGJDrIOfkFmPWd7afDR_0CUZH7RQpjyA4s,4200
38
- sm_blueprint_lib-0.0.9.dist-info/METADATA,sha256=xpVz1qUOkZeVorjGXLrFhj6AaMUr3UpIbL-JgAAXHls,3378
39
- sm_blueprint_lib-0.0.9.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
40
- sm_blueprint_lib-0.0.9.dist-info/licenses/LICENSE,sha256=DWhaodryTSEv07KdWbanCMaEujOXYxnj-IEhmgTkOq0,1084
41
- sm_blueprint_lib-0.0.9.dist-info/RECORD,,