Skip to content

Commit

Permalink
Merge pull request #1456 from BEEmod/dev
Browse files Browse the repository at this point in the history
Version 4.38.1
  • Loading branch information
TeamSpen210 authored Jan 15, 2021
2 parents ab33a68 + 3802503 commit cb9915e
Show file tree
Hide file tree
Showing 3 changed files with 69 additions and 31 deletions.
25 changes: 12 additions & 13 deletions src/app/CompilerPane.py
Original file line number Diff line number Diff line change
Expand Up @@ -836,7 +836,6 @@ def make_map_widgets(frame: ttk.Frame):
labelanchor=N,
)
corr_frame.grid(row=3, column=0, sticky=EW)
corr_frame.columnconfigure(0, weight=1)
corr_frame.columnconfigure(1, weight=1)

make_corr_wid('sp_entry')
Expand All @@ -845,32 +844,32 @@ def make_map_widgets(frame: ttk.Frame):

load_corridors()

CORRIDOR['sp_entry'].widget(corr_frame).grid(row=1, column=0, sticky=EW)
CORRIDOR['sp_exit'].widget(corr_frame).grid(row=1, column=1, sticky=EW)
CORRIDOR['coop'].widget(corr_frame).grid(row=2, column=1, sticky=EW)
CORRIDOR['sp_entry'].widget(corr_frame).grid(row=0, column=1, sticky='ew')
CORRIDOR['sp_exit'].widget(corr_frame).grid(row=1, column=1, sticky='ew')
CORRIDOR['coop'].widget(corr_frame).grid(row=2, column=1, sticky='ew')

ttk.Label(
corr_frame,
text=_('SP Entry:'),
anchor=CENTER,
).grid(row=0, column=0, sticky=EW)
anchor='e',
).grid(row=0, column=0, sticky='ew', padx=2)
ttk.Label(
corr_frame,
text=_('SP Exit:'),
anchor=CENTER,
).grid(row=0, column=1, sticky=EW)
anchor='e',
).grid(row=1, column=0, sticky='ew', padx=2)
ttk.Label(
corr_frame,
text=_('Coop:'),
anchor=CENTER,
).grid(row=2, column=0, sticky=EW)
text=_('Coop Exit:'),
anchor='e',
).grid(row=2, column=0, sticky='ew', padx=2)

model_frame = ttk.LabelFrame(
frame,
text=_('Player Model (SP):'),
labelanchor=N,
labelanchor='n',
)
model_frame.grid(row=4, column=0, sticky=EW)
model_frame.grid(row=4, column=0, sticky='ew')
UI['player_mdl'] = ttk.Combobox(
model_frame,
exportselection=0,
Expand Down
62 changes: 54 additions & 8 deletions src/app/signage_ui.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,10 +92,6 @@ def save_load_signage(props: Property=None) -> Optional[Property]:
def style_changed(new_style: Style) -> None:
"""Update the icons for the selected signage."""
for sign in Signage.all():
if sign.hidden:
# Don't bother with making the icon.
continue

for potential_style in new_style.bases:
try:
icon = sign.styles[potential_style.id.upper()].icon
Expand Down Expand Up @@ -151,25 +147,75 @@ def init_widgets(master: ttk.Frame) -> Optional[tk.Misc]:
canv_all['yscrollcommand'] = scroll.set

name_label = ttk.Label(window, text='', justify='center')
frame_preview = ttk.Frame(window, relief='raised', borderwidth=4)

frame_selected.grid(row=0, column=0, sticky='nsew')
name_label.grid(row=1, column=0, sticky='ew')
canv_all.grid(row=0, column=1, rowspan=2, sticky='nsew')
scroll.grid(row=0, column=2, rowspan=2, sticky='ns')
ttk.Separator(orient='horiz').grid(row=1, column=0, sticky='ew')
name_label.grid(row=2, column=0)
frame_preview.grid(row=3, column=0, pady=4)
canv_all.grid(row=0, column=1, rowspan=4, sticky='nsew')
scroll.grid(row=0, column=2, rowspan=4, sticky='ns')
window.columnconfigure(1, weight=1)
window.rowconfigure(0, weight=1)
window.rowconfigure(3, weight=1)

utils.add_mousewheel(canv_all, canv_all, window)

blank_sign = img.color_square(img.PETI_ITEM_BG, 64)
preview_left = ttk.Label(frame_preview, image=blank_sign, anchor='e')
preview_right = ttk.Label(frame_preview, image=blank_sign, anchor='w')
preview_left.grid(row=0, column=0)
preview_right.grid(row=0, column=1)

try:
sign_arrow = Signage.by_id('SIGN_ARROW')
except KeyError:
LOGGER.warning('No arrow signage defined!')
sign_arrow = None

hover_arrow = False
hover_toggle_id = None
hover_sign: Optional[Signage] = None

def hover_toggle() -> None:
"""Toggle between arrows and dual icons."""
nonlocal hover_arrow, hover_toggle_id
hover_arrow = not hover_arrow
if hover_arrow and sign_arrow:
preview_left['image'] = hover_sign.dnd_icon
preview_right['image'] = sign_arrow.dnd_icon
else:
try:
preview_left['image'] = Signage.by_id(hover_sign.prim_id or '').dnd_icon
except KeyError:
preview_left['image'] = hover_sign.dnd_icon
try:
preview_right['image'] = Signage.by_id(hover_sign.sec_id or '').dnd_icon
except KeyError:
preview_right['image'] = blank_sign
hover_toggle_id = TK_ROOT.after(1000, hover_toggle)

def on_hover(slot: dragdrop.Slot[Signage]) -> None:
"""Show the signage when hovered."""
nonlocal hover_arrow, hover_sign
name_label['text'] = (
_('Signage: {}').format(slot.contents.name)
if slot.contents is not None else
''
)
hover_sign = slot.contents
hover_arrow = True
hover_toggle()

def on_leave(slot: dragdrop.Slot[Signage]) -> None:
"""Reset the visible sign when left."""
nonlocal hover_toggle_id, hover_sign
name_label['text'] = ''
hover_sign = None
if hover_toggle_id is not None:
TK_ROOT.after_cancel(hover_toggle_id)
hover_toggle_id = None
preview_left['image'] = blank_sign
preview_right['image'] = blank_sign

drag_man.reg_callback(dragdrop.Event.HOVER_ENTER, on_hover)
drag_man.reg_callback(dragdrop.Event.HOVER_EXIT, on_leave)
Expand Down
13 changes: 3 additions & 10 deletions src/precomp/fizzler.py
Original file line number Diff line number Diff line change
Expand Up @@ -910,16 +910,9 @@ def _texture_fit(
is_laserfield=False,
) -> None:
"""Calculate the texture offsets required for fitting a texture."""
if side.vaxis.vec() != -fizz.up_axis:
# Rotate it
rot_angle = side.normal().rotation_around()
for _ in range(4):
side.uaxis = side.uaxis.rotate(rot_angle)
side.vaxis = side.vaxis.rotate(rot_angle)
if side.vaxis.vec() == -fizz.up_axis:
break
else:
LOGGER.warning("Can't fix rotation for {} -> {}", side.vaxis, fizz.up_axis)
# Compute the orientations that are up and along the fizzler.
side.uaxis.x, side.uaxis.y, side.uaxis.z = fizz.forward()
side.vaxis.x, side.vaxis.y, side.vaxis.z = -fizz.up_axis

side.uaxis.offset = -(tex_size / field_length) * neg.dot(side.uaxis.vec())
side.vaxis.offset = -(tex_size / 128) * neg.dot(side.vaxis.vec())
Expand Down

0 comments on commit cb9915e

Please sign in to comment.