Add more blocks into textureweaving index

This commit is contained in:
leha-code 2022-04-21 06:55:06 -04:00
parent 9d174302c5
commit 9a7be48a19
No known key found for this signature in database
GPG Key ID: 15227A6455DDF7EE
4 changed files with 222 additions and 63 deletions

View File

@ -34,7 +34,7 @@ import json
import pathlib
import gettext
LOCALE = os.getenv('LANG', 'en')
LOCALE = os.getenv("LANG", "en")
# Define the path used for later
absolute_path = pathlib.Path(__file__).parent.absolute()
@ -49,7 +49,9 @@ if os.path.exists("/usr/lib/planet-launcher/"):
sys.path.append("/usr/lib/planet-launcher/")
_ = gettext.translation('main', localedir=str(absolute_path)+"/assets/translations/", languages=[LOCALE]).gettext
_ = gettext.translation(
"main", localedir=str(absolute_path) + "/assets/translations/", languages=[LOCALE]
).gettext
# Local imports
import launcher
@ -131,18 +133,20 @@ class ConfigPluto(QDialog):
titlewidget.setLayout(titlelayout) # Set the layout
# Label with information
info_label = QLabel(_(
'Please select the executable you downloaded.\nIf you installed a DEB, please select the "Link" option'
))
info_label = QLabel(
_(
'Please select the executable you downloaded.\nIf you installed a DEB, please select the "Link" option'
)
)
self.executable_btn = QPushButton(_("Select executable")) # Button for AppImage
self.executable_btn.clicked.connect(
self.get_appimage
) # Connect to the function
self.premade_btn = QPushButton(_(
"Link /usr/bin/minecraft-pi-reborn-client"
)) # Button for Pre-installed debs
self.premade_btn = QPushButton(
_("Link /usr/bin/minecraft-pi-reborn-client")
) # Button for Pre-installed debs
self.premade_btn.clicked.connect(self.link_appimage) # Connect to the function
self.flatpak_btn = QPushButton(_("Link flatpak")) # Button for linking flatpak
@ -179,7 +183,10 @@ class ConfigPluto(QDialog):
self.hide() # Hide the dialog
# Open the file dialog
self.filename = QFileDialog.getOpenFileName(
self, _("Select executable"), "/", "Executable files (*.AppImage *.bin *.sh *)"
self,
_("Select executable"),
"/",
"Executable files (*.AppImage *.bin *.sh *)",
)
def link_appimage(self):
@ -297,7 +304,9 @@ class Planet(QMainWindow):
# mods_tab = tabs.addTab(self.custom_mods_tab(), "Mods")
# tabs.setTabIcon(mods_tab, QIcon(f"{absolute_path}/assets/portal512.png"))
settings_tab = tabs.addTab(self.settings_tab(), _("Settings")) # Changelog tab
tabs.setTabIcon(settings_tab, QIcon(f"{absolute_path}/assets/img/full/wrench512.png"))
tabs.setTabIcon(
settings_tab, QIcon(f"{absolute_path}/assets/img/full/wrench512.png")
)
self.layout.addWidget(tabs)
@ -375,7 +384,9 @@ class Planet(QMainWindow):
splashlabel.adjustSize() # Adjust the size just in case
splashlabel.setAlignment(Qt.AlignHCenter) # Align the label
usernamelabel = QLabel(_("Username")) # Label that is used to direct the line edit
usernamelabel = QLabel(
_("Username")
) # Label that is used to direct the line edit
self.usernameedit = QLineEdit() # Line Edit for username
self.usernameedit.setPlaceholderText(_("StevePi")) # Set ghost value
@ -388,7 +399,9 @@ class Planet(QMainWindow):
self.distancebox.addItems(["Far", "Normal", "Short", "Tiny"]) # Set the values
self.distancebox.setCurrentText("Short") # Set the default option
profilelabel = QLabel(_("Profile")) # Label that is used to direct the combo box
profilelabel = QLabel(
_("Profile")
) # Label that is used to direct the combo box
self.profilebox = QComboBox()
self.profilebox.addItems(
@ -532,7 +545,9 @@ class Planet(QMainWindow):
) # Set the text of the text editing area
infolabel = QLabel( # Label with information about the server format
_('Servers are stored in the format of <font color="gold">IP: </font><font color="blue">Port</font>')
_(
'Servers are stored in the format of <font color="gold">IP: </font><font color="blue">Port</font>'
)
)
layout.addWidget(self.serversedit, 0, 0) # Add the widgets
@ -718,7 +733,9 @@ class Planet(QMainWindow):
dialog = QMessageBox()
dialog.setWindowTitle(_("Are you sure you want to reset?"))
dialog.setText(
_("Are you sure you want to delete the config? This action is unrecoverable.")
_(
"Are you sure you want to delete the config? This action is unrecoverable."
)
)
dialog.setStandardButtons(QMessageBox.Ok | QMessageBox.Abort)
dialog.setIcon(QMessageBox.Warning)
@ -735,7 +752,9 @@ class Planet(QMainWindow):
dialog = QMessageBox()
dialog.setWindowTitle(_("Are you sure you want to reset?"))
dialog.setText(
_("Are you sure you want to delete the AppImage? This action is unrecoverable.")
_(
"Are you sure you want to delete the AppImage? This action is unrecoverable."
)
)
dialog.setStandardButtons(QMessageBox.Ok | QMessageBox.Abort)
dialog.setIcon(QMessageBox.Warning)

View File

@ -26,7 +26,7 @@ import os
import pathlib
import gettext
LOCALE = os.getenv('LANG')
LOCALE = os.getenv("LANG")
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
@ -47,8 +47,12 @@ if os.path.exists("/usr/lib/planet-launcher/"):
if not os.path.exists(f"/home/{USER}/.minecraft-pi/games/com.mojang/minecraftWorlds/"):
os.makedirs(f"/home/{USER}/.minecraft-pi/games/com.mojang/minecraftWorlds/")
_ = gettext.translation('mcpiedit', localedir=str(absolute_path)+"/assets/translations/", languages=[LOCALE]).gettext
_ = gettext.translation(
"mcpiedit",
localedir=str(absolute_path) + "/assets/translations/",
languages=[LOCALE],
).gettext
GAME_TYPES = {"Survival": nbt.pynbt.TAG_Int(0), "Creative": nbt.pynbt.TAG_Int(1)}
@ -71,7 +75,9 @@ class AboutWindow(QWidget):
label.setFont(font) # Aplly the font onto the label
desc_label = QLabel(
_("The default built-in NBT editor for Planet.\n\nMCPIedit makes use of Pi-NBT\n from the original MCPIedit project\nby TheBrokenRail, which is\nlicensed under the MIT license.")
_(
"The default built-in NBT editor for Planet.\n\nMCPIedit makes use of Pi-NBT\n from the original MCPIedit project\nby TheBrokenRail, which is\nlicensed under the MIT license."
)
)
desc_label.setAlignment(Qt.AlignHCenter)
@ -88,7 +94,9 @@ class FileSelectorTab(QWidget):
layout = QVBoxLayout()
info_label = QLabel(
_("NBT editors allow you to edit your world\nfiles to change game modes, time,\nand even the world name. Select an NBT\nfile to edit using the button below.")
_(
"NBT editors allow you to edit your world\nfiles to change game modes, time,\nand even the world name. Select an NBT\nfile to edit using the button below."
)
)
info_label.setAlignment(Qt.AlignHCenter)
@ -260,7 +268,9 @@ class EditorTab(QWidget):
layout.addWidget(player_z_label, 5, 0)
note_label = QLabel(
_("Note:\nPlayer spawnpoints are very buggy!\nYou might spawn in the wrong\nplace or even outside the world!\nDo not use on valuable worlds.")
_(
"Note:\nPlayer spawnpoints are very buggy!\nYou might spawn in the wrong\nplace or even outside the world!\nDo not use on valuable worlds."
)
)
layout.addWidget(self.spawn_x_box, 0, 1)

View File

@ -27,7 +27,7 @@ import shutil
import click
USER = os.getenv("USER")
USER = os.getenv("USER")
INDEX = [
# Armor
@ -129,13 +129,15 @@ TEXTURE_PATHS = [
"mob/spider.png",
"mob/zombie.png",
"particles.png",
"terrain.png"
"terrain.png",
]
def pepack_install(zip_path):
with ZipFile(zip_path) as zip_file:
zip_file.extractall(path=f"/home/{USER}/.minecraft-pi/overrides/")
def mcpit_install(zip_path):
not_found = list()
found = list()
@ -145,23 +147,29 @@ def mcpit_install(zip_path):
found.append(file)
else:
not_found.append(file)
for file in found:
zip_file.extract(file, path=f"/home/{USER}/.minecraft-pi/overrides/images/"+TEXTURE_PATHS[INDEX.index(file)][:-len(INDEX[INDEX.index(file)])])
if "changelog" in zip_file.namelist():
zip_file.extract(
file,
path=f"/home/{USER}/.minecraft-pi/overrides/images/"
+ TEXTURE_PATHS[INDEX.index(file)][: -len(INDEX[INDEX.index(file)])],
)
if "changelog" in zip_file.namelist():
with zip_file.open("changelog") as file:
click.echo(file.read())
if "credits" in zip_file.namelist():
if "credits" in zip_file.namelist():
with zip_file.open("credits") as file:
click.echo(file.read())
def install_pack(zip_path, pack_format):
def install_pack(zip_path, pack_format):
if pack_format == "mcpit":
mcpit_install(zip_path)
elif pack_format == "pepack":
pepack_install(zip_path)
def erase_pack():
shutil.rmtree(f"/home/{USER}/.minecraft-pi/overrides/images")
@ -170,21 +178,40 @@ def erase_pack():
def main():
pass
@main.command(help="Install a texture pack")
@click.argument("pack_path", type=click.Path(exists=True))
@click.option("--mcpit", "-m", "pack_format", is_flag=True, default=True, help="Use MCPiT format.", flag_value="mcpit")
@click.option("--pepack", "-p", "pack_format", is_flag=True, default=False, help="Use PEPack format.", flag_value="pepack")
def install(pack_path, pack_format):
install_pack(pack_path, pack_format)
@click.argument("pack_path", type=click.Path(exists=True))
@click.option(
"--mcpit",
"-m",
"pack_format",
is_flag=True,
default=True,
help="Use MCPiT format.",
flag_value="mcpit",
)
@click.option(
"--pepack",
"-p",
"pack_format",
is_flag=True,
default=False,
help="Use PEPack format.",
flag_value="pepack",
)
def install(pack_path, pack_format):
install_pack(pack_path, pack_format)
@main.command(help="Erase the pack files")
def erase():
erase_pack()
@main.command(help = "Show version and license")
@main.command(help="Show version and license")
def version():
click.echo(__doc__)
if __name__ == "__main__":
main()

View File

@ -1,34 +1,137 @@
"""
This file is part of mcpit/Planet.
mcpit/Planet is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
mcpit/Planet is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with mcpit/Planet. If not, see <https://www.gnu.org/licenses/>.
"""
from PIL import Image
POSITIONS = {
"grass_top" : (0, 0, 16, 16),
"stone": (16, 0, 32, 16),
# Row 1
"grass_carried": (0, 0, 16, 16),
"stone": (16, 0, 32, 16),
"dirt": (32, 0, 48, 16),
"grass_side_carried": (48, 0, 64, 16),
"planks_oak": (64, 0, 80, 16),
"stone_slab_side" : (80, 0, 96, 16),
"stone_slab_top":(96, 0, 112, 16),
"brick":(112, 0, 128, 16),
"tnt_side":(128, 0, 144, 16),
"tnt_top":(144, 0, 160, 16),
"tnt_bottom":(160, 0, 176, 16),
"web": (176, 0, 192, 16),
"flower_rose":(192, 0, 208, 16),
"flower_dandelion":(208, 0, 224, 16),
"sapling_oak": (240, 0, 256, 16),
"cobblestone": (0, 16, 16, 32),
"bedrock": (16, 16, 32, 32),
"sand":(32, 16, 48, 32), # I love these blocks
"gravel":(48, 16, 64, 32),
"log_oak":(64, 16, 80, 32),
"log_oak_top":(80, 16, 96, 32),
"grass_side_carried": (48, 0, 64, 16),
"planks_oak": (64, 0, 80, 16),
"stone_slab_side": (80, 0, 96, 16),
"stone_slab_top": (96, 0, 112, 16),
"brick": (112, 0, 128, 16),
"tnt_side": (128, 0, 144, 16),
"tnt_top": (144, 0, 160, 16),
"tnt_bottom": (160, 0, 176, 16),
"web": (176, 0, 192, 16),
"flower_rose": (192, 0, 208, 16),
"flower_dandelion": (208, 0, 224, 16),
"sapling_oak": (240, 0, 256, 16),
# Row 2
"cobblestone": (0, 16, 16, 32),
"bedrock": (16, 16, 32, 32),
"sand": (32, 16, 48, 32), # I love these blocks
"gravel": (48, 16, 64, 32),
"oak_log": (64, 16, 80, 32),
"oak_log_top": (80, 16, 96, 32),
"iron_block": (96, 16, 112, 32),
"gold_block": (112, 16, 128, 32),
"diamond_block": (128, 16, 144, 32),
"chest_top": (144, 16, 160, 32),
"chest_side": (160, 16, 176, 32),
"chest_front": (176, 16, 192, 32),
"mushroom_red": (192, 16, 208, 32),
"mushroom_brown": (208, 16, 224, 32),
"fire_0_placeholder": (240, 16, 256, 32),
# Row 3
"gold_ore": (0, 32, 16, 48),
"iron_ore": (16, 32, 32, 48),
"coal_ore": (32, 32, 48, 48),
"bookshelf": (48, 32, 64, 48),
"cobblestone_mossy": (64, 32, 80, 48),
"obsidian": (80, 32, 96, 48),
"grass_side": (96, 32, 112, 48),
"tallgrass": (112, 32, 128, 48),
"grass_top": (128, 32, 144, 48),
"crafting_table_top": (176, 32, 192, 48),
"furnace_front": (192, 32, 208, 48),
"furnace_side": (208, 32, 224, 48),
"fire_1_placeholder": (240, 32, 256, 48),
# Row 4
"glass": (16, 48, 32, 64),
"diamond_ore": (32, 48, 48, 64),
"redstone_ore": (48, 48, 64, 64),
"leaves_oak_carried": (64, 48, 80, 64),
"leaves_big_oak_carried": (80, 48, 96, 64),
"stonebrick": (96, 48, 112, 64),
"deadbush": (112, 48, 128, 64),
"shrub": (128, 48, 144, 64),
"crafting_table_side": (176, 48, 192, 64),
"crafting_table_front": (192, 48, 208, 64),
"furnace_front_on": (208, 48, 224, 64),
"furnace_top": (224, 48, 240, 64),
"spruce_sapling": (240, 48, 256, 64),
# Row 5
"white_wool": (0, 64, 16, 80),
"snow": (32, 64, 48, 80),
"ice": (48, 64, 64, 80),
"grass_block_snow": (64, 64, 80, 80),
"cactus_top": (80, 64, 96, 80),
"cactus_side": (96, 64, 112, 80),
"cactus_bottom": (112, 64, 128, 80),
"clay": (128, 64, 144, 80),
"sugarcane_extracted": (144, 64, 160, 80),
"birch_sapling": (240, 64, 256, 80),
# Row 6
"torch": (0, 80, 16, 96),
"oak_door_top": (16, 80, 32, 96),
"iron_door_top": (32, 80, 48, 96),
"ladder": (48, 80, 64, 96),
"oak_trapdoor": (64, 80, 80, 96),
"farmland_moist": (96, 80, 112, 96),
"farmland": (112, 80, 128, 96),
"wheat_stage0": (128, 80, 144, 96),
"wheat_stage1": (144, 80, 160, 96),
"wheat_stage2": (160, 80, 176, 96),
"wheat_stage3": (176, 80, 192, 96),
"wheat_stage4": (192, 80, 208, 96),
"wheat_stage5": (208, 80, 224, 96),
"wheat_stage6": (224, 80, 240, 96),
"wheat_stage7": (240, 80, 256, 96),
# Row 7
"oak_door_bottom": (16, 96, 32, 112),
"iron_door_bottom": (32, 96, 48, 112),
"mossy_stone_bricks": (48, 96, 64, 112),
"cracked_stone_bricks": (64, 96, 80, 112),
"netherrack": (96, 96, 112, 112),
"soul_sand": (112, 96, 128, 112),
"glowstone": (128, 96, 144, 112),
"melon_stem": (240, 96, 256, 112),
# Row 8
"black_wool": (16, 112, 32, 128),
"gray_wool": (32, 112, 48, 128),
"dark_oak_log": (64, 112, 80, 128),
"birch_log": (80, 112, 96, 128),
"attached_melon_stem": (240, 112, 256, 128),
# Row 9
"red_wool": (16, 128, 32, 144),
"pink_wool": (32, 128, 48, 144),
"birch_leaves": (48, 128, 64, 144),
"dark_oak_leaves": (32, 128, 48, 144),
"bed1": (48, 128, 64, 144),
"bed2": (64, 128, 80, 144),
"melon_side": (80, 128, 96, 144),
"melon_top": (96, 128, 112, 144),
"lapis_block": (112, 128, 128, 144),
}
def extract_fire():
pass
if __name__ == "__main__":
with Image.open("/home/leha2/.minecraft-pi/overrides/images/terrain.png") as img:
region=img.crop(POSITIONS["gravel"])
with Image.open(
"/usr/lib/minecraft-pi-reborn-client/data/images/terrain.png"
) as img:
region = img.crop(POSITIONS["black_wool"])
region.show()