1418 Commits

Author SHA1 Message Date
David Vierra
0984ff8efc Create a ResourceLoader for an EditorSession using its associated installation or instance
EditorApp creates the ResourceLoader for an EditorSession before creating it.
EditorApp finds the install or instance and calls getResourceLoader on it
MMCInstance now has getResourceLoader
MMCInstance's getResourceLoader returns a loader with all installed mods in its search path. Not sure whether they should go before or after the MC jar(s).  (todo: add installed mods for vanilla installs, for homecooked mod packs/installs?)
MultiMCInstall now has versions.
MCInstallGroup is now responsible for finding a v1.8 jar, and searches all installs and MMC installs for one.
ensureValidInstall checks for v1.8 and displays an appropriate dialog if it isn't found.

All of this will make it easier to hook in a "Minecraft Assets Pack" as a separate download, and makes it possible to load assets from any installed mods
2015-04-15 22:20:00 -10:00
David Vierra
be2db03b8c Don't spam "Could not get blockstates resource" except for Vanilla blocks. 2015-04-15 01:45:08 -10:00
David Vierra
4c86ec59cf Add 'unknown' flag to BlockType attributes and set it to True for FML-loaded types. Add unknownBlocks() to EditorSession 2015-04-15 00:33:04 -10:00
David Vierra
03eb0081a4 Add function to ResourceLoader for listing all block models
xxx only lists Vanilla models. haven't looked at mods with models yet.
2015-04-15 00:31:56 -10:00
David Vierra
c0910ddfd0 Remove missing files from the recent files list when scanning it for world info. xxxx maybe not the right place for this... 2015-04-15 00:31:19 -10:00
David Vierra
3c4336e487 Catch missing texture errors when creating pixmaps for textures (e.g. for blocktype list/picker) 2015-04-15 00:30:39 -10:00
David Vierra
9c9198507c Catch errors while loading the texture atlas for the debug widget that shows the atlas image. 2015-04-15 00:29:56 -10:00
David Vierra
8b0d42646f Make the editor app available as 'self' for the -eval argument 2015-04-15 00:29:24 -10:00
David Vierra
58748189f1 Cook quads after loading atlas textures, not immediately before using block models
xxx get the order of initialization right. TextureAtlas needs a GL context to get the maximum texture size. WorldView wants a texture atlas in its constructor for no apparent reason. We'll need to make WorldView have changeable TextureAtlases so get that out of the constructor.
2015-04-15 00:29:00 -10:00
David Vierra
a1699c53ef Change BlockModels/ModelMesh/TextureAtlas to use full paths to texture files 2015-04-15 00:27:23 -10:00
David Vierra
d12b09a0a9 Change ResourceLoader.openStream to use a full path
Anticipating textures loaded from mods
2015-04-14 23:45:21 -10:00
David Vierra
ee5665a477 Begin working on Configure Blocks/Items dialog 2015-04-14 16:06:34 -10:00
David Vierra
53606be7e5 Add removeEntities to WorldEditor and use it in RemoveEntitiesOperation
Fixes a problem where EntityRefs were removed from a WorldEditorChunk without removing the underlying tags in the AnvilChunk[Data]
2015-04-14 16:06:10 -10:00
David Vierra
a726923196 Make raycast ignore non-air blocks found before the first air block.
Gives more sensible behavior when the camera is inside solid blocks.
2015-04-14 16:05:23 -10:00
David Vierra
a7d582eeda Don't show [tile]entities behind walls, to reduce clutter.
xxx relative polygon offsets, how?
2015-04-14 15:16:12 -10:00
David Vierra
8d0310bf10 Open the world starting in the single-player's current dimension, like in MCEdit 1 2015-04-14 14:00:19 -10:00
David Vierra
0020362383 Fix rendering bug where chunks don't appear to fully update after undo.
Make a copy of chunkNode.children to iterate while removing children.
This SHOULD have raised an error related to modifying a list while iterating it.
2015-04-13 14:34:05 -10:00
David Vierra
19b0fdeb6d Camera view distance and perspective options are saved. 2015-04-13 13:32:48 -10:00
David Vierra
4d39928a77 Add convenience function to MCESettingsOption to connect a callback and immediately call it. 2015-04-13 13:32:30 -10:00
David Vierra
a43b41aba3 Enable only the Blocks layer for MinimapWorldView
This was hairy. Find a better way to control visible layers.
2015-04-13 13:32:03 -10:00
David Vierra
3b71c93a3b Add chunk coords to pos on status bar 2015-04-13 13:31:32 -10:00
David Vierra
3b430d7135 Remove ChunkNode.layers. Match layers using the ChunkNode's children's .layerName 2015-04-13 13:18:31 -10:00
David Vierra
4e6e074360 ChunkRenderInfo -> chunkupdate.py 2015-04-12 15:50:57 -10:00
David Vierra
9bf9a9c4e3 Add Options menu, implement "Enable Lighting Updates" setting, leave Preferences and Configure Blocks/Items unfinished. 2015-04-12 15:48:29 -10:00
David Vierra
510e5d731e Remove nonstandard short array from tag types menu. 2015-04-10 11:13:19 -10:00
David Vierra
a2b1858eeb Fix NameError in import dialog, set file type for export dialog.
Add more export commands for different export formats? Via plugins?
2015-04-10 11:13:05 -10:00
David Vierra
0328b807c7 WorldList is non-modal and does not block closing MCEdit. 2015-04-10 11:12:27 -10:00
David Vierra
1a6aeed110 WorldView keeps its overlayNode through dimension changes
Ugh, tools need to connect to dimensionChanged and reset their overlays...
2015-04-10 11:12:05 -10:00
David Vierra
0b6bf64ab9 Get version number from git or _version.py (created by build system)
Display version number in title bar and about box.
2015-04-10 11:11:31 -10:00
David Vierra
c487fc7bdf Fix blockpicker selecting multiple blocks while searching in single select mode
Need to figure out the lag when searching by ID
2015-04-03 16:24:21 -10:00
David Vierra
1b7e709e9e Dimension changing is barely working.
Still need to connect a few things to dimensionChanged, such as the inspector, and figure out what's wrong with the minimap
2015-04-03 16:23:44 -10:00
David Vierra
bb87a8740d Catch ValueError when getting string form of LastPlayed time, to catch times before 1970 2015-04-03 07:51:37 -10:00
David Vierra
49f7ce5f6e Restore "indiscriminate" option to flood fill
xxx add an API for telling flood fill that two block IDs are the same block in indiscriminate mode (e.g. grass and dirt)
2015-04-03 04:58:12 -10:00
David Vierra
554137d591 Fix copy-paste(?) bug in revisionhistory.copyToFolder 2015-04-03 04:57:25 -10:00
David Vierra
ff4424f743 Deque does not support slice assignment
too much numpy...
2015-04-03 04:56:52 -10:00
David Vierra
0053f7e94a Fix KeyError in region position cache, add set() as default value 2015-04-03 04:50:50 -10:00
David Vierra
5cbdd3a735 ResourceLoader wraps BadZipfile in an IOError so the try/catch around editor creation can catch it
I'm so bad at error handling.
2015-04-02 11:39:32 -10:00
David Vierra
d184ff07c1 Basic MultiMC integration
MultiMC installs can be configured in the same window as MC installs.
Saves folders of instances from all MMC installs are added to the "Folder" popup.
Also, the StackedWidget uses a blank widget to hide error messages and/or white GL widgets during world changes
2015-04-02 11:38:44 -10:00
David Vierra
c1d5d0befa lru_cache: Fix key being added to queue even when user_function raises an exception
Also change try/catch to get(key, sentinel) because exceptions are more expensive and misses are common for my use-case
2015-04-01 22:14:01 -10:00
David Vierra
694e39b0c9 lru_cache: Fix key being added to queue even when user_function raises an exception
Also change try/catch to get(key, sentinel) because exceptions are more expensive and misses are common for my use-case
2015-04-01 17:17:56 -10:00
David Vierra
c7a744d5ca Some fixes to MCInstallDialog after previous work
MCInstallGroup gains addInstall and removeInstall
Use the new "json" option type for options
2015-04-01 01:42:09 -10:00
David Vierra
b592cc4a3f Show progress dialog while opening a world. 2015-04-01 00:56:02 -10:00
David Vierra
2001e8e656 Fix duplicate items in version and resource pack lists after configuring installs 2015-04-01 00:28:00 -10:00
David Vierra
187949945c Move minecraftinstall.py globals into a singleton 2015-03-31 23:24:40 -10:00
David Vierra
4ef93f0641 Dumped map colors for all block states. Shows colors of wool and stained clay in minimap correctly. 2015-03-30 17:04:55 -10:00
David Vierra
43e73ae9b8 cachefuncs now iterate their keys instead of values 2015-03-30 15:57:52 -10:00
David Vierra
11d1301f32 invalidLayers is a set. Don't replace it with something else. 2015-03-30 15:55:35 -10:00
David Vierra
3c72a69679 cachefuncs now do nothing if asked to decache a non-cached key 2015-03-30 15:55:09 -10:00
David Vierra
9a73b1395b Chunk meshes now return SceneNodes instead of VertexArrayBuffers
This will allow them to return their own rendering commands instead of being limited to using VertexNodes.
2015-03-30 13:33:00 -10:00
David Vierra
ae7a9e1b84 Restore TileTicks accessor and renderer 2015-03-30 11:40:56 -10:00