Skip to content

Commit

Permalink
Merge pull request #77 from MrClock8163/dev
Browse files Browse the repository at this point in the history
v2.5.0
  • Loading branch information
MrClock8163 authored Dec 23, 2024
2 parents 8398082 + 37cfbc5 commit 66bb01d
Show file tree
Hide file tree
Showing 54 changed files with 2,762 additions and 1,002 deletions.
42 changes: 38 additions & 4 deletions Arma3ObjectBuilder/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,39 @@
# Changelog

## [v2.5.0](https://github.com/MrClock8163/Arma3ObjectBuilder/releases/tag/v2.5.0) (Blender 2.90 -> 4.3)

### Added

- import-export:
- PAA texture import for textures compressed with DXT1 or DXT5 (S3TC BC1 and BC3) algorithms
- new config data parser and unified handler module
- scripts:
- utility script to create empty "dummy" P3D file

### Changed

- import-export:
- improved LZO1X decompression speeds
- model.cfg import is now available without Arma 3 Tools as well (if native parsing is successful)
- tools:
- Vertex Mass Editing:
- tools are now available in both Edit and Object modes
- in Edit mode the functions operate on the selected parts only
- in Object mode the functions operate on the entire mesh
- Distribute Mass now supports volume weighted distribution (on closed components)
- Mass From Density now supports volume weighted distribution (on closed components)
- UI layout was reorganized
- Bulk Renaming now shows warning signs at paths that point to files that do not exist
- Hit Point Cloud:
- exposed modifier settings were removed
- internal process was simplified

### Fixed

- the Rigging tools only allowed 3 bones to be assigned to a vertex instead of the proper limit of 4 (Select Overdetermined, Prune Overdetermined, General Cleanup)
- Bulk Renaming tool exposed the internal paths making it possible to break the feature until the next list refresh
- Center of Mass operator was not accounting for world transformations

## [v2.4.2](https://github.com/MrClock8163/Arma3ObjectBuilder/releases/tag/v2.4.2) (Blender 2.90 -> 4.2)

CRITICAL HOTFIX
Expand Down Expand Up @@ -97,7 +131,7 @@ CRITICAL HOTFIX
- LOD - Generic ruleset:
- warning for more than 2 UV channels on a LOD object
- LOD - Shadow ruleset:
- warning for unconventinal LOD indices (not 0, 10, 1000, 1010 or 1020)
- warning for unconventional LOD indices (not 0, 10, 1000, 1010 or 1020)
- warning if LOD has `lodnoshadow = 1` named property
- LOD - Underground (VBS) ruleset
- LOD - Groundlayer (VBS) ruleset
Expand Down Expand Up @@ -167,7 +201,7 @@ CRITICAL HOTFIX

### Changed

- Blender 4.1 compatiblity:
- Blender 4.1 compatibility:
- updated P3D import and export to be compatible with the new Blender API
- updated Validation tool to be compatible with the new Blender API
- common data:
Expand Down Expand Up @@ -257,7 +291,7 @@ CRITICAL HOTFIX
- LOD resolution would be incorrectly exported for Shadow Volume - View Cargo
- fixed possible issue in P3D export when the material index of a face is out of the material range for some reason
- add-on installation would fail on non-windows systems
- ASC import would delete source file if an error occured during importing
- ASC import would delete source file if an error occurred during importing
- User value would not be displayed correctly in the default Face Flag editing options

### Removed
Expand Down Expand Up @@ -322,7 +356,7 @@ CRITICAL HOTFIX
### Fixed

- RTM export would not delete faulty outputs and raise an exception due to a missing module import
- P3D import would sometimes fail due to mismatching normals-loops count (on topoologically defective models)
- P3D import would sometimes fail due to mismatching normals-loops count (on topologically defective models)
- ASCIIZ strings and characters were mistakenly decoded as UTF-8 (with no practical consequence)
- P3D output would become potentially faulty if non-manifold edges were marked as sharp

Expand Down
7 changes: 6 additions & 1 deletion Arma3ObjectBuilder/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,19 @@ Arma 3 Object Builder is a free, community add-on for Blender to help content de
- P3D import-export
- ASC import-export
- RTM import-export
- PAA import
- skeleton import-export (model.cfg)
- object list import-export (for Terrain Builder)
- armature reconstruction
- various editing tools
- utility functions
- utility functions and scripts

## Documentation

The documentation can be found on [GitBook](https://mrcmodding.gitbook.io/arma-3-object-builder/home). As the add-on changes, the documentation will be updated.

A series of introductory videos is also in production, and can be found on [YouTube](https://youtube.com/playlist?list=PL1L8e_Shj5DErJinP8vtLTImQ5PY4K9IN&si=U_AGJSK5mSi6VrjG). Videos may or may not exist about every feature, and any particular video might end up outdated as the add-on is developed. The written documentation always takes precedence.

## Installation

The add-on can be installed after either downloading a packaged release, or cloning the repository and manually packing it.
Expand Down
12 changes: 6 additions & 6 deletions Arma3ObjectBuilder/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
"name": "Arma 3 Object Builder",
"description": "Collection of tools for editing Arma 3 content",
"author": "MrClock (present add-on), Hans-Joerg \"Alwarren\" Frieden (original ArmaToolbox add-on)",
"version": (2, 4, 2),
"version": (2, 5, 0),
"blender": (2, 90, 0),
"location": "Object Builder panels",
"warning": "Development",
"warning": "",
"doc_url": "https://mrcmodding.gitbook.io/arma-3-object-builder/home",
"tracker_url": "https://github.com/MrClock8163/Arma3ObjectBuilder/issues",
"category": "Import-Export"
Expand Down Expand Up @@ -33,14 +33,13 @@
addon_dir = os.path.abspath(os.path.dirname(os.path.realpath(__file__)))
addon_icons = {}


def get_icon(name):
icon = 0
try:
icon = addon_icons[addon_prefs.icon_theme.lower()][name].icon_id
return addon_icons[addon_prefs.icon_theme.lower()][name].icon_id
except Exception:
pass
return 0

return icon

def get_prefs():
return addon_prefs
Expand Down Expand Up @@ -356,6 +355,7 @@ def draw(self, context):
ui.import_export_armature,
ui.import_export_tbcsv,
ui.import_export_asc,
ui.import_export_paa,
ui.tool_outliner,
ui.tool_mass,
ui.tool_materials,
Expand Down
2 changes: 1 addition & 1 deletion Arma3ObjectBuilder/blender_manifest.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ type = "add-on"
id = "Arma3ObjectBuilder"
name = "Arma 3 Object Builder"
tagline = "Comprehensive add-on for modding Arma 3"
version = "2.4.2"
version = "2.5.0"
blender_version_min = "4.2.0"
website = "https://mrcmodding.gitbook.io/arma-3-object-builder/home"
tags = ["Import-Export", "Game Engine", "Object"]
Expand Down
12 changes: 9 additions & 3 deletions Arma3ObjectBuilder/io/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,20 @@

if "binary_handler" in locals():
reload(binary_handler)
if "config" in locals():
reload(config)
if "compression" in locals():
reload(compression)
if "data_asc" in locals():
reload(data_asc)
if "data_p3d" in locals():
reload(data_p3d)
if "data_rap" in locals():
reload(data_rap)
if "data_rtm" in locals():
reload(data_rtm)
if "data_tbcsv" in locals():
reload(data_tbcsv)
if "data_paa" in locals():
reload(data_paa)
if "export_asc" in locals():
reload(export_asc)
if "export_mcfg" in locals():
Expand All @@ -37,15 +39,18 @@
reload(import_rtm)
if "import_tbcsv" in locals():
reload(import_tbcsv)
if "import_paa" in locals():
reload(import_paa)


from . import binary_handler
from . import config
from . import compression
from . import data_asc
from . import data_p3d
from . import data_rap
from . import data_rtm
from . import data_tbcsv
from . import data_paa
from . import export_asc
from . import export_mcfg
from . import export_p3d
Expand All @@ -57,3 +62,4 @@
from . import import_p3d
from . import import_rtm
from . import import_tbcsv
from . import import_paa
2 changes: 1 addition & 1 deletion Arma3ObjectBuilder/io/binary_handler.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ def read_byte(file):
return struct.unpack('B', file.read(1))[0]

def read_bytes(file, count = 1):
return [read_byte(file) for i in range(count)]
return struct.unpack('<%dB' % count, file.read(count))

def read_bool(file):
return read_byte(file) != 0
Expand Down
Loading

0 comments on commit 66bb01d

Please sign in to comment.