added flat color values for low detail rendering. values borrowed from c10t.
This commit is contained in:
parent
3e8852a97c
commit
b887a2c6be
104
materials.py
104
materials.py
@ -6,6 +6,15 @@ NOTEX = 0xB8
|
|||||||
|
|
||||||
class Block(object):
|
class Block(object):
|
||||||
def __init__(self, materials, blockID, **kw):
|
def __init__(self, materials, blockID, **kw):
|
||||||
|
"""
|
||||||
|
Defines a blocktype.
|
||||||
|
Keyword parameters:
|
||||||
|
name: Human-readable name of the block
|
||||||
|
brightness: 0-15 (default 0)
|
||||||
|
opacity: 0-15 (default 15)
|
||||||
|
aka: Additional keywords to use for searching
|
||||||
|
color: (r, g, b) tuple. 0-255. default (0x77, 0x77, 0x77)
|
||||||
|
"""
|
||||||
object.__init__(self)
|
object.__init__(self)
|
||||||
self.materials = materials
|
self.materials = materials
|
||||||
materials._objects[blockID] = self;
|
materials._objects[blockID] = self;
|
||||||
@ -13,6 +22,9 @@ class Block(object):
|
|||||||
materials.lightEmission[blockID] = kw.pop('brightness', materials.defaultBrightness)
|
materials.lightEmission[blockID] = kw.pop('brightness', materials.defaultBrightness)
|
||||||
materials.lightAbsorption[blockID] = kw.pop('opacity', materials.defaultOpacity)
|
materials.lightAbsorption[blockID] = kw.pop('opacity', materials.defaultOpacity)
|
||||||
materials.aka[blockID] = kw.pop('aka', "")
|
materials.aka[blockID] = kw.pop('aka', "")
|
||||||
|
color = kw.pop('color', None)
|
||||||
|
if color:
|
||||||
|
materials.flatColors[blockID] = color
|
||||||
|
|
||||||
texture = kw.pop('texture')
|
texture = kw.pop('texture')
|
||||||
if isinstance(texture, int):
|
if isinstance(texture, int):
|
||||||
@ -23,6 +35,7 @@ class Block(object):
|
|||||||
|
|
||||||
self.ID = blockID
|
self.ID = blockID
|
||||||
|
|
||||||
|
|
||||||
class MCMaterials(object):
|
class MCMaterials(object):
|
||||||
defaultBrightness = 0
|
defaultBrightness = 0
|
||||||
defaultOpacity = 15
|
defaultOpacity = 15
|
||||||
@ -40,6 +53,97 @@ class MCMaterials(object):
|
|||||||
self.lightEmission = zeros(256, dtype='uint8')
|
self.lightEmission = zeros(256, dtype='uint8')
|
||||||
self.lightAbsorption = zeros(256, dtype='uint8')
|
self.lightAbsorption = zeros(256, dtype='uint8')
|
||||||
self.lightAbsorption[:] = self.defaultOpacity
|
self.lightAbsorption[:] = self.defaultOpacity
|
||||||
|
self.flatColors = zeros((256, 4), dtype='uint8')
|
||||||
|
self.flatColors[:] = (0x77, 0x77, 0x77, 0x255)
|
||||||
|
|
||||||
|
#flat colors borrowed from c10t. https://github.com/udoprog/c10t
|
||||||
|
defaultColors = array([
|
||||||
|
(255,255,255,0),
|
||||||
|
(128,128,128,255),
|
||||||
|
(120,172,70,255),
|
||||||
|
(134,96,67,255),
|
||||||
|
(100,100,100,255),
|
||||||
|
(157,128,79,255),
|
||||||
|
(120,120,120,0),
|
||||||
|
(84,84,84,255),
|
||||||
|
(56,68,127,64),
|
||||||
|
(56,68,127,64),
|
||||||
|
(255,90,0,255),
|
||||||
|
(255,90,0,255),
|
||||||
|
(218,210,158,255),
|
||||||
|
(136,126,126,255),
|
||||||
|
(143,140,125,255),
|
||||||
|
(136,130,127,255),
|
||||||
|
(115,115,115,255),
|
||||||
|
(102,81,51,255),
|
||||||
|
(0x4a,0x83,0x42,0x80),
|
||||||
|
(0xc3,0xc3,0x32,0xff),
|
||||||
|
(255,255,255,48),
|
||||||
|
(102,112,134,255),
|
||||||
|
(29,71,165,255),
|
||||||
|
(107,107,107,255),
|
||||||
|
(218,210,158,255),
|
||||||
|
(100,67,50,255),
|
||||||
|
(255,255,0,255),
|
||||||
|
(255,0,0,255),
|
||||||
|
(0x00, 0x00, 0x00, 0x00),
|
||||||
|
(0x00, 0x00, 0x00, 0x00),
|
||||||
|
(0xff, 0xed, 0x8c, 0xff),
|
||||||
|
(0xd9, 0xd9, 0xd9, 0xff),
|
||||||
|
(200,200,200,255),
|
||||||
|
(200,200,200,255),
|
||||||
|
(0x56, 0x23, 0x17, 0xff),
|
||||||
|
(0xff, 0x0, 0x0, 0xff),
|
||||||
|
(0xbf, 0xa9, 0x74, 0xff),
|
||||||
|
(0x7f, 0xae, 0x7d, 0xff),
|
||||||
|
(0x11, 0x0d, 0x1a, 0xff),
|
||||||
|
(0xff, 0xe1, 0x60,0xd0),
|
||||||
|
(0xe0, 0xae, 0x15, 0xff),
|
||||||
|
(0xff, 0xff, 0xff, 0x00),
|
||||||
|
(0xbf, 0xa9, 0x74, 0xff),
|
||||||
|
(0xbf, 0x87, 0x02, 0xff),
|
||||||
|
(0x6f, 0x01, 0x01, 0xff),
|
||||||
|
(129,140,143,255),
|
||||||
|
(45,166,152,255),
|
||||||
|
(0xa9, 0x6b, 0x00, 0xff),
|
||||||
|
(0x90, 0xbc, 0x27, 0xff),
|
||||||
|
(134,96,67,255),
|
||||||
|
(0xbc, 0xbc, 0xbc, 0xff),
|
||||||
|
(0xdd, 0xdd, 0xdd, 0xff),
|
||||||
|
(0x0, 0x0, 0x0, 0x0),
|
||||||
|
(0x0, 0x0, 0x0, 0x0),
|
||||||
|
(0xff, 0xc8, 0x8c, 0),
|
||||||
|
(120, 120, 120, 128),
|
||||||
|
(120, 120, 120, 128),
|
||||||
|
(0x0, 0x0, 0x0, 0x0),
|
||||||
|
(0x0, 0x0, 0x0, 0x0),
|
||||||
|
(120,120,120,255),
|
||||||
|
(0x0, 0x0, 0x0, 0x0),
|
||||||
|
(0x0, 0x0, 0x0, 0x0),
|
||||||
|
(143,125,125,0xff),
|
||||||
|
(163,145,145,0xff),
|
||||||
|
(181,140,64,32),
|
||||||
|
(255,0,0,0xb0),
|
||||||
|
(0x0, 0x0, 0x0, 0x0),
|
||||||
|
(255, 255, 255, 255),
|
||||||
|
(120, 120, 255, 120),
|
||||||
|
(255, 255, 255, 255),
|
||||||
|
(85,107,47,255),
|
||||||
|
(0x90, 0x98, 0xa8, 0xff),
|
||||||
|
(193,234,150,255),
|
||||||
|
(0x7d, 0x42, 0x2c, 0xff),
|
||||||
|
(0x58, 0x36, 0x16, 200),
|
||||||
|
(0xe3, 0x90, 0x1d, 0xff),
|
||||||
|
(0xc2, 0x73, 0x73, 0xff),
|
||||||
|
(0x79, 0x61, 0x52, 0xff),
|
||||||
|
(0xff, 0xbc, 0x5e, 0xff),
|
||||||
|
(0x3c, 0x0d, 0x6a, 0x7f),
|
||||||
|
(0x3c, 0x0d, 0x6a, 0x7f),
|
||||||
|
(228,205,206,255),
|
||||||
|
(50,89,45,128),
|
||||||
|
(94,167,84,128),
|
||||||
|
])
|
||||||
|
self.flatColors[:len(defaultColors)] = defaultColors
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return "<MCMaterials ({0})>".format(self.name)
|
return "<MCMaterials ({0})>".format(self.name)
|
||||||
|
Reference in New Issue
Block a user