这是下载网址

GitHub - Ksko233/mcpy-update2Contribute to Ksko233/mcpy-update2 development by creating an account on GitHub.https://github.com/Ksko233/mcpy-update2下面是部分代码:

import tkinter as tk
from tkinter import simpledialog as dialog
from tkinter import messagebox as msgbox
from tkinter import ttk
from platform import mac_ver
from textview import view_file
from sys import exit
from easygui import exceptionbox
from utils import logfrom language import *def nothing():passdef get_wrong_value(number=0):return 114514if mac_ver()[0]:style = {"width":9}
else:style = {"width":11}class ClassicLaunchpad(object):"""MCPY Dev的启动器窗口, 不推荐使用"""def __init__(self, runcmd, mainloop=False):"""初始化MCPY Dev的启动器界面, 建议使用AlphaLaunchpad"""self.root = tk.Tk()self.root.title("MCPYLauncher")lb = ttk.Label(self.root, text="Minecraft Python Edition Launchpad")lb.pack()self.cmd = runcmdbtn = ttk.Button(self.root, text="Play", command=self.fcmd)btn.pack(**style)if mainloop:self.root.mainloop()def fcmd(self, *args, **kw):self.root.destroy()self.cmd(*args, **kw)class AlphaLaunchpad(tk.Tk):"""MCPY Alpha的启动器窗口, 功能未完善参数介绍:*args **kw 用于tkinter.Tk的参数和关键字参数"""def __init__(self, *args, **kw):"""初始化MCPY Alpha的启动器界面参数介绍:*args **kw 为旧版的Mod兼容性制作, 没有实际用处"""tk.Tk.__init__(self)self.configure(bg="#EEEEEE")log("Starting launchpad")self.title(textLaunchpadTitle)self.resizable(False, False)self.notebook = ttk.Notebook(self)self.setup_listbox()self.setup_world_buttons()self.notebook.add(self.fr_worlds, text=textNoteRun)self.notebook.grid(row=0, column=0)self.setup_mod_buttons()self.setup_checks()if not mac_ver()[0]:self.iconbitmap("./resources/favicon.ico")log("Launchpad is ready")def setup_world_buttons(self):"""初始化加载世界的IGUI"""self.fr_worlds = tk.Frame(self.notebook, bg="#EEEEEE")self.fr_worlds.grid(column=0, row=1, padx=1, pady=2)self.bu_start = ttk.Button(self.fr_worlds, text=textStart, \command=self.__loadgame, **style)self.bu_start.grid(column=0, row=0, padx=1) #快速开始, 不推荐self.bu_worlds = ttk.Button(self.fr_worlds, text=textWorlds,\command=self.show_worlds, **style)self.bu_worlds.grid(column=1, row=0, padx=1) #选择与查看世界self.bu_multi = ttk.Button(self.fr_worlds, text=textMultiplayer, \command=self.infoNoServer, **style)self.bu_multi.grid(column=2, row=0, padx=1) #多人游戏, 正在开发中def setup_listbox(self):"""设置选项框"""self.glistbox = tk.Listbox(self, height=10, width=37)self.glistbox.grid(column=0, row=2, pady=(0, 7))def setup_mod_buttons(self):"""初始化加载Mod的IGUI"""self.fr_modify = tk.Frame(self.notebook, bg="#EEEEEE")self.notebook.add(self.fr_modify, text=textNoteModify)self.bu_config = ttk.Button(self.fr_modify, text=textResetWorld,\state="disabled",\command=lambda:self.run_world(1), **style)self.bu_config.grid(column=0, row=0, padx=1) #世界设置self.bu_help = ttk.Button(self.fr_modify, text=textHelp, \command=self.view_help, **style)self.bu_help.grid(column=1, row=0, padx=1) #获得帮助self.bu_addons = ttk.Button(self.fr_modify, text=textAddons,\**style) # No commandself.bu_addons.grid(column=2, row=0, padx=1) #Mod选项self.fr_extool = tk.Frame(self.notebook, bg="#EEEEEE")self.notebook.add(self.fr_extool, text=textNoteOptions)self.bu_settings = ttk.Button(self.fr_extool, text=textSettings,\state="enabled", command=self.ConfigUser,\**style)self.bu_settings.grid(column=0, row=1, padx=1) #设置功能正在开发中self.bu_market = ttk.Button(self.fr_extool, text=textMarket,\command=self.infoNoServer, **style)self.bu_market.grid(column=1, row=1, padx=1) #创意市场, 等到开服再做self.bu_exit = ttk.Button(self.fr_extool, text=textExit, \command=self.destroy, **style)self.bu_exit.grid(column=2, row=1, padx=1) #退出MCPY启动器def setup_checks(self):self.checks = cks = tk.Frame(self, bg="#EEEEEE")self.ckvs = []v1 = tk.BooleanVar(value=True)self.ckvs.append(v1)v2 = tk.BooleanVar()self.ckvs.append(v2)v3 = tk.BooleanVar()self.ckvs.append(v3)v4 = tk.BooleanVar()self.ckvs.append(v4)v5 = tk.BooleanVar()self.ckvs.append(v5)v6 = tk.BooleanVar(value=True)self.ckvs.append(v6)self.ck1 = ttk.Checkbutton(cks, text=terrainForest, variable=v1)self.ck1.grid(row=0, column=0, sticky='w')self.ck2 = ttk.Checkbutton(cks, text=terrainSnow, variable=v2)self.ck2.grid(row=0, column=1, sticky='w')self.ck3 = ttk.Checkbutton(cks, text=terrainIceRiver, variable=v3)self.ck3.grid(row=0, column=2, sticky='w')self.ck4 = ttk.Checkbutton(cks, text=terrainDesert, variable=v4)self.ck4.grid(row=1, column=0, sticky='w')self.ck5 = ttk.Checkbutton(cks, text=terrainArid, variable=v5)self.ck5.grid(row=1, column=1, sticky='w')self.ck6 = ttk.Checkbutton(cks, text=textInfDev, variable=v6)self.ck6.grid(row=1, column=2, sticky='w', padx=(3, 0))self.checks.grid(row=4, column=0)def destroy(self):"""退出MCPY启动器"""if msgbox.askyesno(textLaunchpadTitle, \textExitInfo):log("Launchpad is closed")tk.Tk.destroy(self) #在询问是否退出之后退出(坑人同原理)exit()def view_help(self):view_file(self, textLaunchpadTitle, "./README.md", "utf-8")def __rungame(self):log("Starting engine...")import engineengine.INFWORLD = self.ckvs[5].get()engine.TERRAIN = [self.ckvs[0].get(), self.ckvs[1].get(), self.ckvs[2].get(), self.ckvs[3].get(), self.ckvs[4].get()]tk.Tk.destroy(self)engine.SAVED = Falseengine.main()exit()def __loadgame(self):log("Loading game...")import enginetk.Tk.destroy(self)engine.SAVED = Trueengine.main()exit()def show_worlds(self):self.glistbox.delete(0,"end")for name in WORLDS_NAMES:self.glistbox.insert("end", name)self.bu_config["state"] = "normal"self.bu_addons["state"] = "normal"self.bu_start.configure(text=textPlayWorld, command=self.run_world)def show_addons(self):self.glistbox.delete(0,"end")self.bu_start.configure(text="Play mod", command=None)self.bu_addons["state"] = "disabled"def run_world(self, cfg=False, saved=True):try:index = self.glistbox.curselection()[0]except IndexError:msgbox.showerror(textLaunchpadTitle, textNoSelect)returnimport engineengine.TMP_WORLD_PATH = engine.WORLDS_PATHS[index]engine.SAVED = savedengine.INFWORLD = self.ckvs[5].get()engine.TERRAIN = [self.ckvs[0].get(), self.ckvs[1].get(), self.ckvs[2].get(), self.ckvs[3].get(), self.ckvs[4].get()]if not cfg:tk.Tk.destroy(self)log(engine.TMP_WORLD_PATH)engine.main()else:if msgbox.askokcancel(textLaunchpadTitle, textResetInfo):self.run_world(saved=False)exit()def ConfigUser(self):_Settings(self).mainloop()def infoNoServer(self):msgbox.showerror(textLaunchpadTitle, textNoServer)class _Settings(tk.Toplevel):def __init__(self, parent=None, *args, **kw):tk.Toplevel.__init__(self, parent, *args, **kw)self.title("MCPY Settings")self.lang = tk.StringVar()self.lang.set("English")self.setup_lang_choices()self.transient(parent)self.grab_set()self.bind("<Escape>", self.destroy)def setup_lang_choices(self):self.fr1 = tk.Frame(self)self.fr1.pack()lb_lang = ttk.Label(self.fr1, text="Select your language:")lb_lang.grid(column=0, row=0, padx=6, pady=6)lb_help = ttk.Label(self.fr1, text="Default: English")lb_help.grid(column=0, row=1)self.r_frame = tk.Frame(self.fr1)self.r_frame.grid(column=1, row=0, padx=6, pady=6)self.r1 = ttk.Radiobutton(self.r_frame, text='简体中文', value='zh-cn', \variable=self.lang, command=self.set_apply)self.r2 = ttk.Radiobutton(self.r_frame, text='English', value='en-us', \variable=self.lang, command=self.set_apply)self.r1.grid(column=1, row=0)self.r2.grid(column=2, row=0)self.bu_apply = ttk.Button(self, text="Apply", state="disabled",\command=self.apply, width=8)self.bu_apply.pack()def destroy(self, event=None):self.grab_release()tk.Toplevel.destroy(self)def set_apply(self):self.bu_apply.configure(state="enabled")def apply(self, event=None):la = self.lang.get()if la == 'zh-cn':with open("config/lang", "w") as f:f.seek(0)f.truncate()f.write("zh")elif la=='en-us':with open("config/lang", "w") as f:f.seek(0)f.truncate()f.write("en")self.bu_apply.configure(state="disabled")if msgbox.askokcancel(textLaunchpadTitle, "Restart to apply settings"):self.destroy()tk.Tk.destroy(self.master)def reset(self):self.lang.set("en-us")def infoNoServer(self):msgbox.showerror(textLaunchpadTitle, textNoServer)class _QueryConfigWorld(tk.Toplevel):def __init__(self, parent):tk.Toplevel.__init__(self, parent)self.transient(parent)self.setup_buttons()def setup_buttons(self):self.ok = ttk.Button(self, text="Ok", command=self.destroy)self.ok.pack(padx=3, pady=3, ipadx=2, ipady=2)def process_run_command(command, *args, **kw):"""处理一个函数, 返回包装参数的函数"""def ecmd():command(*args, **kw)return ecmddef main():try:AlphaLaunchpad().mainloop()except Exception as msg:if not msg.__class__ == SystemExit:exceptionbox()if __name__ == "__main__":main()

最后给个免费的赞吧!

我的世界代码python相关推荐

  1. python基础代码事例-推公式到写代码-python基础

    推公式到写代码-python基础 希望你能像看小说看杂文一样的心情看完这一系列,因为学习不总是枯燥的,希望像聊天一样娓娓道来. 专辑系列的阅读对象是那些懂些高等数学和线性代数,但没有经过编码训练的人. ...

  2. python搞笑代码-python有趣代码

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 前言本月将更新八篇python有趣系列文章. 本系列通过多个有趣案例,讲解pyt ...

  3. python一千行入门代码-Python 有哪些一千行左右的经典练手项目?

    谢邀.据我了解,没有千行左右的「经典」练手项目.但是我可以推荐一些练手项目.这些项目来着 教你阅读Python开源项目代码 - Python之美 - 知乎专栏 : 和工作中看别人代码差不多,基本每个人 ...

  4. 具体knn算法概念参考knn代码python实现

    具体knn算法概念参考knn代码python实现 上面是参考<机器学习实战>的代码,和knn的思想 # _*_ encoding=utf8 _*_ import numpy as np i ...

  5. 我的世界基java版刷怪机制_我的世界1.8版本刷怪机制_我的世界代码1.8版本刷怪机制_快吧单机游戏...

    我的世界代码1.8版本刷怪机制,我的世界中如何刷怪?今天给大家带来玩家"etflly"总结分享的1.8刷怪机制(源码解析),感兴趣的一起来看看吧!我的世界1.8版本刷怪机制. 昨天 ...

  6. 奇异值分解SVD数学原理及代码(Python)

    奇异值分解SVD数学原理及代码(Python) 首先简单介绍一下什么是正交矩阵(酉矩阵) 如果 或 其中,E为单位矩阵,或,则n阶实矩阵A称为正交矩阵.正交矩阵是实数特殊化的酉矩阵,因此总是属于正规矩 ...

  7. 拉格朗日插值代码python实现(不掉包)

    拉格朗日插值代码python实现(不掉包) 今天我们来讲一下,使用拉格朗日插值公式进行插值,通过python实现 那么拉格朗日插值公式是什么样的呢? 百度百科定义如下: 当然如果你没有看懂的话,可以再 ...

  8. OTB官方评估代码python版本--评估自己跟踪器,对比其他跟踪器

    OTB官方评估代码python版本--评估自己跟踪器,对比其他跟踪器 代码环境准备 环境安装 数据集准备 跑自己跟踪器 结果格式准备 生成json文件并画图 Bonus OTB数据集是目标跟踪领域里面 ...

  9. python最简单的爬虫代码,python小实例一简单爬虫

    python新手求助 关于爬虫的简单例子 #coding=utf-8from bs4 import BeautifulSoupwith open('', 'r') as file: fcontent ...

最新文章

  1. 怎么使用继承的一个实例
  2. JSON.parse与eval的区别
  3. linux中cd命令及范例,15个Linux中的“cd”命令的实际示例
  4. Python重现创业板指数行情
  5. c语言中整形数据分为几进制,c语言中整型数据中的8进制以及16进制数据 – 手机爱问...
  6. java多线程activemq,多线程JMS客户端ActiveMQ
  7. 【BZOJ 1449】 1449: [JSOI2009]球队收益 (最小费用流)
  8. SpringBoot配置模板引擎之视图解析器失效问题排查
  9. 模板引擎thymeleaf和freemarker
  10. c++ strcmp函数
  11. 咪咕音乐HTML代码,咪咕音乐播放器如何更换皮肤和底纹技术分享
  12. 使用python打开多台IMAGINGSOURCE工业相机
  13. 高等数学Mathematica实验题——2.2 - 16. 欧拉常数的计算(Calculation of EulerGamma Constant)
  14. macbook键盘失灵_如何使用MacBook的键盘在所有设备上键入
  15. 2022年京东平台休闲食品的年度总销量超6亿件,同比增长6.5%
  16. 判断当前Windows XP操作系统是32位还是64位的方法
  17. 使用aws跑深度学习_11. 附录 - 11.4. 使用AWS运行代码 - 《动手学深度学习》 - 书栈网 · BookStack...
  18. eNSP华为模拟器交换机和路由器设备密码设置与取消
  19. 【九天教您南方cass 9.1】 05 打印出图
  20. 使用Visual Studio+OpenCV进行的Susan算子边缘检测及数米粒图像处理实验

热门文章

  1. MOS管驱动电路分析及详解-KIA MOS管
  2. MOS管驱动电路及注意事项-KIA MOS管
  3. 【技巧】修改windows10在高分屏下的应用的dpi
  4. Android菜单设计指南
  5. 大学应届生,想转行学云计算,该怎么学,没有基础
  6. 动画程序时长缩放是什么意思_Pr预设:2000种文字标题排版指示线图形动画无缝转场剪辑工具包...
  7. 本地文件包含漏洞详解
  8. 大数据安全分析平台评估五要素
  9. 【项目管理/PMP/PMBOK第六版/新考纲】易错单选题20道带答案解析!
  10. Python爬取视频(m3u8格式)