费劲.png

This commit is contained in:
shenjack-5600u 2024-06-05 07:42:57 +08:00
parent 85a84cc1df
commit d6179422d5
Signed by: shenjack
GPG Key ID: FDF9864E11C7E79F
4 changed files with 47 additions and 38 deletions

View File

@ -254,7 +254,7 @@ class MinecraftWikiButtonTheme(BaseButtonTheme):
+ (button.font_height * 0.2) + (button.font_height * 0.2)
+ self.list_pad // 2 + self.list_pad // 2
) )
self.back_ground.x = self.x + (self.pad * 2) self.back_ground.x = self.x + (self.pad * 2)
self.back_ground.y = self.y + (self.pad * 2) self.back_ground.y = self.y + (self.pad * 2)
self.back_ground.position = self.x + (self.pad * 2), self.y + (self.pad * 2) self.back_ground.position = self.x + (self.pad * 2), self.y + (self.pad * 2)
@ -389,7 +389,7 @@ class PressTextButton(widgets.WidgetBase):
self.draw_theme.on_update(self) self.draw_theme.on_update(self)
self.value = text # 重新分配一下高度和宽度的位置 self.value = text # 重新分配一下高度和宽度的位置
@property @property
def x(self) -> int: def x(self) -> int:
return self._x return self._x
@ -477,7 +477,6 @@ class PressTextButton(widgets.WidgetBase):
self.draw_theme.on_disable(self) self.draw_theme.on_disable(self)
else: else:
self.back_rec.color = self.untouched_color self.back_rec.color = self.untouched_color
self.dispatch_event("on_release", x, y)
return False return False
def on_mouse_release(self, x, y, buttons, modifiers): def on_mouse_release(self, x, y, buttons, modifiers):
@ -487,6 +486,7 @@ class PressTextButton(widgets.WidgetBase):
else: else:
self.back_rec.color = self.touched_color self.back_rec.color = self.touched_color
self.pressed = False self.pressed = False
self.dispatch_event("on_release", self, x, y)
def _update_position(self): def _update_position(self):
self.text_label.position = self._x, self._y, 0 self.text_label.position = self._x, self._y, 0

View File

@ -12,7 +12,7 @@ package_path = "Difficult_Rocket_rs"
setup( setup(
name="Difficult_Rocket_rs", name="Difficult_Rocket_rs",
version="0.3.1", version="0.3.5",
author="shenjackyuanjie", author="shenjackyuanjie",
author_email="3695888@qq.com", author_email="3695888@qq.com",
rust_extensions=[ rust_extensions=[

View File

@ -728,7 +728,7 @@ impl SR1Ship {
}; };
} }
fn write_parts(parts: &Vec<SR1PartData>, writer: &mut Writer<Cursor<Vec<u8>>>, save_status: &SaveStatus) { fn write_parts(parts: &[SR1PartData], writer: &mut Writer<Cursor<Vec<u8>>>, save_status: &SaveStatus) {
writer.write_event(Event::Start(BytesStart::new("Parts"))).unwrap(); writer.write_event(Event::Start(BytesStart::new("Parts"))).unwrap();
for part in parts.iter() { for part in parts.iter() {
let mut part_attr = BytesStart::new("Part"); let mut part_attr = BytesStart::new("Part");

View File

@ -93,8 +93,7 @@ class Menu(BaseScreen):
# batch=self.main_batch, # batch=self.main_batch,
# group=self.main_group, # group=self.main_group,
# ) # )
self.enter_ship_editor_button = PressEnterShipEditorButton( self.enter_ship_editor_button = PressTextButton(
window=main_window,
x=100, x=100,
y=100, y=100,
width=150, width=150,
@ -102,8 +101,18 @@ class Menu(BaseScreen):
text="进入编辑器", text="进入编辑器",
batch=self.main_batch, batch=self.main_batch,
group=self.main_group, group=self.main_group,
draw_theme=MinecraftWikiButtonTheme draw_theme=MinecraftWikiButtonTheme,
dict_theme={"pop_out": True}
) )
def on_release(button: PressTextButton, x, y):
logger.info("on_mouse_release", x, y, button, tag="dr_game")
from .sr1_ship import SR1ShipRender
main_window.remove_sub_screen("DR_game_menu")
main_window.add_sub_screen("SR1_ship", SR1ShipRender)
logger.info("added SR1_ship screen", tag="dr_game")
self.enter_ship_editor_button.set_handler("on_release", on_release)
# main_window.push_handlers(self.wiki_button1) # main_window.push_handlers(self.wiki_button1)
# main_window.push_handlers(self.wiki_button2) # main_window.push_handlers(self.wiki_button2)
# main_window.push_handlers(self.wiki_button3) # main_window.push_handlers(self.wiki_button3)
@ -115,37 +124,37 @@ class Menu(BaseScreen):
self.main_batch.draw() self.main_batch.draw()
class PressEnterShipEditorButton(PressTextButton): # class PressEnterShipEditorButton(PressTextButton):
def __init__( # def __init__(
self, # self,
window: ClientWindow, # window: ClientWindow,
x: int, # x: int,
y: int, # y: int,
width: int, # width: int,
height: int, # height: int,
text: str, # text: str,
batch: Optional[Batch] = None, # batch: Optional[Batch] = None,
group: Optional[Group] = None, # group: Optional[Group] = None,
theme: Optional[ButtonThemeOptions] = None, # theme: Optional[ButtonThemeOptions] = None,
draw_theme: Optional[BaseButtonTheme] = None, # draw_theme: Optional[BaseButtonTheme] = None,
dict_theme: Optional[dict] = None, # dict_theme: Optional[dict] = None,
): # ):
super().__init__( # super().__init__(
x, y, width, height, text, batch, group, theme, draw_theme, dict_theme # x, y, width, height, text, batch, group, theme, draw_theme, dict_theme
) # )
self.window = window # self.window = window
def on_mouse_release(self, x, y, buttons, modifiers): # def on_mouse_release(self, x, y, buttons, modifiers):
if self.pressed and (x, y) in self: # if self.pressed and (x, y) in self:
if self.draw_theme: # if self.draw_theme:
self.draw_theme.on_disable(self) # self.draw_theme.on_disable(self)
else: # else:
self.back_rec.color = self.touched_color # self.back_rec.color = self.touched_color
self.pressed = False # self.pressed = False
from .sr1_ship import SR1ShipRender # from .sr1_ship import SR1ShipRender
self.window.remove_sub_screen("DR_game_menu") # self.window.remove_sub_screen("DR_game_menu")
self.window.add_sub_screen("SR1_ship", SR1ShipRender) # self.window.add_sub_screen("SR1_ship", SR1ShipRender)
logger.info("added SR1_ship screen", tag="dr_game") # logger.info("added SR1_ship screen", tag="dr_game")