mirror of
https://github.com/4sval/FModel.git
synced 2026-04-07 09:36:29 -05:00
FModel v4.4
This commit is contained in:
parent
9754ae4a73
commit
69592ad46d
4
.github/workflows/main.yml
vendored
4
.github/workflows/main.yml
vendored
|
|
@ -35,7 +35,7 @@ jobs:
|
|||
- name: ZIP File
|
||||
uses: papeloto/action-zip@v1
|
||||
with:
|
||||
files: ./FModel/bin/Publish/
|
||||
files: ./FModel/bin/Publish/FModel.exe
|
||||
dest: FModel.zip # will end up in working directory not the Publish folder
|
||||
|
||||
- name: GIT Release
|
||||
|
|
@ -45,4 +45,4 @@ jobs:
|
|||
automatic_release_tag: ${{ github.event.inputs.appVersion }}
|
||||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
prerelease: false
|
||||
files: FModel.zip
|
||||
files: FModel.zip
|
||||
|
|
@ -1 +1 @@
|
|||
Subproject commit 2ce1512277e2f3f7b64975c46ce978efe824df2f
|
||||
Subproject commit d9c3db37652e615cf7160c168ccdb995171d1947
|
||||
|
|
@ -5,9 +5,9 @@
|
|||
<TargetFramework>net6.0-windows</TargetFramework>
|
||||
<UseWPF>true</UseWPF>
|
||||
<ApplicationIcon>FModel.ico</ApplicationIcon>
|
||||
<Version>4.3.2</Version>
|
||||
<AssemblyVersion>4.3.2.1</AssemblyVersion>
|
||||
<FileVersion>4.3.2.1</FileVersion>
|
||||
<Version>4.4.0</Version>
|
||||
<AssemblyVersion>4.4.0.0</AssemblyVersion>
|
||||
<FileVersion>4.4.0.0</FileVersion>
|
||||
<IsPackable>false</IsPackable>
|
||||
<IsPublishable>true</IsPublishable>
|
||||
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
|
||||
|
|
|
|||
|
|
@ -296,7 +296,7 @@ namespace FModel.Settings
|
|||
private IDictionary<FGame, EGame> _overridedGame = new Dictionary<FGame, EGame>
|
||||
{
|
||||
{FGame.Unknown, EGame.GAME_UE4_LATEST},
|
||||
{FGame.FortniteGame, EGame.GAME_UE5_1},
|
||||
{FGame.FortniteGame, EGame.GAME_UE5_2},
|
||||
{FGame.ShooterGame, EGame.GAME_Valorant},
|
||||
{FGame.DeadByDaylight, EGame.GAME_UE4_LATEST},
|
||||
{FGame.OakGame, EGame.GAME_Borderlands3},
|
||||
|
|
|
|||
|
|
@ -175,7 +175,7 @@ public class MapViewerViewModel : ViewModel
|
|||
}
|
||||
|
||||
private const int _widthHeight = 2048;
|
||||
private const int _brRadius = 131000;
|
||||
private const int _brRadius = 141000;
|
||||
private const int _prRadius = 51000;
|
||||
private int _mapIndex;
|
||||
public int MapIndex // 0 is BR, 1 is PR
|
||||
|
|
@ -368,8 +368,9 @@ public class MapViewerViewModel : ViewModel
|
|||
|
||||
private FVector2D GetMapPosition(FVector vector, int mapRadius)
|
||||
{
|
||||
var nx = (vector.Y + mapRadius) / (mapRadius * 2) * _widthHeight;
|
||||
var ny = (1 - (vector.X + mapRadius) / (mapRadius * 2)) * _widthHeight;
|
||||
const int wh = 2048 + 128 + 32;
|
||||
var nx = (vector.Y + mapRadius) / (mapRadius * 2) * wh;
|
||||
var ny = (1 - (vector.X + mapRadius) / (mapRadius * 2)) * wh;
|
||||
return new FVector2D(nx, ny);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -29,16 +29,16 @@
|
|||
DataContext="{Binding DataContext, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:Views.MapViewer}}}" IsEnabled="{Binding Status.IsReady}" />
|
||||
<!-- <CheckBox Content="Tags Location" Style="{DynamicResource {x:Static adonisUi:Styles.ToggleSwitch}}" IsChecked="{Binding MapViewer.BrTagsLocation}" -->
|
||||
<!-- DataContext="{Binding DataContext, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:Views.MapViewer}}}" IsEnabled="{Binding Status.IsReady}" /> -->
|
||||
<CheckBox Content="Patrols Path" Style="{DynamicResource {x:Static adonisUi:Styles.ToggleSwitch}}" IsChecked="{Binding MapViewer.BrPatrolsPath}"
|
||||
DataContext="{Binding DataContext, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:Views.MapViewer}}}" IsEnabled="{Binding Status.IsReady}" />
|
||||
<CheckBox Content="Upgrade Benches" Style="{DynamicResource {x:Static adonisUi:Styles.ToggleSwitch}}" IsChecked="{Binding MapViewer.BrUpgradeBenches}"
|
||||
DataContext="{Binding DataContext, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:Views.MapViewer}}}" IsEnabled="{Binding Status.IsReady}" />
|
||||
<!-- <CheckBox Content="Patrols Path" Style="{DynamicResource {x:Static adonisUi:Styles.ToggleSwitch}}" IsChecked="{Binding MapViewer.BrPatrolsPath}" -->
|
||||
<!-- DataContext="{Binding DataContext, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:Views.MapViewer}}}" IsEnabled="{Binding Status.IsReady}" /> -->
|
||||
<!-- <CheckBox Content="Upgrade Benches" Style="{DynamicResource {x:Static adonisUi:Styles.ToggleSwitch}}" IsChecked="{Binding MapViewer.BrUpgradeBenches}" -->
|
||||
<!-- DataContext="{Binding DataContext, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:Views.MapViewer}}}" IsEnabled="{Binding Status.IsReady}" /> -->
|
||||
<!-- <CheckBox Content="Phonebooths" Style="{DynamicResource {x:Static adonisUi:Styles.ToggleSwitch}}" IsChecked="{Binding MapViewer.BrPhonebooths}" -->
|
||||
<!-- DataContext="{Binding DataContext, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:Views.MapViewer}}}" IsEnabled="{Binding Status.IsReady}" /> -->
|
||||
<CheckBox Content="Weapon-o-matic/Mending Machines" Style="{DynamicResource {x:Static adonisUi:Styles.ToggleSwitch}}" IsChecked="{Binding MapViewer.BrVendingMachines}"
|
||||
DataContext="{Binding DataContext, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:Views.MapViewer}}}" IsEnabled="{Binding Status.IsReady}" />
|
||||
<CheckBox Content="Bounty Boards" Style="{DynamicResource {x:Static adonisUi:Styles.ToggleSwitch}}" IsChecked="{Binding MapViewer.BrBountyBoards}"
|
||||
DataContext="{Binding DataContext, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:Views.MapViewer}}}" IsEnabled="{Binding Status.IsReady}" />
|
||||
<!-- <CheckBox Content="Weapon-o-matic/Mending Machines" Style="{DynamicResource {x:Static adonisUi:Styles.ToggleSwitch}}" IsChecked="{Binding MapViewer.BrVendingMachines}" -->
|
||||
<!-- DataContext="{Binding DataContext, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:Views.MapViewer}}}" IsEnabled="{Binding Status.IsReady}" /> -->
|
||||
<!-- <CheckBox Content="Bounty Boards" Style="{DynamicResource {x:Static adonisUi:Styles.ToggleSwitch}}" IsChecked="{Binding MapViewer.BrBountyBoards}" -->
|
||||
<!-- DataContext="{Binding DataContext, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:Views.MapViewer}}}" IsEnabled="{Binding Status.IsReady}" /> -->
|
||||
</StackPanel>
|
||||
</DataTemplate>
|
||||
<DataTemplate x:Key="PrTemplate">
|
||||
|
|
@ -57,8 +57,8 @@
|
|||
DataContext="{Binding DataContext, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:Views.MapViewer}}}" IsEnabled="{Binding Status.IsReady}" />
|
||||
<CheckBox Content="Vending Machines" Style="{DynamicResource {x:Static adonisUi:Styles.ToggleSwitch}}" IsChecked="{Binding MapViewer.PrVendingMachines}"
|
||||
DataContext="{Binding DataContext, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:Views.MapViewer}}}" IsEnabled="{Binding Status.IsReady}" />
|
||||
<CheckBox Content="Music Blocks" Style="{DynamicResource {x:Static adonisUi:Styles.ToggleSwitch}}" IsChecked="{Binding MapViewer.PrMusicBlocks}"
|
||||
DataContext="{Binding DataContext, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:Views.MapViewer}}}" IsEnabled="{Binding Status.IsReady}" />
|
||||
<!-- <CheckBox Content="Music Blocks" Style="{DynamicResource {x:Static adonisUi:Styles.ToggleSwitch}}" IsChecked="{Binding MapViewer.PrMusicBlocks}" -->
|
||||
<!-- DataContext="{Binding DataContext, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:Views.MapViewer}}}" IsEnabled="{Binding Status.IsReady}" /> -->
|
||||
</StackPanel>
|
||||
</DataTemplate>
|
||||
</ResourceDictionary>
|
||||
|
|
|
|||
|
|
@ -186,15 +186,23 @@ public class SnimGui
|
|||
Modal("Commands", ImGui.MenuItem("Commands"), () =>
|
||||
{
|
||||
ImGui.TextWrapped(
|
||||
@"Most commands should be pretty straightforward but just in case here is a non-exhaustive list of things you can do on this 3D viewer:
|
||||
@"Most commands should be pretty straightforward but just in case here is a non-exhaustive list of things you can do in this 3D viewer:
|
||||
|
||||
1. 3D Viewport
|
||||
1. UI / UX
|
||||
- Press Shift while moving a window to dock it
|
||||
- Ctrl Click in a box to input a new value
|
||||
- Mouse Click + Drag in a box to modify the value without having to type
|
||||
- Press H to hide the window and append the next mesh you extract
|
||||
|
||||
2. Viewport
|
||||
- WASD to move around
|
||||
- Shift to move faster
|
||||
- XC to zoom
|
||||
- Left Mouse Button pressed to look around
|
||||
- Right Click to select a model in the world
|
||||
|
||||
2. Outliner
|
||||
2.1. Right Click Model
|
||||
3. Outliner
|
||||
3.1. Right Click Model
|
||||
- Show / Hide the model
|
||||
- Show a skeletal representation of the model
|
||||
- Save to save the model as .psk / .pskx
|
||||
|
|
@ -204,18 +212,18 @@ public class SnimGui
|
|||
- Deselect
|
||||
- Copy Name to Clipboard
|
||||
|
||||
3. World
|
||||
4. World
|
||||
- Save All to save all loaded models at once
|
||||
(no it's not dying it's just freezing while saving them all)
|
||||
|
||||
4. Details
|
||||
4.1. Right Click Section
|
||||
5. Details
|
||||
5.1. Right Click Section
|
||||
- Show / Hide the section
|
||||
- Swap to change the material used by this section
|
||||
- Copy Name to Clipboard
|
||||
4.2. Transform
|
||||
5.2. Transform
|
||||
- Move / Rotate / Scale the model in the world
|
||||
4.3. Morph Targets
|
||||
5.3. Morph Targets
|
||||
- Modify the vertices position by a given amount to change the shape of the model
|
||||
");
|
||||
ImGui.Separator();
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ public class Transform
|
|||
|
||||
public Matrix4x4 Relation = Matrix4x4.Identity;
|
||||
public FVector Position = FVector.ZeroVector.ToMapVector();
|
||||
public FRotator Rotation = FRotator.ZeroRotator;
|
||||
public FRotator Rotation = new (0f);
|
||||
public FVector Scale = FVector.OneVector.ToMapVector();
|
||||
|
||||
public Matrix4x4 Matrix =>
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user