Giter Club home page Giter Club logo

bee2.4's Introduction

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 and Use

Download the latest releases of the BEE2.4 and items from the following pages:

  • Application
  • Item Packages
  • Extract the contents of the Application release anywhere you like. e.g. C:\BEE2.4
  • Place extracted package folder in the root BEE2 folder. e.g. C:\BEE2.4\packages
  • To run, locate the BEE2.exe in the bin folder and execute it. e.g. C:\BEE2.4\bin\BEE2.exe

Dependencies:

  • pyglet and AVBin (for sounds, not required)
  • Pillow
  • noise (For perlin/simplex noise, as src/perlin.py)
  • 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.

bee2.4's People

Contributors

benvlodgi avatar darindouglass avatar teamspen210 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.