Skip to content

Commit 4b8eb21

Browse files
author
Lawrence D'Oliveiro
committed
Use separate random sequences for geometry versus materials,
and keep seed values on redo (letting user edit them if desired) so spaceship design only has to change on each new invocation.
1 parent bb14c31 commit 4b8eb21

File tree

2 files changed

+481
-455
lines changed

2 files changed

+481
-455
lines changed

__init__.py

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
{
33
"name" : "Spaceship Generator",
44
"author" : "Michael Davies, Lawrence D'Oliveiro",
5-
"version" : (1, 2, 2),
5+
"version" : (1, 3, 0),
66
"blender" : (2, 82, 0),
77
"location" : "View3D > Add > Mesh",
88
"description" : "Procedurally generate 3D spaceships from a random seed.",
@@ -19,6 +19,7 @@
1919
from . import spaceship_generator
2020
#end if
2121

22+
import random
2223
import bpy
2324
from bpy.props import \
2425
BoolProperty, \
@@ -32,10 +33,15 @@ class GenerateSpaceship(bpy.types.Operator) :
3233
bl_options = {"REGISTER", "UNDO"}
3334

3435
df = spaceship_generator.parms_defaults # temp short name
35-
random_seed : StringProperty \
36+
geom_ranseed : StringProperty \
3637
(
37-
default = df.random_seed,
38-
name = "Seed"
38+
default = df.geom_ranseed,
39+
name = "Geometry Seed"
40+
)
41+
mat_ranseed : StringProperty \
42+
(
43+
default = df.mat_ranseed,
44+
name = "Material Seed"
3945
)
4046
num_hull_segments_min : IntProperty \
4147
(
@@ -97,6 +103,17 @@ class GenerateSpaceship(bpy.types.Operator) :
97103
)
98104
del df
99105

106+
def invoke(self, context, event) :
107+
maxseed = 1e6
108+
# [0 .. 999999] is enough to be interesting by
109+
# default. Users can always replace seeds with
110+
# anything they like.
111+
self.geom_ranseed = str(random.randrange(maxseed))
112+
self.mat_ranseed = str(random.randrange(maxseed))
113+
spaceship_generator.generate_spaceship(self)
114+
return {"FINISHED"}
115+
#end invoke
116+
100117
def execute(self, context) :
101118
spaceship_generator.generate_spaceship(self)
102119
return {"FINISHED"}

0 commit comments

Comments
 (0)