/* * Copyright 2013 MovingBlocks * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * This package provides physics support for Terasology - * ray tracing, character movement, collision detection and rigid bodies. * <br><br> * The core of the physics support is the PhysicsEngine class. This * interface should be available from the CoreRegistry, using * CoreRegistry.get(PhysicsEngine.class). From there most of the physics * behaviour can be accessed. * <br><br> * Besides the PhysicsEngine and the interfaces and classes returned by it or * required by it, there are three other groups of classes. * <ul> * <li>The first groups contains the Components used by the * PhysicsEngine. This groups can be found in the "components" sub-package. The * Physics engine requires that entities have certain types of components for * certain behaviour. For example, to create a rigid body, you must provide the * engine with an entity that has a RigidBodyComponent and LocationComponent.</li> * <li>The second group contains the physics related events and the * PhysicsSystem class. This group can be found in the "events" sub-package. * The PhysicsSystem class is a bridge between the event system of Terasology and the PhysicsEngine * interface. It catches of any events that should alter the physics engine and * converts them into calls to the PhysicsEngine interface.</li> * <li>The last group is the implementation of the various interfaces. At the * moment of writing this documentation only one implementation exists, the * bullet physics engine implementation that uses TeraBullet - a customised version of JBullet. * This implementation can be found in the "bullet" sub-package.</li> * </ul> */ @API package org.terasology.physics; import org.terasology.module.sandbox.API;