mirror of
https://github.com/MapMakersAndProgrammers/io_scene_a3d.git
synced 2025-10-26 01:49:13 -07:00
Tweak map materials
This commit is contained in:
@@ -253,7 +253,7 @@ class BattleMapBlenderImporter:
|
|||||||
#TODO: implement spawn type name lookup
|
#TODO: implement spawn type name lookup
|
||||||
ob = bpy.data.objects.new(f"SpawnPoint_{spawnPointData.type}", None)
|
ob = bpy.data.objects.new(f"SpawnPoint_{spawnPointData.type}", None)
|
||||||
ob.empty_display_type = "ARROWS"
|
ob.empty_display_type = "ARROWS"
|
||||||
ob.empty_display_size = 100
|
ob.empty_display_size = 100 # The map will be at 100x scale so it's a good idea to match that here
|
||||||
ob.location = spawnPointData.position
|
ob.location = spawnPointData.position
|
||||||
ob.rotation_mode = "XYZ"
|
ob.rotation_mode = "XYZ"
|
||||||
ob.rotation_euler = spawnPointData.rotation
|
ob.rotation_euler = spawnPointData.rotation
|
||||||
@@ -266,8 +266,8 @@ class BattleMapBlenderImporter:
|
|||||||
# Shader specific logic
|
# Shader specific logic
|
||||||
if materialData.shader == "TankiOnline/SingleTextureShader":
|
if materialData.shader == "TankiOnline/SingleTextureShader":
|
||||||
bsdf = PrincipledBSDFWrapper(ma, is_readonly=False, use_nodes=True)
|
bsdf = PrincipledBSDFWrapper(ma, is_readonly=False, use_nodes=True)
|
||||||
bsdf.roughness = 1.0
|
bsdf.roughness_set(1.0)
|
||||||
bsdf.ior = 1.0
|
bsdf.ior_set(1.0)
|
||||||
|
|
||||||
# Try load texture
|
# Try load texture
|
||||||
textureParameter = materialData.textureParameters[0]
|
textureParameter = materialData.textureParameters[0]
|
||||||
@@ -277,8 +277,8 @@ class BattleMapBlenderImporter:
|
|||||||
addImageTextureToMaterial(texture, ma.node_tree)
|
addImageTextureToMaterial(texture, ma.node_tree)
|
||||||
elif materialData.shader == "TankiOnline/SpriteShader":
|
elif materialData.shader == "TankiOnline/SpriteShader":
|
||||||
bsdf = PrincipledBSDFWrapper(ma, is_readonly=False, use_nodes=True)
|
bsdf = PrincipledBSDFWrapper(ma, is_readonly=False, use_nodes=True)
|
||||||
bsdf.roughness = 1.0
|
bsdf.roughness_set(1.0)
|
||||||
bsdf.ior = 1.0
|
bsdf.ior_set(1.0)
|
||||||
|
|
||||||
# Try load texture
|
# Try load texture
|
||||||
textureParameter = materialData.textureParameters[0]
|
textureParameter = materialData.textureParameters[0]
|
||||||
@@ -287,6 +287,10 @@ class BattleMapBlenderImporter:
|
|||||||
|
|
||||||
addImageTextureToMaterial(texture, ma.node_tree, linkAlpha=True)
|
addImageTextureToMaterial(texture, ma.node_tree, linkAlpha=True)
|
||||||
elif materialData.shader == "TankiOnline/Terrain":
|
elif materialData.shader == "TankiOnline/Terrain":
|
||||||
pass
|
# XXX: still need to figure out how to do the terrain properly, all manual attempts have yielded mixed results
|
||||||
|
bsdf = PrincipledBSDFWrapper(ma, is_readonly=False, use_nodes=True)
|
||||||
|
bsdf.roughness_set(1.0)
|
||||||
|
bsdf.ior_set(1.0)
|
||||||
|
bsdf.base_color_set((0.0, 0.0, 0.0))
|
||||||
|
|
||||||
return ma
|
return ma
|
||||||
@@ -31,6 +31,7 @@ from .BattleMap import BattleMap
|
|||||||
from .BattleMapBlenderImporter import BattleMapBlenderImporter
|
from .BattleMapBlenderImporter import BattleMapBlenderImporter
|
||||||
|
|
||||||
from glob import glob
|
from glob import glob
|
||||||
|
from time import time
|
||||||
|
|
||||||
'''
|
'''
|
||||||
Addon preferences
|
Addon preferences
|
||||||
@@ -69,6 +70,8 @@ class ImportA3D(Operator, ImportHelper):
|
|||||||
return ImportHelper.invoke(self, context, event)
|
return ImportHelper.invoke(self, context, event)
|
||||||
|
|
||||||
def execute(self, context):
|
def execute(self, context):
|
||||||
|
importStartTime = time()
|
||||||
|
|
||||||
objects = []
|
objects = []
|
||||||
for file in self.files:
|
for file in self.files:
|
||||||
filepath = self.directory + file.name
|
filepath = self.directory + file.name
|
||||||
@@ -90,6 +93,9 @@ class ImportA3D(Operator, ImportHelper):
|
|||||||
for obI, ob in enumerate(objects):
|
for obI, ob in enumerate(objects):
|
||||||
collection.objects.link(ob)
|
collection.objects.link(ob)
|
||||||
|
|
||||||
|
importEndTime = time()
|
||||||
|
self.report({'INFO'}, f"Imported {len(objects)} objects in {importEndTime-importStartTime}s")
|
||||||
|
|
||||||
return {"FINISHED"}
|
return {"FINISHED"}
|
||||||
|
|
||||||
class ImportBattleMap(Operator, ImportHelper):
|
class ImportBattleMap(Operator, ImportHelper):
|
||||||
@@ -114,6 +120,9 @@ class ImportBattleMap(Operator, ImportHelper):
|
|||||||
|
|
||||||
def execute(self, context):
|
def execute(self, context):
|
||||||
print(f"Reading BattleMap data from {self.filepath}")
|
print(f"Reading BattleMap data from {self.filepath}")
|
||||||
|
|
||||||
|
importStartTime = time()
|
||||||
|
|
||||||
mapData = BattleMap()
|
mapData = BattleMap()
|
||||||
with open(self.filepath, "rb") as file:
|
with open(self.filepath, "rb") as file:
|
||||||
mapData.read(file)
|
mapData.read(file)
|
||||||
@@ -127,6 +136,9 @@ class ImportBattleMap(Operator, ImportHelper):
|
|||||||
collection = bpy.context.collection
|
collection = bpy.context.collection
|
||||||
for ob in objects:
|
for ob in objects:
|
||||||
collection.objects.link(ob)
|
collection.objects.link(ob)
|
||||||
|
|
||||||
|
importEndTime = time()
|
||||||
|
self.report({'INFO'}, f"Imported {len(objects)} objects in {importEndTime-importStartTime}s")
|
||||||
|
|
||||||
return {"FINISHED"}
|
return {"FINISHED"}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user