Skip to content

goodDOS/BEE2.4

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Better Extended Editor 2 version 4

A Portal 2 Mod tool

forthebadge forthebadge

The BEE2 allows reconfiguring Portal 2's Puzzlemaker editor to use additional items, reskin maps for different eras, and configure many other aspects. All vanilla items have been upgraded with additional bugfixes and improvments.

The packages (item, style, etc definitions) are in the BEE2-Items repository.

Download

Download the BEE2.4 on the releases pages:

Dependencies:

  • pyGame (for sounds, not required)
  • Pillow
  • TKinter/TTK (Standard Library)

Compilation:

To build the executable versions of the BEE2, run the compile_BEE2 and compile_VBSP_VRAD scripts with a command-line argument of build:

cd BEE2.4/src/
python compile_BEE2 build
...
python compile_VBSP_VRAD build
...

The application executables will be saved in build_BEE2, and the compilers in compiler/. To generate the packages zips, either manually zip the contents of each folder or use the compile_packages script in BEE2-items. This does the same thing, but additionally removes some unnessersary content to decrease file sizes - comments, blank lines, hidden visgroups.

For the release copy, it should include:

  • build_BEE2 (renamed to bin)
  • compiler
  • palettes
  • packages (from BEE2-items)
  • images (without the cache subfolder)
  • sounds
  • basemodui.txt
  • BEE2.ico

The various cache folders and config folders should not be included.

Modules:

  • Common:
    • property_parser: Library to allow reading and writing Valve's KeyValues format.
    • utils: Various utility functions and a Vector class.
    • vmfLib: A library which parses a VMF property tree to allow easy modification.
  • BEE Application:
    • BEE2: Main application script, starts up the application.
    • BEE2_config: Subclass of ConfigParser, which keeps track of the config file it's read from.
    • backup: A window for backing up and restoring P2C files into zips.
    • compile_BEE2: Cx-Freeze setup script to compile the BEE2 application.
    • compilerPane: Window pane which controls compiler options. This updates configs in real time.
    • contextWin: Implements the rightclick context menu for items.
    • FakeZip: simulates a ZipFile object based on a directory. Used to allow packageLoader to load either, without needing to check the type every time.
    • gameMan: Manages adding and removing games as well as exporting editoritems.
    • img: read PNG files into Tkinter-compatible formats. Caches calls so an image is only read once.
    • itemPropWin: A window which allows changing the default properties for an item.
    • loadScreen: Shows a window with loading bars during the startup process.
    • logWindow: Displays log messages.
    • optionWindow: The BEE2 configuration window.
    • packageLoader: Reads packages and parses all data out of them.
    • paletteLoader: Reads and writes palettes to disk.
    • query_dialogs: A version of tkinter.simpledialogs.ask_string, which uses the BEE2 icon.
    • richTextBox: Subclassed version of Tkinter's Text widget, with options to allow easily adding special formating like bullet lists.
    • selectorWin: Window class which allows picking items from a list, displaying various data about each option.
    • sound: Handles playing sound effects, using PyGame. Gracefully fails if Pygame is not present.
    • StyleVarPane: Window Pane which sets Style Properties, controlling certain style options.
    • SubPane: Toplevel subclass which can be shown and hidden via a button, and follows the main window around.
    • tagsPane: The dropdown which allows filtering the item list by tags.
    • tk_tools: Holds the singleton tkinter.Tk() instance and several custom widget classes.
    • tooltip: Allows registering a tooltip to appear on top of a widget.
    • UI: Holds the majority of the UI code, tying the components together.
    • voiceEditor: Window for viewing voice pack lines, and enabling/disabling individual ones.
  • VBSP and VRAD:
    • BSP: Library for reading and writing BSP files. Used to pack files during compile.
    • compile_vbsp_vrad: Cx-Freeze setup script to compile the VBSP and VRAD hooks.
    • conditions: Implements the conditions system, controlling item-specific transformations. Submodules add the individual conditions:
      • addInstance: Results which add additional instances.
        (addGlobal, addOverlay, addCavePortrait)

      • brushes: Results dealing with instances.
        (GenRotatingEnt, AlterFace, AddBrush, TemplateBrush)

      • fizzler: Results for custom fizzler items.
        (CustFizzler, fizzlerModelPair)

      • globals: Global flags allowing reference to stylevars, voicelines, etc.
        (styleVar, has*, Game, HasCavePortrait, isPreview)

      • instances: Flags and Results for instances - filenames, orientation, locations.
        (instance, has_inst, instVar) (clearOutputs, changeInstance, setInstVar, suffix, localTarget)

      • positioning: Flags/Results for dealing with the positioning of items.
        (rotation, posIsSolid, posIsGoo, forceUpright, OffsetInst)

      • logical: Flags like AND, OR and NOT. Used to comine with other flags.
        (AND, OR, NOT, NOR, NAND)

      • randomise: Results for randomising instances.
        (random, variant, randomNum, randomVec)

      • trackPlat: Result for modifying track platforms. (trackPlatform)

      • cutoutTile: Logic for the Cutout Tile item. (CutoutTile)

      • catwalks: Logic for Catwalk items (MakeCatwalk)

      • scaffold: Logic for Unstationary Scaffolds. (UnstScaffold)

    • instanceLocs: Translates <ITEM_ID:0,1> text into the associated instance paths.
    • vbsp: The BEE2's VBSP hook, which modifies a map VMF before it is compiled by the original VBSP.
    • vbsp_launch: Wrapper around vbsp, to get around the renaming of scripts to '__main__'.
    • voiceLine: Parses quote pack data, and determines the appropriate quote to use for a given map.
    • vrad: The BEE2's VRAD hook, which switches to use fast lighting when not in preview mode, and packs files into the BSP after the compilation.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%