Commit Graph

47 Commits

Author SHA1 Message Date
MattNL
6e3b88aa18 Removed restriction on file extension
LCE technically allows for any file to be opened regardless of file extension as long as it is a valid PCK file. Removing this allows advanced users to be creative with pack stylization
2026-01-25 14:07:00 -05:00
Miku-666
8dfe9cf5b0 3d skin renderer (#50)
* Add 'Validate Skin Dimension' setting

* AddNewSkin - Fix cape box not showing after skin selection

* Extended ResourceLocation for better atlas handling

* ModelImporter - Add block bench export for models inside models.bin

* ModelIporter - Rename 'GetPivot' to 'GetSkinBoxPivot'

* ModelImporter - Fix ANIM2BOX to properly support slim skin models

* ModelImporter - Update BedrockModel json class

* ModelImporter - Update 'FixTexture' to be more generic

* Update ModelContainer API inside OMI-Lib

* Update skin vertex shader to not swap yz

* Update CubeMesh class

* SkinRenderer - Move framebuffer and error checking function to SceneViewport

* SceneViewport - Change OnUpdate parameter

* SkinRenderer - Fix Highlight part having wrong transform

* SkinRenderer - Move call to 'SwapBuffers' into SceneViewport.OnUpdate

* AppSettingsForm - Update API to be more flexible

* SkinBOXExtensions - Update 'GetUVGraphicsPath'

* SkinRenderer - Update 'OnUpdate' function

* SkinRenderer - Add 'LockMousePosition' option

* CustomSkinEditor - Update HighlightlingColor when selecting a part

* CustomSkinEditor - Add render settings

* CustomSkinEditor - Small non-technical changes

* SkinRenderer - Small non-technical changes

* CustomSkinEditor - Load render settings when 'OnLoad' is called

* SkinRenderer - Fix centering leg0/1

* SkinRenderer - Update 'ReInitialzeSkinData' to upload new data to shader

* Rename 'ModelImporter' -> 'SkinModelImporter' and add api interface to add custom import/export providers

* CubeGroupMesh - Fix overlay parts not showing proerly

* SkinRenderer - Fix part highlighting respecting inflate

* Split up model and skin importer into seperate classes and improved api

* IModelImportProvider - Add 'SupportImport' and 'SupportExport' property fields

* ModelImporter - Rename 'SimpleSkinImportProvider' to 'InternalImportProvider'

* modelTextureLocations.json - Add todo

* SkinModelImporter - Move 'ModelTextureLocations' to GameModelImporter

* CustomSkinEditor - Add SettingsManager for RenderSettings

* ModelImporter::Import - Check if file exists

* Rename 'modelTextureLocations' to 'modelMetaData'

* GameModelImporter - Change blockbench name when exporting

* SettingsManager - Add functionality to create internal settings object and add settings to it

* GameModelImporter - Fully implemented game-model export to block bench

* AppSettingsForm - Fix re-adding settings description to default settings

* AppSettingsForm - Add settings description to 'ValidateImageDimension'

* GameModelImporter - Add copyright notice and remove unnecessary using statements

* ModelImporter - Add copyright notice and remove unnecessary using statements

* BlockBenchModel - Fix Texture class json deserialization

* SkinModelImporter - Add 'TryConvertToSkinBoxType' function

* modelMetaData - Remove comments

* SkinModelImporter - Fix 'GetSkinBoxPivot' function

* SkinModelImporter - Add null check in 'FixTexture' function

* SkinModelImporter - Add offset detection when importing skin model

* CustomSkinEditor - Add 'export template' button

* GameModelImporter - Rename 'ModelTextureLocations' -> 'ModelMetaData'

* ModelImporter - Add summary to 'SupportedModelFileFormatsFilter' property

* GameModelImporter - Change function signature of 'CreateElement'

* GameModelImporter - Add options to create root outline

* GameModelImporter - Update Debug message in 'TraverseChildren'

* MainForm - Small code refactor

* Rename class 'Meta' ->'BlockBenchFormatInfo' and update BlockBenchModel.Create function signature

* MainForm - Update 'GetModelTextures' local function

* GameModelImporter - Check model metadata before conversion

* GameModelInfo - Mark class as sealed

* SkinModelImporter - Check if blockbench model uses box uv

* BlockBenchModel - Add export property to class 'Element'

* CustomSkinEditor - Remove unused 'PreviewImage' property

* CustomSkinEditor - Change highlight color on texture

* SkinModelImporter - Fix Block Bench Model import

* modelMetaData - Add meta data for 1.14 models

* SkinModelImporter - Update 'TryConvertToSkinBoxType' function

* SkinModelExporter - Fix model export for bbmodel and bedrock model

* SkinRenderer - Fix order of applying anim animations to match the game

* SkinModelImporter - Fix exception thrown in 'FixTexture'

* CustomSkinEditor - Add Anim editor button and fix anim not being updated when exporting

* SkinModelImporter - Fix offset detection when importing

* SkinModelImporter - Swap box bottom texture when texture is available

* GameModelImporter - Sort using statements

* SkinModelImporter - Small code clean up inside 'ImportBedrockJson'

* SkinModelImporter - Update 'AddBone' function inside 'ExportBedrockJson'

* SkinModelImporter - Fix bottom texture swaping being done bofre parts where imported

* SkinMoelImporter - Rename 'GetSkinBoxPivot' to 'GetSkinPartPivot'

* SceneViewport - Rename 'Init' to 'Initialize'

* SkinModelImporter - Add texture import in 'ImportBedrockJson'

* SkinModelImporter - Fix becrock model import

* Skin-/GameModelImporter - Rename 'fileName' parameter to 'filepath'

* Add ModelEditor

* modelMetaData - Add cavespider texture location

* GameModelImporter - Update 'ExportBlockBenchModel' function

* GameModelImporter - Mark 'ModelExportSettings' as sealed

* ModelEditor -Add Save tool menu item & add TrySetTexture Delegate

* ModelEditor - Add model node icons

* Update CubeMesh & rename CubeGroupMesh to CubeMeshCollection

* ModelEditor - Rename 'GetModelNodes' & 'GetModelPartNodeChildren'

* Update GenericMesh & mesh rendering

* Move Cube conversion into SkinBOXExtensions

* GenericMesh - Made 'Transform' property abstract

* SceneViewport - Add shaderLibrary and api to it

* Rename 'skin...' shaders to 'texturedCube...'

* Update modelMetaData part hierarchy structure

* ShaderProgram - Add 'SetUniform2' overload for System.Drawing.Size

* ModelEditor - Create factory methods for custom model treenodes

* modelMetaData - Add 'slime.armor' texture location & pattern texture locations for 'tropicalfish_-a/-b'

* Move Debug & Camera control into SceneViewport

* Update BoundingBox

* Add ModelRenderer

* ShaderProgram - Update GetUniformLocation to retrive all active uniforms when linking program

* ModelEditor - Add option to show bounding box of the model

* SceneViewport - Add OnPaint override to clear color and depth buffer and enable depth testing

* Update OMI submodule

* Update  Texture base class to accept slot when calling Bind

* Plain color fragment shader - Update uniform names to be PascalCase

* SceneViewport - Add 'ResetCamera' virtual function

* CustomSkinEditor - Add missing render setting 'Show Armor'

* ModelRenderer - Fix centering model after selecting

* Move 'SceneViewport.GetBounds' to 'BoundingBox.GetEnclosingBoundingBox'

* CubeMeshCollection - Implemented 'GetBounds'

* SkinRenderer - Add option to show skins bounding box

* ModelEditor - Update 'GetModelImageIndex'

* SceneViewport - Disable blend when rendering debug graphics

* ModelEditor - Remove 'Model' property in favor to 'LoadModel' function

* JsonModelMetaData - Initialize 'RootParts' to empty array

* BoundingBox - Fix exception when empty enumerable was passed

* CubeMesh - Remove 'SetName' and add constructor with 'name' parameter

* SkinBOX - Change class to record & make member properties getter only

* BoundingBox - Move 'Abs' function into extension class

* SceneViewport - Change 'Transform' to 'GetTransform'

* BoundingBox - Make 'GetVertices' static & add GetTransform

* SkinRenderer - Fix bounds calculation when offset is set & fix part highlighting

* CubeMesh - Move translation & scaling into 'GetTransform'

* CubeMeshCollection - Update 'Contains' overload function & 'SetVisible'

* ModelRenderer - Fix pivot point rendering

* ModelRenderer - Add part highlighting

* modelMetaData - Add missing part to dolphin

* modelMetaData - Add missing parts to dragon

* CubeMesh - Fix 'GetTransform' function

* ModelRenderer - Fix model rotation, pivot & translation issues

* ModelRenderer - Add offset to render transform & camera

* ModelRenderer - Tried fixing alpha rendering issues

* modelMetaData - Add missing part to dragon & add comment

* Add 'ITryGetSet.cs' and useful wrappers for it

* ModelRenderer - Rename 'HighlightInfo.Pivot' to 'HighlightInfo.Translation'

* ITryGetSet - mark classes and interfaces public

* ModelEditor - Add material render support

* ModelRenderer - Add 'TryGetModelMetaData' method

* Fix rendering invisible vertecies

* ModelRenderer - Simplefied populating 'metaData.RootParts' property

* ModelRenderer - Add 'modelOffset' field

* ModelRenderer - Update 'SetModelMaterial'

* ModelRenderer - Add simple way of rendering a 2nd layer of a model(the bed model only for now)

* ModelRenderer - Fix pivot points not working on horse model properly

* ResourceLocation - Add 'Unknown' ResourceLocation instance & improved 'ResourceLocation.GetFromPath'

* ResourceCategory - Add 'MobEntityTextures' & 'ItemEntityTextures'

* Add default model handling (defaults unfinished)

* Add Default Bed model

* Add default chicken model

* Add default cow model

* AddSkinPrompt - Fix Custom skin editor not having anim flag properly set

* SceneViewport - Fix Designer crashing when trying to call 'OnPaint'

* Update OMI submodule

* SceneViewport - Call 'base.OnMouseUp' before our own code

* BlockBenchModel - Fix 'Texture.Name' being null

* ItemSelectionPopUp - Fix 'okBtn_Click' condition

* MainForm - Add export function for default models

* MainForm - Fix model selector ignoring cancel button

* MainForm - Remove unnecessary wrapper for 'entityMaterials.TryGetValue'

* ModelEditor - Add remove model to context menu

* ModelEditor - Add 'GetModelContainer' function

* GameModelImporter - Add import functionality

* MainForm - Add texture when exporting default models

* Add default model for: redcow, pig, snowgolem & dragon head

* Add SkinModel & SkinIdentifier class

* Refactor Skin.cs
- Move texture from 'SkinModel' to Skin.cs
- Move 'Id' from SkinMetaData into it's own class(SkinIdentifier.cs)
- Create SkinModelInfo class for keeping skin conversion simple

* Skin.cs - Rename 'ANIM' property to 'Anim'

* Move 'hasInvalidEntries' into 'MaterialExtensions.HasInvalidEntries'

* Add ISaveContext

* PckAssetExt - Rename parameter names for 'GetSkin'

* Add Editor.cs

* Update most editors to use new Editor class and save context

* CustomSkinEditor - Use Editor as base class

* SkinMetaData - Change to Immutable data type

* PckAssetExtension - [SetSkin] Change adding loc key to setting loc key

* ImageDeserializer - Add format check when deserializing

* MainForm - [HandleSkinFile] Rename some varibale names

* ModelEditor - Use Editor as base class

* Move static variables from 'ModelPartSpecifics' to 'GameConstants'

* Texture.cs - Add IDisposable interface

* PckAssetExtensions - [SetSkin] Add null check for loc file

* AnimationEditor - Fix auto save check

* TextureAtlasEditor - Refactor animation access control

* TextureAtlasEditor - Sort using directives

* MainForm - [HandleTextureFile] Add Debug message when animation has no frames to save

* AddSkinPrompt - Update save context for custom skin editor

* Editor - Move autosave check in 'OnFormClosing'

* ModelRenderer - Update designer specifics

* Merge 'multi-pck-files-feature' into '3dSkinRenderer'

* [WIP] Sub-pck in new tab with savecontext etc.

* SceneViewport - Change base refresh rate to 60 fps

* CustomSkinEditor - Move max offset value into a constant

* ModelEditor - Add highlighting of sinfgle model boxes

* MainForm - Add constant for max pck id value

* CustomSkinEditor - Remove fps slider and re-ordered ui

* EditorForm - Remove abstract from class declaration

* EditorControl - Made virtual funtion throw `NotImplementedException`

* CustomSkinEditor - Fix naming violations

* CustomSkinEditor - Move initialization of render settings into a seperate funtion & remove `show armor` setting

* Move Common functionality to Core project & rendering and Model support as well

* Change namespace of EditorForm & EditorControl

* Add Constant 'NDEBUG' to Core, Rendering & ModelSupport project

* PckStudio.csproj - Remove `defaultModels.json` & `modelMetaData.json`
- files were moved to PckStuido.ModelSupport

* PckStudio.csproj - Remove unused `ApplicationBuildInfo.cs`

* PckStudio.Core - Add NamedData.cs

* PckStudio - Move some Resources to Core

* Add Altas class & refactored Atlas editor

* Update OMI Submodule

* TextureAtlasEditor - Fix clear button not reseting color

* Fix PackInfo.cs - OMI.Endianess -> OMI.ByteOrder

* TextureAtlas - Impl extraction&import of large tiles

* PckStudio.Core - Remove duplicated resources

* LOCEditor - Added menu item for copying loc id

* Core - Move 'MAX_PACK_ID' into GameConstants

* TextureAtlasEditor - small refactor + TODOs

* Update OMI submodule ref
2025-11-11 21:53:32 +01:00
miku-666
a578024e30 Move Updater.cs into App folder 2024-08-23 17:16:00 +02:00
miku-666
b1bc4eadad Program - Move Update related initialization into Updater class 2024-08-15 16:57:27 +02:00
miku-666
ff93889776 Change In-App-Update system 2024-06-27 13:08:29 +02:00
miku-666
ba7a950f17 Move internal app related classes into 'Internal/App' 2024-06-22 00:32:37 +02:00
miku-666
9ef19cee34 Move Misc folder to 'Internal' folder and rename namespace 2024-05-20 16:11:29 +02:00
MattN-L
2f0abe3389 Assigned an owner to every instance of show/showdialog 2024-03-31 11:25:15 -04:00
MattNL
5f9d09120f Fix for file arguments no longer opening the PCK 2023-11-13 16:52:33 -05:00
Miku-666
1e94d23281 Added new PCK-Studio Updater (#20)
* Added PCK-Studio-Updater project

* Updated PCK-Studio-Updater to be a standanlone executable and added checkbox for using beta builds in the settings panel

* Rename constant define '_NOT_DEBUG' to 'NDEBUG' and moved it to .csproj file
2023-10-08 15:00:01 +02:00
miku-666
4f0f0cf66f Configured Trace log file via app.config file 2023-08-28 21:38:40 +02:00
miku-666
62b063fa2a Add config for Trace class 2023-08-25 13:41:42 +02:00
miku-666
e40953fcd4 Updated namespace for ApplicationScope 2023-08-12 11:46:44 +02:00
miku-666
affaa3ff17 Program.cs - Update 'AppData' path to use the product name of the application 2023-08-06 10:43:25 +02:00
miku-666
9af7924630 Program.cs - Moved 'RPC.Deinitialize();' to 'Application.ApplicationExit' event 2023-06-29 18:32:10 +02:00
miku-666
6024c4ad22 Added SettingsManager.cs 2023-06-13 18:14:34 +02:00
MattNL
756201296a UserSettings now loaded before form loading
-This way users who select the little endian option can open their pck files directly
2023-06-04 19:22:37 -04:00
miku-666
8e312d4ae4 Moved RPC init/deinit to Program file 2023-06-03 17:49:13 +02:00
miku-666
2e4cf6f1c8 Program.cs - Removed unnecessary using statement 2023-06-03 12:00:09 +02:00
miku-666
38d14661ef Improved performance im ChangeTile form 2023-05-14 16:46:20 +02:00
Miku-666
6f273008c9 Manage Pcks feature (#18)
* Add Console Installer Form

* Improved FTPClient constructor

* Add FTPClient.SetTimeoutLimit and made download and upload file accept a stream

* Add new Panels and move old for reference

* Update WiiU Install Panel

* Update FTPClient.ListDirectory

* Add Cemu Installer Panel

* CemuInstallPanel - Add path validation

* ConsoleInstaller - Removed PS3 support

* Rename 'Additional-Features' folder to 'Features'

* CemuInstallPanel - Add context item to add new custom pcks

* CemuInstallerPanel - Add function to remove pck from DLC folder

* CemuInstallPanel - Add directory exist check

* Rename 'ConsoleInstaller' to 'PckManager'

* Renamed Panels

* FTPClient.cs - Prefixed private class members with an underscore

* PckManager.cs - Renamed 'selectedPlatformComboBox' to 'supportedPlatformComboBox'

* CemuPanel.cs - Add better Directory name validation

* WiiUPanel.cs - Renamed some designer component names

* PS3Panel.cs - Removed unused text box

* PckManager.cs - Added message box for unimplemented panels

* CemuPanel.cs - Improved file path handling

* Removed PS3Panel.cs

* PckManager.cs - For now only Cemu is supported !

* Moved Features folder to project root and changed namespace of PckManager

* Removed StringExtensions and made method 'ContainsAny' generic and moved it to EnumerableExtensions
2023-05-07 16:29:37 +02:00
miku-666
b158981108 Added 'Internals' folder to project and moved SkinANIM, SkinBox, CommitInfo and ProgramInfo(ApplicationBuildInfo now) into 'Internals' 2023-05-03 16:32:36 +02:00
miku-666
85a3909a91 Program.cs - Updated 'ProgramInfo.BuildCalendar' to only initialize once 2023-05-02 18:30:35 +02:00
miku-666
ca298ed5be Added Beta build configuration and added CommitInfo class 2023-05-02 17:04:39 +02:00
miku-666
4a41612188 Updated ProgramInfo.BuildVersion to only return the version format 2023-04-25 18:15:02 +02:00
miku-666
04fda240a2 Update Discord RPC class 2023-04-01 11:12:07 +02:00
MattNL
2374199194 Changed display text for debug release 23w11b 2023-03-08 20:01:22 -05:00
MattNL
13f587e604 Changed display text for debug release 23w11a 2023-03-07 12:07:31 -05:00
MattNL
f166c1c282 Change debug build to "E" 2023-03-05 16:23:01 -05:00
MattNL
3ca723edc2 Changed program build to "D" 2023-03-04 12:53:16 -05:00
MattNL
d4a1cfbebe Change build to "C" 2023-03-04 11:34:29 -05:00
miku-666
54b81e2c2f Main Form - disable convert PC Textrure Pack menu item 2023-03-04 17:17:07 +01:00
miku-666
225fb48285 Merge 'main' into https://github.com/PhoenixARC/-PCK-Studio/tree/main 2023-03-03 17:39:18 +01:00
miku-666
61bcef1c9f Program.cs - Remove 'Debug.WriteLine(Info.LastCommitHash)' 2023-03-03 17:38:05 +01:00
MattNL
12f3be70b3 Changed build from "a" to "b" 2023-03-03 05:23:47 -05:00
miku-666
690785781f Move Version Number construction into ProgramInfo class and add last commit hash as a usable string 2023-03-02 16:05:59 +01:00
miku-666
6ce84603c9 Revert "Program.cs - Change 'System.Globalization.CultureInfo.CurrentCulture' to 'System.Globalization.CultureInfo.CurrentCulture.NumberFormat'"
This reverts commit 3c94ced692.
2023-01-13 17:38:27 +01:00
miku-666
0b32b8470a MainForm.cs - Rename 'LoadFromPath' to 'LoadPck' 2023-01-13 16:48:39 +01:00
miku-666
3c94ced692 Program.cs - Change 'System.Globalization.CultureInfo.CurrentCulture' to 'System.Globalization.CultureInfo.CurrentCulture.NumberFormat' 2023-01-13 16:46:35 +01:00
MattNL
0f2fb17432 Added global fix for localized decimal parsing 2022-11-04 19:38:40 -04:00
miku-666
5a76b9a035 Revert "Add debug log file when in release mode"
This reverts commit 0230be4541.
2022-11-04 11:14:43 +01:00
miku-666
0230be4541 Add debug log file when in release mode 2022-11-04 11:09:46 +01:00
miku-666
2a7d4ad139 Add Debug Listener and made Program variables readonly 2022-09-28 16:45:42 +02:00
miku-666
f19aafaf56 Add file exists check when opening file via cli 2022-09-23 20:46:29 +02:00
miku-666
6f9f1f0e50 Add static strings to Program class 2022-09-01 19:41:06 +02:00
miku-666
14746d8c51 Add loading pck via terminal 2022-08-27 14:16:45 +02:00
miku-666
768bdc4dc7 Rename MinecraftUSkinEditor -> PCK-Studio, PckStudio.Installer
-> `PCK-Studio.Installer` and rename solution
2022-08-11 21:25:00 +02:00