34 lines
1.0 KiB
Python
34 lines
1.0 KiB
Python
from gdpc import Editor, Block, geometry
|
|
from gdpc.lookup import *
|
|
import numpy as np
|
|
import math
|
|
|
|
SOLID_NATURAL_BLOCKS = SOILS | STONES | ORES | LIQUIDS
|
|
|
|
class Block:
|
|
def __init__(self, coordinates:tuple, name:str):
|
|
self.coordinates = coordinates
|
|
self.name = name
|
|
self.neighbors = []
|
|
self.surface = None
|
|
|
|
|
|
def addNeighbors(self, neighbors:list[Block]):
|
|
for neighbor in neighbors:
|
|
self.neighbors.append(neighbor)
|
|
|
|
def isSurface(self):
|
|
if self.surface == None:
|
|
if str(self.name) in SOLID_NATURAL_BLOCKS:
|
|
for neighbor in self.neighbors:
|
|
if str(neighbor.name) not in SOLID_NATURAL_BLOCKS:
|
|
self.surface = True
|
|
return True
|
|
if len(self.neighbors) != 0:
|
|
self.surface = False
|
|
return False
|
|
else:
|
|
self.surface = False
|
|
return False
|
|
else:
|
|
return self.surface |