Skip to content

Commit

Permalink
Formatted code
Browse files Browse the repository at this point in the history
  • Loading branch information
Gino authored and Gino committed Feb 4, 2025
1 parent 2a81ad5 commit 9be616a
Show file tree
Hide file tree
Showing 7 changed files with 281 additions and 181 deletions.
101 changes: 56 additions & 45 deletions editor-blender/core/actions/state/load/floor.py
Original file line number Diff line number Diff line change
@@ -1,21 +1,29 @@
import bpy
from typing import cast

import bpy

from ....config import config
from ....utils.convert import rgb_to_float


def setup_floor() -> None:
if not bpy.context:
return

data_objects: dict[str, bpy.types.Object] = cast(dict[str, bpy.types.Object], bpy.data.objects)

data_objects: dict[str, bpy.types.Object] = cast(
dict[str, bpy.types.Object], bpy.data.objects
)

# Create floor
stage_scale: float = cast(float, getattr(config, "stage_scale", 1.0))
stage_width: float = cast(float, getattr(config, "stage_width", 1.0)) * stage_scale
stage_length: float = cast(float, getattr(config, "stage_length", 1.0)) * stage_scale
stage_length: float = (
cast(float, getattr(config, "stage_length", 1.0)) * stage_scale
)
stage_stroke: float = 0.02
stage_color: tuple[float, float, float, float] = (*rgb_to_float((38, 123, 216)), 1.0)
stage_color: tuple[float, float, float, float] = cast(
tuple[float, float, float, float], (*rgb_to_float((38, 123, 216)), 1.0)
)

edge_locations: list[tuple[float, float, float]] = [
(0, stage_width / 2, 0),
Expand All @@ -39,11 +47,11 @@ def setup_floor() -> None:
edge_obj: bpy.types.Object | None = bpy.context.object
if edge_obj is None:
return

edge_obj.name = name
edge_obj.location = edge_locations[i]
edge_obj.scale = edge_scales[i]
edge_obj.color = stage_color
edge_obj.color = stage_color
edge_obj.hide_select = True

for obj in cast(list[bpy.types.Object], bpy.context.view_layer.objects.selected):
Expand All @@ -52,20 +60,20 @@ def setup_floor() -> None:
# Floor Material setup
material_wooden = bpy.data.materials.new(name="Wooden")
material_wooden.use_nodes = True

node_tree = material_wooden.node_tree
if node_tree is None:
return

material_output = node_tree.nodes.get("Material Output")
pri_bsdf = node_tree.nodes.get("Principled BSDF")

if not material_output or not pri_bsdf:
return

material_output.location = (400, 500)
pri_bsdf.location = (100, 500)

# Create nodes
brick_texture = node_tree.nodes.new("ShaderNodeTexBrick")
map1 = node_tree.nodes.new("ShaderNodeMapping")
Expand All @@ -76,7 +84,7 @@ def setup_floor() -> None:
coord2 = node_tree.nodes.new("ShaderNodeTexCoord")
mix = node_tree.nodes.new("ShaderNodeMixRGB")
ramp = node_tree.nodes.new("ShaderNodeValToRGB")

# Set node locations (For manual adjustment)
brick_texture.location = (-600, 300)
map1.location = (-800, 300)
Expand All @@ -87,7 +95,7 @@ def setup_floor() -> None:
coord2.location = (-1000, 750)
mix.location = (-400, 500)
ramp.location = (-200, 500)

# Connect nodes
node_tree.links.new(coord1.outputs[3], map1.inputs[0])
node_tree.links.new(coord2.outputs[3], map2.inputs[0])
Expand All @@ -98,45 +106,48 @@ def setup_floor() -> None:
node_tree.links.new(mix.outputs[0], ramp.inputs[0])
node_tree.links.new(ramp.outputs[0], pri_bsdf.inputs[0])
node_tree.links.new(bump.outputs[0], pri_bsdf.inputs[5])

# Modify node values
brick_texture.inputs[1].default_value = (0.226, 0.226, 0.226, 1)
brick_texture.inputs[2].default_value = (0.413, 0.413, 0.413, 1)
brick_texture.inputs[4].default_value = 7.00
brick_texture.inputs[5].default_value = 0.005
brick_texture.inputs[6].default_value = 1.00
brick_texture.inputs[7].default_value = 0.02
brick_texture.inputs[8].default_value = 4.00
brick_texture.inputs[9].default_value = 0.60

noise.inputs[2].default_value = 6.00
noise.inputs[3].default_value = 16.00
noise.inputs[4].default_value = 0.80
noise.inputs[8].default_value = 4.00

map2.inputs[3].default_value[1] = 10.00
mix.inputs[0].default_value = 1.00
mix.blend_type = 'MULTIPLY'

ramp.color_ramp.elements.new(0.200)
ramp.color_ramp.elements.new(0.500)
ramp.color_ramp.elements[3].position = 0.450
ramp.color_ramp.elements[2].position = 0.250
ramp.color_ramp.elements[1].position = 0.100
ramp.color_ramp.elements[3].color = (1.00, 0.89, 0.81, 1.00)
ramp.color_ramp.elements[2].color = (0.90, 0.65, 0.47, 1.00)
ramp.color_ramp.elements[1].color = (0.42, 0.27, 0.18, 1.00)

pri_bsdf.inputs[2].default_value = 0.240

setattr(brick_texture.inputs[1], "default_value", (0.226, 0.226, 0.226, 1))
setattr(brick_texture.inputs[2], "default_value", (0.413, 0.413, 0.413, 1))
setattr(brick_texture.inputs[4], "default_value", 7.00)
setattr(brick_texture.inputs[5], "default_value", 0.005)
setattr(brick_texture.inputs[6], "default_value", 1.00)
setattr(brick_texture.inputs[7], "default_value", 0.02)
setattr(brick_texture.inputs[8], "default_value", 4.00)
setattr(brick_texture.inputs[9], "default_value", 0.60)

setattr(noise.inputs[2], "default_value", 6.00)
setattr(noise.inputs[3], "default_value", 16.00)
setattr(noise.inputs[4], "default_value", 0.80)
setattr(noise.inputs[8], "default_value", 4.00)

vec = list(getattr(map2.inputs[3], "default_value"))
vec[1] = 10.00
setattr(map2.inputs[3], "default_value", vec)

setattr(mix.inputs[0], "default_value", 1.00)
setattr(mix, "blend_type", "MULTIPLY")

ramp.color_ramp.elements.new(0.200) # type: ignore
ramp.color_ramp.elements.new(0.500) # type: ignore
setattr(ramp.color_ramp.elements[3], "position", 0.450) # type: ignore
setattr(ramp.color_ramp.elements[2], "position", 0.250) # type: ignore
setattr(ramp.color_ramp.elements[1], "position", 0.100) # type: ignore
setattr(ramp.color_ramp.elements[3], "color", (1.00, 0.89, 0.81, 1.00)) # type: ignore
setattr(ramp.color_ramp.elements[2], "color", (0.90, 0.65, 0.47, 1.00)) # type: ignore
setattr(ramp.color_ramp.elements[1], "color", (0.42, 0.27, 0.18, 1.00)) # type: ignore

setattr(pri_bsdf.inputs[2], "default_value", 0.240)

flr = "wooden_floor"

# Remove existing floor
if flr in bpy.data.objects:
obj = bpy.data.objects.get(flr)
if obj:
bpy.data.objects.remove(obj, do_unlink=True)

# Add new floor
bpy.ops.mesh.primitive_cube_add(scale=(stage_width / 2, stage_length / 2, 0.01))
obj = bpy.context.object
Expand Down
29 changes: 13 additions & 16 deletions editor-blender/core/actions/state/load/objects.py
Original file line number Diff line number Diff line change
Expand Up @@ -108,34 +108,33 @@ async def import_model_to_asset(

# avoid part name conflict
obj.name = f"{model_name}.{obj.name}"

# Add material to each object
material = bpy.data.materials.new(name=f"{obj.name}_Material")
material.use_nodes = True

# Ensure the object has valid data
if obj.data is not None and hasattr(obj.data, 'materials'):

if obj.data is not None and hasattr(obj.data, "materials"):
# Create new nodes and some setup
bsdf_node = material.node_tree.nodes.new(type='ShaderNodeBsdfPrincipled')
object_node = material.node_tree.nodes.new(type="ShaderNodeObjectInfo")
bsdf_node = material.node_tree.nodes.new(type="ShaderNodeBsdfPrincipled") # type: ignore
object_node = material.node_tree.nodes.new(type="ShaderNodeObjectInfo") # type: ignore

material.node_tree.links.new(object_node.outputs[1], bsdf_node.inputs[0])
material.node_tree.links.new(object_node.outputs[1], bsdf_node.inputs[26])
bsdf_node.inputs[27].default_value = 5.0
material.node_tree.links.new(object_node.outputs[1], bsdf_node.inputs[0]) # type: ignore
material.node_tree.links.new(object_node.outputs[1], bsdf_node.inputs[26]) # type: ignore
setattr(bsdf_node.inputs[27], "default_value", 5.0)

# Material Output node if it doesn't exist
material_output_node = material.node_tree.nodes.get("Material Output")
material_output_node = material.node_tree.nodes.get("Material Output") # type: ignore
if not material_output_node:
material_output_node = material.node_tree.nodes.new(type='ShaderNodeOutputMaterial')
material_output_node = material.node_tree.nodes.new(type="ShaderNodeOutputMaterial") # type: ignore

material.node_tree.links.new(bsdf_node.outputs[0], material_output_node.inputs['Surface'])
material.node_tree.links.new(bsdf_node.outputs[0], material_output_node.inputs["Surface"]) # type: ignore

# Assign material to the object
if obj.data.materials:
obj.data.materials[0] = material
if obj.data.materials: # type: ignore
obj.data.materials[0] = material # type: ignore
else:
obj.data.materials.append(material)
obj.data.materials.append(material) # type: ignore

# Clean meshes
sphere_mesh = find_first_mesh("Sphere")
Expand Down Expand Up @@ -412,5 +411,3 @@ async def setup_objects():
]

setup_dancer_part_objects_map()


Loading

0 comments on commit 9be616a

Please sign in to comment.