David Vierra
29b7406c93
Dirty hack to force chunk rescan after revision change
...
Should inspect changes and update instead of rescanning
2015-06-08 00:42:21 -10:00
David Vierra
278966a256
RevisionHistory: fix various functions not respecting deadChunks/deadFiles
...
chunkPositions now removes dead chunks from the returned chunks
readChunkBytes raises ChunkNotPresent for dead chunks
readFile raises IOError for dead files
2015-06-08 00:42:20 -10:00
David Vierra
cca35e3d0d
Quit app when main window is closed
2015-06-08 00:42:20 -10:00
David Vierra
ce7c652581
Add chunk menu and implement chunk delete command
2015-06-08 00:42:19 -10:00
David Vierra
5a5d09c532
createShapedSelection now has the current dimension as an argument
2015-06-07 23:33:06 -10:00
David Vierra
8812e4140a
Always log info about obtained GL context
...
The more info, the better.
2015-06-07 16:57:13 -10:00
David Vierra
b10de6f592
Update readme - install pyzmq using pip
2015-06-07 06:56:06 -10:00
David Vierra
9e383d4031
Log selection in FillBlocksOperation
2015-06-07 06:53:59 -10:00
David Vierra
aeb874487f
Add deleted chunks to recentDirtyChunks
2015-06-07 06:53:40 -10:00
David Vierra
5f941735c2
Replace Blocks now respects the "In Selection" checkbox
2015-06-07 00:23:01 -10:00
David Vierra
d3187b2d73
Selection highlight now updates after the world is edited.
...
No more selection hanging around after blocks are deleted.
2015-06-07 00:19:52 -10:00
David Vierra
1d9c2c65de
EditorSession.revisionChanged is now emitted with a RevisionChanges object instead of the revision ID
2015-06-07 00:19:05 -10:00
David Vierra
ef520d7d9d
Fix crash when changing selection shape
2015-06-06 23:43:10 -10:00
David Vierra
c79c851e4d
Catch errors while calling generator's getPreviewNode
...
TODO: better error dialog!
2015-06-06 21:23:47 -10:00
David Vierra
2ce9faadd0
WorkplaneNode can now be oriented to any axis
2015-06-06 19:58:14 -10:00
David Vierra
ac495f1d87
Fix selection boxes occasionally being super hard to resize.
...
Box was using the wrong plane as the drag reference plane
2015-06-06 19:57:45 -10:00
David Vierra
5de661cab9
Fix selection renderer rendering anything when selection is zero sized.
...
IntersectionBox had the wrong logic for one of its components returning None from box_mask
All CombinationBoxes have been adjusted.
2015-06-06 18:02:36 -10:00
David Vierra
7ae713ebb2
Allow bresenham to be reloaded
2015-06-06 17:23:45 -10:00
David Vierra
8789408a22
Change sys.executable to GetModuleFileNameW
...
Currently does nothing, but when PyInstaller is patched to use unicode filenames, GMFNW won't return an SFN any more.
2015-06-05 23:26:35 -10:00
David Vierra
97d6aeabf4
validateGLContext doesn't need to return anything
...
Was getting a weird error like "PySide.QGLContext has no attribute setData" in some logging call...
2015-06-05 23:03:47 -10:00
David Vierra
208069beed
Fix lag between moving mouse and view updating.
...
On mouse move, redraw view after calling view actions, not before.
2015-06-04 02:31:55 -10:00
David Vierra
65a17d93d9
Add a comment in geometry.py
2015-06-04 02:31:07 -10:00
David Vierra
8207d12570
Fix "jitter" when moving cursor across block edges.
...
Use the maximum depth buffer value when converting from a screen position to a 3D ray to increase precision.
Not sure why it wasn't the maximum before.
2015-06-04 02:30:47 -10:00
David Vierra
817d42b522
Add basic workplane control.
...
Only Y-axis right now. In the future, maybe a tool for creating one workplane for each axis?
2015-06-03 23:15:46 -10:00
David Vierra
4a54d0f5a4
Fix chunk loading origin not updating after changing dimensions
...
Offscreen views were being added to chunkLoader clients and controlling the load order...
2015-06-03 22:51:55 -10:00
David Vierra
0c897f397c
Fix moving left/right while looking down being very slow.
...
Needed to normalize the 'left' vector.
2015-06-03 21:17:13 -10:00
David Vierra
0d956c691d
Add ParabolicDome brush shape
2015-06-02 20:27:32 -10:00
David Vierra
814a40b993
Brush's "Hover" option is now implemented.
...
TODO: Button to switch hover to half of object height, or half of object size along axis given by face under cursor
2015-06-02 20:27:21 -10:00
David Vierra
4e284e64c6
Rework brush shapes a bit
...
ShapedSelection -> ShapeFuncSelection
BrushShape now has createShapedSelection in addition to shapeFunc
createShapedSelection is called instead of ShapeFuncSelection
createOptionsWidget added to BrushShape but not yet used...
Move shapeFuncs from mceditlib.selection to brush.shapes
Fix Diamond shape (recenters coordinates)
Remove Box shapeFunc - return box from createShapedSelection.
2015-06-02 15:26:43 -10:00
David Vierra
a0bac1c4a3
Add cylinder shape.
...
Todo: axis setting
2015-06-02 13:57:37 -10:00
David Vierra
b511ce945a
Fix bug in modelmesh causing negative y coordinates to roll over
2015-06-01 23:01:22 -10:00
David Vierra
b12d4ff50e
Rework createSelectionMask
...
Move createSelectionMask into ShapedSelection.box_mask
Remove "hollow" and "chance" args - use composed selections for this instead
Don't recenter coordinates in box_mask
Recenter coordinates in SphereShape instead
DiamondShape is now broken.
2015-06-01 22:51:37 -10:00
David Vierra
563559732f
xxx show wireframe box around brush cursor
2015-06-01 15:45:19 -10:00
David Vierra
251c999742
Allow brush shapes to have no icon.
2015-06-01 15:42:59 -10:00
David Vierra
49e55338e4
Add some comments and notes
2015-06-01 15:41:02 -10:00
David Vierra
8500d6a2f0
Main chunk loading timer can now idle again.
...
ChunkLoader.next now reraises StopIteration to signal caller that all chunks are loaded.
2015-05-31 18:49:32 -10:00
David Vierra
b482e8d952
Pull masklevel.py, modes.py, shapes.py out of brush/__init__.py
...
Move shapes out of shapewidget.py, too.
2015-05-31 18:04:09 -10:00
David Vierra
b420e29613
Add Alek to supporters list
2015-05-31 14:59:21 -10:00
David Vierra
c53528c10a
Minimap viewing outline now uses a ray cast to determine the height at which to slice the frustum.
...
The outline now grows and shrinks according to how far away the object in the center of the screen is.
2015-05-30 21:13:40 -10:00
David Vierra
3772d5dfb3
Fix minimap's viewing area outline.
...
Check for intersection with eight of the frustum's edges, not just four.
2015-05-30 21:08:26 -10:00
David Vierra
c5836353c6
Use exhaust() in some preview loaders to exhaust iterators.
2015-05-29 11:41:35 -10:00
David Vierra
d74ebcf932
Add progress bars to world save and undo revision close.
...
Tempted to write a progress manager type class the next time this comes up.
Progress counts are a little bit off.
2015-05-29 11:41:02 -10:00
David Vierra
3861f7f5d2
Add __len__ to lru_cache_object
2015-05-29 11:25:55 -10:00
David Vierra
d1a51ecef4
Region repair: Don't put overlapping chunks in lost and found.
...
They are probably unreadable anyway.
2015-05-29 11:18:29 -10:00
David Vierra
4deae441a7
Fix AttributeError in RegionFile.repair after renaming writeChunk to writeChunkBytes
2015-05-27 10:13:30 -10:00
David Vierra
51babcd9f4
Change assert VERSION_ANVIL
to a LevelFormatError
...
LFE can be caught by world list, etc. Having it as an assert just caused the app to exit.
2015-05-27 09:21:58 -10:00
David Vierra
ac856a0581
Fix crash when switching back to Koch Snowflake plugin
...
Options widget was being recreated. When the previous widget is deleted, it deletes all of its children, including self.iterationsSlider.
Maybe make sure getOptionsWidget is only called once and cache its result in GeneratePlugin
2015-05-25 05:39:00 -10:00
David Vierra
1045da3556
Remove debug print from mcedit2.spec
2015-05-24 08:55:40 -10:00
David Vierra
2244705dfc
Correctly remove pluginModule from sys.modules, as it is a dict and not a list.
2015-05-24 08:01:11 -10:00
David Vierra
87c6f45017
Close session panels before setting worldEditor to None
...
Panels expect worldEditor to not be None and this was spamming exceptions from one of the list models.
2015-05-24 08:00:52 -10:00