1106 Commits

Author SHA1 Message Date
David Vierra
52674af7ac Inspector handles edits properly (find something better than the editMade signal. NBTCompoundRef?) 2015-03-23 21:54:37 -10:00
David Vierra
00c06831d5 Fix type errors in _matchTag, fix walkNBT not actually recursing, fix copy-paste error in targetTileEntityIDs 2015-03-23 21:53:58 -10:00
David Vierra
28839b6d96 WorldList no longer reloads the world if the selected world is clicked again 2015-03-22 18:36:29 -10:00
David Vierra
eec86d3489 Fix a stupid bug in removing clients
It was removing all clients except the one...
2015-03-22 18:35:24 -10:00
David Vierra
b224392395 Cache block ID and property .jsons, assuming they won't ever change since they are packaged with the app.
The editor can amend a newly-created BlockTypeSet later for user-configured blocks, etc...
2015-03-22 18:12:56 -10:00
David Vierra
2aa6cd05f5 Add "Recent Worlds" popup to world list widget 2015-03-22 18:11:56 -10:00
David Vierra
818aebd410 Row and Column accept numeric values as specifying fixed-width spacers 2015-03-22 16:59:38 -10:00
David Vierra
1b29350f36 Move RecentFilesSetting to appsettings.py, change MCESettingsOption to accept "json" as a type.
RecentFilesSetting now has a default value
2015-03-22 16:59:16 -10:00
David Vierra
d3e1f4c9c8 Render the world list in WorldListWidget using a list view with an item delegate
I'm getting the hang of this model-view-delegate thing (again)!
2015-03-21 16:18:53 -10:00
David Vierra
effde4d394 Remove duplicate exceptions 2015-03-21 16:17:14 -10:00
David Vierra
048bc03d96 Fix worldlist editing the wrong world because its selection index is cleared when it closes 2015-03-19 20:31:01 -10:00
David Vierra
c3dbb9817a levelbase.py -> fakechunklevel.py 2015-03-19 20:25:45 -10:00
David Vierra
30ad14e172 Remove dead code 2015-03-19 20:24:34 -10:00
David Vierra
5477bd51a5 Re-add blocktype conversion. Store block IDs in schematic files.
This allows proper transfer of mod-added blocks (not items) between worlds saved by MinecraftForge 1.7. Items require (intricate) special handling, since they can be literally anywhere. As an added bonus, when items are handled correctly, items can be transferred between Minecraft 1.7 and 1.8, since 1.7 uses numeric item IDs while 1.8 uses textual ones.

Only block IDs are converted. In the past, block meta conversion was needed for Pocket Edition worlds (wool specifically) but since block IDs in MCPE are converging on PC edition IDs this may not be needed. In any case, we'll burn the MCPE bridge when we come to it.
2015-03-19 19:39:15 -10:00
David Vierra
34285d3dc9 Fix [Tile]Entities not getting exported to schematics
Because nobody was really sure where they were being stored.
2015-03-19 17:03:18 -10:00
David Vierra
31dc9d49bb Fix asterisk error when passing positions to BoundingBox constructor.
Why did this go undetected for so long!?
2015-03-19 17:01:52 -10:00
David Vierra
63951189e9 Catch rendering errors per-meshclass instead of aborting the entire chunk. 2015-03-19 17:00:54 -10:00
David Vierra
d9236e697c Add Import/Export menu and commands, start to get them working (finally) 2015-03-19 17:00:32 -10:00
David Vierra
3ce14fd504 Add Library to Windows menu 2015-03-19 14:09:06 -10:00
David Vierra
8d800bf098 Show first 8 elements of array types in NBT trees.
Maybe later we'll add a hex editor...
2015-03-19 14:08:47 -10:00
David Vierra
f2df2ebfcc Adjust starting point up to player's eye-level (again...) 2015-03-19 12:24:11 -10:00
David Vierra
cf97caced3 NBT Replace converts string input to the appropriate type, and marks the [tile]entity ref dirty. 2015-03-18 23:46:32 -10:00
David Vierra
ad5fe0205b Add UUID field to PCEntityRef, add dirty() to PCEntityRef and PCTileEntityRef
Ugh... still need to decide whether a PC[Tile]EntityRef (and ItemRef and so on) refers to an entity in any revision (and can sometimes be invalid), or only a single revison (and can be read-only most of the time)
2015-03-18 23:45:34 -10:00
David Vierra
6f0deec967 Clear tileEntity inspector when no tile entity, use correct type for entity UUID label 2015-03-18 23:44:16 -10:00
David Vierra
09b2884086 Skip players with unparseable UUIDs 2015-03-18 23:42:25 -10:00
David Vierra
087f6e153b THIS LINE apparently causes a crash when an EditorSession with any commands in its QUndoStack is garbage-collected.
Probably related to Qt's object ownership rules. The QUndoStack owns any commands put into it.
2015-03-18 23:41:43 -10:00
David Vierra
f9a00d9961 Add "Collect Garbage" to debug menu 2015-03-18 23:40:34 -10:00
David Vierra
e0878cee26 Fix recent files menu only opening the last world in the menu (oops) 2015-03-18 17:07:18 -10:00
David Vierra
c28f8b9e75 NBTEditor uses its sorting proxy model again. Now to find out what was so wrong with it that it was removed. 2015-03-18 16:56:32 -10:00
David Vierra
d753361dbf Clicking a result in the NBT find results will zoom to that entity or tileEntity 2015-03-18 16:20:19 -10:00
David Vierra
ec5d6584d1 When loading a world, start from the single-player's viewpoint like in MCEdit 1 2015-03-18 16:19:49 -10:00
David Vierra
5abd935862 After changing tag names, update the results view. Really ugly, need to do it through the model and not the results 2015-03-18 16:02:32 -10:00
David Vierra
83826f7179 Implement "Replace All" function for NBT search
Add replacement inputs to results widget and synchronize them
Add default value to MCESettingsOption
2015-03-18 15:51:33 -10:00
David Vierra
891649d9d3 Started work on InspectorWidget
(doot-do-doot-do-doot doot doot, woo woo)
2015-03-18 12:27:39 -10:00
David Vierra
9d3ba92c76 Add "Find again..." button to NBT results 2015-03-18 10:37:24 -10:00
David Vierra
8d295eb2ce Begin separating the Select Block and Select Entity tools apart 2015-03-18 10:37:17 -10:00
David Vierra
f2131a3e86 PlayersPanel doesn't error when a player doesn't have a UUID (for older worlds) 2015-03-17 22:42:15 -10:00
David Vierra
e483424e17 More work on NBT find/replace
Find/replace settings are saved and loaded
Checkboxes are sync'd with field contents
Find results are shown in a separate dock widget
Result entries unambiguously point to an entity or tile entity
2015-03-17 22:41:47 -10:00
David Vierra
ae0e1bed1f Create a settings namespace object to group related settings 2015-03-17 22:40:04 -10:00
David Vierra
f4b620dbff xxx BlockPicker changed to need textureAtlas and not editorSession 2015-03-17 18:13:35 -10:00
David Vierra
402bdb508a Move several selection-related commands from SelectionTool's options panel to the Select menu in EditorSession 2015-03-17 18:13:12 -10:00
David Vierra
5bacc8bf4a Ensure that the map view gets cleaned up when the WorldListWidget is closed/hidden/rejected
Seems a bit redundant.
2015-03-17 16:08:56 -10:00
David Vierra
864907a689 EditorTab weakly references EditorSession 2015-03-17 15:46:16 -10:00
David Vierra
1c50a305d9 Don't try to read Forge 1.6 "ID" mapping. These store Java class names and not textual block IDs. Worry about this much later, if at all. 2015-03-17 15:42:28 -10:00
David Vierra
d1fd57347d In FML for MC 1.6, 'ordinal' is not the block/item's "meta" - I still don't know what it's for. 2015-03-17 15:37:18 -10:00
David Vierra
a6448022a2 Remove the session's undoStack from the app's undoGroup when the session is closed. 2015-03-17 15:36:58 -10:00
David Vierra
e9de29b9d6 Core ViewActions no longer reference the EditorSession, and weakly reference its EditorTab 2015-03-17 15:36:50 -10:00
David Vierra
74f4c27339 NBTEditorWidget weakly references EditorSession 2015-03-17 14:18:15 -10:00
David Vierra
9de48d2d3f PlayersPanel weakly references EditorSession 2015-03-17 14:16:17 -10:00
David Vierra
33b166931f Update recent files on startup 2015-03-17 14:15:45 -10:00